Compare commits

..

3 commits

Author SHA1 Message Date
Jet Pham
ecf60cb4d5
feat: allow suspend on powerkey and remove comment 2026-03-11 13:24:51 -07:00
Jet Pham
237277ac5b
fix: formatting and unused services 2026-03-11 13:22:36 -07:00
Jet Pham
6799bb8941
feat: add allowlist for claude 2026-03-10 15:49:06 -07:00
3 changed files with 75 additions and 55 deletions

View file

@ -33,8 +33,6 @@
time.timeZone = "America/Los_Angeles"; time.timeZone = "America/Los_Angeles";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
services.xserver.enable = true;
# Framework Laptop 13 AMD AI 300 Series specific configurations # Framework Laptop 13 AMD AI 300 Series specific configurations
# Enable AMD GPU support and power management # Enable AMD GPU support and power management
hardware.graphics = { hardware.graphics = {
@ -78,6 +76,7 @@
services.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.gnome.sushi.enable = true;
# Remove default GNOME apps (keeping loupe and file-roller) # Remove default GNOME apps (keeping loupe and file-roller)
environment.gnome.excludePackages = with pkgs; [ environment.gnome.excludePackages = with pkgs; [
@ -104,10 +103,6 @@
nautilus # Using Nemo nautilus # Using Nemo
]; ];
services.xserver.xkb = {
layout = "us";
};
services.printing.enable = true; services.printing.enable = true;
services.pulseaudio.enable = false; services.pulseaudio.enable = false;
@ -167,13 +162,13 @@
}; };
# Power management for laptop # Power management for laptop
# Configure lid switch behavior - suspend (no swap needed with 96GB RAM)
services.logind = { services.logind = {
settings = { settings = {
Login = { Login = {
HandleLidSwitch = "suspend"; HandleLidSwitch = "suspend";
HandleLidSwitchExternalPower = "suspend"; HandleLidSwitchExternalPower = "suspend";
HandleLidSwitchDocked = "ignore"; HandleLidSwitchDocked = "ignore";
HandlePowerKey = "suspend";
}; };
}; };
}; };
@ -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; services.power-profiles-daemon.enable = false;
# Enable power management (governor managed dynamically by auto-cpufreq) # Enable power management (governor managed dynamically by auto-cpufreq)
@ -206,7 +201,7 @@
# RAM optimizations for 96GB system # RAM optimizations for 96GB system
boot.kernel.sysctl = { 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_ratio" = 15; # Write to disk when 15% of RAM is dirty
"vm.dirty_background_ratio" = 5; # Start writing when 5% dirty "vm.dirty_background_ratio" = 5; # Start writing when 5% dirty
}; };
@ -224,7 +219,6 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git
wget wget
nh nh
]; ];

View file

@ -24,51 +24,53 @@
}; };
}; };
outputs = inputs@{ outputs =
self, inputs@{
nixpkgs, self,
home-manager, nixpkgs,
nixos-hardware, home-manager,
... nixos-hardware,
}: { ...
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt; }:
nixosConfigurations = { {
framework = nixpkgs.lib.nixosSystem { formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt;
modules = [ nixosConfigurations = {
{ nixpkgs.hostPlatform = "x86_64-linux"; } framework = nixpkgs.lib.nixosSystem {
./configuration.nix modules = [
nixos-hardware.nixosModules.framework-amd-ai-300-series { nixpkgs.hostPlatform = "x86_64-linux"; }
home-manager.nixosModules.home-manager ./configuration.nix
inputs.nix-index-database.nixosModules.default nixos-hardware.nixosModules.framework-amd-ai-300-series
{ home-manager.nixosModules.home-manager
home-manager.useGlobalPkgs = true; inputs.nix-index-database.nixosModules.default
home-manager.useUserPackages = true; {
home-manager.backupFileExtension = "backup"; home-manager.useGlobalPkgs = true;
home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.useUserPackages = true;
home-manager.users.jet = import ./home.nix; 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 nixpkgs.overlays = [
]; inputs.nur.overlays.default
} inputs.claude-code-overlay.overlays.default
]; ];
}
];
};
}; };
};
devShells.x86_64-linux.default = devShells.x86_64-linux.default =
let let
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
nhs = pkgs.writeShellScriptBin "nhs" '' nhs = pkgs.writeShellScriptBin "nhs" ''
nh os switch --hostname framework --impure path:. "$@" nh os switch --hostname framework --impure path:. "$@"
''; '';
in in
pkgs.mkShell { pkgs.mkShell {
packages = [ packages = [
pkgs.nh pkgs.nh
nhs nhs
]; ];
}; };
}; };
} }

View file

@ -116,6 +116,17 @@
TERMINAL = "kitty"; 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 = { programs.helix = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
@ -396,6 +407,19 @@
}; };
}; };
home.file.".claude/settings.json".text = builtins.toJSON {
allowedTools = [
"Read"
"Glob"
"Grep"
"Write"
"Edit"
"Agent"
"WebFetch"
"WebSearch"
];
};
gtk = { gtk = {
enable = true; enable = true;
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;