so much organization

This commit is contained in:
mjallen18
2025-06-29 14:50:34 -05:00
parent ca155505be
commit 532c97cf00
58 changed files with 354 additions and 992 deletions

88
flake.lock generated
View File

@@ -260,25 +260,6 @@
"type": "github" "type": "github"
} }
}, },
"edit": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"rust-overlay": "rust-overlay_4"
},
"locked": {
"lastModified": 1749050246,
"narHash": "sha256-1C6r6XTZTKOjdrJNDNPQvUW6Kh3TEBFuFs18uQn+d/Q=",
"ref": "refs/heads/master",
"rev": "b47344a028809b471f6106780fef6e8cd690d1ab",
"revCount": 2,
"type": "git",
"url": "https://gitea.mjallen.dev/mjallen/ms-edit-nix"
},
"original": {
"type": "git",
"url": "https://gitea.mjallen.dev/mjallen/ms-edit-nix"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -788,7 +769,7 @@
"nas-nixpkgs-stable" "nas-nixpkgs-stable"
], ],
"nixpkgs-stable": "nixpkgs-stable_3", "nixpkgs-stable": "nixpkgs-stable_3",
"rust-overlay": "rust-overlay_5" "rust-overlay": "rust-overlay_4"
}, },
"locked": { "locked": {
"lastModified": 1750590485, "lastModified": 1750590485,
@@ -869,7 +850,7 @@
"nas-nixpkgs" "nas-nixpkgs"
], ],
"pre-commit-hooks-nix": "pre-commit-hooks-nix_2", "pre-commit-hooks-nix": "pre-commit-hooks-nix_2",
"rust-overlay": "rust-overlay_6" "rust-overlay": "rust-overlay_5"
}, },
"locked": { "locked": {
"lastModified": 1737639419, "lastModified": 1737639419,
@@ -889,7 +870,7 @@
"nas-nix-vscode-extensions": { "nas-nix-vscode-extensions": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1749002682, "lastModified": 1749002682,
@@ -908,7 +889,7 @@
"nas-nixai": { "nas-nixai": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1749000216, "lastModified": 1749000216,
@@ -1110,7 +1091,7 @@
"inputs": { "inputs": {
"argononed": "argononed", "argononed": "argononed",
"nixos-images": "nixos-images", "nixos-images": "nixos-images",
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1749156319, "lastModified": 1749156319,
@@ -1286,21 +1267,6 @@
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1749048037,
"narHash": "sha256-bcugmD6yaFBzlmq7XmYJmQ/IpsJkIL/HBo7moDkTGQc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7569eca88e82f75c4ddb1ed2def9b2975844179a",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1744868846, "lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@@ -1316,7 +1282,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1748693115, "lastModified": 1748693115,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
@@ -1332,7 +1298,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1748882666, "lastModified": 1748882666,
"narHash": "sha256-z2uanxifOXGEqdiprquIGZu0XaRYih3FHXDQwLc1xis=", "narHash": "sha256-z2uanxifOXGEqdiprquIGZu0XaRYih3FHXDQwLc1xis=",
@@ -1348,7 +1314,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1750506804, "lastModified": 1750506804,
"narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=", "narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=",
@@ -1479,7 +1445,7 @@
"pi5-nixpkgs" "pi5-nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable_6", "nixpkgs-stable": "nixpkgs-stable_6",
"rust-overlay": "rust-overlay_7" "rust-overlay": "rust-overlay_6"
}, },
"locked": { "locked": {
"lastModified": 1749770917, "lastModified": 1749770917,
@@ -1745,7 +1711,6 @@
"desktop-nixpkgs": "desktop-nixpkgs", "desktop-nixpkgs": "desktop-nixpkgs",
"desktop-sops-nix": "desktop-sops-nix", "desktop-sops-nix": "desktop-sops-nix",
"desktop-steam-rom-manager": "desktop-steam-rom-manager", "desktop-steam-rom-manager": "desktop-steam-rom-manager",
"edit": "edit",
"nas-authentik-nix": "nas-authentik-nix", "nas-authentik-nix": "nas-authentik-nix",
"nas-cosmic": "nas-cosmic", "nas-cosmic": "nas-cosmic",
"nas-crowdsec": "nas-crowdsec", "nas-crowdsec": "nas-crowdsec",
@@ -1851,27 +1816,6 @@
} }
}, },
"rust-overlay_4": { "rust-overlay_4": {
"inputs": {
"nixpkgs": [
"edit",
"nixpkgs"
]
},
"locked": {
"lastModified": 1749004659,
"narHash": "sha256-zaZrcC5UwHPGkgfnhTPx5sZfSSnUJdvYHhgex10RadQ=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "c52e346aedfa745564599558a096e88f9a5557f9",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_5": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nas-cosmic", "nas-cosmic",
@@ -1892,7 +1836,7 @@
"type": "github" "type": "github"
} }
}, },
"rust-overlay_6": { "rust-overlay_5": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nas-lanzaboote", "nas-lanzaboote",
@@ -1913,7 +1857,7 @@
"type": "github" "type": "github"
} }
}, },
"rust-overlay_7": { "rust-overlay_6": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"pi5-cosmic", "pi5-cosmic",
@@ -1934,7 +1878,7 @@
"type": "github" "type": "github"
} }
}, },
"rust-overlay_8": { "rust-overlay_7": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"steamdeck-chaotic", "steamdeck-chaotic",
@@ -1955,7 +1899,7 @@
"type": "github" "type": "github"
} }
}, },
"rust-overlay_9": { "rust-overlay_8": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"steamdeck-lanzaboote", "steamdeck-lanzaboote",
@@ -1981,8 +1925,8 @@
"flake-schemas": "flake-schemas_2", "flake-schemas": "flake-schemas_2",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"jovian": "jovian_2", "jovian": "jovian_2",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_5",
"rust-overlay": "rust-overlay_8" "rust-overlay": "rust-overlay_7"
}, },
"locked": { "locked": {
"lastModified": 1750764101, "lastModified": 1750764101,
@@ -2085,7 +2029,7 @@
"steamdeck-nixpkgs" "steamdeck-nixpkgs"
], ],
"pre-commit-hooks-nix": "pre-commit-hooks-nix_3", "pre-commit-hooks-nix": "pre-commit-hooks-nix_3",
"rust-overlay": "rust-overlay_9" "rust-overlay": "rust-overlay_8"
}, },
"locked": { "locked": {
"lastModified": 1737639419, "lastModified": 1737639419,

View File

@@ -283,8 +283,6 @@
# Common # # Common #
##################################################### #####################################################
edit.url = "git+https://gitea.mjallen.dev/mjallen/ms-edit-nix";
nixpkgs-unstable = { nixpkgs-unstable = {
url = "github:NixOS/nixpkgs/nixos-unstable"; url = "github:NixOS/nixpkgs/nixos-unstable";
}; };
@@ -358,7 +356,6 @@
nix-darwin, nix-darwin,
# Common # Common
edit,
nixpkgs-unstable, nixpkgs-unstable,
nixpkgs-stable, nixpkgs-stable,
}@inputs: }@inputs:
@@ -376,10 +373,16 @@
inherit inputs outputs; inherit inputs outputs;
}; };
modules = [ modules = [
./base/base-nogui ./hosts/base/base-nogui
./base/base-gui ./hosts/base/base-gui
./hosts/desktop/configuration.nix ./hosts/desktop/configuration.nix
./modules/desktop-environments/gnome ./modules/desktop-environments/gnome
./modules/desktop-environments/cosmic/specialisation.nix
./modules/desktop-environments/hyprland/specialisation.nix
./modules/amd
./modules/gaming
# Lanzaboote # Lanzaboote
desktop-lanzaboote.nixosModules.lanzaboote desktop-lanzaboote.nixosModules.lanzaboote
@@ -389,7 +392,7 @@
# Impermanence # Impermanence
desktop-impermanence.nixosModules.impermanence desktop-impermanence.nixosModules.impermanence
./share/impermanence ./modules/impermanence
desktop-sops-nix.nixosModules.sops desktop-sops-nix.nixosModules.sops
@@ -403,13 +406,13 @@
{ {
imports = [ imports = [
./hosts/desktop/home.nix ./hosts/desktop/home.nix
./share/home/defaults.nix ./modules/home/defaults.nix
./share/home/git.nix ./modules/home/git.nix
./share/home/gnome.nix ./modules/home/gnome.nix
./share/home/librewolf.nix ./modules/home/librewolf.nix
./share/home/office.nix ./modules/home/office.nix
./share/home/shell.nix ./modules/home/shell.nix
./share/home/vscode.nix ./modules/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
]; ];
@@ -418,7 +421,7 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./share/root-user ./modules/root-user
desktop-sops-nix.homeManagerModules.sops desktop-sops-nix.homeManagerModules.sops
]; ];
}; };
@@ -442,10 +445,11 @@
inherit inputs outputs; inherit inputs outputs;
}; };
modules = [ modules = [
./base/base-nogui ./hosts/base/base-nogui
./base/base-gui ./hosts/base/base-gui
./hosts/nas/configuration.nix ./hosts/nas/configuration.nix
./modules/desktop-environments/cosmic ./modules/desktop-environments/cosmic
./modules/nvidia
nas-lanzaboote.nixosModules.lanzaboote nas-lanzaboote.nixosModules.lanzaboote
@@ -465,11 +469,11 @@
{ {
imports = [ imports = [
./hosts/nas/home.nix ./hosts/nas/home.nix
./share/home/defaults.nix ./modules/home/defaults.nix
./share/home/git.nix ./modules/home/git.nix
./share/home/librewolf.nix ./modules/home/librewolf.nix
./share/home/shell.nix ./modules/home/shell.nix
./share/home/vscode.nix ./modules/home/vscode.nix
nas-sops-nix.homeManagerModules.sops nas-sops-nix.homeManagerModules.sops
# nas-nixai.homeManagerModules.x86_64-linux.default # nas-nixai.homeManagerModules.x86_64-linux.default
]; ];
@@ -478,7 +482,7 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./share/root-user ./modules/root-user
nas-sops-nix.homeManagerModules.sops nas-sops-nix.homeManagerModules.sops
]; ];
}; };
@@ -518,8 +522,8 @@
}; };
system = "aarch64-linux"; system = "aarch64-linux";
modules = [ modules = [
./base/base-nogui ./hosts/base/base-nogui
./base/base-gui ./hosts/base/base-gui
pi5-disko.nixosModules.disko pi5-disko.nixosModules.disko
./hosts/pi5/disko.nix ./hosts/pi5/disko.nix
pi5-cosmic.nixosModules.default pi5-cosmic.nixosModules.default
@@ -553,7 +557,7 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./share/root-user ./modules/root-user
pi5-sops-nix.homeManagerModules.sops pi5-sops-nix.homeManagerModules.sops
]; ];
}; };
@@ -569,9 +573,9 @@
}; };
system = "aarch64-linux"; system = "aarch64-linux";
modules = [ modules = [
./base/base-nogui ./hosts/base/base-nogui
pi4-disko.nixosModules.disko pi4-disko.nixosModules.disko
./share/disko/pi-uefi-disko.nix ./modules/disko/pi-uefi-disko.nix
pi4-nixos-hardware.nixosModules.raspberry-pi-4 pi4-nixos-hardware.nixosModules.raspberry-pi-4
{ {
# Hardware specific configuration, see section below for a more complete # Hardware specific configuration, see section below for a more complete
@@ -603,7 +607,7 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./share/root-user ./modules/root-user
pi4-sops-nix.homeManagerModules.sops pi4-sops-nix.homeManagerModules.sops
]; ];
}; };
@@ -617,18 +621,18 @@
inherit inputs outputs; inherit inputs outputs;
}; };
modules = [ modules = [
./base/base-nogui ./hosts/base/base-nogui
./base/base-gui ./hosts/base/base-gui
./hosts/deck/configuration.nix ./hosts/deck/configuration.nix
./modules/desktop-environments/gnome ./modules/desktop-environments/gnome
steamdeck-lanzaboote.nixosModules.lanzaboote steamdeck-lanzaboote.nixosModules.lanzaboote
steamdeck-disko.nixosModules.disko steamdeck-disko.nixosModules.disko
./share/disko/disko.nix ./modules/disko/disko.nix
steamdeck-impermanence.nixosModules.impermanence steamdeck-impermanence.nixosModules.impermanence
./share/impermanence ./modules/impermanence
steamdeck-home-manager.nixosModules.home-manager steamdeck-home-manager.nixosModules.home-manager
{ {
@@ -639,13 +643,13 @@
{ {
imports = [ imports = [
./hosts/deck/home.nix ./hosts/deck/home.nix
./share/home/defaults.nix ./modules/home/defaults.nix
./share/home/git.nix ./modules/home/git.nix
./share/home/gnome.nix ./modules/home/gnome.nix
./share/home/librewolf.nix ./modules/home/librewolf.nix
./share/home/office.nix ./modules/home/office.nix
./share/home/shell.nix ./modules/home/shell.nix
./share/home/vscode.nix ./modules/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
]; ];
@@ -654,7 +658,7 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./share/root-user ./modules/root-user
steamdeck-sops-nix.homeManagerModules.sops steamdeck-sops-nix.homeManagerModules.sops
]; ];
}; };

View File

@@ -0,0 +1,8 @@
{ ... }:
{
imports = [
./hardware.nix
./programs.nix
./services.nix
];
}

View File

@@ -0,0 +1,11 @@
{ lib, ... }:
{
# Hardware configs
hardware = {
# Enable graphics
graphics = {
enable = lib.mkDefault true;
enable32Bit = lib.mkDefault true;
};
};
}

View File

@@ -1,10 +1,8 @@
{ pkgs, ... }: { lib, pkgs, ... }:
{ {
imports = [ ./services.nix ];
programs = { programs = {
nix-ld = { nix-ld = {
enable = true; enable = lib.mkDefault true;
libraries = with pkgs; [ libraries = with pkgs; [
alsa-lib alsa-lib
bash bash
@@ -29,15 +27,5 @@
zlib zlib
]; ];
}; };
seahorse.enable = true; seahorse.enable = lib.mkDefault true;
}; };}
# Hardware configs
hardware = {
# Enable graphics
graphics = {
enable = true;
enable32Bit = true;
};
};
}

View File

@@ -6,43 +6,19 @@ in
imports = [ imports = [
./boot.nix ./boot.nix
./environment.nix ./environment.nix
./hardware.nix
./nix-settings.nix ./nix-settings.nix
./programs.nix
./security.nix ./security.nix
./services.nix ./services.nix
../../share
]; ];
# Hardware configs
hardware = {
# Bluetooth
bluetooth.enable = lib.mkDefault true;
i2c.enable = true;
# Enable all firmware
enableAllFirmware = lib.mkForce true;
};
# Time config # Time config
time = { time = {
# Set your time zone. # Set your time zone.
timeZone = timezone; timeZone = timezone;
}; };
programs = {
zsh.enable = lib.mkDefault true;
gnupg.agent = {
enable = lib.mkDefault true;
enableSSHSupport = lib.mkDefault true;
};
command-not-found.enable = lib.mkForce false;
nix-index = {
enable = true;
enableBashIntegration = false;
enableZshIntegration = true;
};
};
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
font-awesome font-awesome
noto-fonts noto-fonts

View File

@@ -0,0 +1,12 @@
{ lib, ... }:
{
hardware = {
# Bluetooth
bluetooth.enable = lib.mkDefault true;
i2c.enable = lib.mkDefault true;
# Enable all firmware
enableAllFirmware = lib.mkForce true;
};
}

View File

@@ -0,0 +1,15 @@
{ lib, ... }:
{
programs = {
zsh.enable = lib.mkDefault true;
gnupg.agent = {
enable = lib.mkDefault true;
enableSSHSupport = lib.mkDefault true;
};
nix-index = {
enable = lib.mkDefault true;
enableBashIntegration = lib.mkDefault false;
enableZshIntegration = lib.mkDefault true;
};
};
}

View File

@@ -7,7 +7,6 @@
{ {
imports = imports =
[ [
../default.nix
./boot.nix ./boot.nix
./jovian.nix ./jovian.nix
./networking.nix ./networking.nix

View File

@@ -1,4 +1,4 @@
{ lib, pkgs, ... }: { pkgs, ... }:
let let
shellAliases = { shellAliases = {
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18"; update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18";

View File

@@ -1,233 +0,0 @@
{ lib, pkgs, outputs, ... }:
let
timezone = "America/Chicago";
update-script = pkgs.writeScriptBin "update" ''
#!/usr/bin/env bash
set -euo pipefail
# ===== Config =====
REPO_DIR="/etc/nixos"
HOST=$(hostname)
FLAKE="$REPO_DIR#$HOST"
PROFILE_DIR="/nix/var/nix/profiles/system-profiles"
# ===== Parse arguments =====
MODE=''${1:-"switch"}
VALID_MODES=("boot" "switch" "test" "build")
if [[ ! " ''${VALID_MODES[*]} " =~ " $MODE " ]]; then
echo " Invalid mode: '$MODE'. Use one of: $VALID_MODES[*]"
exit 1
fi
# ===== Git status check =====
cd "$REPO_DIR"
DIRTY_TAG=
if [[ -n "$(git status --porcelain)" ]]; then
echo " Git repo is dirty rebuilding with dirty tag."
DIRTY_TAG="dirty-"
fi
SHORT_HASH=$(git rev-parse --short HEAD)
COMMIT_MSG=$(git log -1 --pretty=%s | tr ' ' '_' | tr -dc '[:alnum:]_-')
TIMESTAMP=$(date -u +%Y%m%dT%H%M%SZ)
PROFILE_NAME=$TIMESTAMP-$DIRTY_TAG$SHORT_HASH-$COMMIT_MSG
echo " Building profile: $PROFILE_NAME"
# Use --profile-name only when MODE is 'switch' or 'boot'
if [[ "$MODE" == "switch" || "$MODE" == "boot" ]]; then
sudo nixos-rebuild "$MODE" --flake "$FLAKE" --profile-name "$PROFILE_NAME"
else
sudo nixos-rebuild "$MODE" --flake "$FLAKE"
fi
'';
in
{
imports = [
../share
];
# Enable nix flakes and nix-command tools
nix = {
settings = {
substituters = [
"https://nix-community.cachix.org"
"https://cache.nixos.org/"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
warn-dirty = lib.mkForce false;
experimental-features = lib.mkForce [
"nix-command"
"flakes"
];
trusted-users = [ "@wheel" ];
};
# Garbage collect automatically every week
gc.automatic = lib.mkDefault true;
gc.options = lib.mkDefault "--delete-older-than 30d";
optimise.automatic = lib.mkDefault true;
};
# Nixpkgs configuration
nixpkgs = {
# add unstable and stable overlays
overlays = [
outputs.overlays.nixpkgs-unstable
outputs.overlays.nixpkgs-stable
];
config = {
allowUnfree = lib.mkForce true;
permittedInsecurePackages = [
# ...
];
};
};
# Hardware configs
hardware = {
# Bluetooth
bluetooth.enable = lib.mkDefault true;
# Enable all firmware
enableAllFirmware = lib.mkForce true;
};
# Services configs
services = {
openssh.enable = lib.mkDefault true;
# Enable firmware updates
fwupd.enable = lib.mkForce true;
fstrim.enable = lib.mkDefault true;
pcscd.enable = lib.mkDefault true;
# Enable CUPS to print documents.
printing.enable = lib.mkDefault true;
# configure pipewire
pipewire = {
enable = lib.mkDefault true;
alsa.enable = lib.mkDefault true;
alsa.support32Bit = lib.mkDefault true;
pulse.enable = lib.mkDefault true;
};
# Enable Avahi for .local hostname resolution
avahi = {
enable = lib.mkDefault true;
nssmdns4 = lib.mkDefault true; # For modern systems, use nssmdns4 instead of nssmdns
publish = {
enable = lib.mkDefault true;
addresses = lib.mkDefault true;
domain = lib.mkDefault true;
workstation = lib.mkDefault true;
};
};
};
# Time config
time = {
# Set your time zone.
timeZone = timezone;
};
boot = {
# Enable AppImage
binfmt.registrations.appimage = {
wrapInterpreterInShell = lib.mkDefault false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = "\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\xff\\xff\\xff";
magicOrExtension = "\\x7fELF....AI\\x02";
};
};
programs = {
zsh.enable = lib.mkDefault true;
gnupg.agent = {
enable = lib.mkDefault true;
enableSSHSupport = lib.mkDefault true;
};
command-not-found.enable = lib.mkForce false;
nix-index = {
enable = true;
enableBashIntegration = false;
enableZshIntegration = true;
};
};
environment.systemPackages = with pkgs; [
uutils-coreutils
uutils-diffutils
uutils-findutils
coreutils
update-script
nixd
pinentry-curses
];
# users.mutableUsers = lib.mkDefault false;
# Security config
security = {
wrappers."mount.nfs" = {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.nfs-utils.out}/bin/mount.nfs";
};
rtkit.enable = lib.mkDefault true;
# configure sudo
sudo.enable = lib.mkDefault false;
sudo-rs = {
enable = lib.mkDefault true;
extraRules = [
{
commands = [
{
command = "${pkgs.systemd}/bin/systemctl suspend";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/reboot";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/poweroff";
options = [ "NOPASSWD" ];
}
];
groups = [ "wheel" ];
}
];
};
};
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
}

View File

@@ -33,7 +33,6 @@ let
kdePackages.ksvg kdePackages.ksvg
memtest86-efi memtest86-efi
memtest86plus memtest86plus
# occt
os-prober os-prober
nil nil
qemu_full qemu_full
@@ -50,57 +49,6 @@ let
unzip unzip
winetricks winetricks
]; ];
lactConfig = ''
daemon:
log_level: info
admin_groups:
- wheel
- sudo
disable_clocks_cleanup: false
apply_settings_timer: 5
gpus:
1002:73BF-1002:0E3A-0000:03:00.0:
fan_control_enabled: true
fan_control_settings:
mode: curve
static_speed: 1.0
temperature_key: edge
interval_ms: 500
curve:
30: 0.0
40: 0.2
50: 0.35
60: 0.5
70: 0.75
80: 1.0
spindown_delay_ms: 0
change_threshold: 0
pmfw_options: {}
power_cap: 293.0
performance_level: auto
voltage_offset: 0
power_states: {}
'';
# occt = pkgs.stdenv.mkDerivation {
# pname = "occt";
# version = "14.0.10";
# src = pkgs.fetchurl {
# url = "https://www.ocbase.com/download-bin/edition:Personal/os:Linux";
# sha256 = "sha256-AomQNi7ODGaznFaHqxlFUcrV36QeLNC65MoCV2y6HZ8=";
# };
# dontUnpack = true;
# buildPhase = ''
# mkdir -p $out/bin
# cp $src $out/bin/OCCT
# chmod +x $out/bin/OCCT
# '';
# installPhase = "true";
# };
in in
{ {
imports = [ imports = [
@@ -112,10 +60,6 @@ in
./services.nix ./services.nix
./sops.nix ./sops.nix
./users.nix ./users.nix
../default.nix
../../modules/desktop-environments/cosmic/specialisation.nix
../../modules/desktop-environments/hyprland/specialisation.nix
../../share/amd
]; ];
nix = { nix = {
@@ -135,8 +79,6 @@ in
environment = { environment = {
systemPackages = systemPackages; systemPackages = systemPackages;
# etc."lact/config.yaml".text = lactConfig;
variables = environmentVariables; variables = environmentVariables;
}; };

View File

@@ -1,206 +0,0 @@
{ config, lib, pkgs, ... }:
let
pkgsVersion = pkgs; #.unstable;
kernel = pkgs.linuxPackages_cachyos;
environmentVariables = {
STEAM_FORCE_DESKTOPUI_SCALING = "1.0";
GDK_SCALE = "1";
EDITOR = "${pkgs.vscodium}/bin/codium --wait";
VISUAL = "${pkgs.vscodium}/bin/codium --wait";
};
systemPackages = with pkgsVersion; [
aha
aspell
aspellDicts.en
aspellDicts.en-computers
aspellDicts.en-science
borgbackup
# brscan5
efibootmgr
kdePackages.ksvg
memtest86-efi
memtest86plus
# occt
os-prober
nil
qemu_full
rclone
rclone-browser
restic
restic-browser
restic-integrity
sane-frontends
sbctl
tpm2-tools
tpm2-tss
udisks2
unzip
winetricks
edk2-uefi-shell
];
lactConfig = ''
daemon:
log_level: info
admin_groups:
- wheel
- sudo
disable_clocks_cleanup: false
apply_settings_timer: 5
gpus:
1002:73BF-1002:0E3A-0000:03:00.0:
fan_control_enabled: true
fan_control_settings:
mode: curve
static_speed: 1.0
temperature_key: edge
interval_ms: 500
curve:
30: 0.0
40: 0.2
50: 0.35
60: 0.5
70: 0.75
80: 1.0
spindown_delay_ms: 0
change_threshold: 0
pmfw_options: {}
power_cap: 293.0
performance_level: auto
voltage_offset: 0
power_states: {}
'';
in
{
imports = [
./filesystems.nix
./networking.nix
./nix.nix
./services.nix
./sops.nix
./users.nix
../default.nix
../../share/amd
];
nix = {
settings = {
substituters = [
"https://cache.mjallen.dev"
];
trusted-public-keys = [
"cache.mjallen.dev-1:IzFmKCd8/gggI6lcCXsW65qQwiCLGFFN9t9s2iw7Lvc="
];
};
};
chaotic.mesa-git.enable = true;
# Environment configuration
environment = {
systemPackages = systemPackages;
etc."lact/config.yaml".text = lactConfig;
variables = environmentVariables;
};
# Hardware configuration
hardware = {
# Enable the QMK firmware flashing tool.
keyboard = {
qmk.enable = true;
};
# Enable Sane and Brother printer support.
sane = {
enable = true;
brscan5.enable = false;
# extraBackends = [ pkgsVersion.brscan5 ];
};
};
# Common Configuration
share = {
gaming.enable = true;
hardware.amd = {
enable = lib.mkDefault true;
lact.enable = lib.mkDefault true;
};
};
programs.coolercontrol.enable = true;
# Time configuration
time = {
hardwareClockInLocalTime = lib.mkDefault false;
};
# Virtualisation configuration
virtualisation = {
libvirtd.enable = lib.mkDefault true;
waydroid.enable = lib.mkDefault true;
};
# Network boot specifics
boot = {
initrd = {
network.enable = true;
supportedFilesystems = [ "tmpfs" "squashfs" ];
# extraFiles."/.ro-store".source = "${config.system.build.toplevel}";
systemd.enable = true;
availableKernelModules = [
"xhci_pci"
"nvme"
"ahci"
"usbhid"
"uas"
"usb_storage"
"sd_mod"
];
};
loader = {
grub.enable = lib.mkForce false;
systemd-boot.enable = lib.mkForce false; # already replaced by lanzaboote; included explicitly for clarity
generic-extlinux-compatible.enable = lib.mkForce true; # required for PXE NetBoot
timeout = 0;
efi.canTouchEfiVariables = lib.mkForce false;
};
kernelModules = [
"nct6775"
"kvm-amd"
];
kernelParams = [
"ip=dhcp"
"boot.shell_on_fail"
"quiet"
"splash"
# needed cause ssd powersaving is broken af I guess
"nvme_core.default_ps_max_latency_us=0"
"pcie_aspm=off"
];
plymouth = {
enable = true;
};
};
zramSwap.enable = true;
networking.hostName = lib.mkForce "matt-netboot";
# Stateless filesystem (tmpfs)
fileSystems = lib.mkForce {
"/" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "defaults" "size=25%" ];
};
# "/nix" = {
# device = "/.ro-store";
# fsType = "none";
# options = [ "bind" "ro" ];
# };
};
}

View File

@@ -7,12 +7,9 @@ in
settings = { settings = {
substituters = [ substituters = [
"https://cache.mjallen.dev/nas-cache" "https://cache.mjallen.dev/nas-cache"
"https://nix-community.cachix.org"
"https://cache.nixos.org/"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"nas-cache:5ibTWOXJYlKBaoNtdDEPmvdLPtfnbwf9jvdnfwi5dUs=" "nas-cache:5ibTWOXJYlKBaoNtdDEPmvdLPtfnbwf9jvdnfwi5dUs="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
]; ];
warn-dirty = lib.mkForce false; warn-dirty = lib.mkForce false;
experimental-features = lib.mkForce [ experimental-features = lib.mkForce [

View File

@@ -72,7 +72,6 @@
llama-cpp llama-cpp
ninja ninja
inputs.nas-nixai.packages.x86_64-linux.nixai inputs.nas-nixai.packages.x86_64-linux.nixai
inputs.edit.packages.${pkgs.system}.edit
networkmanagerapplet networkmanagerapplet
nmon nmon
nut nut

View File

@@ -11,11 +11,9 @@ in
{ {
imports = [ imports = [
./adguard.nix ./adguard.nix
# ./argononed.nix
./boot.nix ./boot.nix
./impermanence.nix ./impermanence.nix
./networking.nix ./networking.nix
# ./pi4-hw.nix
./sops.nix ./sops.nix
]; ];
@@ -86,10 +84,6 @@ in
raspberrypiWirelessFirmware raspberrypiWirelessFirmware
raspberrypi-armstubs raspberrypi-armstubs
]; ];
# etc = {
# "ssh/ssh_host_ed25519_key".source = config.sops.secrets."pi4/sys-priv-key".path;
# "ssh/ssh_host_ed25519_key.pub".source = config.sops.secrets."pi4/sys-public-key".path;
# };
}; };
users = { users = {

View File

@@ -11,7 +11,6 @@ in
{ {
imports = [ imports = [
./boot.nix ./boot.nix
# ./hardware-configuration.nix
./impermanence.nix ./impermanence.nix
./networking.nix ./networking.nix
./services.nix ./services.nix

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
programs.btop = { programs.btop = {
@@ -73,48 +73,48 @@ in
}; };
themes = { themes = {
nord = '' nord = ''
theme[main_bg]="${theme.nord.polarNight.nord0}" theme[main_bg]="${settings.nord.polarNight.nord0}"
theme[main_fg]="${theme.nord.snowStorm.nord6}" theme[main_fg]="${settings.nord.snowStorm.nord6}"
theme[title]="${theme.nord.snowStorm.nord6}" theme[title]="${settings.nord.snowStorm.nord6}"
theme[hi_fg]="${theme.nord.frost.nord7}" theme[hi_fg]="${settings.nord.frost.nord7}"
theme[selected_bg]="${theme.nord.polarNight.nord1}" theme[selected_bg]="${settings.nord.polarNight.nord1}"
theme[selected_fg]="${theme.nord.frost.nord7}" theme[selected_fg]="${settings.nord.frost.nord7}"
theme[inactive_fg]="${theme.nord.polarNight.nord2}" theme[inactive_fg]="${settings.nord.polarNight.nord2}"
theme[graph_text]="${theme.nord.snowStorm.nord6}" theme[graph_text]="${settings.nord.snowStorm.nord6}"
theme[meter_bg]="${theme.nord.polarNight.nord1}" theme[meter_bg]="${settings.nord.polarNight.nord1}"
theme[proc_misc]="${theme.nord.snowStorm.nord6}" theme[proc_misc]="${settings.nord.snowStorm.nord6}"
theme[cpu_box]="${theme.nord.aurora.nord15}" theme[cpu_box]="${settings.nord.aurora.nord15}"
theme[mem_box]="${theme.nord.aurora.nord14}" theme[mem_box]="${settings.nord.aurora.nord14}"
theme[net_box]="${theme.nord.aurora.nord12}" theme[net_box]="${settings.nord.aurora.nord12}"
theme[proc_box]="${theme.nord.aurora.nord11}" theme[proc_box]="${settings.nord.aurora.nord11}"
theme[div_line]="${theme.nord.polarNight.nord1}" theme[div_line]="${settings.nord.polarNight.nord1}"
theme[temp_start]="${theme.nord.aurora.nord14}" theme[temp_start]="${settings.nord.aurora.nord14}"
theme[temp_mid]="${theme.nord.aurora.nord13}" theme[temp_mid]="${settings.nord.aurora.nord13}"
theme[temp_end]="${theme.nord.aurora.nord11}" theme[temp_end]="${settings.nord.aurora.nord11}"
theme[cpu_start]="${theme.nord.aurora.nord15}" theme[cpu_start]="${settings.nord.aurora.nord15}"
theme[cpu_mid]="${theme.nord.aurora.nord12}" theme[cpu_mid]="${settings.nord.aurora.nord12}"
theme[cpu_end]="${theme.nord.aurora.nord11}" theme[cpu_end]="${settings.nord.aurora.nord11}"
theme[free_start]="${theme.nord.aurora.nord14}" theme[free_start]="${settings.nord.aurora.nord14}"
theme[free_mid]="${theme.nord.aurora.nord13}" theme[free_mid]="${settings.nord.aurora.nord13}"
theme[free_end]="${theme.nord.aurora.nord12}" theme[free_end]="${settings.nord.aurora.nord12}"
theme[cached_start]="${theme.nord.aurora.nord14}" theme[cached_start]="${settings.nord.aurora.nord14}"
theme[cached_mid]="${theme.nord.aurora.nord13}" theme[cached_mid]="${settings.nord.aurora.nord13}"
theme[cached_end]="${theme.nord.aurora.nord12}" theme[cached_end]="${settings.nord.aurora.nord12}"
theme[available_start]="${theme.nord.snowStorm.nord6}" theme[available_start]="${settings.nord.snowStorm.nord6}"
theme[available_mid]="${theme.nord.aurora.nord11}" theme[available_mid]="${settings.nord.aurora.nord11}"
theme[available_end]="${theme.nord.aurora.nord11}" theme[available_end]="${settings.nord.aurora.nord11}"
theme[used_start]="${theme.nord.aurora.nord14}" theme[used_start]="${settings.nord.aurora.nord14}"
theme[used_mid]="${theme.nord.aurora.nord13}" theme[used_mid]="${settings.nord.aurora.nord13}"
theme[used_end]="${theme.nord.aurora.nord11}" theme[used_end]="${settings.nord.aurora.nord11}"
theme[download_start]="${theme.nord.frost.nord8}" theme[download_start]="${settings.nord.frost.nord8}"
theme[download_mid]="${theme.nord.frost.nord8}" theme[download_mid]="${settings.nord.frost.nord8}"
theme[download_end]="${theme.nord.aurora.nord12}" theme[download_end]="${settings.nord.aurora.nord12}"
theme[upload_start]="${theme.nord.frost.nord7}" theme[upload_start]="${settings.nord.frost.nord7}"
theme[upload_mid]="${theme.nord.frost.nord7}" theme[upload_mid]="${settings.nord.frost.nord7}"
theme[upload_end]="${theme.nord.aurora.nord12}" theme[upload_end]="${settings.nord.aurora.nord12}"
theme[process_start]="${theme.nord.aurora.nord15}" theme[process_start]="${settings.nord.aurora.nord15}"
theme[process_mid]="${theme.nord.aurora.nord12}" theme[process_mid]="${settings.nord.aurora.nord12}"
theme[process_end]="${theme.nord.aurora.nord11}" theme[process_end]="${settings.nord.aurora.nord11}"
''; '';
}; };
}; };

View File

@@ -1,7 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${theme.iconTheme}"; drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${settings.iconTheme}";
in in
{ {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
@@ -33,7 +33,7 @@ in
# https://wiki.hyprland.org/Configuring/Binds/#mouse-buttons # https://wiki.hyprland.org/Configuring/Binds/#mouse-buttons
bind = [ bind = [
"$mod, Return, exec, ${theme.defaultApps.terminal.pname}" "$mod, Return, exec, ${settings.defaultApps.terminal.pname}"
"$mod, SPACE, exec, wofi --show drun" "$mod, SPACE, exec, wofi --show drun"
"$mod, Q, killactive, " "$mod, Q, killactive, "
"$mod, M, exec, wlogout --protocol layer-shell" "$mod, M, exec, wlogout --protocol layer-shell"
@@ -47,8 +47,8 @@ in
"$mod,F,exec,hyprctl dispatch fullscreen active" "$mod,F,exec,hyprctl dispatch fullscreen active"
"$mod SHIFT, E, exec, smile" "$mod SHIFT, E, exec, smile"
"$mod, mouse:276, movecurrentworkspacetomonitor, ${theme.displayLeft.input}" "$mod, mouse:276, movecurrentworkspacetomonitor, ${settings.displayLeft.input}"
"$mod, mouse:275, movecurrentworkspacetomonitor, ${theme.displayRight.input}" "$mod, mouse:275, movecurrentworkspacetomonitor, ${settings.displayRight.input}"
# alt-tab between workspaces on active monitor # alt-tab between workspaces on active monitor
"$mod, Tab, workspace, m+1" "$mod, Tab, workspace, m+1"
@@ -91,7 +91,7 @@ in
"$mod SHIFT, k, movewindow, u" "$mod SHIFT, k, movewindow, u"
"$mod SHIFT, j, movewindow, d" "$mod SHIFT, j, movewindow, d"
"$mod, b, exec, ${theme.defaultApps.browser.pname}" "$mod, b, exec, ${settings.defaultApps.browser.pname}"
]; ];
bindm = [ bindm = [
@@ -115,8 +115,8 @@ in
]; ];
monitor = [ monitor = [
"${theme.displayLeft.input},${theme.displayLeft.resolution}@${theme.displayLeft.refreshRate},0x0,1" "${settings.displayLeft.input},${settings.displayLeft.resolution}@${settings.displayLeft.refreshRate},0x0,1"
"${theme.displayRight.input},${theme.displayRight.resolution}@${theme.displayRight.refreshRate},3840x0,1" "${settings.displayRight.input},${settings.displayRight.resolution}@${settings.displayRight.refreshRate},3840x0,1"
]; ];
misc = { misc = {
@@ -180,9 +180,9 @@ in
}; };
workspace = [ workspace = [
"name:firefox, monitor:${theme.displayRight.input}, default:false, special, class:(.*firefox.*)" "name:firefox, monitor:${settings.displayRight.input}, default:false, special, class:(.*firefox.*)"
"name:discord, monitor:${theme.displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)" "name:discord, monitor:${settings.displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)"
"name:steam, monitor:${theme.displayLeft.input}, default:false, special, class:(.*[Ss]team.*)" "name:steam, monitor:${settings.displayLeft.input}, default:false, special, class:(.*[Ss]team.*)"
]; ];
windowrule = [ windowrule = [
@@ -194,6 +194,7 @@ in
"float, title:(.*[Ee]rror.*)" "float, title:(.*[Ee]rror.*)"
"float, title:(.*[Ss]plash.*)" "float, title:(.*[Ss]plash.*)"
"float, title:(.*[Cc]onfirmreset.*)" "float, title:(.*[Cc]onfirmreset.*)"
"float, title:(.*[Ss]ign [Ii]n - .*)"
"float, title:(.*[Oo]pen [Ff]ile.*)" "float, title:(.*[Oo]pen [Ff]ile.*)"
"float, title:(.*branchdialog.*)" "float, title:(.*branchdialog.*)"
"float, class:(.*pavucontrol.*)" "float, class:(.*pavucontrol.*)"

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
programs.kitty = { programs.kitty = {
@@ -8,9 +8,9 @@ in
shellIntegration.enableZshIntegration = true; shellIntegration.enableZshIntegration = true;
font = { font = {
name = theme.fontName; name = settings.fontName;
package = theme.fontPackage; package = settings.fontPackage;
size = theme.fontSize; size = settings.fontSize;
}; };
settings = { settings = {
@@ -24,77 +24,77 @@ in
background_opacity = "0.85"; background_opacity = "0.85";
# The basic colors # The basic colors
foreground = theme.nord.snowStorm.nord6; foreground = settings.nord.snowStorm.nord6;
background = theme.nord.polarNight.nord0; background = settings.nord.polarNight.nord0;
selection_foreground = theme.nord.polarNight.nord0; selection_foreground = settings.nord.polarNight.nord0;
selection_background = theme.nord.aurora.nord15; selection_background = settings.nord.aurora.nord15;
# Cursor colors # Cursor colors
cursor = theme.nord.aurora.nord15; cursor = settings.nord.aurora.nord15;
cursor_text_color = theme.nord.polarNight.nord0; cursor_text_color = settings.nord.polarNight.nord0;
# URL underline color when hovering with mouse # URL underline color when hovering with mouse
url_color = theme.nord.aurora.nord15; url_color = settings.nord.aurora.nord15;
# Kitty window border colors # Kitty window border colors
active_border_color = theme.nord.frost.nord10; active_border_color = settings.nord.frost.nord10;
inactive_border_color = theme.nord.polarNight.nord1; inactive_border_color = settings.nord.polarNight.nord1;
bell_border_color = theme.nord.aurora.nord13; bell_border_color = settings.nord.aurora.nord13;
# OS Window titlebar colors # OS Window titlebar colors
wayland_titlebar_color = theme.nord.polarNight.nord0; wayland_titlebar_color = settings.nord.polarNight.nord0;
macos_titlebar_color = theme.nord.polarNight.nord0; macos_titlebar_color = settings.nord.polarNight.nord0;
# Tab bar colors # Tab bar colors
active_tab_foreground = theme.nord.polarNight.nord3; active_tab_foreground = settings.nord.polarNight.nord3;
active_tab_background = theme.nord.aurora.nord15; active_tab_background = settings.nord.aurora.nord15;
inactive_tab_foreground = theme.nord.snowStorm.nord6; inactive_tab_foreground = settings.nord.snowStorm.nord6;
inactive_tab_background = theme.nord.polarNight.nord1; inactive_tab_background = settings.nord.polarNight.nord1;
tab_bar_background = theme.nord.polarNight.nord3; tab_bar_background = settings.nord.polarNight.nord3;
# Colors for marks (marked text in the terminal) # Colors for marks (marked text in the terminal)
mark1_foreground = theme.nord.polarNight.nord0; mark1_foreground = settings.nord.polarNight.nord0;
mark1_background = theme.nord.frost.nord10; mark1_background = settings.nord.frost.nord10;
mark2_foreground = theme.nord.polarNight.nord0; mark2_foreground = settings.nord.polarNight.nord0;
mark2_background = theme.nord.aurora.nord15; mark2_background = settings.nord.aurora.nord15;
mark3_foreground = theme.nord.polarNight.nord0; mark3_foreground = settings.nord.polarNight.nord0;
mark3_background = theme.nord.frost.nord8; mark3_background = settings.nord.frost.nord8;
# The 16 terminal colors # The 16 terminal colors
# black # black
color0 = theme.nord.polarNight.nord0; color0 = settings.nord.polarNight.nord0;
# Autosuggestion # Autosuggestion
color8 = theme.nord.frost.nord10; color8 = settings.nord.frost.nord10;
# red # red
color1 = theme.nord.aurora.nord11; color1 = settings.nord.aurora.nord11;
color9 = theme.nord.aurora.nord11; color9 = settings.nord.aurora.nord11;
# green # green
color2 = theme.nord.aurora.nord14; color2 = settings.nord.aurora.nord14;
color10 = theme.nord.aurora.nord14; color10 = settings.nord.aurora.nord14;
# yellow # yellow
color3 = theme.nord.aurora.nord13; color3 = settings.nord.aurora.nord13;
color11 = theme.nord.aurora.nord13; color11 = settings.nord.aurora.nord13;
# blue # blue
color4 = theme.nord.frost.nord10; color4 = settings.nord.frost.nord10;
color12 = theme.nord.frost.nord10; color12 = settings.nord.frost.nord10;
# magenta # magenta
color5 = theme.nord.aurora.nord15; color5 = settings.nord.aurora.nord15;
color13 = theme.nord.aurora.nord15; color13 = settings.nord.aurora.nord15;
# cyan # cyan
color6 = theme.nord.frost.nord8; color6 = settings.nord.frost.nord8;
color14 = theme.nord.frost.nord8; color14 = settings.nord.frost.nord8;
# white # white
color7 = theme.nord.snowStorm.nord5; color7 = settings.nord.snowStorm.nord5;
color15 = theme.nord.snowStorm.nord4; color15 = settings.nord.snowStorm.nord4;
}; };
}; };
} }

View File

@@ -1,12 +1,12 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
services.mako = { services.mako = {
enable = true; enable = true;
settings = { settings = {
font = theme.fontName; font = settings.fontName;
icons = true; icons = true;
ignore-timeout = true; ignore-timeout = true;
sort = "-time"; sort = "-time";
@@ -18,10 +18,10 @@ in
max-icon-size = 64; max-icon-size = 64;
default-timeout = 5000; default-timeout = 5000;
background-color = theme.nord.polarNight.nord0; background-color = settings.nord.polarNight.nord0;
text-color = theme.nord.snowStorm.nord6; text-color = settings.nord.snowStorm.nord6;
border-color = theme.nord.frost.nord10; border-color = settings.nord.frost.nord10;
progress-color = "over ${theme.nord.frost.nord8}"; progress-color = "over ${settings.nord.frost.nord8}";
}; };
}; };
} }

View File

@@ -1,16 +1,16 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
home.file = { home.file = {
".config/nwg-dock-hyprland/drawer.css".text = '' ".config/nwg-dock-hyprland/drawer.css".text = ''
window { window {
background: ${theme.nord.polarNight.nord0}; background: ${settings.nord.polarNight.nord0};
border-radius: 10px; border-radius: 10px;
border-style: none; border-style: none;
border-width: 1px; border-width: 1px;
border-color: ${theme.nord.aurora.nord15}b0 border-color: ${settings.nord.aurora.nord15}b0
} }
#box { #box {
@@ -21,14 +21,14 @@ in
active { active {
/* This is to underline the button representing the currently active window */ /* This is to underline the button representing the currently active window */
border-bottom: solid 1px; border-bottom: solid 1px;
border-color: ${theme.nord.aurora.nord14}1a border-color: ${settings.nord.aurora.nord14}1a
} }
button, image { button, image {
background: none; background: none;
border-style: none; border-style: none;
box-shadow: none; box-shadow: none;
color: ${theme.nord.frost.nord10} color: ${settings.nord.frost.nord10}
} }
button { button {
@@ -40,7 +40,7 @@ in
} }
button:hover { button:hover {
background-color: ${theme.nord.polarNight.nord0}1a; background-color: ${settings.nord.polarNight.nord0}1a;
border-radius: 2px; border-radius: 2px;
} }

View File

@@ -1,18 +1,18 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
home.file = { home.file = {
".config/nwg-drawer/drawer.css".text = '' ".config/nwg-drawer/drawer.css".text = ''
window { window {
background-color: ${theme.nord.polarNight.nord0}bf; background-color: ${settings.nord.polarNight.nord0}bf;
color: ${theme.nord.snowStorm.nord5}00 color: ${settings.nord.snowStorm.nord5}00
} }
/* search entry */ /* search entry */
entry { entry {
background-color: ${theme.nord.polarNight.nord1}0f background-color: ${settings.nord.polarNight.nord1}0f
} }
button, image { button, image {
@@ -21,7 +21,7 @@ in
} }
button:hover { button:hover {
background-color: ${theme.nord.frost.nord10}1a background-color: ${settings.nord.frost.nord10}1a
} }
/* in case you wanted to give category buttons a different look */ /* in case you wanted to give category buttons a different look */
@@ -31,12 +31,12 @@ in
#pinned-box { #pinned-box {
padding-bottom: 5px; padding-bottom: 5px;
border-bottom: 1px dotted ${theme.nord.polarNight.nord3} border-bottom: 1px dotted ${settings.nord.polarNight.nord3}
} }
#files-box { #files-box {
padding: 5px; padding: 5px;
border: 1px dotted ${theme.nord.polarNight.nord3}; border: 1px dotted ${settings.nord.polarNight.nord3};
border-radius: 15px border-radius: 15px
} }
''; '';

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
home.file = { home.file = {
@@ -9,12 +9,12 @@ in
''; '';
".config/nwg-panel/preferred-apps.json".text = '' ".config/nwg-panel/preferred-apps.json".text = ''
{ {
"\\.pdf$": "${theme.defaultApps.browser.pname}", "\\.pdf$": "${settings.defaultApps.browser.pname}",
"\\.svg$": "inkscape", "\\.svg$": "inkscape",
"\\.(jpg|png|tiff|gif)$": "${theme.defaultApps.imageViewer.pname}", "\\.(jpg|png|tiff|gif)$": "${settings.defaultApps.imageViewer.pname}",
"\\.(mp3|ogg|flac|wav|wma)$": "audacious", "\\.(mp3|ogg|flac|wav|wma)$": "audacious",
"\\.(avi|mp4|mkv|mov|wav)$": "${theme.defaultApps.video.pname}", "\\.(avi|mp4|mkv|mov|wav)$": "${settings.defaultApps.video.pname}",
"\\.(doc|docx|xls|xlsx)$": "${theme.defaultApps.office.pname}" "\\.(doc|docx|xls|xlsx)$": "${settings.defaultApps.office.pname}"
} }
''; '';
}; };

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
defaultOpacity = "opacity: 0.85;"; defaultOpacity = "opacity: 0.85;";
defaultBorderRadius = "border-radius: 1rem;"; defaultBorderRadius = "border-radius: 1rem;";
@@ -209,10 +209,10 @@ in
calendar = { calendar = {
mode = "month"; mode = "month";
format = { format = {
months = "<span color='${theme.nord.frost.nord9}'><b>{}</b></span>"; months = "<span color='${settings.nord.frost.nord9}'><b>{}</b></span>";
days = "<span color='${theme.nord.frost.nord10}'><b>{}</b></span>"; days = "<span color='${settings.nord.frost.nord10}'><b>{}</b></span>";
weekdays = "<span color='${theme.nord.frost.nord8}'><b>{}</b></span>"; weekdays = "<span color='${settings.nord.frost.nord8}'><b>{}</b></span>";
today = "<span color='${theme.nord.aurora.nord14}'><b><u>{}</u></b></span>"; today = "<span color='${settings.nord.aurora.nord14}'><b><u>{}</u></b></span>";
}; };
}; };
}; };
@@ -238,12 +238,12 @@ in
#waybar { #waybar {
background: transparent; background: transparent;
color: ${theme.nord.snowStorm.nord6}; color: ${settings.nord.snowStorm.nord6};
margin: 5px 5px; margin: 5px 5px;
} }
#workspaces { #workspaces {
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultBorderRadius} ${defaultBorderRadius}
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
@@ -251,44 +251,44 @@ in
} }
#workspaces button { #workspaces button {
color: ${theme.nord.frost.nord10}; color: ${settings.nord.frost.nord10};
${defaultBorderRadius} ${defaultBorderRadius}
padding: 0.4rem; padding: 0.4rem;
} }
#workspaces button.active { #workspaces button.active {
color: ${theme.nord.frost.nord8}; color: ${settings.nord.frost.nord8};
${defaultBorderRadius} ${defaultBorderRadius}
} }
#workspaces button:hover { #workspaces button:hover {
color: ${theme.nord.frost.nord7}; color: ${settings.nord.frost.nord7};
${defaultBorderRadius} ${defaultBorderRadius}
} }
#workspaces button.focused { #workspaces button.focused {
color: ${theme.nord.snowStorm.nord6}; color: ${settings.nord.snowStorm.nord6};
background: ${theme.nord.aurora.nord13}; background: ${settings.nord.aurora.nord13};
${defaultBorderRadius} ${defaultBorderRadius}
} }
#workspaces button.urgent { #workspaces button.urgent {
color: ${theme.nord.polarNight.nord0}; color: ${settings.nord.polarNight.nord0};
background: ${theme.nord.snowStorm.nord6}; background: ${settings.nord.snowStorm.nord6};
${defaultBorderRadius} ${defaultBorderRadius}
} }
#tooltip { #tooltip {
background: ${theme.nord.polarNight.nord0}; background: ${settings.nord.polarNight.nord0};
border-color: ${theme.nord.polarNight.nord0}; border-color: ${settings.nord.polarNight.nord0};
${defaultBorderRadius} ${defaultBorderRadius}
border-width: 1rem; border-width: 1rem;
border-style: solid; border-style: solid;
} }
#window { #window {
color: ${theme.nord.aurora.nord15}; color: ${settings.nord.aurora.nord15};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultBorderRadius} ${defaultBorderRadius}
${defaultCenterOptions} ${defaultCenterOptions}
@@ -297,15 +297,15 @@ in
} }
#custom-weather { #custom-weather {
color: ${theme.nord.frost.nord10}; color: ${settings.nord.frost.nord10};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${borderRight} ${borderRight}
} }
#clock { #clock {
color: ${theme.nord.frost.nord9}; color: ${settings.nord.frost.nord9};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${borderLeft} ${borderLeft}
} }
@@ -313,63 +313,63 @@ in
/* ------------- */ /* ------------- */
#bluetooth { #bluetooth {
color: ${theme.nord.frost.nord9}; color: ${settings.nord.frost.nord9};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${borderRight} ${borderRight}
} }
#wireplumber.source { #wireplumber.source {
color: ${theme.nord.frost.nord8}; color: ${settings.nord.frost.nord8};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
border-radius: 0; border-radius: 0;
} }
#wireplumber.sink { #wireplumber.sink {
color: ${theme.nord.frost.nord7}; color: ${settings.nord.frost.nord7};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
border-radius: 0; border-radius: 0;
} }
#keyboard-state.numlock { #keyboard-state.numlock {
color: ${theme.nord.frost.nord8}; color: ${settings.nord.frost.nord8};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
border-radius: 0; border-radius: 0;
} }
#keyboard-state.capslock { #keyboard-state.capslock {
color: ${theme.nord.frost.nord9}; color: ${settings.nord.frost.nord9};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
border-radius: 0; border-radius: 0;
} }
#temperature.gpu { #temperature.gpu {
color: ${theme.nord.frost.nord10}; color: ${settings.nord.frost.nord10};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
border-radius: 0; border-radius: 0;
} }
#temperature { #temperature {
color: ${theme.nord.frost.nord9}; color: ${settings.nord.frost.nord9};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
border-radius: 0; border-radius: 0;
} }
#custom-lights { #custom-lights {
color: ${theme.nord.frost.nord8}; color: ${settings.nord.frost.nord8};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${borderLeft} ${borderLeft}
} }
@@ -377,7 +377,7 @@ in
/* ------------- */ /* ------------- */
#tray { #tray {
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
${defaultOpacity} ${defaultOpacity}
${defaultCenterOptions} ${defaultCenterOptions}
${defaultBorderRadius} ${defaultBorderRadius}

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
programs.wlogout = { programs.wlogout = {
@@ -49,13 +49,13 @@ in
} }
window { window {
background-color: ${theme.nord.polarNight.nord0}f0 background-color: ${settings.nord.polarNight.nord0}f0
} }
button { button {
margin: 8px; margin: 8px;
color: ${theme.nord.frost.nord7}; color: ${settings.nord.frost.nord7};
background-color: ${theme.nord.polarNight.nord1}; background-color: ${settings.nord.polarNight.nord1};
border-style: solid; border-style: solid;
border-width: 2px; border-width: 2px;
background-repeat: no-repeat; background-repeat: no-repeat;
@@ -66,8 +66,8 @@ in
button:active, button:active,
button:focus, button:focus,
button:hover { button:hover {
color: ${theme.nord.frost.nord8}; color: ${settings.nord.frost.nord8};
background-color: ${theme.nord.polarNight.nord2}; background-color: ${settings.nord.polarNight.nord2};
outline-style: none; outline-style: none;
} }

View File

@@ -1,13 +1,13 @@
{ pkgs, ... }: { pkgs, ... }:
let let
theme = import ../../theme.nix { inherit pkgs; }; settings = import ../../settings.nix { inherit pkgs; };
in in
{ {
programs.wofi = { programs.wofi = {
enable = true; enable = true;
style = '' style = ''
* { * {
font-family: "${theme.fontName}", monospace; font-family: "${settings.fontName}", monospace;
font-size: 14px; font-size: 14px;
} }
@@ -15,9 +15,9 @@ in
window { window {
margin: 0px; margin: 0px;
padding: 10px; padding: 10px;
border: 0.16em solid ${theme.nord.aurora.nord15}; border: 0.16em solid ${settings.nord.aurora.nord15};
border-radius: 0.1em; border-radius: 0.1em;
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
} }
/* Inner Box */ /* Inner Box */
@@ -25,7 +25,7 @@ in
margin: 5px; margin: 5px;
padding: 10px; padding: 10px;
border: none; border: none;
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
} }
/* Outer Box */ /* Outer Box */
@@ -33,7 +33,7 @@ in
margin: 5px; margin: 5px;
padding: 10px; padding: 10px;
border: none; border: none;
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
} }
/* Scroll */ /* Scroll */
@@ -41,7 +41,7 @@ in
margin: 0px; margin: 0px;
padding: 10px; padding: 10px;
border: none; border: none;
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
} }
/* Input */ /* Input */
@@ -50,46 +50,46 @@ in
padding: 10px; padding: 10px;
border: none; border: none;
border-radius: 0.1em; border-radius: 0.1em;
color: ${theme.nord.snowStorm.nord6}; color: ${settings.nord.snowStorm.nord6};
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
} }
#input image { #input image {
border: none; border: none;
color: ${theme.nord.aurora.nord11}; color: ${settings.nord.aurora.nord11};
} }
#input * { #input * {
outline: 4px solid ${theme.nord.aurora.nord11}!important; outline: 4px solid ${settings.nord.aurora.nord11}!important;
} }
/* Text */ /* Text */
#text { #text {
margin: 5px; margin: 5px;
border: none; border: none;
color: ${theme.nord.snowStorm.nord6}; color: ${settings.nord.snowStorm.nord6};
} }
#entry { #entry {
background-color: ${theme.nord.polarNight.nord0}; background-color: ${settings.nord.polarNight.nord0};
} }
#entry arrow { #entry arrow {
border: none; border: none;
color: ${theme.nord.aurora.nord15}; color: ${settings.nord.aurora.nord15};
} }
/* Selected Entry */ /* Selected Entry */
#entry:selected { #entry:selected {
border: 0.11em solid ${theme.nord.aurora.nord15}; border: 0.11em solid ${settings.nord.aurora.nord15};
} }
#entry:selected #text { #entry:selected #text {
color: ${theme.nord.frost.nord7}; color: ${settings.nord.frost.nord7};
} }
#entry:drop(active) { #entry:drop(active) {
background-color: ${theme.nord.aurora.nord15}!important; background-color: ${settings.nord.aurora.nord15}!important;
} }
''; '';
}; };

View File

@@ -1,6 +1,6 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
theme = import ./theme.nix { inherit pkgs; }; settings = import ./settings.nix { inherit pkgs; };
bing-wallpaper = pkgs.writeScriptBin "bing-wallpaper" '' bing-wallpaper = pkgs.writeScriptBin "bing-wallpaper" ''
# Directory to store wallpapers # Directory to store wallpapers
@@ -19,19 +19,19 @@ in
./environment.nix ./environment.nix
]; ];
home-manager.users.matt = import ./home.nix; home-manager.users."${settings.user}" = import ./home.nix;
services = { services = {
displayManager = { displayManager = {
sddm = { sddm = {
enable = true; enable = true;
package = pkgs.kdePackages.sddm; package = pkgs.kdePackages.sddm;
extraPackages = [ theme.sddm.package ]; extraPackages = [ settings.sddm.package ];
theme = theme.sddm.themeName; theme = settings.sddm.themeName;
wayland.enable = true; wayland.enable = true;
settings = { settings = {
Theme = { Theme = {
ThemeDir = "${theme.sddm.package}/share/sddm/themes"; ThemeDir = "${settings.sddm.package}/share/sddm/themes";
}; };
}; };
}; };
@@ -89,19 +89,19 @@ in
}; };
}; };
}; };
user.services.polkit-gnome-authentication-agent-1 = { # user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1"; # description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ]; # wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ]; # wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ]; # after = [ "graphical-session.target" ];
serviceConfig = { # serviceConfig = {
Type = "simple"; # Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; # ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure"; # Restart = "on-failure";
RestartSec = 1; # RestartSec = 1;
TimeoutStopSec = 10; # TimeoutStopSec = 10;
}; # };
}; # };
extraConfig = '' extraConfig = ''
DefaultTimeoutStopSec=10s DefaultTimeoutStopSec=10s
''; '';

View File

@@ -20,6 +20,7 @@
hyprcursor hyprcursor
hyprland hyprland
hyprshot hyprshot
hyprsysteminfo
kdePackages.qtmultimedia kdePackages.qtmultimedia
libnotify libnotify
mako mako

View File

@@ -1,6 +1,6 @@
{ lib, pkgs, ... }: { lib, pkgs, ... }:
let let
theme = import ./theme.nix { inherit pkgs; }; settings = import ./settings.nix { inherit pkgs; };
wallpaper = "/run/wallpaper.jpg"; wallpaper = "/run/wallpaper.jpg";
in in
{ {
@@ -63,7 +63,7 @@ in
", edge:r:l, workspace, +1" ", edge:r:l, workspace, +1"
# swipe up from bottom edge # swipe up from bottom edge
", edge:d:u, exec, ${theme.defaultApps.browser.pname}" ", edge:d:u, exec, ${settings.defaultApps.browser.pname}"
# swipe down from left edge # swipe down from left edge
", edge:l:d, exec, pactl set-sink-volume @DEFAULT_SINK@ -4%" ", edge:l:d, exec, pactl set-sink-volume @DEFAULT_SINK@ -4%"
@@ -93,13 +93,14 @@ in
}; };
services = { services = {
hyprpolkitagent.enable = true;
hyprpaper = { hyprpaper = {
enable = true; enable = true;
settings = { settings = {
preload = [ "/run/wallpaper.jpg" wallpaper ]; preload = [ "/run/wallpaper.jpg" wallpaper ];
wallpaper = [ wallpaper = [
"${theme.displayLeft.input}, /run/wallpaper.jpg" "${settings.displayLeft.input}, /run/wallpaper.jpg"
"${theme.displayRight.input}, /run/wallpaper.jpg" "${settings.displayRight.input}, /run/wallpaper.jpg"
]; ];
splash = false; splash = false;
}; };
@@ -121,16 +122,16 @@ in
# on-resume = "brightnessctl -r"; # monitor backlight restore. # on-resume = "brightnessctl -r"; # monitor backlight restore.
# } # }
{ {
timeout = theme.lockScreenTimer; timeout = settings.lockScreenTimer;
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
} }
{ {
timeout = theme.screenOffTimer; timeout = settings.screenOffTimer;
on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed
on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired.
} }
{ {
timeout = theme.suspendTimer; timeout = settings.suspendTimer;
on-timeout = "systemctl suspend"; # suspend pc on-timeout = "systemctl suspend"; # suspend pc
} }
]; ];
@@ -162,7 +163,7 @@ in
{ {
size = "200, 50"; size = "200, 50";
position = "0, -80"; position = "0, -80";
monitor = theme.displayLeft.input; monitor = settings.displayLeft.input;
dots_center = true; dots_center = true;
fade_on_empty = true; fade_on_empty = true;
font_color = "rgb(202, 211, 245)"; font_color = "rgb(202, 211, 245)";
@@ -181,16 +182,16 @@ in
home = { home = {
sessionVariables = { sessionVariables = {
BROWSER = "${theme.defaultApps.browser.pname}"; BROWSER = "${settings.defaultApps.browser.pname}";
CLUTTER_BACKEND = "wayland"; CLUTTER_BACKEND = "wayland";
EDITOR = "${theme.defaultApps.editor.pname}"; EDITOR = "${settings.defaultApps.editor.pname}";
VISUAL = "${theme.defaultApps.visual.pname}"; VISUAL = "${settings.defaultApps.visual.pname}";
ICON_THEME = theme.iconTheme; ICON_THEME = settings.iconTheme;
GTK_CSD = "0"; GTK_CSD = "0";
GTK_THEME = theme.gtkTheme; GTK_THEME = settings.gtkTheme;
GTK_USE_PORTAL = "1"; GTK_USE_PORTAL = "1";
HYPRCURSOR_THEME = theme.cursorTheme; HYPRCURSOR_THEME = settings.cursorTheme;
HYPRCURSOR_SIZE = theme.cursorSize; HYPRCURSOR_SIZE = settings.cursorSize;
MOZ_ENABLE_WAYLAND = "1"; MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
NIXOS_XDG_OPEN_USE_PORTAL = "1"; NIXOS_XDG_OPEN_USE_PORTAL = "1";
@@ -200,9 +201,9 @@ in
QT_SCALE_FACTOR = "1"; QT_SCALE_FACTOR = "1";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
TERMINAL = "${theme.defaultApps.terminal.pname}"; TERMINAL = "${settings.defaultApps.terminal.pname}";
XCURSOR_THEME = theme.cursorTheme; XCURSOR_THEME = settings.cursorTheme;
XCURSOR_SIZE = theme.cursorSize; XCURSOR_SIZE = settings.cursorSize;
XDG_CACHE_HOME = "\${HOME}/.cache"; XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_CONFIG_HOME = "\${HOME}/.config";
XDG_CURRENT_DESKTOP = "Hyprland"; XDG_CURRENT_DESKTOP = "Hyprland";
@@ -213,21 +214,21 @@ in
pointerCursor = { pointerCursor = {
gtk.enable = true; gtk.enable = true;
package = theme.cursorThemePkg; package = settings.cursorThemePkg;
name = theme.cursorTheme; name = settings.cursorTheme;
size = theme.cursorSize; size = settings.cursorSize;
}; };
packages = theme.requiredPkgs; packages = settings.requiredPkgs;
}; };
dconf = { dconf = {
enable = true; enable = true;
settings = { settings = {
"org/gnome/desktop/interface".color-scheme = "prefer-dark"; "org/gnome/desktop/interface".color-scheme = "prefer-dark";
"org/gnome/desktop/interface".cursor-theme = theme.cursorTheme; "org/gnome/desktop/interface".cursor-theme = settings.cursorTheme;
"org/gnome/desktop/interface".gtk-theme = theme.gtkTheme; "org/gnome/desktop/interface".gtk-theme = settings.gtkTheme;
"org/gnome/desktop/interface".icon-theme = theme.iconTheme; "org/gnome/desktop/interface".icon-theme = settings.iconTheme;
}; };
}; };
@@ -235,18 +236,18 @@ in
enable = true; enable = true;
cursorTheme = { cursorTheme = {
name = theme.cursorTheme; name = settings.cursorTheme;
package = theme.cursorThemePkg; package = settings.cursorThemePkg;
}; };
theme = { theme = {
name = theme.gtkTheme; name = settings.gtkTheme;
package = theme.gtkThemePkg; package = settings.gtkThemePkg;
}; };
iconTheme = { iconTheme = {
name = theme.iconTheme; name = settings.iconTheme;
package = theme.iconThemePkg; package = settings.iconThemePkg;
}; };
gtk3.extraConfig = { gtk3.extraConfig = {
@@ -258,9 +259,9 @@ in
}; };
font = { font = {
name = theme.fontName; name = settings.fontName;
package = theme.fontPackage; package = settings.fontPackage;
size = theme.fontSize; size = settings.fontSize;
}; };
}; };
} }

View File

@@ -15,6 +15,9 @@ let
}; };
in in
{ {
# Username
user = "matt";
# Displays # Displays
displayLeft = { displayLeft = {
input = "DP-1"; input = "DP-1";

View File

@@ -1,8 +0,0 @@
{ ... }:
{
imports = [
# ./amd
./nvidia
./gaming
];
}

85
test.sh
View File

@@ -1,85 +0,0 @@
#!/usr/bin/env bash
# Pull latest changes if in a git repo
if [ -d .git ]; then
git pull || echo "Warning: Could not pull latest changes"
fi
# echo "Starting build of matt-nixos at $(date)"
# # if nix flake update desktop-nixpkgs desktop-chaotic desktop-home-manager desktop-impermanence desktop-lanzaboote desktop-nixos-hardware desktop-sops-nix desktop-steam-rom-manager nixpkgs-unstable nixpkgs-stable nix-darwin; then
# # echo "matt-nixos flake updated successfully at $(date)"
# # else
# # echo "matt-nixos failed to build at $(date)"
# # fi
# if nix build .\#nixosConfigurations.matt-nixos.config.system.build.toplevel --no-link; then
# echo "matt-nixos built successfully at $(date)"
# # sudo -u admin -g jallen-nas git add .
# # sudo -u admin -g jallen-nas git commit -m "Desktop Updates $(date)"
# else
# echo "matt-nixos failed to build at $(date)"
# # sudo -u admin -g jallen-nas git reset --hard
# fi
# echo "Starting build of steamdeck at $(date)"
# # if nix flake update steamdeck-nixpkgs steamdeck-chaotic steamdeck-home-manager steamdeck-impermanence steamdeck-jovian steamdeck-lanzaboote steamdeck-nixos-hardware steamdeck-sops-nix steamdeck-steam-rom-manager; then
# # echo "steamdeck flake updated successfully at $(date)"
# # else
# # echo "steamdeck flake failed to update at $(date)"
# # git reset --hard
# # fi
# if nix build .\#nixosConfigurations.steamdeck.config.system.build.toplevel --no-link; then
# echo "steamdeck built successfully at $(date)"
# # sudo -u admin -g jallen-nas git add .
# # sudo -u admin -g jallen-nas git commit -m "Dteamdeck Updates $(date)"
# else
# echo "steamdeck failed to build at $(date)"
# # sudo -u admin -g jallen-nas git reset --hard
# fi
echo "Starting build of pi4 at $(date)"
# if nix flake update pi4-nixpkgs pi4-home-manager pi4-impermanence pi4-sops-nix pi4-nixos-hardware pi4-nixos-raspberrypi pi4-disko; then
# echo "pi4 flake updated successfully at $(date)"
# else
# echo "pif flake failed to update at $(date)"
# fi
if nix build .\#nixosConfigurations.pi4.config.system.build.toplevel --no-link --impure; then
echo "pi4 built successfully at $(date)"
# sudo -u admin -g jallen-nas git add .
# sudo -u admin -g jallen-nas git commit -m "Pi4 Updates $(date)"
else
echo "pi4 failed to build at $(date)"
# sudo -u admin -g jallen-nas git reset --hard
fi
echo "Starting build of pi5 at $(date)"
# if nix flake update pi5-nixpkgs pi5-home-manager pi5-impermanence pi5-nixos-hardware pi5-sops-nix nixos-raspberrypi; then
# echo "pi5 flake updated successfully at $(date)"
# else
# echo "pi5 flake failed to update at $(date)"
# fi
if nix build .\#nixosConfigurations.pi5.config.system.build.toplevel --no-link; then
echo "pi5 built successfully at $(date)"
# sudo -u admin -g jallen-nas git add .
# sudo -u admin -g jallen-nas git commit -m "Pi5 Updates $(date)"
else
echo "pi5 failed to build at $(date)"
# sudo -u admin -g jallen-nas git reset --hard
fi
echo "Starting build of jallen-nas at $(date)"
# if nix flake update nas-nixpkgs nas-authentik-nix nas-cosmic nas-crowdsec nas-home-manager nas-impermanence nas-lanzaboote nas-nixos-hardware nas-sops-nix; then
# echo "jallen-nas flake updated successfully at $(date)"
# else
# echo "jallen-nas flake failed to update at $(date)"
# fi
export NIXPKGS_ALLOW_UNFREE=1
if nix build .\#nixosConfigurations.jallen-nas.config.system.build.toplevel --no-link --impure; then
echo "jallen-nas built successfully at $(date)"
# sudo -u admin -g jallen-nas git add .
# sudo -u admin -g jallen-nas git commit -m "Jallen-NAS Updates $(date)"
else
echo "jallen-nas failed to build at $(date)"
# sudo -u admin -g jallen-nas git reset --hard
fi
# git push