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"
}
},
"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": false,
"locked": {
@@ -788,7 +769,7 @@
"nas-nixpkgs-stable"
],
"nixpkgs-stable": "nixpkgs-stable_3",
"rust-overlay": "rust-overlay_5"
"rust-overlay": "rust-overlay_4"
},
"locked": {
"lastModified": 1750590485,
@@ -869,7 +850,7 @@
"nas-nixpkgs"
],
"pre-commit-hooks-nix": "pre-commit-hooks-nix_2",
"rust-overlay": "rust-overlay_6"
"rust-overlay": "rust-overlay_5"
},
"locked": {
"lastModified": 1737639419,
@@ -889,7 +870,7 @@
"nas-nix-vscode-extensions": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1749002682,
@@ -908,7 +889,7 @@
"nas-nixai": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_4"
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1749000216,
@@ -1110,7 +1091,7 @@
"inputs": {
"argononed": "argononed",
"nixos-images": "nixos-images",
"nixpkgs": "nixpkgs_5"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1749156319,
@@ -1286,21 +1267,6 @@
}
},
"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": {
"lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@@ -1316,7 +1282,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_3": {
"locked": {
"lastModified": 1748693115,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
@@ -1332,7 +1298,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_4": {
"locked": {
"lastModified": 1748882666,
"narHash": "sha256-z2uanxifOXGEqdiprquIGZu0XaRYih3FHXDQwLc1xis=",
@@ -1348,7 +1314,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_5": {
"locked": {
"lastModified": 1750506804,
"narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=",
@@ -1479,7 +1445,7 @@
"pi5-nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_6",
"rust-overlay": "rust-overlay_7"
"rust-overlay": "rust-overlay_6"
},
"locked": {
"lastModified": 1749770917,
@@ -1745,7 +1711,6 @@
"desktop-nixpkgs": "desktop-nixpkgs",
"desktop-sops-nix": "desktop-sops-nix",
"desktop-steam-rom-manager": "desktop-steam-rom-manager",
"edit": "edit",
"nas-authentik-nix": "nas-authentik-nix",
"nas-cosmic": "nas-cosmic",
"nas-crowdsec": "nas-crowdsec",
@@ -1851,27 +1816,6 @@
}
},
"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": {
"nixpkgs": [
"nas-cosmic",
@@ -1892,7 +1836,7 @@
"type": "github"
}
},
"rust-overlay_6": {
"rust-overlay_5": {
"inputs": {
"nixpkgs": [
"nas-lanzaboote",
@@ -1913,7 +1857,7 @@
"type": "github"
}
},
"rust-overlay_7": {
"rust-overlay_6": {
"inputs": {
"nixpkgs": [
"pi5-cosmic",
@@ -1934,7 +1878,7 @@
"type": "github"
}
},
"rust-overlay_8": {
"rust-overlay_7": {
"inputs": {
"nixpkgs": [
"steamdeck-chaotic",
@@ -1955,7 +1899,7 @@
"type": "github"
}
},
"rust-overlay_9": {
"rust-overlay_8": {
"inputs": {
"nixpkgs": [
"steamdeck-lanzaboote",
@@ -1981,8 +1925,8 @@
"flake-schemas": "flake-schemas_2",
"home-manager": "home-manager_2",
"jovian": "jovian_2",
"nixpkgs": "nixpkgs_6",
"rust-overlay": "rust-overlay_8"
"nixpkgs": "nixpkgs_5",
"rust-overlay": "rust-overlay_7"
},
"locked": {
"lastModified": 1750764101,
@@ -2085,7 +2029,7 @@
"steamdeck-nixpkgs"
],
"pre-commit-hooks-nix": "pre-commit-hooks-nix_3",
"rust-overlay": "rust-overlay_9"
"rust-overlay": "rust-overlay_8"
},
"locked": {
"lastModified": 1737639419,

View File

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

View File

@@ -6,43 +6,19 @@ in
imports = [
./boot.nix
./environment.nix
./hardware.nix
./nix-settings.nix
./programs.nix
./security.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 = {
# Set your time zone.
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; [
font-awesome
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 =
[
../default.nix
./boot.nix
./jovian.nix
./networking.nix

View File

@@ -1,4 +1,4 @@
{ lib, pkgs, ... }:
{ pkgs, ... }:
let
shellAliases = {
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
memtest86-efi
memtest86plus
# occt
os-prober
nil
qemu_full
@@ -50,57 +49,6 @@ let
unzip
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
{
imports = [
@@ -112,10 +60,6 @@ in
./services.nix
./sops.nix
./users.nix
../default.nix
../../modules/desktop-environments/cosmic/specialisation.nix
../../modules/desktop-environments/hyprland/specialisation.nix
../../share/amd
];
nix = {
@@ -135,8 +79,6 @@ in
environment = {
systemPackages = systemPackages;
# etc."lact/config.yaml".text = lactConfig;
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 = {
substituters = [
"https://cache.mjallen.dev/nas-cache"
"https://nix-community.cachix.org"
"https://cache.nixos.org/"
];
trusted-public-keys = [
"nas-cache:5ibTWOXJYlKBaoNtdDEPmvdLPtfnbwf9jvdnfwi5dUs="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
warn-dirty = lib.mkForce false;
experimental-features = lib.mkForce [

View File

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

View File

@@ -11,11 +11,9 @@ in
{
imports = [
./adguard.nix
# ./argononed.nix
./boot.nix
./impermanence.nix
./networking.nix
# ./pi4-hw.nix
./sops.nix
];
@@ -86,10 +84,6 @@ in
raspberrypiWirelessFirmware
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 = {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,18 +1,18 @@
{ pkgs, ... }:
let
theme = import ../../theme.nix { inherit pkgs; };
settings = import ../../settings.nix { inherit pkgs; };
in
{
home.file = {
".config/nwg-drawer/drawer.css".text = ''
window {
background-color: ${theme.nord.polarNight.nord0}bf;
color: ${theme.nord.snowStorm.nord5}00
background-color: ${settings.nord.polarNight.nord0}bf;
color: ${settings.nord.snowStorm.nord5}00
}
/* search entry */
entry {
background-color: ${theme.nord.polarNight.nord1}0f
background-color: ${settings.nord.polarNight.nord1}0f
}
button, image {
@@ -21,7 +21,7 @@ in
}
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 */
@@ -31,12 +31,12 @@ in
#pinned-box {
padding-bottom: 5px;
border-bottom: 1px dotted ${theme.nord.polarNight.nord3}
border-bottom: 1px dotted ${settings.nord.polarNight.nord3}
}
#files-box {
padding: 5px;
border: 1px dotted ${theme.nord.polarNight.nord3};
border: 1px dotted ${settings.nord.polarNight.nord3};
border-radius: 15px
}
'';

View File

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

View File

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

View File

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

View File

@@ -1,13 +1,13 @@
{ pkgs, ... }:
let
theme = import ../../theme.nix { inherit pkgs; };
settings = import ../../settings.nix { inherit pkgs; };
in
{
programs.wofi = {
enable = true;
style = ''
* {
font-family: "${theme.fontName}", monospace;
font-family: "${settings.fontName}", monospace;
font-size: 14px;
}
@@ -15,9 +15,9 @@ in
window {
margin: 0px;
padding: 10px;
border: 0.16em solid ${theme.nord.aurora.nord15};
border: 0.16em solid ${settings.nord.aurora.nord15};
border-radius: 0.1em;
background-color: ${theme.nord.polarNight.nord0};
background-color: ${settings.nord.polarNight.nord0};
}
/* Inner Box */
@@ -25,7 +25,7 @@ in
margin: 5px;
padding: 10px;
border: none;
background-color: ${theme.nord.polarNight.nord0};
background-color: ${settings.nord.polarNight.nord0};
}
/* Outer Box */
@@ -33,7 +33,7 @@ in
margin: 5px;
padding: 10px;
border: none;
background-color: ${theme.nord.polarNight.nord0};
background-color: ${settings.nord.polarNight.nord0};
}
/* Scroll */
@@ -41,7 +41,7 @@ in
margin: 0px;
padding: 10px;
border: none;
background-color: ${theme.nord.polarNight.nord0};
background-color: ${settings.nord.polarNight.nord0};
}
/* Input */
@@ -50,46 +50,46 @@ in
padding: 10px;
border: none;
border-radius: 0.1em;
color: ${theme.nord.snowStorm.nord6};
background-color: ${theme.nord.polarNight.nord0};
color: ${settings.nord.snowStorm.nord6};
background-color: ${settings.nord.polarNight.nord0};
}
#input image {
border: none;
color: ${theme.nord.aurora.nord11};
color: ${settings.nord.aurora.nord11};
}
#input * {
outline: 4px solid ${theme.nord.aurora.nord11}!important;
outline: 4px solid ${settings.nord.aurora.nord11}!important;
}
/* Text */
#text {
margin: 5px;
border: none;
color: ${theme.nord.snowStorm.nord6};
color: ${settings.nord.snowStorm.nord6};
}
#entry {
background-color: ${theme.nord.polarNight.nord0};
background-color: ${settings.nord.polarNight.nord0};
}
#entry arrow {
border: none;
color: ${theme.nord.aurora.nord15};
color: ${settings.nord.aurora.nord15};
}
/* Selected Entry */
#entry:selected {
border: 0.11em solid ${theme.nord.aurora.nord15};
border: 0.11em solid ${settings.nord.aurora.nord15};
}
#entry:selected #text {
color: ${theme.nord.frost.nord7};
color: ${settings.nord.frost.nord7};
}
#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, ... }:
let
theme = import ./theme.nix { inherit pkgs; };
settings = import ./settings.nix { inherit pkgs; };
bing-wallpaper = pkgs.writeScriptBin "bing-wallpaper" ''
# Directory to store wallpapers
@@ -19,19 +19,19 @@ in
./environment.nix
];
home-manager.users.matt = import ./home.nix;
home-manager.users."${settings.user}" = import ./home.nix;
services = {
displayManager = {
sddm = {
enable = true;
package = pkgs.kdePackages.sddm;
extraPackages = [ theme.sddm.package ];
theme = theme.sddm.themeName;
extraPackages = [ settings.sddm.package ];
theme = settings.sddm.themeName;
wayland.enable = true;
settings = {
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 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
# user.services.polkit-gnome-authentication-agent-1 = {
# description = "polkit-gnome-authentication-agent-1";
# wantedBy = [ "graphical-session.target" ];
# wants = [ "graphical-session.target" ];
# after = [ "graphical-session.target" ];
# serviceConfig = {
# Type = "simple";
# ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
# };
extraConfig = ''
DefaultTimeoutStopSec=10s
'';

View File

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

View File

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

View File

@@ -15,6 +15,9 @@ let
};
in
{
# Username
user = "matt";
# Displays
displayLeft = {
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