diff --git a/configuration.nix b/configuration.nix index 31d792b..287184c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -13,6 +13,8 @@ # 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 @@ -142,7 +144,6 @@ geary # Email gnome-tour gnome-font-viewer # Have font-manager - nautilus # Using Nemo ]; # Configure keymap in X11 @@ -189,9 +190,6 @@ # 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 = { @@ -200,7 +198,6 @@ 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 = { @@ -341,16 +338,11 @@ }; # 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. @@ -367,4 +359,19 @@ # (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.lock b/flake.lock index 1742cfa..701f0ae 100644 --- a/flake.lock +++ b/flake.lock @@ -1,25 +1,5 @@ { "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": [ @@ -48,11 +28,11 @@ ] }, "locked": { - "lastModified": 1772569491, - "narHash": "sha256-bdr6ueeXO1Xg91sFkuvaysYF0mVdwHBpdyhTjBEWv+s=", + "lastModified": 1772218752, + "narHash": "sha256-G8nArvOTZXU8DRvrzAdz3Elcj6kA/vMtvY9mrGLATtA=", "owner": "nix-community", "repo": "home-manager", - "rev": "924e61f5c2aeab38504028078d7091077744ab17", + "rev": "f3a30376bb9eb2f6f61816be7d6ed954b6d2a3b9", "type": "github" }, "original": { @@ -69,11 +49,11 @@ ] }, "locked": { - "lastModified": 1772330611, - "narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=", + "lastModified": 1771756436, + "narHash": "sha256-Tl2I0YXdhSTufGqAaD1ySh8x+cvVsEI1mJyJg12lxhI=", "owner": "nix-community", "repo": "home-manager", - "rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400", + "rev": "5bd3589390b431a63072868a90c0f24771ff4cbb", "type": "github" }, "original": { @@ -89,11 +69,11 @@ ] }, "locked": { - "lastModified": 1772341813, - "narHash": "sha256-/PQ0ubBCMj/MVCWEI/XMStn55a8dIKsvztj4ZVLvUrQ=", + "lastModified": 1771734689, + "narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "a2051ff239ce2e8a0148fa7a152903d9a78e854f", + "rev": "8f590b832326ab9699444f3a48240595954a4b10", "type": "github" }, "original": { @@ -119,11 +99,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1772542754, - "narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=", + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", "type": "github" }, "original": { @@ -141,11 +121,11 @@ ] }, "locked": { - "lastModified": 1772583385, - "narHash": "sha256-3m4A+B/CnrG3xUeZbOw1OoLdSvB+7I/zZTW4fLM1go0=", + "lastModified": 1772315374, + "narHash": "sha256-OQUKXqb5orWghLM0Ttq9Yb0BTvPHqcbHCacm3Mg7nSs=", "owner": "nix-community", "repo": "NUR", - "rev": "29adb5e8129c1020e59ca0a76b2a40d0e4a74eb1", + "rev": "7b95523b69ea5c3ff1379908bc0203a01e1f8430", "type": "github" }, "original": { @@ -156,7 +136,6 @@ }, "root": { "inputs": { - "claude-code-overlay": "claude-code-overlay", "home-manager": "home-manager", "nix-index-database": "nix-index-database", "nixos-hardware": "nixos-hardware", @@ -173,11 +152,11 @@ ] }, "locked": { - "lastModified": 1772517053, - "narHash": "sha256-aBuL2TFnyBLR+t6iBlKnTWWzprXYKQQIaV0IuCSPPeE=", + "lastModified": 1772306482, + "narHash": "sha256-092P58kRKiLBn0eg4eI67frffMkKiDhOa1ZOREmMeB4=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "32e9673aee2ae994ced561247918952398a3e933", + "rev": "2e593ac6926cbf44adc8c9ef785da024812d2467", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index beae9c2..2d863e5 100644 --- a/flake.nix +++ b/flake.nix @@ -18,10 +18,6 @@ url = "github:nix-community/NUR"; inputs.nixpkgs.follows = "nixpkgs"; }; - claude-code-overlay = { - url = "github:ryoppippi/claude-code-overlay"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = inputs@{ @@ -50,7 +46,19 @@ { 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 09d89e5..15c86a4 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -25,7 +25,14 @@ options = [ "fmask=0077" "dmask=0077" ]; }; - swapDevices = [ ]; + # 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 + } + ]; # 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 0d7e113..758dca3 100644 --- a/home.nix +++ b/home.nix @@ -5,10 +5,19 @@ home.username = "jet"; home.homeDirectory = "/home/jet"; - home.stateVersion = "25.05"; + 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,6 +28,11 @@ "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"; }; @@ -87,10 +101,11 @@ logseq prismlauncher nemo-with-extensions - file-roller font-manager + antigravity-fhs claude-code kdePackages.kdenlive + zulip vesktop obs-studio @@ -189,10 +204,6 @@ programs.bash = { enable = true; shellAliases = { - "dr" = "direnv reload"; - "da" = "direnv allow"; - "nfu" = "nix flake update"; - "c" = "claude"; "." = "z .."; ".." = "z .."; j = "jj"; @@ -351,28 +362,6 @@ 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; @@ -392,16 +381,6 @@ "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"; }; };