Compare commits

..

10 commits

Author SHA1 Message Date
Jet Pham
e826d26833
feat: make direnv reload and allow aliases dr and da 2026-03-05 13:38:55 -08:00
Jet Pham
acecc56229
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)
2026-03-04 16:55:35 -08:00
Jet Pham
044cc7da4a
fix have nemo be the only file explorer 2026-03-04 16:18:03 -08:00
Jet Pham
00aa80ddc0
update: nix flake update 2026-03-03 17:28:03 -08:00
Jet Pham
19b9521728
feat: use claude code alias 2026-03-03 17:27:38 -08:00
Jet Pham
7089a2c05a
feat: add alias for nix flake update nfu 2026-03-03 17:27:38 -08:00
Jet Pham
3314dbaa9c
fix: remove chrome 2026-03-02 22:19:38 -08:00
Jet Pham
4f4ca38679
update: update nix flake 2026-03-02 22:09:18 -08:00
Jet Pham
f15ffa7e61
feat: add google chrome :( 2026-03-02 19:13:20 -08:00
Jet Pham
5768b554e3
feat: add a alias "c" for claude 2026-03-02 19:12:36 -08:00
5 changed files with 94 additions and 74 deletions

View file

@ -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
@ -144,6 +142,7 @@
geary # Email
gnome-tour
gnome-font-viewer # Have font-manager
nautilus # Using Nemo
];
# Configure keymap in X11
@ -190,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 = {
@ -198,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 = {
@ -338,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.
@ -359,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
'';
}

57
flake.lock generated
View file

@ -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": [
@ -28,11 +48,11 @@
]
},
"locked": {
"lastModified": 1772218752,
"narHash": "sha256-G8nArvOTZXU8DRvrzAdz3Elcj6kA/vMtvY9mrGLATtA=",
"lastModified": 1772569491,
"narHash": "sha256-bdr6ueeXO1Xg91sFkuvaysYF0mVdwHBpdyhTjBEWv+s=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f3a30376bb9eb2f6f61816be7d6ed954b6d2a3b9",
"rev": "924e61f5c2aeab38504028078d7091077744ab17",
"type": "github"
},
"original": {
@ -49,11 +69,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 +89,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 +119,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1771848320,
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
"lastModified": 1772542754,
"narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2fc6539b481e1d2569f25f8799236694180c0993",
"rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
"type": "github"
},
"original": {
@ -121,11 +141,11 @@
]
},
"locked": {
"lastModified": 1772315374,
"narHash": "sha256-OQUKXqb5orWghLM0Ttq9Yb0BTvPHqcbHCacm3Mg7nSs=",
"lastModified": 1772583385,
"narHash": "sha256-3m4A+B/CnrG3xUeZbOw1OoLdSvB+7I/zZTW4fLM1go0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "7b95523b69ea5c3ff1379908bc0203a01e1f8430",
"rev": "29adb5e8129c1020e59ca0a76b2a40d0e4a74eb1",
"type": "github"
},
"original": {
@ -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",
@ -152,11 +173,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": {

View file

@ -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,19 +50,7 @@
{
nixpkgs.overlays = [
inputs.nur.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;
})
inputs.claude-code-overlay.overlays.default
];
}
];

View file

@ -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

View file

@ -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";
};
@ -101,11 +87,10 @@
logseq
prismlauncher
nemo-with-extensions
file-roller
font-manager
antigravity-fhs
claude-code
kdePackages.kdenlive
zulip
vesktop
obs-studio
@ -204,6 +189,10 @@
programs.bash = {
enable = true;
shellAliases = {
"dr" = "direnv reload";
"da" = "direnv allow";
"nfu" = "nix flake update";
"c" = "claude";
"." = "z ..";
".." = "z ..";
j = "jj";
@ -362,6 +351,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;
@ -381,6 +392,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";
};
};