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
This commit is contained in:
Julian Sutter 2026-02-03 22:13:06 -08:00
parent 2267165e52
commit ce51c7cf8c
8 changed files with 85 additions and 45 deletions

View file

@ -4,7 +4,7 @@
environment.systemPackages = with pkgs; [
vlc # Media player
deluge # BitTorrent client
stremio
# stremio
];

View file

@ -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
];
}

View file

@ -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

34
flake.lock generated
View file

@ -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": {

View file

@ -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 {

View file

@ -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

View file

@ -57,6 +57,5 @@
environment.systemPackages = with pkgs; [
via
radeontop
amdvlk
];
}

View file

@ -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
];
};