From ce51c7cf8cf12f7b3e26e3639ac04303f83378c5 Mon Sep 17 00:00:00 2001 From: Julian Sutter Date: Tue, 3 Feb 2026 22:13:06 -0800 Subject: [PATCH] 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 --- desktop/media.nix | 2 +- desktop/plasma.nix | 15 +++-------- desktop/virtualization.nix | 4 +-- flake.lock | 34 ++++++++++++------------ flake.nix | 15 ++++++----- systems/common.nix | 5 ++-- systems/framework.nix | 1 - users/jsutter.nix | 54 ++++++++++++++++++++++++++++++++++++-- 8 files changed, 85 insertions(+), 45 deletions(-) diff --git a/desktop/media.nix b/desktop/media.nix index 36bf2ad..0633e39 100644 --- a/desktop/media.nix +++ b/desktop/media.nix @@ -4,7 +4,7 @@ environment.systemPackages = with pkgs; [ vlc # Media player deluge # BitTorrent client - stremio +# stremio ]; diff --git a/desktop/plasma.nix b/desktop/plasma.nix index 9e748fc..12b2c0e 100644 --- a/desktop/plasma.nix +++ b/desktop/plasma.nix @@ -9,18 +9,11 @@ lightdm.enable = false; }; - # New-style SDDM option name (explicitly disabled) + services.displayManager.gdm.enable = true; services.displayManager.sddm.enable = false; - - # Default to Plasma (Wayland). Use "plasmax11" for X11. services.displayManager.defaultSession = "plasma"; - services.desktopManager.plasma6.enable = true; - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - khelpcenter - ]; - programs.dconf.enable = true; programs.kdeconnect.enable = true; hardware.bluetooth.enable = true; @@ -28,7 +21,7 @@ environment.systemPackages = with pkgs; [ kdePackages.spectacle arc-theme # Desktop theme - pinentry # GUI pinentry for GPG + pinentry-gnome3 # GUI pinentry for GPG tigervnc # VNC client/server firefox # Web browser ]; @@ -55,8 +48,8 @@ # stop PackageKit polling services.packagekit.enable = false; - # remove the Discover GUI + tray notifier - environment.plasma5.excludePackages = with pkgs.libsForQt5; [ + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + khelpcenter discover ]; } diff --git a/desktop/virtualization.nix b/desktop/virtualization.nix index ac55360..0ae6ba3 100644 --- a/desktop/virtualization.nix +++ b/desktop/virtualization.nix @@ -4,9 +4,7 @@ virtualisation = { libvirtd = { enable = true; - qemu.ovmf.enable = true; qemu.swtpm.enable = true; - qemu.ovmf.packages = [ pkgs.OVMFFull ]; }; spiceUSBRedirection.enable = true; docker = { @@ -30,7 +28,7 @@ virt-viewer # gives remote-viewer spice-gtk spice-protocol - win-virtio + virtio-win win-spice quickemu docker diff --git a/flake.lock b/flake.lock index 8af9e9a..3994520 100644 --- a/flake.lock +++ b/flake.lock @@ -25,27 +25,27 @@ ] }, "locked": { - "lastModified": 1763992789, - "narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=", + "lastModified": 1769580047, + "narHash": "sha256-tNqCP/+2+peAXXQ2V8RwsBkenlfWMERb+Uy6xmevyhM=", "owner": "nix-community", "repo": "home-manager", - "rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3", + "rev": "366d78c2856de6ab3411c15c1cb4fb4c2bf5c826", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.05", + "ref": "release-25.11", "repo": "home-manager", "type": "github" } }, "nixos-hardware": { "locked": { - "lastModified": 1768736227, - "narHash": "sha256-qgGq7CfrYKc3IBYQ7qp0Z/ZXndQVC5Bj0N8HW9mS2rM=", + "lastModified": 1769302137, + "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "d447553bcbc6a178618d37e61648b19e744370df", + "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", "type": "github" }, "original": { @@ -57,26 +57,26 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767313136, - "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", + "lastModified": 1770136044, + "narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "type": "indirect" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1768564909, - "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "lastModified": 1770115704, + "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", + "rev": "e6eae2ee2110f3d31110d5c222cd395303343b08", "type": "github" }, "original": { @@ -143,11 +143,11 @@ ] }, "locked": { - "lastModified": 1767662275, - "narHash": "sha256-d5Q1GmQ+sW1Bt8cgDE0vOihzLaswsm8cSdg8124EqXE=", + "lastModified": 1769956244, + "narHash": "sha256-12RCFLyAedyMOdenUi7cN3ioJPEGjA/ZG1BLjugfUVs=", "owner": "nix-community", "repo": "plasma-manager", - "rev": "51816be33a1ff0d4b22427de83222d5bfa96d30e", + "rev": "fe54ea85c6e4413fba03b84d50f2b431d2f7c831", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e87c65b..cc1eceb 100644 --- a/flake.nix +++ b/flake.nix @@ -2,27 +2,28 @@ description = "Julian's system configuration"; inputs = { - nixpkgs.url = "nixpkgs/nixos-25.05"; + nixpkgs.url = "nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + home-manager = { - url = "github:nix-community/home-manager/release-25.05"; + url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; - octofriend = { - url = "path:./appflakes/octofriend"; - }; + + octofriend = { url = "path:./appflakes/octofriend"; }; }; outputs = { self, nixpkgs, nixpkgs-unstable, nixos-hardware, home-manager, plasma-manager, octofriend }: let system = "x86_64-linux"; - + commonSpecialArgs = { pkgs-unstable = import nixpkgs-unstable { @@ -52,7 +53,7 @@ ./desktop/virtualization.nix ./desktop/tailscale.nix ]; - + in { nixosConfigurations = { framework = mkSystem { diff --git a/systems/common.nix b/systems/common.nix index f86591a..045201c 100644 --- a/systems/common.nix +++ b/systems/common.nix @@ -97,7 +97,6 @@ p7zip rsync bumblebee - glxinfo libgdiplus unzip clinfo @@ -121,14 +120,14 @@ nvme-cli smartmontools ripgrep + mesa-demos ]; services.flatpak.enable = true; fonts.packages = with pkgs; [ - noto-fonts + noto-fonts-color-emoji noto-fonts-cjk-sans - noto-fonts-emoji liberation_ttf fira-code fira-code-symbols diff --git a/systems/framework.nix b/systems/framework.nix index 13f12ae..0c498f3 100644 --- a/systems/framework.nix +++ b/systems/framework.nix @@ -57,6 +57,5 @@ environment.systemPackages = with pkgs; [ via radeontop - amdvlk ]; } diff --git a/users/jsutter.nix b/users/jsutter.nix index b73d33f..add2457 100644 --- a/users/jsutter.nix +++ b/users/jsutter.nix @@ -33,7 +33,8 @@ # Set environment variables here home.sessionVariables = { - OPENAI_API_KEY = "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"; # Replace with the actual API key + OPENAI_API_KEY = "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"; + SYNTHETIC_L_API_KEY = "syn_5bfe68ad3826bb7872f32fcf160e959a"; }; programs.git = { @@ -49,6 +50,52 @@ 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; @@ -60,7 +107,10 @@ bbenoist.nix arrterian.nix-env-selector jnoortheen.nix-ide -# zazencodes.cline + + saoudrizwan.claude-dev + # optional alt: + # continue.continue ]; };