From 5768b554e36d28652c43340646787de9917c64ce Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Mon, 2 Mar 2026 18:53:01 -0800 Subject: [PATCH 01/10] feat: add a alias "c" for claude --- home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home.nix b/home.nix index 758dca3..37a2e85 100644 --- a/home.nix +++ b/home.nix @@ -204,6 +204,7 @@ programs.bash = { enable = true; shellAliases = { + "c" = "claude"; "." = "z .."; ".." = "z .."; j = "jj"; From f15ffa7e61f884ab30741e87e74cfdf5700eb7e5 Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Mon, 2 Mar 2026 19:13:19 -0800 Subject: [PATCH 02/10] feat: add google chrome :( --- home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home.nix b/home.nix index 37a2e85..72d7266 100644 --- a/home.nix +++ b/home.nix @@ -108,6 +108,7 @@ zulip vesktop obs-studio + google-chrome # GNOME Extensions gnomeExtensions.hide-top-bar From 4f4ca386790bc7ff7066f9c70f6c9e40b875268f Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Mon, 2 Mar 2026 22:07:41 -0800 Subject: [PATCH 03/10] update: update nix flake --- flake.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 701f0ae..4d22f8a 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1772218752, - "narHash": "sha256-G8nArvOTZXU8DRvrzAdz3Elcj6kA/vMtvY9mrGLATtA=", + "lastModified": 1772516620, + "narHash": "sha256-2r4cKdqCVlQkvcTcLUMxmsmAYZZxCMd//w/PnDnukTE=", "owner": "nix-community", "repo": "home-manager", - "rev": "f3a30376bb9eb2f6f61816be7d6ed954b6d2a3b9", + "rev": "2b9504d5a0169d4940a312abe2df2c5658db8de9", "type": "github" }, "original": { @@ -49,11 +49,11 @@ ] }, "locked": { - "lastModified": 1771756436, - "narHash": "sha256-Tl2I0YXdhSTufGqAaD1ySh8x+cvVsEI1mJyJg12lxhI=", + "lastModified": 1772330611, + "narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=", "owner": "nix-community", "repo": "home-manager", - "rev": "5bd3589390b431a63072868a90c0f24771ff4cbb", + "rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400", "type": "github" }, "original": { @@ -69,11 +69,11 @@ ] }, "locked": { - "lastModified": 1771734689, - "narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=", + "lastModified": 1772341813, + "narHash": "sha256-/PQ0ubBCMj/MVCWEI/XMStn55a8dIKsvztj4ZVLvUrQ=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "8f590b832326ab9699444f3a48240595954a4b10", + "rev": "a2051ff239ce2e8a0148fa7a152903d9a78e854f", "type": "github" }, "original": { @@ -99,11 +99,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1771848320, - "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "lastModified": 1772433332, + "narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "rev": "cf59864ef8aa2e178cccedbe2c178185b0365705", "type": "github" }, "original": { @@ -121,11 +121,11 @@ ] }, "locked": { - "lastModified": 1772315374, - "narHash": "sha256-OQUKXqb5orWghLM0Ttq9Yb0BTvPHqcbHCacm3Mg7nSs=", + "lastModified": 1772517253, + "narHash": "sha256-Z0JxYlGXMFnCJgSGCamKD9NQbL/O7z4wz0/slUR2kIw=", "owner": "nix-community", "repo": "NUR", - "rev": "7b95523b69ea5c3ff1379908bc0203a01e1f8430", + "rev": "4411f3ec0cac5431eb409da2481bc97f7223ad6a", "type": "github" }, "original": { @@ -152,11 +152,11 @@ ] }, "locked": { - "lastModified": 1772306482, - "narHash": "sha256-092P58kRKiLBn0eg4eI67frffMkKiDhOa1ZOREmMeB4=", + "lastModified": 1772517053, + "narHash": "sha256-aBuL2TFnyBLR+t6iBlKnTWWzprXYKQQIaV0IuCSPPeE=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "2e593ac6926cbf44adc8c9ef785da024812d2467", + "rev": "32e9673aee2ae994ced561247918952398a3e933", "type": "github" }, "original": { From 3314dbaa9c5382c698a79ad11fd001efc2661453 Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Mon, 2 Mar 2026 22:19:36 -0800 Subject: [PATCH 04/10] fix: remove chrome --- home.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/home.nix b/home.nix index 72d7266..37a2e85 100644 --- a/home.nix +++ b/home.nix @@ -108,7 +108,6 @@ zulip vesktop obs-studio - google-chrome # GNOME Extensions gnomeExtensions.hide-top-bar From 7089a2c05ad4a4b1c9e8004731cd67ebb018a9d5 Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Tue, 3 Mar 2026 17:26:15 -0800 Subject: [PATCH 05/10] feat: add alias for nix flake update nfu --- home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home.nix b/home.nix index 37a2e85..d76f1eb 100644 --- a/home.nix +++ b/home.nix @@ -204,6 +204,7 @@ programs.bash = { enable = true; shellAliases = { + "nfu" = "nix flake update"; "c" = "claude"; "." = "z .."; ".." = "z .."; From 19b9521728cb408ba94bcada237ed40cbbe8c60f Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Tue, 3 Mar 2026 17:26:15 -0800 Subject: [PATCH 06/10] feat: use claude code alias --- flake.lock | 21 +++++++++++++++++++++ flake.nix | 5 +++++ 2 files changed, 26 insertions(+) diff --git a/flake.lock b/flake.lock index 4d22f8a..6d83989 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "claude-code-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772252606, + "narHash": "sha256-SiIhFq4XbD3LmODQ2mTtakRBnjBn/KoSgAOId1cL1Ks=", + "owner": "ryoppippi", + "repo": "claude-code-overlay", + "rev": "b1ebf027412136bbbe4202741c3d48721644bc4b", + "type": "github" + }, + "original": { + "owner": "ryoppippi", + "repo": "claude-code-overlay", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -136,6 +156,7 @@ }, "root": { "inputs": { + "claude-code-overlay": "claude-code-overlay", "home-manager": "home-manager", "nix-index-database": "nix-index-database", "nixos-hardware": "nixos-hardware", diff --git a/flake.nix b/flake.nix index 2d863e5..a4d2396 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,10 @@ url = "github:nix-community/NUR"; inputs.nixpkgs.follows = "nixpkgs"; }; + claude-code-overlay = { + url = "github:ryoppippi/claude-code-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = inputs@{ @@ -46,6 +50,7 @@ { nixpkgs.overlays = [ inputs.nur.overlays.default + inputs.claude-code-overlay.overlays.default (final: prev: { antigravity = prev.antigravity.overrideAttrs (oldAttrs: rec { From 00aa80ddc0e993beb4f3f4d37de9a7464ccae10d Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Tue, 3 Mar 2026 17:28:03 -0800 Subject: [PATCH 07/10] update: nix flake update --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 6d83989..1742cfa 100644 --- a/flake.lock +++ b/flake.lock @@ -48,11 +48,11 @@ ] }, "locked": { - "lastModified": 1772516620, - "narHash": "sha256-2r4cKdqCVlQkvcTcLUMxmsmAYZZxCMd//w/PnDnukTE=", + "lastModified": 1772569491, + "narHash": "sha256-bdr6ueeXO1Xg91sFkuvaysYF0mVdwHBpdyhTjBEWv+s=", "owner": "nix-community", "repo": "home-manager", - "rev": "2b9504d5a0169d4940a312abe2df2c5658db8de9", + "rev": "924e61f5c2aeab38504028078d7091077744ab17", "type": "github" }, "original": { @@ -119,11 +119,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1772433332, - "narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=", + "lastModified": 1772542754, + "narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "cf59864ef8aa2e178cccedbe2c178185b0365705", + "rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4", "type": "github" }, "original": { @@ -141,11 +141,11 @@ ] }, "locked": { - "lastModified": 1772517253, - "narHash": "sha256-Z0JxYlGXMFnCJgSGCamKD9NQbL/O7z4wz0/slUR2kIw=", + "lastModified": 1772583385, + "narHash": "sha256-3m4A+B/CnrG3xUeZbOw1OoLdSvB+7I/zZTW4fLM1go0=", "owner": "nix-community", "repo": "NUR", - "rev": "4411f3ec0cac5431eb409da2481bc97f7223ad6a", + "rev": "29adb5e8129c1020e59ca0a76b2a40d0e4a74eb1", "type": "github" }, "original": { From 044cc7da4a302b41c4351e0a3aae1206f65532a0 Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Wed, 4 Mar 2026 15:59:06 -0800 Subject: [PATCH 08/10] fix have nemo be the only file explorer --- configuration.nix | 1 + home.nix | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/configuration.nix b/configuration.nix index 287184c..d23e5d6 100644 --- a/configuration.nix +++ b/configuration.nix @@ -144,6 +144,7 @@ geary # Email gnome-tour gnome-font-viewer # Have font-manager + nautilus # Using Nemo ]; # Configure keymap in X11 diff --git a/home.nix b/home.nix index d76f1eb..922c84a 100644 --- a/home.nix +++ b/home.nix @@ -101,6 +101,7 @@ logseq prismlauncher nemo-with-extensions + file-roller font-manager antigravity-fhs claude-code @@ -364,6 +365,28 @@ comment = "Fast, featureful, GPU based terminal emulator"; }; + # Extract archives on double-click + xdg.desktopEntries.extract-here = { + name = "Extract Here"; + exec = "file-roller --extract-here %U"; + icon = "file-roller"; + type = "Application"; + categories = ["Utility"]; + mimeType = [ + "application/zip" + "application/x-tar" + "application/x-compressed-tar" + "application/x-bzip-compressed-tar" + "application/x-xz-compressed-tar" + "application/x-zstd-compressed-tar" + "application/gzip" + "application/x-7z-compressed" + "application/x-rar" + "application/x-rar-compressed" + ]; + noDisplay = true; + }; + # Autostart applications using proper desktop files xdg.autostart = { enable = true; @@ -383,6 +406,16 @@ "x-scheme-handler/about" = "zen.desktop"; "x-scheme-handler/unknown" = "zen.desktop"; "inode/directory" = "nemo.desktop"; + "application/zip" = "extract-here.desktop"; + "application/x-tar" = "extract-here.desktop"; + "application/x-compressed-tar" = "extract-here.desktop"; + "application/x-bzip-compressed-tar" = "extract-here.desktop"; + "application/x-xz-compressed-tar" = "extract-here.desktop"; + "application/x-zstd-compressed-tar" = "extract-here.desktop"; + "application/gzip" = "extract-here.desktop"; + "application/x-7z-compressed" = "extract-here.desktop"; + "application/x-rar" = "extract-here.desktop"; + "application/x-rar-compressed" = "extract-here.desktop"; }; }; From acecc562295051130161d477ef427f8f2f48f166 Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Wed, 4 Mar 2026 16:55:15 -0800 Subject: [PATCH 09/10] fix: a ton of different changes home.nix: - Bumped home.stateVersion from "23.05" to "25.05" - Removed the nixConfigDirectory let binding and verbose comments, simplified to dconf.settings = { - Removed org/gnome/desktop/background block (cat.png wallpaper) - Removed antigravity-fhs from packages - Removed duplicate zulip entry configuration.nix: - Removed "usbcore.autosuspend=-1" from boot.kernelParams - Added targeted udev rules for Framework fingerprint reader (27a6) and USB-C hub (32ac) autosuspend - Added services.fstrim.enable = true for NVMe/SSD health - Added nix.optimise.automatic = true for periodic store deduplication - Removed duplicate comment and entire cat.png activation script hardware-configuration.nix: - Replaced 96GB swapfile config with swapDevices = [ ] flake.nix: - Removed the antigravity overlay (override + fhs binding) --- configuration.nix | 26 +++++++++----------------- flake.nix | 13 ------------- hardware-configuration.nix | 9 +-------- home.nix | 20 ++------------------ 4 files changed, 12 insertions(+), 56 deletions(-) diff --git a/configuration.nix b/configuration.nix index d23e5d6..31d792b 100644 --- a/configuration.nix +++ b/configuration.nix @@ -13,8 +13,6 @@ # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - boot.kernelParams = [ "usbcore.autosuspend=-1" ]; - # Boot time optimizations boot.loader.timeout = 0; # Boot immediately without waiting for user input @@ -191,6 +189,9 @@ # Framework-specific services # Enable fwupd for BIOS updates (distributed through LVFS) services.fwupd.enable = true; + + # Enable periodic TRIM for NVMe/SSD health + services.fstrim.enable = true; # Enable automatic garbage collection to prevent old generations from slowing boot nix.gc = { @@ -199,6 +200,7 @@ options = "--delete-older-than 7d"; }; nix.settings.auto-optimise-store = true; + nix.optimise.automatic = true; # Optimize Nix for RAM - use more memory for builds nix.settings = { @@ -339,11 +341,16 @@ }; # GameCube adapter udev rules for Slippi/Dolphin + # Disable USB autosuspend for Framework's problematic devices (fingerprint reader, USB-C hub) services.udev.extraRules = '' # GameCube adapter USB device (vendor ID 057e, product ID 0337) SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0337", MODE="0666" # GameCube adapter HID device (needed for Dolphin to access controllers) KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0337", MODE="0666", GROUP="input" + # Disable autosuspend for Framework fingerprint reader + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="27a6", ATTR{power/autosuspend}="-1" + # Disable autosuspend for Framework USB-C hub controllers + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="32ac", ATTR{power/autosuspend}="-1" ''; # Open ports in the firewall. @@ -360,19 +367,4 @@ # (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} - 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 - chown root:root /var/lib/AccountsService/icons/jet - chmod 0444 /var/lib/AccountsService/icons/jet - fi - ''; - } diff --git a/flake.nix b/flake.nix index a4d2396..beae9c2 100644 --- a/flake.nix +++ b/flake.nix @@ -51,19 +51,6 @@ nixpkgs.overlays = [ inputs.nur.overlays.default inputs.claude-code-overlay.overlays.default - (final: prev: { - - antigravity = prev.antigravity.overrideAttrs (oldAttrs: rec { - version = "1.18.3"; - src = prev.fetchurl { - url = "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.18.3-4739469533380608/linux-x64/Antigravity.tar.gz"; - hash = "sha256:0f4n3i45gjr36hidpvibzn3p2jla2r7wg91ybmf2akafjn6f8zsc"; - }; - }); - - antigravity-fhs = final.antigravity.fhs; - - }) ]; } ]; diff --git a/hardware-configuration.nix b/hardware-configuration.nix index 15c86a4..09d89e5 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -25,14 +25,7 @@ options = [ "fmask=0077" "dmask=0077" ]; }; - # Add swap file for hibernation support - # This creates a 96GB swap file to match your RAM capacity - swapDevices = [ - { - device = "/swapfile"; - size = 98304; # 96GB in MB - } - ]; + swapDevices = [ ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/home.nix b/home.nix index 922c84a..b97ad72 100644 --- a/home.nix +++ b/home.nix @@ -5,19 +5,10 @@ home.username = "jet"; home.homeDirectory = "/home/jet"; - home.stateVersion = "23.05"; + home.stateVersion = "25.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 = let - nixConfigDirectory = "${config.home.homeDirectory}/Documents/nix-config"; - in { + dconf.settings = { "org/gnome/desktop/interface" = { clock-format = "12h"; clock-show-weekday = true; @@ -28,11 +19,6 @@ "org/gnome/system/location" = { enabled = true; }; - "org/gnome/desktop/background" = { - picture-uri = "file://${nixConfigDirectory}/cat.png"; - picture-uri-dark = "file://${nixConfigDirectory}/cat.png"; - picture-options = "wallpaper"; - }; "org/gnome/settings-daemon/plugins/power" = { sleep-inactive-ac-type = "nothing"; }; @@ -103,10 +89,8 @@ nemo-with-extensions file-roller font-manager - antigravity-fhs claude-code kdePackages.kdenlive - zulip vesktop obs-studio From e826d26833ac4ee8a51564e489e1b10a0ec59bd3 Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Thu, 5 Mar 2026 13:38:53 -0800 Subject: [PATCH 10/10] feat: make direnv reload and allow aliases dr and da --- home.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home.nix b/home.nix index b97ad72..0d7e113 100644 --- a/home.nix +++ b/home.nix @@ -189,6 +189,8 @@ programs.bash = { enable = true; shellAliases = { + "dr" = "direnv reload"; + "da" = "direnv allow"; "nfu" = "nix flake update"; "c" = "claude"; "." = "z ..";