nixos/users/jsutter.nix
Julian Sutter ce51c7cf8c Update NixOS configurations across multiple modules
This commit updates various configuration modules to improve system
functionality and maintain consistency across all managed machines.

## Changed Files

### flake.nix
- Updated to use nixos-25.11 channel (previously 25.05)
- Updated home-manager to release-25.11
- Added octofriend local flake reference
- Simplified commonDesktopModules structure
- Updated framework configuration with additional desktop modules (dnm, stp-elc-udmshare)

### flake.lock
- Updated lock file to reflect new flake inputs and dependency versions

### systems/common.nix
- Updated system stateVersion from "25.05" to "25.05"
- Added more system packages for system administration:
  - kopia (backup tool)
  - dig (DNS lookup utility)
  - pv (pipe viewer for progress monitoring)
  - whois (network information lookup)
  - mesa-demos (OpenGL/demos for graphics testing)
- Added kdePackages.xdg-desktop-portal-kde for better desktop integration
- Maintained all existing hardware, networking, bootloader, and service configurations

### systems/framework.nix
- Maintained existing Framework laptop specific configurations:
  - AMD GPU support with microcode updates
  - Custom kernel parameters (mem_sleep_default=s2idle)
  - Power management (power-profiles-daemon enabled, TLP/thermald disabled for AMD)
  - Logind lid switch configuration (suspend-then-hibernate on lid close)
  - Swapfile configuration (10GB size)
  - Brightness control via acpilight
  - SSD optimization with fstrim
- Added user packages: via (keyboard configurator), radeontop (AMD GPU monitor)

### users/jsutter.nix
- Enhanced Home Manager configuration:
  - Updated stateVersion to "25.05"
  - Added Zed editor configuration with AI model integration:
    - Configured SyntheticL API endpoint for GLM-4.7 model
    - Added extensions: nix, markdown, toml, go, dracula
    - Included extra packages for language support (nixd, nil, gopls)
  - Updated VSCode extensions list with Claude dev support
  - Added Micro editor as alternative light editor
- Maintained all existing user packages, SSH keys, and base configurations

### desktop/media.nix
- Updated multimedia application packages for enhanced media handling

### desktop/plasma.nix
- Updated Plasma desktop environment packages and configurations

### desktop/virtualization.nix
- Updated virtualization settings and package versions

## Testing Notes
- All changes should be tested with 'nix flake check' to verify syntax
- Run 'sudo nixos-rebuild dry-run --flake .#framework' before applying
- Verify that all services start correctly after rebuild

## Impact Scope
- Affects all three managed systems: framework, aurora, labrizor
- Primary focus on framework laptop configuration as primary development machine
- Home Manager changes only affect jsutter user account
2026-02-03 22:13:06 -08:00

192 lines
5.7 KiB
Nix

{ config, pkgs, pkgs-unstable, home-manager, lib, ... }:
{
users.users.jsutter = {
shell = pkgs.zsh;
isNormalUser = true;
description = "Julian Sutter";
extraGroups = [ "networkmanager" "wheel" "docker" "libvirtd" "audio" "plugdev" ];
hashedPassword = "$6$tvkhGd24G6pVOsWr$j8ZAqSnXPTGwMGmIulU5Puzqd4iKdu8eAMSFis/cPqTW6u2xGQMqPHH1W9IZwKSL6.nS7Jc/NR2VwpPosyXDH/";
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBNVUh+RrcOSMRV6qysnsdPs5AyK8dSm4QhhnwgpikyI jsutter@symbiotrip.com" ];
packages = with pkgs; [
# Essential CLI tools and user utilities only
# GUI applications have been moved to appropriate desktop modules
direnv # Development environment management
appimage-run # System utility for AppImages
micro
];
};
#Everything below is home manager managed:
home-manager = {
useUserPackages = true;
backupFileExtension = "backup";
users.jsutter = {
home.username = "jsutter";
home.homeDirectory = "/home/jsutter";
programs.home-manager.enable = true;
home.stateVersion = "25.05";
# Set environment variables here
home.sessionVariables = {
OPENAI_API_KEY = "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";
SYNTHETIC_L_API_KEY = "syn_5bfe68ad3826bb7872f32fcf160e959a";
};
programs.git = {
enable = true;
userName = "Julian Sutter";
userEmail = "jsutter@symbiotip.com";
extraConfig = {
core.editor = "nano";
credential.helper = "store";
init.defaultBranch = "main";
};
};
programs.go.enable= true;
programs.zed-editor = {
enable = true;
# Lets Zed update settings.json when you change agent/model settings in the UI
mutableUserSettings = true;
extensions = [
"nix"
"markdown"
"toml"
"go"
"dracula"
];
extraPackages = with pkgs; [
nixd
nil
go
gopls
];
userSettings = {
language_models = {
openai_compatible = {
SyntheticL = {
api_url = "https://api.synthetic.new/openai/v1";
available_models = [
{
name = "hf:zai-org/GLM-4.7";
display_name = "SyntheticL";
max_tokens = 198000;
}
];
};
};
};
agent = {
default_model = {
provider = "SyntheticL";
model = "hf:zai-org/GLM-4.7";
};
};
};
};
programs.vscode = {
enable = true;
package = pkgs.vscodium;
profiles.default.extensions = with pkgs.vscode-extensions; [
dracula-theme.theme-dracula
yzhang.markdown-all-in-one
mkhl.direnv
golang.go
bbenoist.nix
arrterian.nix-env-selector
jnoortheen.nix-ide
saoudrizwan.claude-dev
# optional alt:
# continue.continue
];
};
programs.zsh = {
enable = true;
enableCompletion = false; # enabled in oh-my-zsh
autosuggestion.enable = true;
initContent = ''
test -f ~/.dir_colors && eval $(dircolors ~/.dir_colors)
'';
shellAliases = {
ne = "nix-env";
ni = "nix-env -iA";
no = "nixops";
ns = "nix-shell --pure";
nra = "sudo nixos-rebuild switch --flake .#aurora";
nrf = "sudo nixos-rebuild switch --flake .#framework";
nrl = "sudo nixos-rebuild switch --flake .#labrizor";
};
oh-my-zsh = {
enable = true;
plugins = [ "git" "systemd" "rsync" "kubectl" "ansible" "battery" "colored-man-pages" "colorize" "common-aliases" "cp" "docker" "docker-compose" "git-auto-fetch" "git-extras" "github" "git-prompt" "gnu-utils" "golang" "nmap" "postgres" "python" "rust" "ssh-agent" "sudo" "systemd" "ufw" "vscode" ];
theme = "terminalparty";
};
};
programs.lsd = {
enable = true;
};
programs.bat.enable = true;
programs.firefox = {
enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
CaptivePortal = false;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DisableFirefoxAccounts = false;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OfferToSaveLoginsDefault = false;
PasswordManagerEnabled = false;
FirefoxHome = {
Search = true;
Pocket = false;
Snippets = false;
TopSites = false;
Highlights = false;
};
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
};
};
};
profiles = {
jsutter = {
id = 0;
name = "jsutter";
settings = {
"general.smoothScroll" = true;
};
extraConfig = ''
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
user_pref("full-screen-api.ignore-widgets", true);
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.rdd-vpx.enabled", true);
'';
};
};
};
};
};
}