more of the same
This commit is contained in:
@@ -1,4 +1,44 @@
|
|||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [ ./services.nix ];
|
imports = [ ./services.nix ];
|
||||||
|
|
||||||
|
# Programs configuration
|
||||||
|
programs = {
|
||||||
|
nix-ld = {
|
||||||
|
enable = true;
|
||||||
|
libraries = with pkgs; [
|
||||||
|
alsa-lib
|
||||||
|
bash
|
||||||
|
expat
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
icu
|
||||||
|
glib
|
||||||
|
gtk3
|
||||||
|
libgcc
|
||||||
|
libgdiplus
|
||||||
|
libGL
|
||||||
|
libpulseaudio
|
||||||
|
SDL2
|
||||||
|
vulkan-loader
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libICE
|
||||||
|
xorg.libSM
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXrandr
|
||||||
|
xorg.libXi
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
};
|
||||||
|
coolercontrol.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Hardware configs
|
||||||
|
hardware = {
|
||||||
|
# Enable graphics
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
149
flake.nix
149
flake.nix
@@ -372,6 +372,13 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hosts/desktop/home.nix
|
./hosts/desktop/home.nix
|
||||||
|
./share/home/defaults.nix
|
||||||
|
./share/home/git.nix
|
||||||
|
./share/home/gnome.nix
|
||||||
|
./share/home/librewolf.nix
|
||||||
|
./share/home/office.nix
|
||||||
|
./share/home/shell.nix
|
||||||
|
./share/home/vscode.nix
|
||||||
desktop-steam-rom-manager.homeManagerModules.default
|
desktop-steam-rom-manager.homeManagerModules.default
|
||||||
desktop-sops-nix.homeManagerModules.sops
|
desktop-sops-nix.homeManagerModules.sops
|
||||||
];
|
];
|
||||||
@@ -425,6 +432,11 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hosts/nas/home.nix
|
./hosts/nas/home.nix
|
||||||
|
./share/home/defaults.nix
|
||||||
|
./share/home/git.nix
|
||||||
|
./share/home/librewolf.nix
|
||||||
|
./share/home/shell.nix
|
||||||
|
./share/home/vscode.nix
|
||||||
nas-sops-nix.homeManagerModules.sops
|
nas-sops-nix.homeManagerModules.sops
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -549,12 +561,19 @@
|
|||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
|
./base/base-nogui
|
||||||
|
./base/base-gui
|
||||||
|
./hosts/deck/configuration.nix
|
||||||
|
./modules/desktop-environments/gnome
|
||||||
|
|
||||||
|
steamdeck-lanzaboote.nixosModules.lanzaboote
|
||||||
|
|
||||||
steamdeck-disko.nixosModules.disko
|
steamdeck-disko.nixosModules.disko
|
||||||
./share/disko/disko.nix
|
./share/disko/disko.nix
|
||||||
|
|
||||||
steamdeck-impermanence.nixosModules.impermanence
|
steamdeck-impermanence.nixosModules.impermanence
|
||||||
steamdeck-lanzaboote.nixosModules.lanzaboote
|
|
||||||
./hosts/deck/configuration.nix
|
|
||||||
./share/impermanence
|
./share/impermanence
|
||||||
|
|
||||||
steamdeck-home-manager.nixosModules.home-manager
|
steamdeck-home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
@@ -564,6 +583,13 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hosts/deck/home.nix
|
./hosts/deck/home.nix
|
||||||
|
./share/home/defaults.nix
|
||||||
|
./share/home/git.nix
|
||||||
|
./share/home/gnome.nix
|
||||||
|
./share/home/librewolf.nix
|
||||||
|
./share/home/office.nix
|
||||||
|
./share/home/shell.nix
|
||||||
|
./share/home/vscode.nix
|
||||||
steamdeck-sops-nix.homeManagerModules.sops
|
steamdeck-sops-nix.homeManagerModules.sops
|
||||||
steamdeck-steam-rom-manager.homeManagerModules.default
|
steamdeck-steam-rom-manager.homeManagerModules.default
|
||||||
];
|
];
|
||||||
@@ -627,125 +653,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Improved build-all app
|
|
||||||
apps.x86_64-linux.build-all =
|
|
||||||
let
|
|
||||||
pkgs = nas-nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
type = "app";
|
|
||||||
program = toString (
|
|
||||||
pkgs.writeShellScript "build-all" ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Get the list of system names directly from flake.nix
|
|
||||||
# This avoids JSON serialization issues
|
|
||||||
systems=($(grep -o '"[^"]*"[[:space:]]*=' flake.nix | grep -v '_\|#\|"\.\|\*' | sed 's/"//g' | sed 's/=//g' | xargs))
|
|
||||||
|
|
||||||
echo "Found systems: ''${systems[@]}"
|
|
||||||
echo "Building all compatible systems..."
|
|
||||||
|
|
||||||
# Track success/failure
|
|
||||||
success=()
|
|
||||||
failure=()
|
|
||||||
|
|
||||||
for system in "''${systems[@]}"; do
|
|
||||||
echo "Attempting to build $system..."
|
|
||||||
|
|
||||||
# Detect system type without JSON evaluation
|
|
||||||
if nix eval --raw ".#nixosConfigurations.$system.pkgs.stdenv.hostPlatform.system" 2>/dev/null; then
|
|
||||||
system_type=$(nix eval --raw ".#nixosConfigurations.$system.pkgs.stdenv.hostPlatform.system" 2>/dev/null || echo "unknown")
|
|
||||||
|
|
||||||
# Only build if we're on the same system type or can cross-compile
|
|
||||||
if [ "$system_type" = "x86_64-linux" ]; then
|
|
||||||
echo "Building $system (x86_64-linux)..."
|
|
||||||
if nix build ".#nixosConfigurations.$system.config.system.build.toplevel" --out-link "./result-$system" --no-link; then
|
|
||||||
echo "✅ Successfully built $system"
|
|
||||||
|
|
||||||
# Copy to the binary cache
|
|
||||||
echo "Copying $system to binary cache..."
|
|
||||||
nix copy --to "https://cache.mjallen.dev?secret-key=/etc/nix/cache-priv-key.pem" ".#nixosConfigurations.$system.config.system.build.toplevel"
|
|
||||||
success+=("$system")
|
|
||||||
else
|
|
||||||
echo "❌ Failed to build $system"
|
|
||||||
failure+=("$system")
|
|
||||||
fi
|
|
||||||
elif [ "$system_type" = "aarch64-linux" ] && command -v qemu-aarch64-static >/dev/null 2>&1; then
|
|
||||||
echo "Cross-building $system (aarch64-linux)..."
|
|
||||||
if nix build ".#nixosConfigurations.$system.config.system.build.toplevel" --system aarch64-linux --out-link "./result-$system" --no-link; then
|
|
||||||
echo "✅ Successfully built $system"
|
|
||||||
nix copy --to "https://cache.mjallen.dev?secret-key=/etc/nix/cache-priv-key.pem" ".#nixosConfigurations.$system.config.system.build.toplevel"
|
|
||||||
success+=("$system")
|
|
||||||
else
|
|
||||||
echo "❌ Failed to build $system"
|
|
||||||
failure+=("$system")
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "⚠️ Skipping $system ($system_type) - incompatible with this host"
|
|
||||||
failure+=("$system (incompatible)")
|
|
||||||
fi
|
|
||||||
elif nix eval --raw ".#darwinConfigurations.$system.system" 2>/dev/null; then
|
|
||||||
echo "Found Darwin system $system, attempting to build packages..."
|
|
||||||
if nix build ".#darwinConfigurations.$system.system" --out-link "./result-darwin-$system" --no-link; then
|
|
||||||
echo "✅ Successfully built $system packages"
|
|
||||||
nix copy --to "https://cache.mjallen.dev?secret-key=/etc/nix/cache-priv-key.pem" ".#darwinConfigurations.$system.system"
|
|
||||||
success+=("$system (darwin)")
|
|
||||||
else
|
|
||||||
echo "❌ Failed to build $system packages"
|
|
||||||
failure+=("$system (darwin)")
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "⚠️ Skipping $system - could not determine system type"
|
|
||||||
failure+=("$system (unknown)")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Summary
|
|
||||||
echo ""
|
|
||||||
echo "===== Build Summary ====="
|
|
||||||
echo "✅ Successfully built: ''${success[*]:-none}"
|
|
||||||
echo "❌ Failed to build: ''${failure[*]:-none}"
|
|
||||||
|
|
||||||
# Return error code if any builds failed
|
|
||||||
if [ ''${#failure[@]} -gt 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
''
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
# You could also provide a separate script that only lists systems
|
|
||||||
apps.x86_64-linux.list-systems =
|
|
||||||
let
|
|
||||||
pkgs = nas-nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
type = "app";
|
|
||||||
program = toString (
|
|
||||||
pkgs.writeShellScript "list-systems" ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Get systems from flake.nix
|
|
||||||
systems=($(grep -o '"[^"]*"[[:space:]]*=' flake.nix | grep -v '_\|#\|"\.\|\*' | sed 's/"//g' | sed 's/=//g' | xargs))
|
|
||||||
|
|
||||||
echo "Found systems in flake.nix:"
|
|
||||||
for system in "''${systems[@]}"; do
|
|
||||||
# Try to determine if it's a NixOS or Darwin system
|
|
||||||
if nix eval --raw ".#nixosConfigurations.$system.pkgs.stdenv.hostPlatform.system" 2>/dev/null; then
|
|
||||||
system_type=$(nix eval --raw ".#nixosConfigurations.$system.pkgs.stdenv.hostPlatform.system" 2>/dev/null)
|
|
||||||
echo " - $system (NixOS, $system_type)"
|
|
||||||
elif nix eval --raw ".#darwinConfigurations.$system.system" 2>/dev/null; then
|
|
||||||
echo " - $system (Darwin)"
|
|
||||||
else
|
|
||||||
echo " - $system (unknown type)"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
''
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
# Expose the package set, including overlays, for convenience.
|
# Expose the package set, including overlays, for convenience.
|
||||||
darwinPackages = self.darwinConfigurations."MacBook-Pro".pkgs;
|
darwinPackages = self.darwinConfigurations."MacBook-Pro".pkgs;
|
||||||
|
|
||||||
|
|||||||
@@ -14,18 +14,6 @@
|
|||||||
./sops.nix
|
./sops.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
services = {
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
printing.enable = true;
|
|
||||||
|
|
||||||
xserver = {
|
|
||||||
enable = true;
|
|
||||||
desktopManager.gnome.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users = {
|
users.users = {
|
||||||
deck = {
|
deck = {
|
||||||
@@ -50,41 +38,6 @@
|
|||||||
root.shell = pkgs.zsh;
|
root.shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
|
||||||
zsh.enable = true;
|
|
||||||
nix-ld = {
|
|
||||||
enable = true;
|
|
||||||
libraries = with pkgs; [
|
|
||||||
bash
|
|
||||||
glib
|
|
||||||
gtk3
|
|
||||||
SDL2
|
|
||||||
libGL
|
|
||||||
openal
|
|
||||||
|
|
||||||
xorg.libX11
|
|
||||||
xorg.libICE
|
|
||||||
xorg.libSM
|
|
||||||
xorg.libXcursor
|
|
||||||
xorg.libXrandr
|
|
||||||
xorg.libXi
|
|
||||||
|
|
||||||
alsa-lib
|
|
||||||
libpulseaudio
|
|
||||||
|
|
||||||
zlib
|
|
||||||
libgdiplus
|
|
||||||
icu
|
|
||||||
|
|
||||||
fontconfig
|
|
||||||
freetype
|
|
||||||
expat
|
|
||||||
|
|
||||||
vulkan-loader
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
btrfs = {
|
btrfs = {
|
||||||
autoScrub.enable = lib.mkDefault true;
|
autoScrub.enable = lib.mkDefault true;
|
||||||
@@ -103,6 +56,7 @@
|
|||||||
# List packages installed in system profile. To search, run:
|
# List packages installed in system profile. To search, run:
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
environment = {
|
environment = {
|
||||||
|
xserver.displayManager.gdm.enable = lib.mkForce false;
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
fuse
|
fuse
|
||||||
jq
|
jq
|
||||||
@@ -118,18 +72,5 @@
|
|||||||
GDK_SCALE = "1";
|
GDK_SCALE = "1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
services.openssh.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,16 +8,6 @@ let
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../../share/home/defaults.nix
|
|
||||||
../../share/home/git.nix
|
|
||||||
../../share/home/gnome.nix
|
|
||||||
../../share/home/librewolf.nix
|
|
||||||
../../share/home/office.nix
|
|
||||||
../../share/home/shell.nix
|
|
||||||
../../share/home/vscode.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.username = "deck";
|
home.username = "deck";
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
|
|||||||
@@ -109,7 +109,6 @@ in
|
|||||||
./users.nix
|
./users.nix
|
||||||
../default.nix
|
../default.nix
|
||||||
../../share/amd
|
../../share/amd
|
||||||
# ../../modules/desktop-environments/cosmic/specialisation.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
chaotic.mesa-git.enable = true;
|
chaotic.mesa-git.enable = true;
|
||||||
@@ -138,28 +137,6 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Programs configuration
|
|
||||||
programs = {
|
|
||||||
nix-ld = {
|
|
||||||
enable = true;
|
|
||||||
libraries = with pkgs; [
|
|
||||||
bash
|
|
||||||
glib
|
|
||||||
libgcc
|
|
||||||
icu
|
|
||||||
zlib
|
|
||||||
fontconfig
|
|
||||||
xorg.libX11
|
|
||||||
xorg.libICE
|
|
||||||
xorg.libSM
|
|
||||||
xorg.libXcursor
|
|
||||||
xorg.libXrandr
|
|
||||||
xorg.libXi
|
|
||||||
];
|
|
||||||
};
|
|
||||||
coolercontrol.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Common Configuration
|
# Common Configuration
|
||||||
share = {
|
share = {
|
||||||
gaming.enable = true;
|
gaming.enable = true;
|
||||||
|
|||||||
@@ -8,16 +8,6 @@ let
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../../share/home/defaults.nix
|
|
||||||
../../share/home/git.nix
|
|
||||||
../../share/home/gnome.nix
|
|
||||||
../../share/home/librewolf.nix
|
|
||||||
../../share/home/office.nix
|
|
||||||
../../share/home/shell.nix
|
|
||||||
../../share/home/vscode.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.username = "matt";
|
home.username = "matt";
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
|
|||||||
@@ -7,14 +7,6 @@ let
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../../share/home/defaults.nix
|
|
||||||
../../share/home/git.nix
|
|
||||||
../../share/home/librewolf.nix
|
|
||||||
../../share/home/shell.nix
|
|
||||||
../../share/home/vscode.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.username = "admin";
|
home.username = "admin";
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
gnome.gnome-remote-desktop.enable = true;
|
gnome.gnome-remote-desktop.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
kdeconnect = {
|
kdeconnect = {
|
||||||
|
|||||||
@@ -33,20 +33,8 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Hardware configs
|
|
||||||
hardware = {
|
|
||||||
# Enable graphics
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
# extraPackages = [ pkgsVersion.mesa ];
|
|
||||||
# extraPackages32 = [ pkgsVersion.pkgsi686Linux.mesa ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Configure polkit
|
# Configure polkit
|
||||||
security.polkit = {
|
security.polkit = lib.mkIf cfg.corectrl.enablePolkit {
|
||||||
# enable = cfg.corectrl.enablePolkit;
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
polkit.addRule(function(action, subject) {
|
polkit.addRule(function(action, subject) {
|
||||||
if ((action.id == "org.corectrl.helper.init" ||
|
if ((action.id == "org.corectrl.helper.init" ||
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "none";
|
|
||||||
fsType = "tmpfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-label/ESP";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/nix" =
|
|
||||||
{ device = "/dev/disk/by-label/btrfs-root";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=nix" "compress=zstd" "noatime" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/etc" =
|
|
||||||
{ device = "/dev/disk/by-label/btrfs-root";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=etc" "compress=zstd" "noatime" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/var/log" =
|
|
||||||
{ device = "/dev/disk/by-label/btrfs-root";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=log" "compress=zstd" "noatime" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/root" =
|
|
||||||
{ device = "/dev/disk/by-label/btrfs-root";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=root" "compress=zstd" "noatime" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/home" =
|
|
||||||
{ device = "/dev/disk/by-label/btrfs-root";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=home" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
}
|
|
||||||
@@ -44,12 +44,6 @@ in
|
|||||||
# accessible via `nvidia-settings`.
|
# accessible via `nvidia-settings`.
|
||||||
nvidiaSettings = cfg.nvidiaSettings;
|
nvidiaSettings = cfg.nvidiaSettings;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable graphics
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Services configs
|
# Services configs
|
||||||
|
|||||||
Reference in New Issue
Block a user