more of the same

This commit is contained in:
mjallen18
2025-05-30 10:58:20 -05:00
parent 77272fb931
commit eece0b01f4
11 changed files with 73 additions and 305 deletions

View File

@@ -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
View File

@@ -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;

View File

@@ -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;
} }

View File

@@ -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 = {

View File

@@ -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;

View File

@@ -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 = {

View File

@@ -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 = {

View File

@@ -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 = {

View File

@@ -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" ||

View File

@@ -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 = [ ];
}

View File

@@ -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