nixos/desktop/virtualization.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

67 lines
1.7 KiB
Nix

{ config, pkgs, home-manager, ... }:
{
virtualisation = {
libvirtd = {
enable = true;
qemu.swtpm.enable = true;
};
spiceUSBRedirection.enable = true;
docker = {
rootless = {
enable = true;
setSocketVariable = true;
};
# Use journald for logging for better integration with system logs
extraOptions = "--log-driver=journald";
# Optional: configure daemon settings as needed (e.g., registry mirrors, storage drivers)
# settings = {
# "registry-mirrors" = [ "https://mirror.gcr.io" ];
# };
};
};
services.spice-vdagentd.enable = true;
environment.systemPackages = with pkgs; [
virt-manager # optional GUI for libvirt, not required for Quickemu
virt-viewer # gives remote-viewer
spice-gtk
spice-protocol
virtio-win
win-spice
quickemu
docker
];
environment.sessionVariables.LIBVIRT_DEFAULT_URI = [ "qemu:///system" ];
boot.kernelModules = [ "bridge" ];
# Enable network-online.target
systemd.services.network-online = {
enable = true;
wantedBy = [ "network.target" ];
};
# Tie services to network-online.target
systemd.services.libvirtd = {
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
};
# Optional: Add a debug hook
systemd.services.network-debug = {
description = "Log network status";
serviceConfig = {
# Use bash and provide full paths for commands
ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.iproute2}/bin/ip a && journalctl -u network.target'";
Type = "oneshot";
};
wantedBy = [ "network-online.target" ];
};
virtualisation.libvirtd.allowedBridges =
[ "br0" ];
}