diff --git a/.gitignore b/.gitignore index a50cb2dc..d0927a3f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -.sops.yaml .claude/ old/ docs/superpowers/ diff --git a/.sops.yaml b/.sops.yaml new file mode 100644 index 00000000..0ddc69f5 --- /dev/null +++ b/.sops.yaml @@ -0,0 +1,12 @@ +keys: + - &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334 + - &work age1c8pawdsxptfslgrz2c56s39mrtnjzc5mm3hfzgr2wdwu2v6vfsdsupjsq6 +creation_rules: + - path_regex: hosts/laptop/secrets/secrets.yaml$ + key_groups: + - age: + - *primary + - path_regex: hosts/server/secrets/secrets.yaml$ + key_groups: + - age: + - *primary diff --git a/flake.lock b/flake.lock index 913abb10..e7109ee9 100644 --- a/flake.lock +++ b/flake.lock @@ -474,6 +474,27 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "impermanence", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768598210, + "narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "c47b2cc64a629f8e075de52e4742de688f930dc6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "iknowyou": { "inputs": { "bun2nix": "bun2nix_3", @@ -494,6 +515,25 @@ "type": "github" } }, + "impermanence": { + "inputs": { + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1769548169, + "narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "7b1d382faf603b6d264f58627330f9faa5cba149", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, "import-tree": { "locked": { "lastModified": 1763762820, @@ -576,7 +616,7 @@ }, "nixarr": { "inputs": { - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "treefmt-nix": "treefmt-nix_4", "vpnconfinement": "vpnconfinement", "website-builder": "website-builder" @@ -597,7 +637,7 @@ }, "nixos-hardware": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1782166108, @@ -739,6 +779,22 @@ } }, "nixpkgs_5": { + "locked": { + "lastModified": 1768564909, + "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { "locked": { "lastModified": 1775595990, "narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=", @@ -754,7 +810,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1767892417, "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", @@ -767,7 +823,7 @@ "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1786430034, "narHash": "sha256-Vux08kA5PICwS2sViCMfwVLAHNoH8TkKAeBo25LjpMI=", @@ -783,7 +839,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { "lastModified": 1781216227, "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", @@ -893,7 +949,7 @@ "flake-compat": "flake-compat_2", "flake-parts": "flake-parts_5", "mnw": "mnw", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_9", "systems": "systems_4" }, "locked": { @@ -938,10 +994,11 @@ "helium-browser": "helium-browser", "home-manager": "home-manager", "iknowyou": "iknowyou", + "impermanence": "impermanence", "nix-index-database": "nix-index-database", "nixarr": "nixarr", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "nixpkgs-unstable": "nixpkgs-unstable", "notashelf-tuigreet": "notashelf-tuigreet", "nur": "nur", diff --git a/flake.nix b/flake.nix index 70c24a1b..724793a1 100644 --- a/flake.nix +++ b/flake.nix @@ -35,6 +35,7 @@ url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + impermanence.url = "github:nix-community/impermanence"; notashelf-tuigreet = { url = "github:NotAShelf/tuigreet"; inputs.nixpkgs.follows = "nixpkgs"; @@ -92,7 +93,6 @@ apps.${system}.nvim = inputs.nvf-config.apps.${system}.nvim; nixosConfigurations = { h-laptop = import ./hosts/laptop/flake.nix args; - h-work = import ./hosts/work/flake.nix args; jack = import ./hosts/server/flake.nix args; }; devShells = forAllSystems (system: pkgs: { diff --git a/home/programs/group/cybersecurity.nix b/home/programs/group/cybersecurity.nix index 741b683f..9bc09363 100644 --- a/home/programs/group/cybersecurity.nix +++ b/home/programs/group/cybersecurity.nix @@ -37,4 +37,8 @@ hash = "sha256-T0XkMHJZQiy63/j25nGTkaiDFjc+blmgEVGTAFgVylU="; }; }; + + home.persistence."/persist".directories = [ + "Cyber" + ]; } diff --git a/home/programs/group/dev.nix b/home/programs/group/dev.nix index a5ff2fb8..71393a3c 100644 --- a/home/programs/group/dev.nix +++ b/home/programs/group/dev.nix @@ -3,18 +3,30 @@ pkgs-unstable, ... }: { - home.packages = with pkgs-unstable; - [ - go - claude-code - ] - ++ (with pkgs; [ - nodejs - air - duckdb - python3 - jq - nix-prefetch-github - rsync - ]); + home = { + packages = with pkgs-unstable; + [ + go + claude-code + ] + ++ (with pkgs; [ + nodejs + air + duckdb + python3 + jq + nix-prefetch-github + rsync + ]); + + persistence."/persist" = { + directories = [ + ".claude" + ]; + files = [".claude.json"]; + }; + + sessionPath = ["$HOME/.local/share/go/bin"]; + sessionVariables.GOPATH = "$HOME/.local/share/go"; + }; } diff --git a/home/programs/gui/helium/bookmarks/default.nix b/home/programs/gui/helium/bookmarks/default.nix index 0d90328b..46e293cd 100644 --- a/home/programs/gui/helium/bookmarks/default.nix +++ b/home/programs/gui/helium/bookmarks/default.nix @@ -1,7 +1,7 @@ { config, lib, - pkgs-unstable, + pkgs, ... }: let bookmarkList = @@ -451,7 +451,7 @@ in { }; Service = { Type = "simple"; - ExecStart = "${pkgs-unstable.darkhttpd}/bin/darkhttpd %h/.local/share/helium-startpage --port 8888 --addr 127.0.0.1 --no-listing"; + ExecStart = "${pkgs.darkhttpd}/bin/darkhttpd %h/.local/share/helium-startpage --port 8888 --addr 127.0.0.1 --no-listing"; Restart = "on-failure"; }; Install.WantedBy = ["default.target"]; diff --git a/home/programs/gui/helium/default.nix b/home/programs/gui/helium/default.nix index a1fa4b35..72c8d37d 100644 --- a/home/programs/gui/helium/default.nix +++ b/home/programs/gui/helium/default.nix @@ -136,4 +136,8 @@ in { categories = ["Network" "WebBrowser"]; mimeType = ["text/html" "text/xml" "application/xhtml+xml"]; }; + + home.persistence."/persist".directories = [ + ".config/net.imput.helium" + ]; } diff --git a/home/programs/gui/pkgs.nix b/home/programs/gui/pkgs.nix index 50cf43cb..310a404d 100644 --- a/home/programs/gui/pkgs.nix +++ b/home/programs/gui/pkgs.nix @@ -6,12 +6,18 @@ resources # Resource monitor gnome-clocks # Clocks app gnome-text-editor # Basic graphic text editor - ticktick # Todo app pinta # Image editor switcheroo # Convert images between different formats onlyoffice-desktopeditors # Office suite blanket # Listen to different sounds - signal-desktop # Messaging app thunar # File explorer + + signal-desktop # Messaging app + ticktick # Todo app + ]; + + home.persistence."/persist".directories = [ + ".config/ticktick" + ".config/Signal" ]; } diff --git a/home/programs/gui/proton/default.nix b/home/programs/gui/proton/default.nix index 2473a577..475d3570 100644 --- a/home/programs/gui/proton/default.nix +++ b/home/programs/gui/proton/default.nix @@ -6,19 +6,10 @@ home.packages = with pkgs; [ proton-vpn proton-pass - proton-authenticator ]; # Fix Proton Authenticator desktop entry xdg.desktopEntries = { - "Proton Authenticator" = { - name = "Proton Authenticator"; - exec = "env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator"; - icon = "proton-authenticator"; - type = "Application"; - categories = ["Utility"]; - terminal = false; - }; "Proton Calendar" = { name = "Proton Calendar"; exec = ''${config.programs.helium.package}/bin/helium "https://calendar.proton.me"''; @@ -36,4 +27,9 @@ terminal = false; }; }; + + home.persistence."/persist".directories = [ + ".config/protonvpn" + ".config/Proton Pass" + ]; } diff --git a/home/programs/tui/pkgs.nix b/home/programs/tui/pkgs.nix index bd17240e..3d52504c 100644 --- a/home/programs/tui/pkgs.nix +++ b/home/programs/tui/pkgs.nix @@ -36,4 +36,6 @@ cmatrix fastfetch ]; + + home.persistence."/persist".directories = [".config/gh" ".config/gh-dash"]; } diff --git a/home/programs/tui/shell/zsh.nix b/home/programs/tui/shell/zsh.nix index b55fa2de..f5db37d6 100644 --- a/home/programs/tui/shell/zsh.nix +++ b/home/programs/tui/shell/zsh.nix @@ -11,12 +11,11 @@ ]; home = { - sessionPath = ["$HOME/.local/share/go/bin"]; sessionVariables = { COLORTERM = "truecolor"; MANPAGER = "bat -l man -p"; - GOPATH = "$HOME/.local/share/go"; }; + persistence."/persist".files = [".zsh_history"]; }; programs.zsh = { diff --git a/home/programs/tui/spotatui/default.nix b/home/programs/tui/spotatui/default.nix index 70c61ab1..75b3c0a6 100644 --- a/home/programs/tui/spotatui/default.nix +++ b/home/programs/tui/spotatui/default.nix @@ -11,6 +11,8 @@ in { spotatui ]; + home.persistence."/persist".directories = [".config/spotatui" ".config/spotify"]; + home.file.".config/spotatui/config.yml".text = '' keybindings: back: q diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 5acd266b..7089cf3e 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -12,49 +12,20 @@ ../../nixos/users.nix ../../nixos/utils.nix ../../nixos/hyprland.nix - ../../nixos/usbguard.nix ../../nixos/steam.nix ../../home/programs/gui/helium/system.nix # I hate browser's configuration.. - ../../nixos/omen.nix # CHANGEME: For my laptop only, remove this (OMEN 16) - - ./wireguard.nix # CHANGEME: For my laptop only + # CHANGEME: You should probably remove those things: + ./wireguard.nix + ./persistence.nix # impermanence: what to keep once "/" is wiped on boot + ./usbguard.nix + ./secrets # You should let those lines as is ./hardware-configuration.nix ./variables.nix ]; - # USBGuard: - # Allow all USB devices until a proper policy is configured. - # Run `sudo usbguard generate-policy` with your devices plugged in, - # then set rules = "" and switch implicitPolicyTarget to "block". - # services.usbguard.implicitPolicyTarget = lib.mkForce "allow"; - - services.usbguard.rules = '' - allow id 1d6b:0002 serial "0000:05:00.3" name "xHCI Host Controller" hash "4a4NgfdUaJO43rkCzmWRSeHHR/uUh5+SNsXnhosm9qs=" parent-hash "ldMchY4Tt4GPUYo30eNGvai+Fs/EdnVY3vMyxJUq4Nk=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0003 serial "0000:05:00.3" name "xHCI Host Controller" hash "d+DNGWARDtv9nEK2ZvnNOCtFernuMu5/e/oZ7kCppqQ=" parent-hash "ldMchY4Tt4GPUYo30eNGvai+Fs/EdnVY3vMyxJUq4Nk=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0002 serial "0000:05:00.4" name "xHCI Host Controller" hash "icotY3rI59mWiKsGxc59BGZZeBjfbuH0b4NUByj3cbQ=" parent-hash "tHvBfznK5rpQn+oa0PEEjHa29EAEvGyCcZixsfwA6W0=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0003 serial "0000:05:00.4" name "xHCI Host Controller" hash "UbEoCZW8HT2ldc3qDeiK+IiQlGeaBC7F63681OwmKhI=" parent-hash "tHvBfznK5rpQn+oa0PEEjHa29EAEvGyCcZixsfwA6W0=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0002 serial "0000:07:00.3" name "xHCI Host Controller" hash "pz29Oo0RhQ+5+7LgOZR4v3OlcsVv3m9kCgGsGUnoUjI=" parent-hash "DRyV2/31MYHdzkIEfbPQeb/1w4/PjOW6GqWrXkftf2I=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0003 serial "0000:07:00.3" name "xHCI Host Controller" hash "O6iOpcl9StImWT62SrbeXacqbG6N/mTIipTRc0ipCGM=" parent-hash "DRyV2/31MYHdzkIEfbPQeb/1w4/PjOW6GqWrXkftf2I=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0002 serial "0000:07:00.4" name "xHCI Host Controller" hash "Hp8B0Enf+ACRT2tyy0EqXj7eNsFDAnTRZadzuh/Iqd4=" parent-hash "l2vhvC+VGVKlkBUUK/usFu8jHJ/5bWOnJG6WzRexpt4=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0003 serial "0000:07:00.4" name "xHCI Host Controller" hash "rJ3LKdvkCK3SUrCU3lV8qVbmPjA+r9Fe5106x2HlgK4=" parent-hash "l2vhvC+VGVKlkBUUK/usFu8jHJ/5bWOnJG6WzRexpt4=" with-interface 09:00:00 with-connect-type "" - allow id 0bda:c85c serial "00e04c000001" name "Bluetooth Radio" hash "Q/wlToV8WQgEYHBW/UIhnSwCCusCGqAR2D5gspSCImQ=" parent-hash "4a4NgfdUaJO43rkCzmWRSeHHR/uUh5+SNsXnhosm9qs=" with-interface { e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 } with-connect-type "hardwired" - allow id 30c9:009f serial "01.00.00" name "HP True Vision FHD Camera" hash "eYW5fqReJd29tfHXkEktKC63dGfDpmlRMo5uMGUWwME=" parent-hash "icotY3rI59mWiKsGxc59BGZZeBjfbuH0b4NUByj3cbQ=" with-interface { 0e:01:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 fe:01:01 } with-connect-type "hardwired" - allow id 03f0:036b serial "" name "HP USB-C Dock G5" hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" parent-hash "Hp8B0Enf+ACRT2tyy0EqXj7eNsFDAnTRZadzuh/Iqd4=" via-port "7-1" with-interface { 09:00:01 09:00:02 } with-connect-type "hotplug" - allow id 03f0:066b serial "" name "HP USB-C Dock G5" hash "JHDjLFApQNqijjmuKdJSWH5+1oLL7S6LQ9QHTAk5fTk=" parent-hash "rJ3LKdvkCK3SUrCU3lV8qVbmPjA+r9Fe5106x2HlgK4=" via-port "8-1" with-interface 09:00:00 with-connect-type "hotplug" - allow id 03f0:056b serial "201604140001" name "USB Audio" hash "OxQ8HQenW3/4HSGEBOSYFS15rXDTOaNDnjMbICweHgw=" parent-hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" with-interface { 01:01:00 01:02:00 01:02:00 01:02:00 01:02:00 03:00:00 } with-connect-type "unknown" - allow id 03f0:086b serial "" name "USB2734" hash "MSXcPAlZqkpTyZQylOhSIB8eMfST2AzVHV9EbrBGTWc=" parent-hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" via-port "7-1.3" with-interface { 09:00:01 09:00:02 } with-connect-type "unknown" - allow id 03f0:046b serial "11AD1D0A89EA2D08310E0B00" name "HP USB-C Dock G5" hash "DEGeuj1u4lwqrzp0UksFX7mSEY9JnGLxg7yxGbglAKE=" parent-hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" with-interface { 11:00:00 ff:03:00 03:00:00 } with-connect-type "unknown" - allow id 03f0:076b serial "" name "USB5734" hash "BshoqybYo0IKgoDORYPRtbhhlmQrYAxPQb2EAm1JsWA=" parent-hash "JHDjLFApQNqijjmuKdJSWH5+1oLL7S6LQ9QHTAk5fTk=" via-port "8-1.3" with-interface 09:00:00 with-connect-type "unknown" - allow id 0bda:8153 serial "000001000000" name "USB 10/100/1000 LAN" hash "utEnXKJ57kRUbPcGUaNWhEyoOEbLOYAFxvlsyC0PZkk=" parent-hash "JHDjLFApQNqijjmuKdJSWH5+1oLL7S6LQ9QHTAk5fTk=" with-interface { ff:ff:00 02:06:00 0a:00:00 0a:00:00 } with-connect-type "unknown" - allow id 046d:0ab7 serial "2046BAB04T68" name "Blue Microphones" hash "cC6AQ2e1Q/BeFeostpbf1mH2WpoUmt6bhau4NlA3niU=" parent-hash "MSXcPAlZqkpTyZQylOhSIB8eMfST2AzVHV9EbrBGTWc=" with-interface { 01:01:00 01:02:00 01:02:00 01:02:00 01:02:00 01:02:00 01:02:00 03:00:00 } with-connect-type "unknown" - allow id 13fd:5900 serial "50026B76861EE752 " name "External" hash "l/QvVV5hzZj1z6OUwB/kWl+WnH/7awrdMBoiNVx660M=" parent-hash "MSXcPAlZqkpTyZQylOhSIB8eMfST2AzVHV9EbrBGTWc=" with-interface { 08:06:50 08:06:62 } with-connect-type "unknown" - allow id 1532:02a1 name "Razer Ornata V3" - allow id 03f0:066b name "HP USB-C Dock G5" - ''; - home-manager.users."${config.var.username}" = import ./home.nix; # Don't touch this diff --git a/hosts/laptop/flake.nix b/hosts/laptop/flake.nix index 46fdd63e..1dee27e7 100644 --- a/hosts/laptop/flake.nix +++ b/hosts/laptop/flake.nix @@ -18,6 +18,7 @@ nixpkgs.lib.nixosSystem { inputs.sops-nix.nixosModules.sops inputs.nix-index-database.nixosModules.default inputs.helium-browser.nixosModules.default + inputs.impermanence.nixosModules.impermanence ./configuration.nix ]; } diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 632817f7..c2e7c6b8 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -42,14 +42,30 @@ ../../home/system/hypridle ./variables.nix # Mostly user-specific configuration - ./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets ]; home = { inherit (config.var) username; homeDirectory = "/home/" + config.var.username; - file.".face" = { - source = ./profile_picture.png; + + persistence."/persist" = { + directories = [ + ".config/nixos" # this repo itself (nixy manages it here) + ".local/share" + ".local/state" + ".cache" + "Notes" + "Projects" + "Documents" + "Downloads" + "Pictures" + "Videos" + ]; + + files = [ + ".ssh/known_hosts" + ".config/sops-nix/age/keys.txt" + ]; }; sessionVariables = { diff --git a/hosts/laptop/persistence.nix b/hosts/laptop/persistence.nix new file mode 100644 index 00000000..8ad86658 --- /dev/null +++ b/hosts/laptop/persistence.nix @@ -0,0 +1,37 @@ +# Impermanence: declares what should survive a wipe of "/". +{config, ...}: { + environment.persistence."/persist" = { + hideMounts = true; + + directories = [ + "/etc/NetworkManager/system-connections" # Wifi connections, VPN + "/var/lib/bluetooth" # Bluetooth connections + "/var/lib/nixos" # keeps uid/gid stable across boots + "/var/lib/systemd/coredump" + "/var/lib/upower" # battery calibration state + "/var/lib/systemd/backlight" # remembers screen brightness + "/var/lib/systemd/timers" # last-run timestamps (e.g. nix gc weekly) + "/var/log" + "/var/cache/tuigreet" + ]; + + files = [ + "/etc/machine-id" + "/etc/ssh/ssh_host_ed25519_key" + "/etc/ssh/ssh_host_ed25519_key.pub" + "/etc/ssh/ssh_host_rsa_key" + "/etc/ssh/ssh_host_rsa_key.pub" + "/var/lib/systemd/random-seed" # avoid a weak entropy pool on first boot + ]; + }; + + # -- How to find what's missing -- + # Use the system normally for a week or two, then look for files that + # changed recently outside of what's already declared above: + # find "/home/${config.var.username}" -xdev -type f -mtime -14 \ + # -not -path '*/.cache/*' -not -path '*/Cache/*' | less + # Anything that keeps showing up there (app state, history files, + # game saves, browser profile, spotify/lazygit config, GPG state, etc.) + # is a candidate to add above. Do this *before* switching root to a + # wipeable filesystem, not after. +} diff --git a/hosts/laptop/profile_picture.png b/hosts/laptop/profile_picture.png deleted file mode 100644 index 71c63c9b..00000000 Binary files a/hosts/laptop/profile_picture.png and /dev/null differ diff --git a/hosts/laptop/secrets/default.nix b/hosts/laptop/secrets/default.nix index efc008b3..0cdabbdf 100644 --- a/hosts/laptop/secrets/default.nix +++ b/hosts/laptop/secrets/default.nix @@ -1,62 +1,46 @@ # Those are my secrets, encrypted with sops # You shouldn't import this file, unless you edit it { - inputs, pkgs, config, ... }: let - home = config.home.homeDirectory; + username = config.var.username; + home = "/home/${username}"; in { - imports = [inputs.sops-nix.homeManagerModules.sops]; - sops = { - age.keyFile = "${home}/.config/sops/age/keys.txt"; + age.keyFile = "${home}/.config/sops-nix/age/keys.txt"; defaultSopsFile = ./secrets.yaml; secrets = { ssh-config = { + owner = username; path = "${home}/.ssh/config"; }; - github-key = { + ssh-github-key = { + owner = username; path = "${home}/.ssh/github"; }; - jack-key = { + anotherhadi-pgp-key = { + owner = username; + path = "${home}/.ssh/anotherhadi-priv.asc"; + }; + ssh-jack-key = { + owner = username; path = "${home}/.ssh/jack"; }; signing-key = { + owner = username; path = "${home}/.ssh/key"; }; signing-pub-key = { + owner = username; path = "${home}/.ssh/key.pub"; }; }; }; - home.file.".config/nixos/.sops.yaml".text = '' - keys: - - &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334 - - &work age1c8pawdsxptfslgrz2c56s39mrtnjzc5mm3hfzgr2wdwu2v6vfsdsupjsq6 - creation_rules: - - path_regex: hosts/laptop/secrets/secrets.yaml$ - key_groups: - - age: - - *primary - - path_regex: hosts/server/secrets/secrets.yaml$ - key_groups: - - age: - - *primary - - path_regex: hosts/work/secrets/secrets.yaml$ - key_groups: - - age: - - *work - ''; - - home.packages = with pkgs; [ + environment.systemPackages = with pkgs; [ sops age ]; - - wayland.windowManager.hyprland.settings.exec-once = [ - "systemctl --user start sops-nix" - ]; } diff --git a/hosts/laptop/secrets/secrets.yaml b/hosts/laptop/secrets/secrets.yaml index e5720ca7..56fff9b4 100644 --- a/hosts/laptop/secrets/secrets.yaml +++ b/hosts/laptop/secrets/secrets.yaml @@ -1,9 +1,10 @@ ssh-config: ENC[AES256_GCM,data:/TWslzoF2wtZ9T41H1y0wLNEx+Xzff8pQGr6AfEcACExRCv4rd5hD9pNAlmlcTtISJJBPEWY45WsLfSKuD4r3715IENM2biQUvlq47THfkGviQuQ6KAXiJxBQ/7qRNqGGt7WFRlWFRGYCiyjw9h4pOhovGgw8TU6tIgIsXjo0psclHoJoE4B3cSOby7DbN8jVI9NjpBGiQMXmUB3JVz7muC9F5EAs+XZUIl7TjQMxob3PiF5LqTJITODSxboAAk901rjS5gjQKpQKfj28TpUs5yCIo9RzSBO3z5orJy+ylupocRuqtC8ujAMqNb828G+0nRx18tpiGqXxRWUBZRNbM+vQHWzb5JWQpEBsu1twsOownVVrkyPkbLpYX4YSSnRdnL8VHmlZfLk1ZFURbsdDSRf57F+Bxo5Yn8XAkFaM5HYgUo4VBabGzVVAHOBWJWi3lRrlAqYdMBbSvDl1t6eQ0xp990RGh7wZvwnaTDqtkOJnLoAknTFi4yjMzSyk5UV,iv:1UJQU4eBZE1BMVnJY2CQTDH8jXSMlrv3gGU3cKTOvdU=,tag:OzLQRkTAKG2KQXv+Vh7Msw==,type:str] -github-key: ENC[AES256_GCM,data:xUgFMlBo8e+3eXqNscxbby1dWug3SgUagDiNUe/IGVbU6cczkaJ3uOaB0OuRBQ8AYhOLkzXj0pIKjUrElHwmYrhURtS1aF4SFEGJsjhhobNA//j3E2/5/nLVjfco+lRzyHdwmsNhEUCqEhsXrrodJMb39H4b5oip3z0rjc729YveiWUKQxXVZVPurp3nq9yNnix9R4CA6XYFRW6T6MNqgPD5qhbcDlhxLb/SN+uI5h+5eZIS24VDWlKaTaCLL5KLhZmfuA37SquOQ+edi9Yg8MnfrZkMrp/3qmAjP2rSQLMOc4QdQCLQBQSf0/snpydgLwY+FoJmMSztwtkqUdIZWOfDUJbJxegEOrAR68jLTNbp+GYiDn3thtOZDiK5p/M1amjCT+A9qeFMed5WS+aZHNTRbR9UcfiP6+48MGZFt1mr7q+/CoL04/DTp0w6tUf6/SZD31NvTJDqngkhpc0ZH9Dh5+2JcnBWpq25AM36kZTn1hIQCLNTr/oGWZXSLA2tksAhQCaUcFj4IIh6Bl96,iv:GEJsAs5NriwENYTV/VShgJF6iMmrtTwNiXOvfXyEP8E=,tag:nfZgsFqaet075GjQAoVZxQ==,type:str] -jack-key: ENC[AES256_GCM,data:VfCl3wH0MMBc8QDyjLDFeSvzSEsf7uGpfJvRjFrmjW+bPRUXBpZhJV8a9VQIAz7z7zZXvzARMfCeI0ydyC57CW81GH5/H5pneJ4b+xreINjVfdLbL1nC1thelo/O64jda/L+xVKhgE+QQi8/zt4JmXGghkP+74nYcTTaMpmcbgWw354J1ybXqyCEY+88nsJ1d2s+M7M2bplx4fGb7sLUs6sqdsad3sENzhH/0HQCFXreHTtgsLbIs8ccmdRgFNKM8/wD0OoW76rOQsJoA9JY4yOTQNVoX5M8+Olj6+wVlt6QBrWrYRuEztGnHrHvzxiHXtmEkMwVNfoPpEflQyRYRa0rVp/66REOkMckGx6/LbxKFgrxnifRlsK3kWd28v2bRGVQOghUluYUtVkaJ+eh6o6ik0NQKx8/H6BznBSDE6MjDwbLv434LHBfDtAqhWN1eMbOlunFivsl5Hb/6rl9kydHlcCS6FY8cUHoKQ90gDaUuDrvUifwmdO5hU0GH5tgvGi1ReK9ndcpQsrHptG6,iv:oC1xU5Tu3The105VYRmxIw4kEwDoqe8T/EH6mmqpqwQ=,tag:Pu8c536u6W7ALrqjRsvXDw==,type:str] +ssh-github-key: ENC[AES256_GCM,data:RAfRb8YN801tfee4LKADmVQre1ANGXJfTSGl79CPiX0eKzf591iUhKgDSiRyEW7RFs6aGngj41QbbG5gUAsNtSIYSP4Hvhkuv2tujSqak+0PPiex61B7ldKet1o9Z2JID/jaAMbwR16w5fY4hpvYKbFg5yCeGpUk/jBW6KvgzxQEtElNr4c5i7ebF1HxFMN5f9rwMDFxYITYoSU7A3WZ/W4Vsciaqv6aBfSuXCJjDvUsvv20wICMKasDPX+P7MHNnljdJJ/E2Y1JD0G6FVFjQHuXmkLyRplgk5u+P7jIguxhcw9WVdA0rN+ds11ihfKWk6XRp/k5NXkOFoxcJ3938vA3TTTKGlqlj1HUeFdG0Z6CTy49S7HEWerqlh0XdTyz6TiBiCC1uyAZu+l7NIP+L5GvWxNZ3u1I46VpPHIPTlrYa1ZkI2f8i0Zhz+xAU5sxuZdIVVlPowKORPhMsaF5IycrRQLvst/obRgjJ9QJGVu4wSzIbcg8RpDy1CAQFvJMMy/9Qfm1UfD5FQAC38yn,iv:tF4BVUlOxWSvoEdw9FbaEP0EswKhfkFdTGf1fm8TkGU=,tag:1e/KwW02b59iDoGqcbowpw==,type:str] +ssh-jack-key: ENC[AES256_GCM,data:TkSZOy/VuqkPXxzUNoqvvDE9kNuLMusnFwnLgWI9OWfvanEPW4tjCHM4M+lsR/XUAYQqnxgRo3pza54S6VwdPZ03KwScSTl3DKeTDpSOXJY3ACD5jOdh88l9aRQcb49MFWP8FmvkwA8xKudXt3CBNgHAqtZMCHL7DP2UDtJYPGiGpFtx0S26iBJy6njN3pxjahmw2KbcRLiGBXaI/JwDZNXH6C0eVkDt6XDcufnRv4tYzfuXG7JbyNZL5GXtCIfPQU+RUVpKVv/0QWIdopnFgpvJuPzBZzgMihQPVF/+C6HcIC6hDckR/7NkvT3akR4AG3Z4uPapS0+f8Nq6s0oMMO7c47tHjfkVoORwMKT9gbTCdfdc26acMW+PNuYm9xZOpx6qGHx6k+suiz4mPfiC5YeyjLLiTLwEFiNpTWk/oQssb4oy07aAPimg+C+mopZBs5x+ZWOMIHyBYH9XYhhhplyETQrZslhhqVj1n/o2Kq3kW6gYtggAncmWl48EVPN6L6zGNwsW3uFwtownJeWK,iv:mj83CdVsbGrjy3wCPGMEkSXQ5Ofhvdtrji1DDKD6Qts=,tag:8EmV/KhNk5IUek0NEYMacA==,type:str] signing-key: ENC[AES256_GCM,data:NvLqmt7NzrWkbQQqFfosmSMvEv8C8+MDDpxSoDo3zZ3MR6WXr9B+6CnUc6rtevM230wgE17VC9XlmcQxX+PjJsWq6gZteK5THTIcrR5zPJVNlVCEyeLKoFj/6m7qBgyyoN3OjCNjgMkhsm009jwBgNk0qJMAYebOGo8eoP/al+4ytm7dhna+iX5WZabAg0J4z4JMDQonqQl3SaDnCEdHvk9m7ZEP2vUFscPkbLj4ewgFq+bUCHOOQb2uqRJoEgcR/NetRFcQfzcU6lp7JxobaICaO3zdmomUm7oabIUTrc3Kom3Wjw8ryqfqC1/SC0SHr5XGk2ygk0WnlQ4kNshqriL2dwbWAzy1Z/cTX9+aB/KNtC0U6zWG1bpnL3dgSgvhRiocIis/eNg1HWsLWVicmdebL/lXHztxFMdTuX/gWgQBotggTmx+OFGZfP9ZGlF3635mDxM/fEOCtTyA195dMicCUsjEpBegNtXsp+oOtxyRI0jSW47MBcXFP09f5ywELTPyz4eOUHO8sQ6UfJ6X,iv:KNQUlMPaiR4x1Fw+HZe/EOmh/gfsrqlefpq23uflz/8=,tag:illu42HKunQXnijjsUIvnQ==,type:str] signing-pub-key: ENC[AES256_GCM,data:XuokZmCsnaNQ0rvVa3k81T4vtxw//r63xp1yHDLaNAMwA2r2bh6addl9WoAmm76g1rweqZrAAIw1PXDb90ubPaBP1iEHSkGZpwUpy/tOTePRdHMW2WtVvidpHQ==,iv:auB/bA89cJK6DnQi1BK2uldXRPyJfo+r7nl5qOLefUk=,tag:/I3kB6El1yesBMGOjJ+oHA==,type:str] wireguard-private-key: ENC[AES256_GCM,data:5pEYyxiyKWMc9/3M37JimpeIrfZOtpwBnxL26q5d2griryqK8/CNsrv1Idw=,iv:2bZ/HlkwQ5Q6+BsiPWdjmdn3NbZ8Ck1RxP5dbGm3gDg=,tag:YeSEZlqj8QNLzItiSGjbPA==,type:str] +anotherhadi-pgp-key: ENC[AES256_GCM,data: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,iv:rCIamsiBgMPfQkjclWGCsaHVjRNtf6md2bbLconbAvA=,tag:i7rcHD1mhOfa8KmRwvW+Yw==,type:str] sops: age: - enc: | @@ -15,7 +16,7 @@ sops: FSfQWnjhe/a7BJtJEcKZkjOQU0mYqlSu+uT2RA9diCQeRUJPRF+nAw== -----END AGE ENCRYPTED FILE----- recipient: age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334 - lastmodified: "2026-08-12T16:57:26Z" - mac: ENC[AES256_GCM,data:uRV+z//TyrFiqYcVWQmQ4lT2QpiRR2gHwrFV9gSZAoeAcpmZqqUN84a1AcbM4Vx61uT1mhtIYwiUs7kdhjoypGKWWPwKSIDY9wMDjLoc5m/q4EZQ8n60qwmYMkKrqHcinn/uE60jl6bHo8zMaF2zRmLJD2OB+GQ4r4Gn5zxsO/I=,iv:EnKVhZsmU1uE6L0zq5nGvkk8ooVcSA6dlCsOg1k4Njg=,tag:ho+IhaChdCxUeMGl3dGgBA==,type:str] + lastmodified: "2026-08-13T18:02:38Z" + mac: ENC[AES256_GCM,data:NXEE083Qakiy8OQKwRSX0hvbdwfjONNdL9hocIMfvPOY71wWYpS0HbD/qtPwv5VkHnyumAF7XwKEEOns1UeEULI03fYePq4tUphYTfyKh6UL1NL6WKUPXU/K0PHZrPIyo2CrvSSC0PeUc8ZbhjEeNbL16UELUJNtzZ6M/UbhqD0=,iv:kYFvQsnOqZLUshKiw1SuUFQ1MWOaN8TJgFZXmmAyYag=,tag:4+tFSVzJolcdhrF+pUfeZA==,type:str] unencrypted_suffix: _unencrypted version: 3.13.3 diff --git a/hosts/laptop/usbguard.nix b/hosts/laptop/usbguard.nix new file mode 100644 index 00000000..7a562426 --- /dev/null +++ b/hosts/laptop/usbguard.nix @@ -0,0 +1,37 @@ +# USBGuard: +# The following line allow all USB devices until a proper policy is configured. +# Run `sudo usbguard generate-policy` with your devices plugged in, +# then set rules = "" and switch implicitPolicyTarget to "block". +# services.usbguard.implicitPolicyTarget = lib.mkForce "allow"; +{ + services.usbguard = { + enable = true; + implicitPolicyTarget = "block"; + IPCAllowedUsers = [ + "root" + ]; + rules = '' + allow id 1d6b:0002 serial "0000:05:00.3" name "xHCI Host Controller" hash "4a4NgfdUaJO43rkCzmWRSeHHR/uUh5+SNsXnhosm9qs=" parent-hash "ldMchY4Tt4GPUYo30eNGvai+Fs/EdnVY3vMyxJUq4Nk=" with-interface 09:00:00 with-connect-type "" + allow id 1d6b:0003 serial "0000:05:00.3" name "xHCI Host Controller" hash "d+DNGWARDtv9nEK2ZvnNOCtFernuMu5/e/oZ7kCppqQ=" parent-hash "ldMchY4Tt4GPUYo30eNGvai+Fs/EdnVY3vMyxJUq4Nk=" with-interface 09:00:00 with-connect-type "" + allow id 1d6b:0002 serial "0000:05:00.4" name "xHCI Host Controller" hash "icotY3rI59mWiKsGxc59BGZZeBjfbuH0b4NUByj3cbQ=" parent-hash "tHvBfznK5rpQn+oa0PEEjHa29EAEvGyCcZixsfwA6W0=" with-interface 09:00:00 with-connect-type "" + allow id 1d6b:0003 serial "0000:05:00.4" name "xHCI Host Controller" hash "UbEoCZW8HT2ldc3qDeiK+IiQlGeaBC7F63681OwmKhI=" parent-hash "tHvBfznK5rpQn+oa0PEEjHa29EAEvGyCcZixsfwA6W0=" with-interface 09:00:00 with-connect-type "" + allow id 1d6b:0002 serial "0000:07:00.3" name "xHCI Host Controller" hash "pz29Oo0RhQ+5+7LgOZR4v3OlcsVv3m9kCgGsGUnoUjI=" parent-hash "DRyV2/31MYHdzkIEfbPQeb/1w4/PjOW6GqWrXkftf2I=" with-interface 09:00:00 with-connect-type "" + allow id 1d6b:0003 serial "0000:07:00.3" name "xHCI Host Controller" hash "O6iOpcl9StImWT62SrbeXacqbG6N/mTIipTRc0ipCGM=" parent-hash "DRyV2/31MYHdzkIEfbPQeb/1w4/PjOW6GqWrXkftf2I=" with-interface 09:00:00 with-connect-type "" + allow id 1d6b:0002 serial "0000:07:00.4" name "xHCI Host Controller" hash "Hp8B0Enf+ACRT2tyy0EqXj7eNsFDAnTRZadzuh/Iqd4=" parent-hash "l2vhvC+VGVKlkBUUK/usFu8jHJ/5bWOnJG6WzRexpt4=" with-interface 09:00:00 with-connect-type "" + allow id 1d6b:0003 serial "0000:07:00.4" name "xHCI Host Controller" hash "rJ3LKdvkCK3SUrCU3lV8qVbmPjA+r9Fe5106x2HlgK4=" parent-hash "l2vhvC+VGVKlkBUUK/usFu8jHJ/5bWOnJG6WzRexpt4=" with-interface 09:00:00 with-connect-type "" + allow id 0bda:c85c serial "00e04c000001" name "Bluetooth Radio" hash "Q/wlToV8WQgEYHBW/UIhnSwCCusCGqAR2D5gspSCImQ=" parent-hash "4a4NgfdUaJO43rkCzmWRSeHHR/uUh5+SNsXnhosm9qs=" with-interface { e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 e0:01:01 } with-connect-type "hardwired" + allow id 30c9:009f serial "01.00.00" name "HP True Vision FHD Camera" hash "eYW5fqReJd29tfHXkEktKC63dGfDpmlRMo5uMGUWwME=" parent-hash "icotY3rI59mWiKsGxc59BGZZeBjfbuH0b4NUByj3cbQ=" with-interface { 0e:01:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 0e:02:01 fe:01:01 } with-connect-type "hardwired" + allow id 03f0:036b serial "" name "HP USB-C Dock G5" hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" parent-hash "Hp8B0Enf+ACRT2tyy0EqXj7eNsFDAnTRZadzuh/Iqd4=" via-port "7-1" with-interface { 09:00:01 09:00:02 } with-connect-type "hotplug" + allow id 03f0:066b serial "" name "HP USB-C Dock G5" hash "JHDjLFApQNqijjmuKdJSWH5+1oLL7S6LQ9QHTAk5fTk=" parent-hash "rJ3LKdvkCK3SUrCU3lV8qVbmPjA+r9Fe5106x2HlgK4=" via-port "8-1" with-interface 09:00:00 with-connect-type "hotplug" + allow id 03f0:056b serial "201604140001" name "USB Audio" hash "OxQ8HQenW3/4HSGEBOSYFS15rXDTOaNDnjMbICweHgw=" parent-hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" with-interface { 01:01:00 01:02:00 01:02:00 01:02:00 01:02:00 03:00:00 } with-connect-type "unknown" + allow id 03f0:086b serial "" name "USB2734" hash "MSXcPAlZqkpTyZQylOhSIB8eMfST2AzVHV9EbrBGTWc=" parent-hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" via-port "7-1.3" with-interface { 09:00:01 09:00:02 } with-connect-type "unknown" + allow id 03f0:046b serial "11AD1D0A89EA2D08310E0B00" name "HP USB-C Dock G5" hash "DEGeuj1u4lwqrzp0UksFX7mSEY9JnGLxg7yxGbglAKE=" parent-hash "iPFGrgGz0sWgKQjWD/F8eNOhkeR728dTG8JJtkUSvuM=" with-interface { 11:00:00 ff:03:00 03:00:00 } with-connect-type "unknown" + allow id 03f0:076b serial "" name "USB5734" hash "BshoqybYo0IKgoDORYPRtbhhlmQrYAxPQb2EAm1JsWA=" parent-hash "JHDjLFApQNqijjmuKdJSWH5+1oLL7S6LQ9QHTAk5fTk=" via-port "8-1.3" with-interface 09:00:00 with-connect-type "unknown" + allow id 0bda:8153 serial "000001000000" name "USB 10/100/1000 LAN" hash "utEnXKJ57kRUbPcGUaNWhEyoOEbLOYAFxvlsyC0PZkk=" parent-hash "JHDjLFApQNqijjmuKdJSWH5+1oLL7S6LQ9QHTAk5fTk=" with-interface { ff:ff:00 02:06:00 0a:00:00 0a:00:00 } with-connect-type "unknown" + allow id 046d:0ab7 serial "2046BAB04T68" name "Blue Microphones" hash "cC6AQ2e1Q/BeFeostpbf1mH2WpoUmt6bhau4NlA3niU=" parent-hash "MSXcPAlZqkpTyZQylOhSIB8eMfST2AzVHV9EbrBGTWc=" with-interface { 01:01:00 01:02:00 01:02:00 01:02:00 01:02:00 01:02:00 01:02:00 03:00:00 } with-connect-type "unknown" + allow id 13fd:5900 serial "50026B76861EE752 " name "External" hash "l/QvVV5hzZj1z6OUwB/kWl+WnH/7awrdMBoiNVx660M=" parent-hash "MSXcPAlZqkpTyZQylOhSIB8eMfST2AzVHV9EbrBGTWc=" with-interface { 08:06:50 08:06:62 } with-connect-type "unknown" + allow id 1532:02a1 name "Razer Ornata V3" + allow id 03f0:066b name "HP USB-C Dock G5" + ''; + }; +} diff --git a/hosts/laptop/wireguard.nix b/hosts/laptop/wireguard.nix index 52957ee6..9a4ebe6c 100644 --- a/hosts/laptop/wireguard.nix +++ b/hosts/laptop/wireguard.nix @@ -36,10 +36,7 @@ in { ]; sops = { - age.keyFile = "/home/hadi/.config/sops/age/keys.txt"; - defaultSopsFile = ./secrets/secrets.yaml; secrets.wireguard-private-key = {}; - templates."wg-vpn.nmconnection" = { path = "/etc/NetworkManager/system-connections/wg-vpn.nmconnection"; mode = "0600"; diff --git a/hosts/work/configuration.nix b/hosts/work/configuration.nix deleted file mode 100644 index f67566e5..00000000 --- a/hosts/work/configuration.nix +++ /dev/null @@ -1,41 +0,0 @@ -{config, ...}: { - imports = [ - # Mostly system related configuration - ../../nixos/audio.nix - ../../nixos/fonts.nix - ../../nixos/home-manager.nix - ../../nixos/nix.nix - ../../nixos/systemd-boot.nix - ../../nixos/tuigreet.nix - ../../nixos/usbguard.nix - ../../nixos/users.nix - ../../nixos/utils.nix - ../../nixos/hyprland.nix - ../../nixos/docker.nix - ../../home/programs/gui/helium/system.nix # I hate browser's configuration.. - - # You should let those lines as is - ./hardware-configuration.nix - ./variables.nix - ]; - - home-manager.users."${config.var.username}" = import ./home.nix; - - # USBGuard: - # Allow all USB devices until a proper policy is configured. - # Run `sudo usbguard generate-policy` with your devices plugged in, - # then set rules = "" and switch implicitPolicyTarget to "block". - # services.usbguard.implicitPolicyTarget = lib.mkForce "allow"; - services.usbguard.rules = '' - allow id 1d6b:0002 serial "0000:00:14.0" name "xHCI Host Controller" hash "jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=" parent-hash "rV9bfLq7c2eA4tYjVjwO4bxhm+y6GgZpl9J60L0fBkY=" with-interface 09:00:00 with-connect-type "" - allow id 1d6b:0003 serial "0000:00:14.0" name "xHCI Host Controller" hash "prM+Jby/bFHCn2lNjQdAMbgc6tse3xVx+hZwjOPHSdQ=" parent-hash "rV9bfLq7c2eA4tYjVjwO4bxhm+y6GgZpl9J60L0fBkY=" with-interface 09:00:00 with-connect-type "" - allow id 17ef:6190 serial "" name "Lenovo Calliope USB Keyboard G2" hash "CfZ9R/aoXGm7BN/ojVEzKQwVoxCUtRWMuACrE7BL/5Y=" parent-hash "jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=" via-port "1-10" with-interface { 03:01:01 03:00:00 } with-connect-type "hotplug" - allow id 0781:5581 name " SanDisk 3.2Gen1" - allow id 17ef:608d name "Lenovo USB Optical Mouse" - ''; - - networking.firewall.allowedTCPPorts = [9001]; - - # Don't touch this - system.stateVersion = "26.05"; -} diff --git a/hosts/work/flake.nix b/hosts/work/flake.nix deleted file mode 100644 index 1df13d4d..00000000 --- a/hosts/work/flake.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - inputs, - nixpkgs, - pkgs-unstable, - ... -}: -nixpkgs.lib.nixosSystem { - modules = [ - { - nixpkgs.overlays = [ - inputs.nur.overlays.default - ]; - _module.args = {inherit inputs pkgs-unstable;}; - } - inputs.home-manager.nixosModules.home-manager - inputs.stylix.nixosModules.stylix - inputs.nix-index-database.nixosModules.default - inputs.helium-browser.nixosModules.default - ./configuration.nix - ]; -} diff --git a/hosts/work/hardware-configuration.nix b/hosts/work/hardware-configuration.nix deleted file mode 100644 index 1026d658..00000000 --- a/hosts/work/hardware-configuration.nix +++ /dev/null @@ -1,44 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ - config, - lib, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ - "xhci_pci" - "ahci" - "nvme" - "usb_storage" - "usbhid" - "sd_mod" - ]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/5dbf85d3-d236-4af8-b489-d6066bfe1eb7"; - fsType = "ext4"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/043E-1755"; - fsType = "vfat"; - options = [ - "fmask=0077" - "dmask=0077" - ]; - }; - - swapDevices = []; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/work/home.nix b/hosts/work/home.nix deleted file mode 100644 index bf1c251d..00000000 --- a/hosts/work/home.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ - config, - inputs, - ... -}: { - imports = [ - # Programs - - ## GUI - ../../home/programs/gui/proton - ../../home/programs/gui/helium - ../../home/programs/gui/pkgs.nix - - ## TUI - inputs.nvf-config.homeManagerModules.default - ../../home/programs/tui/ghostty - ../../home/programs/tui/shell - ../../home/programs/tui/git - ../../home/programs/tui/git/lazygit.nix - ../../home/programs/tui/nixy - ../../home/programs/tui/nix-utils - ../../home/programs/tui/spotatui - ../../home/programs/tui/pkgs.nix - - ## GROUPS - ../../home/programs/group/cybersecurity.nix - ../../home/programs/group/dev.nix - - # System (Desktop environment like stuff) - ../../home/system/hyprlock - ../../home/system/hyprland - ../../home/system/waybar - ../../home/system/swaync - ../../home/system/tofi - ../../home/system/mime - ../../home/system/termfilechooser - ../../home/system/udiskie - ../../home/system/clipboard - ../../home/system/hypridle - - ./variables.nix # Mostly user-specific configuration - ./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets - ]; - - home = { - inherit (config.var) username; - homeDirectory = "/home/" + config.var.username; - - # Don't touch this - stateVersion = "26.05"; - }; - - wayland.windowManager.hyprland.settings.monitor = [ - "desc:Philips Consumer Electronics Company PHL 221B8L ZV02144013987,highres,0x0,1" - ]; - - programs = { - home-manager.enable = true; - nixy = { - enable = true; - configDirectory = config.var.configDirectory; - }; - }; -} diff --git a/hosts/work/secrets/default.nix b/hosts/work/secrets/default.nix deleted file mode 100644 index 09177310..00000000 --- a/hosts/work/secrets/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -# Those are my secrets, encrypted with sops -# You shouldn't import this file, unless you edit it -{ - inputs, - pkgs, - config, - ... -}: let - home = config.home.homeDirectory; -in { - imports = [inputs.sops-nix.homeManagerModules.sops]; - - sops = { - age.keyFile = "${home}/.config/sops/age/keys.txt"; - defaultSopsFile = ./secrets.yaml; - secrets = { - ssh-config = { - path = "${home}/.ssh/config"; - }; - netrc = { - path = "${home}/.netrc"; - }; - github-key = { - path = "${home}/.ssh/github"; - }; - gitlab-key = { - path = "${home}/.ssh/gitlab"; - }; - }; - }; - - home.file.".config/nixos/.sops.yaml".text = '' - keys: - - &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334 - - &work age1c8pawdsxptfslgrz2c56s39mrtnjzc5mm3hfzgr2wdwu2v6vfsdsupjsq6 - creation_rules: - - path_regex: hosts/laptop/secrets/secrets.yaml$ - key_groups: - - age: - - *primary - - path_regex: hosts/server/secrets/secrets.yaml$ - key_groups: - - age: - - *primary - - path_regex: hosts/work/secrets/secrets.yaml$ - key_groups: - - age: - - *work - ''; - - home.packages = with pkgs; [ - sops - age - ]; - - wayland.windowManager.hyprland.settings.exec-once = [ - "systemctl --user start sops-nix" - ]; -} diff --git a/hosts/work/secrets/secrets.yaml b/hosts/work/secrets/secrets.yaml deleted file mode 100644 index cd0381d5..00000000 --- a/hosts/work/secrets/secrets.yaml +++ /dev/null @@ -1,19 +0,0 @@ -ssh-config: ENC[AES256_GCM,data:npBcAOSwHpApUASlZmRo4stwMrOjdrdmhfYwumjbTpcq8aQ2ybV8le7cjNdVqIyxgwxUFV4/tGfmsq4nlrWIO/85spwfC5DyPGaZ848NI3UZJj8k2GKuw5qk/xGsTveNhq+vNZQcHeL4aeXF2TRmFLDHYGTku9anFL7FWkQ75MmGW78XfPUEyZJ52ylXq3gkYeVSrl6cXuwJw/QBlu+XTgFk4MM+E5BTXBFFNJOYkIt4GwWX7wdI+QqPEof8J0ENYdxUAMKMueL4pLNclWP0fu7QC7gwwRJWjauCNElJiDhpVFa6WukJV/Ut+I30FH9cJtj0rSodeu0hq2fWaiQ0wVbQudxi0JcnxJQs+B9nb6kpF+TN0MiD,iv:c7DMZSmlgMMnNlR0/kNRKPYjCzvNQJ46mZzojHppSg8=,tag:ausjsFk0H9nOiiMebHXSUg==,type:str] -netrc: ENC[AES256_GCM,data:EOpuZhDVXe7Q4P/98C3gtEvkdawI26d4oX/wRNytyp/mAdkHytXiLpFdsuO/3DADOG8h1CCo1UTs9ex+bqoD/LdChdp7INfNDSQ+aDxTiG0rLBgjvy8TIj8=,iv:tc/RbN1Upbjv+3rU5zUR3P//a1Hj1xODInLMShg4i1Y=,tag:7E9G2g4g+eMeJrwI20R/1g==,type:str] -github-key: ENC[AES256_GCM,data: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,iv:2Mvmz1CFO1112RxjIl6sxyNIDqa/cg00um6RcQaHNY8=,tag:+zygdwQdCBeBXVLvAj/jJQ==,type:str] -gitlab-key: ENC[AES256_GCM,data:3vFa2NQIR0PVOJj8CTrGDRzFeo+G5P4e4LGYBAhjwnfm1q8D3pLHDcLP/Y5Rth5MpRtfYpomCV+8V7ia/zSqUh2N2toUEJyfkLEZOaIzcjli/EIKrnZriaqvQTPdfPzAskraYjpySbJimhkCM7xA9YjTdPIsz227M9GZbpXPHO2BkuqQf3zLGT0FnCR6gd+yE0NPgPw8ncmLnHfDET3lXbeVquxGqzndXaGAZU88sTwgBj4G6lM5aGJpzyGu+Wpx2ZeJQnUxxtBS9IaZXGUAR3ENdEPh4NsprxuEHsWFKj4uMYU0yGncPcsshdTL0OEfS0S9+E0EUIUwMdPmnEZDJBHAFo3tA/sMvY0sz7N17o5wg5PUEHwQIX2Xsxn6XBkfiM1DemV36KmaKQvJTc+Xv96XT1q6QY8ln5gPIqxb+5MJ1/DUR05vf6rzonso6XAPS18TTk6pnpI+0zfTcSE9K13xMiKSdHcciiaKzb6eYV3D+Grnw2YQVNBU58Of2ET6ljmHrcqmT+PPutbgXZ/+PtJmRN7vnjt3puDcrgcRxMvd93d4Xa4NH+Ex1oP8Dp0ihjO16uk2O2tMd0p4E8kOIPq6GqQKY1wlMX80NpFXnZmiN80UWUkbjulu+TU/MTp3dqs2K4Jct2edZhGgTPONraBcl1U1tr+iHtEPqOFRyriFIPHmkjVsJMUTvjGXCcgW2/w81RK6HWf1Ojqu7ruK5zMKgOBi3UpAEyUGNM4P4OKt9zfQbDcsOWMBJ/Q3+kzSK15XIocinTkfGVIZg5gRb6tiIox1YMnxwEn9j046Q9kWy8mCy0iAZVaTsComZYW9eV5lovl42QvWPTLM1GCU0W40jCc1Wtw9IVjgSDEO+TYRy1H8XMjlwADWw/U5N2o8BxYKkBCTiJ8lkxrLAbMCdLxjprbt0OgXqFO+BD1QTp+JP5zjg+Yrm+lyEXrG/8MCV81U+mYZLcTR1VRXhNGmbJ7JpJQfxvFNdYz0Q5cbqYE2/+metDgolKzv6RQaOFcyEgXSTJ85Pj6U2xrWvLrgnixtsLvQ1OULVd3aTEJk6v0USljKqvHyUrq56eIQqg4CtpHw2+AIicXF5L2YfnkIEvCp8Aj3z9YzGK31kVx0xcUO44eEY5g+tw2puMBY8h4vNbWQuZG2FZj6H8+iqfGEPXwNM87FHkk5fLxH8b9LjsIY69kY/oWBVeqwT7IDXgkyhnj4cHqVL+VJ1Xpx7nlMQAv31Jr92ZdxXVlacDe4VkVK2cDSQJmciM3rQKtechKJqiAWvyvftCQLmdHknjEusE1VLvTG72BAftQwxZgDFvLPPBJU8V/92CqNcJz8YFyrSB/zbI/+jkwa+xF0xGWpT2iTPYS5kdHJNclCnM9FvtYRV7LYCM3m4IWYK0GxMc9PlgYVlUzTnZtu6XLkt3qprYBkXcv0N2zj4vr1eGNuE89FnGr9RBj/MC7bMX3tEh1vzzeIYL8x/CVK2k6nJr0PXNvb8tzaYPI4ZKuTTDMOTLdcSBczY0846fSIbfTzPUENoQh2GHQGxlrMkhYcaDFwi5WBB+VUCZwjdYZ6Qie20DHZYg3GakxRBv62t3vaCLHtBLsGnY3U0TvDOMUmpbciO+yXHyhpw/maIRlHfh9g0ifXhSS14SJ5rqT8S+NDFiu7I++XlwKyyodFxPI36diPHGjZv5AoeG9Zf8Z3FhXuQcCMKQ7ZYOqlpOpXix3syee9v+Zys5ChOtb5JAO/sDIqVdJOIrsrBUv0sbQ+lpxxzwsKKUJQa5RotDp6zbMDaeoQaUiurgaRWDeKrvDc7HoYdu5HJVEwUCzBrugQi+agqsgv9eXfz8k91dDJ85DQAcIw4gJ3UMXmDu0lEhyfmL4zhQ4iH14TR5EnsBZ7aHkLbdGo8HVR3clyUV1pz4BmiQy3Ry7mpalPzggHSdDpRegqZ/v57U0n4koipaRpWx9+SzHrc5Htyv6BksY7P10jkPBND1V7v/SfKhybkqdxW6R8Y57n53SzD/D/qI71+usijxJ1dZFxzKAiOvGrm0bkWLKovNXAH7M9SQN5iE/CxjsRvCZg5vRSzzWWV2ugE03os6UKB4EVpe/1GhzITFx5nKTOMwIChCWZ+fMJSqjDW09kVigIzNYAkBLL/n0bVJmJFEed+kxO35+TNodE+L0w/1u3knoZ9Y/9J5ru5lZnFpa8Nl+J5pWoB02rVtFfDEsA00HuHxkY0cHLfS71IPiExsvvTlUUK8bhYXq4OIO3DaIUtI1kXZEc3+6/RXR/03QUEWFaOuZ7ZjuyyjlaZawcyBp32LRjBIC3Sj3HLyUyiCtSOCuLDuMQbD5P7iGJDGJupQfQOjQ73zaHsTjR3fi+vjRBii5zjEYYYEcGB3w+OxTnvc1gIsAGbJQ7XCp31is0RVnVpVPQmlRsZTswrVwUXx3ggpS6xIM4nWAi2e5lskxBono7ED0OWzBok76OTv0DwYKihdJUaGtcuUMdJ8WxJR1PE6Oe1wjrGoE7zXS9uQe2TFTMnpSxqsPyIJy30R1O5vSK/daZDCXCKs8924wKgmC5Z7gxU3/YTLv8wuJiZaYA85f16r0cuEj0z/a+wndf8x0vR+FybcCH6OvcYfVB5f0oGitY+M0F+dVkFNBGON/c7jv5v6bb/NhAPco3FmH0nify4a4oKqHdwBnV66Kq27DM1xfO7MRJRLRxoA/AcLuz308uPLxsQY6YoieAIFTI3clupk+OvorNDyIy8i9uSyYA7Y68HWzqwlbbNgd40EorIQBdVeBKBc6HFQiU0VzCj9IPIVy/E2KRrOFcfNYF5ABn+/sZ7rs6FR4V1fN02rHX2pT99h+wItyVO7urMoX4HigK415Fi3Cf2aFFZlUP6Cj4Xjm/bzWi3e6kqwwUY3tcILAiFXUthZz3RBw9KTwOL8cfPp+3cagNyO3mI9azyfuuk458vKSbgxpqIRFubTUDG59d5MiF1LF5Xuzjrmx1ZyJgMjLFl9tK3sZrcgzCvsCNZmYCjBb8dhfafeQ5bmw4aVlVJFEszPDYGJKs3ejXOZRiRwFrXPW4UyFNajiHYJKBpO5L9l6Pin90SJ+1fHXB3w8HOkJr3B/jYNXRiWS786YUn+zL4YDyecFtOFWgfWR6gA59nd4qI9dk01DS78P4dcEqPyhAFn+NL6YQ0wX6uoAhzHWaSXYtKqwE7huX10RxblUKxYjjNIsMdiSuz1qtivfGeRSY6hQx/pRSXTUbXsEUPGugoLXJacKUytq5PA9zfzideQw4M4uMAfs9+gxPRZbwvdFHDYbXWOBb+N0Ejv/dmK+7d/tFVP8wvQ4MMs1/7av4sCBYHx6XMbJq1VWKr+oi4jWDX7ayT7Me4kX6d+e9cw7gvxpp26687R1M0cEVWGnyql5w7nqNsBSm6EJASgu3PWtfMs61Z6uk+HvqrJsQLrvkfYhhdv0Q6Yn+OA0OjDEJtkdZrB9/x0mZhQdSbvto16yHPTmythygYh20DHPdfhA1Hj8PuOxqzOzRRjUvcUzt1zFMwP7xoh9OScF1gweVvioFzpQ+Wnwn3pej+z8meR1Pyb9AzSO3tyz4EWYaQG9U0tu0pTBsGIVLqhDgTh8coMVlEQLpWupADllM661pvSfDfZlbJt4rxlTAlruoFY+TF2sPZxragaQvWoTBqQEJWNuK1pakozf9R48MhmI3RV+y3XVJHV/s/jZrcId6C1CF3qQOiOn8hhGRVsvYiRVAqpth04dMfiZCpjGSBblTwI5zD8RjYPwwnRG+gDqko8zsR67A85P3JLnVT8V+0N2+7QxkfHcMWmCRauO70s5tc4RMNoCQk2gM1KYU6Ssul5mSsJ/F+2k1ACypyH/sY7NZV1jMtkoahlIt7nOjS4LN8nrzyBUj/wvpHvIT8Tx4wc8/3I57CL5ggNvikTu7xl0ta0kGuAP/hJThRxvBvyGkcHU5FDJhp3G7U4Vr4i5EB/MjPOtEd0a0cC4vnz1Xke6YTJl2j7NXMjt0TI/y25phsFN4OlLtbH1CrSNnw2vJlo+YmybCuUwuv+ortw+Zp8jjZXWkuuPT+pBRUvoTV9O40jUt3mKyFMjqCXo50xzNkxlGpFUl+EfAgqlveih4H6NJsGmHh6z/hVR5pPmMXyfZU+J2hwuDrbBjHTp/882pNdmaJA1fcX9VRti7bPKoNyY7f3fiucCmtiwg6jrRjABfZHdwj/xHxKwoL4YsA0VGZKbhk58+G61CM5iMqiWaEN4rC0WZnmPMAHc3272u8ue1hBoAbMnZnl2H9HdWQuLsFmqjWDW197bfEgsYKALY3fGGi/Rrt5WAoG73EjAmgK17WTKZhlJZCasZ/Hul9ax/2S/UhilJp41oXa/QsMtQGwau5jzXsGolfWhLBhTYMkCme2JD1sLoalKIkdPbmmtJx4VKlJq4Rc4WOKDXGhyfkUMhEutz8BHCjonJ8MTEyvopiqWPYepd1cqW+X2uXhLYLudLvvEGdMq0,iv:pbe2MtYmFmY/kS+gM9xyI6cXViVmzPB3H7XL1ZH47h0=,tag:NmSKMlAIEOWE8Jw/iy3+Xw==,type:str] -sops: - age: - - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVby9Wa1NUUkpyeDMwU3dM - R0EyeFVtT0tJU0pKaWtXQzRkTDBPY3JjcTFrClNIQnl2WVorS0FZZjhicTQ5V2kx - MUZTZWZtaUk2a1ZhUTBCUnhkWHFIMFUKLS0tIElLcjJLZWNLOUJYN0NNVGFNUEFN - RkMrdTYwNkY1Tlc3M3dxTFdkRXJJZUEKUlYU45jXpS9hJO9Z/uAQ6XMj9QWgMMRI - LbJxvt48+yC+Y0XKOtDE0lHAuGNzUG8R/7FB1tTD8NCamBe46KGCIg== - -----END AGE ENCRYPTED FILE----- - recipient: age1c8pawdsxptfslgrz2c56s39mrtnjzc5mm3hfzgr2wdwu2v6vfsdsupjsq6 - lastmodified: "2026-07-01T12:18:22Z" - mac: ENC[AES256_GCM,data:rX8MoqaMAbfuMdcQMw8eDGXos3VgbA3VfNJJcGGk2xQPuTC7FW5S0BVuh68ajzVv0oaYtT8pBRktv9Lo2VDY6Mm4neVuF/9IgV0cTKwvx5ACjN40Zt7OU+QtlQK44kDXsJQFyV+BYHVNiW8jej1h9d7vSAgG0hD3GOpvtK6ZY6E=,iv:3B3COjvazDVRkUsuIiLlOCFqlE9ooFR8dC5PTXe/q28=,tag:QEqcRTks4zSX02qc9KDsrA==,type:str] - unencrypted_suffix: _unencrypted - version: 3.13.1 diff --git a/hosts/work/variables.nix b/hosts/work/variables.nix deleted file mode 100644 index 9247e0c5..00000000 --- a/hosts/work/variables.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - config, - lib, - ... -}: { - imports = [ - # Choose your theme here: - ../../themes/nixy.nix - ]; - - config.var = { - hostname = "h-work"; - username = "hadrien"; - configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory - - keyboardLayout = "fr"; - - timeZone = "Europe/Paris"; - defaultLocale = "en_US.UTF-8"; - extraLocale = "fr_FR.UTF-8"; - - git = { - username = "Hadi"; - email = "hadi@example.com"; - }; - - autoUpgrade = false; - autoGarbageCollector = true; - }; - - # DON'T TOUCH THIS - options = { - var = lib.mkOption { - type = lib.types.attrs; - default = {}; - }; - }; -} diff --git a/nixos/omen.nix b/nixos/omen.nix deleted file mode 100644 index e0ebfbdb..00000000 --- a/nixos/omen.nix +++ /dev/null @@ -1,68 +0,0 @@ -# Omen laptop configuration for NixOS -# Import this only if you have an HP Omen laptop -{ - config, - pkgs, - ... -}: let - hp-omen-linux-module = pkgs.callPackage ( - { - kernel ? config.boot.kernelPackages.kernel, - stdenv, - fetchFromGitHub, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "hp-omen-linux-module"; - version = "rebase-6.15"; - # Upstream only rebases per kernel branch and currently tops out at - # rebase-6.15, while linuxPackages_latest is already on 7.x. If the - # module ever fails to build against a newer kernel, either bump this - # to a fresh upstream branch or fall back to a stable kernel. - src = fetchFromGitHub { - owner = "ranisalt"; - repo = "hp-omen-linux-module"; - rev = "d4b9b5adb84581c3874ca3985dc749c40c3ece67"; # rebase-6.15 - sha256 = "sha256-IOXHzcCB0n1InMjeIu3XYEJ4bhbHS3NIlS8/+4XIwkQ="; - }; - setSourceRoot = '' - export sourceRoot=$(pwd)/${finalAttrs.src.name}/src - ''; - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = [ - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - installPhase = '' - runHook preInstall - install hp-wmi.ko -Dm444 -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/platform/x86/hp/ - runHook postInstall - ''; - }) - ) {kernel = config.boot.kernelPackages.kernel;}; -in { - boot.extraModulePackages = [hp-omen-linux-module]; - boot.kernelModules = ["hp-wmi"]; - boot.kernelParams = ["hp_wmi.force_slow_fan_control=1"]; - - users.groups.omen-rgb = {}; - users.users.${config.var.username}.extraGroups = ["omen-rgb"]; - - systemd.tmpfiles.rules = [ - "w /sys/devices/platform/hp-wmi/rgb_zones/zone00 0660 root omen-rgb -" - "w /sys/devices/platform/hp-wmi/rgb_zones/zone01 0660 root omen-rgb -" - "w /sys/devices/platform/hp-wmi/rgb_zones/zone02 0660 root omen-rgb -" - "w /sys/devices/platform/hp-wmi/rgb_zones/zone03 0660 root omen-rgb -" - ]; - - services.udev.extraRules = '' - SUBSYSTEM=="platform", KERNEL=="hp-wmi", ACTION=="add", \ - RUN+="${pkgs.coreutils-full}/bin/sleep 2", \ - RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone00", \ - RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone00", \ - RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone01", \ - RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone01", \ - RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone02", \ - RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone02", \ - RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone03", \ - RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone03" - ''; -} diff --git a/nixos/steam.nix b/nixos/steam.nix index 67f49033..cc3df605 100644 --- a/nixos/steam.nix +++ b/nixos/steam.nix @@ -18,6 +18,10 @@ STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/${config.var.username}/.steam/root/compatibilitytools.d"; }; + environment.persistence."/persist".directories = [ + "/home/${config.var.username}/.steam" + ]; + programs.gamemode.enable = true; } # Example of recommanded launch options for your games in Steam : diff --git a/nixos/usbguard.nix b/nixos/usbguard.nix deleted file mode 100644 index 165e8f61..00000000 --- a/nixos/usbguard.nix +++ /dev/null @@ -1,14 +0,0 @@ -# USBGuard: -# The following line allow all USB devices until a proper policy is configured. -# Run `sudo usbguard generate-policy` with your devices plugged in, -# then set rules = "" and switch implicitPolicyTarget to "block". -# services.usbguard.implicitPolicyTarget = lib.mkForce "allow"; -{ - services.usbguard = { - enable = true; - implicitPolicyTarget = "block"; - IPCAllowedUsers = [ - "root" - ]; - }; -}