diff --git a/.gitignore b/.gitignore index 92b2793..2bbdbfe 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .direnv +result diff --git a/configuration.nix b/configuration.nix index 4567b45..a4e27b1 100644 --- a/configuration.nix +++ b/configuration.nix @@ -345,11 +345,13 @@ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "25.05"; # Did you read the comment? + # Set user profile picture for GNOME # Set user profile picture for GNOME system.activationScripts.script.text = '' mkdir -p /var/lib/AccountsService/{icons,users} - if [ -f /home/jet/Documents/nix-config/cat.png ]; then - cp /home/jet/Documents/nix-config/cat.png /var/lib/AccountsService/icons/jet + img="/home/jet/Documents/nix-config/cat.png" + if [ -f "$img" ]; then + cp "$img" /var/lib/AccountsService/icons/jet echo -e "[User]\nIcon=/var/lib/AccountsService/icons/jet\n" > /var/lib/AccountsService/users/jet chown root:root /var/lib/AccountsService/users/jet chmod 0600 /var/lib/AccountsService/users/jet diff --git a/flake.lock b/flake.lock index d1c615b..28acfe9 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1771269455, - "narHash": "sha256-BZ31eN5F99YH6vkc4AhzKGE+tJgJ52kl8f01K7wCs8w=", + "lastModified": 1771531206, + "narHash": "sha256-1R3Wx6KUkMb4x4E5UOhW9p6rqiexzSGGWxZqSHqW5n0=", "owner": "nix-community", "repo": "home-manager", - "rev": "5f1d42a97b19803041434f66681d5c44c9ae62e3", + "rev": "91be7cce763fa4022c7cf025a71b0c366d1b6e77", "type": "github" }, "original": { @@ -43,11 +43,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1771257191, - "narHash": "sha256-H1l+zHq+ZinWH7F1IidpJ2farmbfHXjaxAm1RKWE1KI=", + "lastModified": 1771423359, + "narHash": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "66e1a090ded57a0f88e2b381a7d4daf4a5722c3f", + "rev": "740a22363033e9f1bb6270fbfb5a9574067af15b", "type": "github" }, "original": { @@ -58,11 +58,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1771008912, - "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a82ccc39b39b621151d6732718e3e250109076fa", + "rev": "0182a361324364ae3f436a63005877674cf45efb", "type": "github" }, "original": { @@ -88,11 +88,11 @@ ] }, "locked": { - "lastModified": 1771269662, - "narHash": "sha256-hOElvRG8mOCmYc9vhZOqnccqIJRoD6VR6vXOOj0attk=", + "lastModified": 1771562861, + "narHash": "sha256-6oT3rF68W8HERLXvFfEkpz8xpAVLKZsY1ZuR/BbDTO8=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "9294a1e30995dc950e2632296a74baae25252473", + "rev": "7783a3adf3d5a9599a82c75a44c7482e70398ac2", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index f9e21dd..8c47f0e 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ nixos-hardware, ... }: { + formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt; nixosConfigurations = { framework = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; diff --git a/home.nix b/home.nix index 59e28e4..4ef65bd 100644 --- a/home.nix +++ b/home.nix @@ -4,10 +4,20 @@ imports = [ inputs.zen-browser.homeModules.default ]; home.username = "jet"; + home.homeDirectory = "/home/jet"; home.stateVersion = "23.05"; + # Define configuration directory + # Note: we can't use config.home.homeDirectory in the let block if we're also defining it in the set + # recursively without strict evaluation issues sometimes, but here it should be fine if we just use the string. + # Safer to just use /home/jet or home.homeDirectory if it was passed in. + # Actually, `config.home.homeDirectory` is safe to use inside simple attribute sets. + # Let's use a let binding for clarity. + # Configure GNOME settings - dconf.settings = { + dconf.settings = let + nixConfigDirectory = "${config.home.homeDirectory}/Documents/nix-config"; + in { "org/gnome/desktop/interface" = { clock-format = "12h"; clock-show-weekday = true; @@ -19,10 +29,8 @@ enabled = true; }; "org/gnome/desktop/background" = { - picture-uri = - "file:///home/jet/Documents/nix-config/cat.png"; - picture-uri-dark = - "file:///home/jet/Documents/nix-config/cat.png"; + picture-uri = "file://${nixConfigDirectory}/cat.png"; + picture-uri-dark = "file://${nixConfigDirectory}/cat.png"; picture-options = "wallpaper"; }; "org/gnome/settings-daemon/plugins/power" = { @@ -64,46 +72,58 @@ }; home.packages = with pkgs; [ - git - wget - helix - kitty - zellij - jujutsu - vlc - docker - nerd-fonts.commit-mono - qbittorrent-enhanced - gimp3 - inkscape + # CLI Tools bat - zoxide eza ripgrep + tree + wget unzip + zoxide direnv + nh + google-chrome + # Development + git + gh + jujutsu + helix + mkp224o + claude-code + nixfmt + + # Terminal + kitty + zellij + nerd-fonts.commit-mono + fastfetch + + # Desktop / GUI + vlc + gimp3 + inkscape + qbittorrent-enhanced + signal-desktop + beeper + element-desktop + zulip + logseq + steam + prismlauncher + nemo-with-extensions + font-manager + antigravity-fhs + appimage-run + + # GNOME Extensions gnomeExtensions.hide-top-bar gnomeExtensions.wifi-qrcode gnomeExtensions.system-monitor-next gnomeExtensions.clipboard-indicator gnomeExtensions.emoji-copy - signal-desktop - tree - google-chrome - font-manager - steam - prismlauncher - appimage-run - gh - beeper - antigravity-fhs - mkp224o - claude-code - logseq - element-desktop - zulip - nemo-with-extensions - tor-browser + + # Virtualization/Containerization + docker ]; @@ -112,6 +132,8 @@ OCL_ICD_VENDORS = "/etc/OpenCL/vendors"; POCL_DEVICES = "cpu"; BROWSER = "zen"; + # Set FLAKE for nh + NH_FLAKE = "${config.home.homeDirectory}/Documents/nix-config"; }; programs.helix = { @@ -205,14 +227,13 @@ jn = "jj new"; jdiff = "jj diff"; jsq = "jj squash"; - nhs = "nh os switch ~/Documents/nix-config"; + nhs = "nh os switch"; nd = "nix develop"; h = "hx"; vanity = "mkp224o-amd64-64-24k -d noisebridgevanitytor noisebridge{2..7}"; }; }; - programs.kitty = { enable = true; settings = {