From 6799bb8941a64556c8c7209a583900d1c8fffc4d Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Tue, 10 Mar 2026 15:19:14 -0700 Subject: [PATCH 1/3] feat: add allowlist for claude --- home.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/home.nix b/home.nix index e397bc6..d382a7d 100644 --- a/home.nix +++ b/home.nix @@ -396,6 +396,19 @@ }; }; + home.file.".claude/settings.json".text = builtins.toJSON { + allowedTools = [ + "Read" + "Glob" + "Grep" + "Write" + "Edit" + "Agent" + "WebFetch" + "WebSearch" + ]; + }; + gtk = { enable = true; gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; From 237277ac5b0ac9ed35fb4c91ae42d88ac917d609 Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Wed, 11 Mar 2026 13:15:40 -0700 Subject: [PATCH 2/3] fix: formatting and unused services --- configuration.nix | 12 ++----- flake.nix | 92 ++++++++++++++++++++++++----------------------- home.nix | 11 ++++++ 3 files changed, 61 insertions(+), 54 deletions(-) diff --git a/configuration.nix b/configuration.nix index 9440909..8c7cb79 100644 --- a/configuration.nix +++ b/configuration.nix @@ -33,8 +33,6 @@ time.timeZone = "America/Los_Angeles"; i18n.defaultLocale = "en_US.UTF-8"; - services.xserver.enable = true; - # Framework Laptop 13 AMD AI 300 Series specific configurations # Enable AMD GPU support and power management hardware.graphics = { @@ -78,6 +76,7 @@ services.displayManager.gdm.enable = true; services.desktopManager.gnome.enable = true; + services.gnome.sushi.enable = true; # Remove default GNOME apps (keeping loupe and file-roller) environment.gnome.excludePackages = with pkgs; [ @@ -104,10 +103,6 @@ nautilus # Using Nemo ]; - services.xserver.xkb = { - layout = "us"; - }; - services.printing.enable = true; services.pulseaudio.enable = false; @@ -191,7 +186,7 @@ }; }; -# Disable power-profiles-daemon (conflicts with auto-cpufreq) + # Disable power-profiles-daemon (conflicts with auto-cpufreq) services.power-profiles-daemon.enable = false; # Enable power management (governor managed dynamically by auto-cpufreq) @@ -206,7 +201,7 @@ # RAM optimizations for 96GB system boot.kernel.sysctl = { -"vm.vfs_cache_pressure" = 50; # Keep more filesystem cache in RAM + "vm.vfs_cache_pressure" = 50; # Keep more filesystem cache in RAM "vm.dirty_ratio" = 15; # Write to disk when 15% of RAM is dirty "vm.dirty_background_ratio" = 5; # Start writing when 5% dirty }; @@ -224,7 +219,6 @@ }; environment.systemPackages = with pkgs; [ - git wget nh ]; diff --git a/flake.nix b/flake.nix index 301f9d1..12257cb 100644 --- a/flake.nix +++ b/flake.nix @@ -24,51 +24,53 @@ }; }; - outputs = inputs@{ - self, - nixpkgs, - home-manager, - nixos-hardware, - ... - }: { - formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt; - nixosConfigurations = { - framework = nixpkgs.lib.nixosSystem { - modules = [ - { nixpkgs.hostPlatform = "x86_64-linux"; } - ./configuration.nix - nixos-hardware.nixosModules.framework-amd-ai-300-series - home-manager.nixosModules.home-manager - inputs.nix-index-database.nixosModules.default - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.backupFileExtension = "backup"; - home-manager.extraSpecialArgs = { inherit inputs; }; - home-manager.users.jet = import ./home.nix; - } - { - nixpkgs.overlays = [ - inputs.nur.overlays.default - inputs.claude-code-overlay.overlays.default - ]; - } - ]; + outputs = + inputs@{ + self, + nixpkgs, + home-manager, + nixos-hardware, + ... + }: + { + formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt; + nixosConfigurations = { + framework = nixpkgs.lib.nixosSystem { + modules = [ + { nixpkgs.hostPlatform = "x86_64-linux"; } + ./configuration.nix + nixos-hardware.nixosModules.framework-amd-ai-300-series + home-manager.nixosModules.home-manager + inputs.nix-index-database.nixosModules.default + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.backupFileExtension = "backup"; + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.users.jet = import ./home.nix; + } + { + nixpkgs.overlays = [ + inputs.nur.overlays.default + inputs.claude-code-overlay.overlays.default + ]; + } + ]; + }; }; - }; - devShells.x86_64-linux.default = - let - pkgs = nixpkgs.legacyPackages.x86_64-linux; - nhs = pkgs.writeShellScriptBin "nhs" '' - nh os switch --hostname framework --impure path:. "$@" - ''; - in - pkgs.mkShell { - packages = [ - pkgs.nh - nhs - ]; - }; - }; + devShells.x86_64-linux.default = + let + pkgs = nixpkgs.legacyPackages.x86_64-linux; + nhs = pkgs.writeShellScriptBin "nhs" '' + nh os switch --hostname framework --impure path:. "$@" + ''; + in + pkgs.mkShell { + packages = [ + pkgs.nh + nhs + ]; + }; + }; } diff --git a/home.nix b/home.nix index d382a7d..720b4f7 100644 --- a/home.nix +++ b/home.nix @@ -116,6 +116,17 @@ TERMINAL = "kitty"; }; + programs.git = { + enable = true; + userName = "Jet Pham"; + userEmail = "jet@extremist.software"; + signing = { + key = "~/.ssh/id_ed25519.pub"; + signByDefault = true; + format = "ssh"; + }; + }; + programs.helix = { enable = true; defaultEditor = true; From ecf60cb4d5150b2ffd6a15ea317e7dec68a8a15f Mon Sep 17 00:00:00 2001 From: Jet Pham Date: Wed, 11 Mar 2026 13:24:39 -0700 Subject: [PATCH 3/3] feat: allow suspend on powerkey and remove comment --- configuration.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration.nix b/configuration.nix index 8c7cb79..9405013 100644 --- a/configuration.nix +++ b/configuration.nix @@ -162,13 +162,13 @@ }; # Power management for laptop - # Configure lid switch behavior - suspend (no swap needed with 96GB RAM) services.logind = { settings = { Login = { HandleLidSwitch = "suspend"; HandleLidSwitchExternalPower = "suspend"; HandleLidSwitchDocked = "ignore"; + HandlePowerKey = "suspend"; }; }; };