Normalize Nix module formatting and update flake.lock

Consistently format module argument blocks and convert aligned
package comments to inline comments. Trim trailing whitespace and
minor layout tweaks across modules. Bump opencode rev, narHash and
lastModified in flake.lock and remove the original dev ref.
This commit is contained in:
Melvin Ragusa
2026-02-02 18:08:01 +01:00
parent 265421b015
commit 2505298449
12 changed files with 212 additions and 141 deletions

7
flake.lock generated
View File

@@ -275,16 +275,15 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770050462, "lastModified": 1770051391,
"narHash": "sha256-SvIR3FrTRJE77C0JUowvItVqX/GBm830hXziN8KgHeU=", "narHash": "sha256-Z8DdRW3NCdzAlgF3xgjZCIU4MRCPCEv3wPZTsxVcQuk=",
"owner": "anomalyco", "owner": "anomalyco",
"repo": "opencode", "repo": "opencode",
"rev": "cf8b033be1cbe9f20bc0921d9920a66c0d95c704", "rev": "cf828fff85b50baf8c57cc3811c8789d9adbcae2",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "anomalyco", "owner": "anomalyco",
"ref": "dev",
"repo": "opencode", "repo": "opencode",
"type": "github" "type": "github"
} }

View File

@@ -1,50 +1,55 @@
# modules/apps.nix # modules/apps.nix
# User applications: media, productivity, communication, system utilities # User applications: media, productivity, communication, system utilities
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Media Viewers # Media Viewers
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
loupe # GNOME image viewer loupe # GNOME image viewer
evince # PDF/document viewer evince # PDF/document viewer
celluloid # MPV frontend (GTK video player) celluloid # MPV frontend (GTK video player)
mpv # Powerful CLI video player mpv # Powerful CLI video player
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Music # Music
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
amberol # Simple music player for local files amberol # Simple music player for local files
feishin # Navidrome/Jellyfin client feishin # Navidrome/Jellyfin client
picard # MusicBrainz Picard - music tagger picard # MusicBrainz Picard - music tagger
beets # Music library manager beets # Music library manager
cava # Audio visualizer cava # Audio visualizer
# Feishin available via Flatpak for Navidrome/Jellyfin # Feishin available via Flatpak for Navidrome/Jellyfin
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Communication # Communication
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
vesktop # Discord client (Wayland-native, with Vencord) vesktop # Discord client (Wayland-native, with Vencord)
thunderbird # Email client thunderbird # Email client
signal-desktop # Encrypted messaging signal-desktop # Encrypted messaging
telegram-desktop # Telegram client telegram-desktop # Telegram client
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Office & Productivity # Office & Productivity
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
libreoffice-fresh # Office suite (latest) libreoffice-fresh # Office suite (latest)
obsidian # Note-taking with Markdown obsidian # Note-taking with Markdown
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# System Utilities # System Utilities
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
btop # Modern system monitor (terminal) btop # Modern system monitor (terminal)
mission-center # GNOME system monitor (GUI, like Windows Task Manager) mission-center # GNOME system monitor (GUI, like Windows Task Manager)
# File management # File management
file-roller # Archive manager (GUI) file-roller # Archive manager (GUI)
gnome-disk-utility # Disk management gnome-disk-utility # Disk management
# Archive tools (for file-roller and CLI) # Archive tools (for file-roller and CLI)
unzip unzip
@@ -55,29 +60,29 @@
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Screenshots & Screen Recording # Screenshots & Screen Recording
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
swappy # Screenshot annotation tool swappy # Screenshot annotation tool
# grim + slurp already in your base config # grim + slurp already in your base config
# Screen recording # Screen recording
obs-studio # Full-featured streaming/recording suite obs-studio # Full-featured streaming/recording suite
gpu-screen-recorder # Lightweight GPU-accelerated recorder (AMD/NVIDIA/Intel) gpu-screen-recorder # Lightweight GPU-accelerated recorder (AMD/NVIDIA/Intel)
kooha # Simple GNOME-style screen recorder kooha # Simple GNOME-style screen recorder
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Security & Passwords # Security & Passwords
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
bitwarden-desktop # Password manager bitwarden-desktop # Password manager
seahorse # GNOME Keyring GUI seahorse # GNOME Keyring GUI
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Utilities # Utilities
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
gnome-calculator # Calculator gnome-calculator # Calculator
gnome-clocks # World clocks, alarms, timers gnome-clocks # World clocks, alarms, timers
baobab # Disk usage analyzer baobab # Disk usage analyzer
localsend # AirDrop-like file sharing (cross-platform) localsend # AirDrop-like file sharing (cross-platform)
meld # Visual diff and merge tool meld # Visual diff and merge tool
rclone # Cloud storage sync (Google Drive, Dropbox, etc.) rclone # Cloud storage sync (Google Drive, Dropbox, etc.)
]; ];
# GNOME Keyring for secrets storage # GNOME Keyring for secrets storage

View File

@@ -1,6 +1,11 @@
# modules/audio.nix # modules/audio.nix
# Audio and Bluetooth configuration: Blueman GUI, volume control, media keys # Audio and Bluetooth configuration: Blueman GUI, volume control, media keys
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# Bluetooth GUI management # Bluetooth GUI management
@@ -9,16 +14,16 @@
# Audio packages # Audio packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# PipeWire volume control # PipeWire volume control
pwvucontrol # Modern PipeWire volume control (Qt) pwvucontrol # Modern PipeWire volume control (Qt)
pavucontrol # Classic PulseAudio volume control (GTK) - as backup pavucontrol # Classic PulseAudio volume control (GTK) - as backup
helvum # PipeWire patchbay for routing audio helvum # PipeWire patchbay for routing audio
qpwgraph # PipeWire graph editor (visual audio routing) qpwgraph # PipeWire graph editor (visual audio routing)
# Media player control # Media player control
playerctl # Control media players via D-Bus (for media keys) playerctl # Control media players via D-Bus (for media keys)
# Audio tools # Audio tools
easyeffects # Audio effects and equalizer for PipeWire easyeffects # Audio effects and equalizer for PipeWire
# Bluetooth audio codecs are handled by PipeWire automatically # Bluetooth audio codecs are handled by PipeWire automatically
]; ];
@@ -34,10 +39,26 @@
"bluez5.enable-hw-volume" = true; "bluez5.enable-hw-volume" = true;
# Bluetooth headset roles # Bluetooth headset roles
"bluez5.roles" = [ "a2dp_sink" "a2dp_source" "bap_sink" "bap_source" "hsp_hs" "hsp_ag" "hfp_hf" "hfp_ag" ]; "bluez5.roles" = [
"a2dp_sink"
"a2dp_source"
"bap_sink"
"bap_source"
"hsp_hs"
"hsp_ag"
"hfp_hf"
"hfp_ag"
];
# Codec preference order (highest quality first) # Codec preference order (highest quality first)
"bluez5.codecs" = [ "ldac" "aac" "aptx_hd" "aptx" "sbc_xq" "sbc" ]; "bluez5.codecs" = [
"ldac"
"aac"
"aptx_hd"
"aptx"
"sbc_xq"
"sbc"
];
}; };
}; };
}; };

View File

@@ -1,6 +1,12 @@
# modules/desktop.nix # modules/desktop.nix
# Core desktop infrastructure: portals, polkit, launcher, screen lock, wallpaper, idle # Core desktop infrastructure: portals, polkit, launcher, screen lock, wallpaper, idle
{ config, pkgs, inputs, lib, ... }: {
config,
pkgs,
inputs,
lib,
...
}:
{ {
# XDG Portal - Required for screen sharing, file pickers, etc. # XDG Portal - Required for screen sharing, file pickers, etc.
@@ -42,26 +48,26 @@
# Wayland utilities # Wayland utilities
wl-clipboard wl-clipboard
wtype # Wayland keyboard automation wtype # Wayland keyboard automation
wlr-randr # Display configuration wlr-randr # Display configuration
wayland-utils # Debug utilities wayland-utils # Debug utilities
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Additional desktop utilities (migrated from Arch) # Additional desktop utilities (migrated from Arch)
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
cliphist # Clipboard history for Wayland cliphist # Clipboard history for Wayland
wlsunset # Blue light filter / night mode wlsunset # Blue light filter / night mode
brightnessctl # Brightness control (even for desktop monitors via DDC) brightnessctl # Brightness control (even for desktop monitors via DDC)
wlogout # Logout menu / session manager wlogout # Logout menu / session manager
]; ];
# Environment variables for Wayland compatibility # Environment variables for Wayland compatibility
environment.sessionVariables = { environment.sessionVariables = {
# Wayland defaults # Wayland defaults
NIXOS_OZONE_WL = "1"; # Electron apps use Wayland NIXOS_OZONE_WL = "1"; # Electron apps use Wayland
MOZ_ENABLE_WAYLAND = "1"; # Firefox Wayland MOZ_ENABLE_WAYLAND = "1"; # Firefox Wayland
QT_QPA_PLATFORM = "wayland"; # Qt apps use Wayland QT_QPA_PLATFORM = "wayland"; # Qt apps use Wayland
SDL_VIDEODRIVER = "wayland"; # SDL games use Wayland SDL_VIDEODRIVER = "wayland"; # SDL games use Wayland
_JAVA_AWT_WM_NONREPARENTING = "1"; # Java apps fix _JAVA_AWT_WM_NONREPARENTING = "1"; # Java apps fix
# XDG # XDG
@@ -73,6 +79,6 @@
programs.dconf.enable = true; programs.dconf.enable = true;
# GNOME services for better desktop integration # GNOME services for better desktop integration
services.gvfs.enable = true; # Virtual filesystem (trash, MTP, SMB) services.gvfs.enable = true; # Virtual filesystem (trash, MTP, SMB)
services.udisks2.enable = true; # Disk mounting services.udisks2.enable = true; # Disk mounting
} }

View File

@@ -1,6 +1,11 @@
# modules/dev.nix # modules/dev.nix
# Development tools: Docker, Node.js, direnv, build tools # Development tools: Docker, Node.js, direnv, build tools
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# Docker # Docker
@@ -21,7 +26,7 @@
# Direnv for per-project environments # Direnv for per-project environments
programs.direnv = { programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; # Faster direnv for Nix nix-direnv.enable = true; # Faster direnv for Nix
}; };
# Development packages # Development packages
@@ -29,16 +34,16 @@
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Containers # Containers
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
docker-compose # Docker Compose v2 docker-compose # Docker Compose v2
lazydocker # Terminal UI for Docker lazydocker # Terminal UI for Docker
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Languages & Runtimes # Languages & Runtimes
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
nodejs_22 # Node.js LTS (for Vicinae extensions, etc.) nodejs_22 # Node.js LTS (for Vicinae extensions, etc.)
bun # Fast JavaScript runtime/bundler bun # Fast JavaScript runtime/bundler
python3 # Python 3 python3 # Python 3
rustup # Rust toolchain manager rustup # Rust toolchain manager
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Build Tools # Build Tools
@@ -52,43 +57,43 @@
# Version Control # Version Control
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
git git
gh # GitHub CLI gh # GitHub CLI
lazygit # Terminal UI for Git lazygit # Terminal UI for Git
delta # Better git diff delta # Better git diff
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Editors & LSP # Editors & LSP
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# nil already in base config (Nix LSP) # nil already in base config (Nix LSP)
nixfmt-rfc-style # Nix formatter nixfmt # Nix formatter
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# CLI Utilities # CLI Utilities
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
jq # JSON processor jq # JSON processor
yq # YAML processor yq # YAML processor
ripgrep # Fast grep ripgrep # Fast grep
fd # Fast find fd # Fast find
fzf # Fuzzy finder fzf # Fuzzy finder
eza # Modern ls eza # Modern ls
bat # Cat with syntax highlighting bat # Cat with syntax highlighting
httpie # Better curl httpie # Better curl
curlie # Curl wrapper with httpie-like syntax curlie # Curl wrapper with httpie-like syntax
# Additional CLI tools (migrated from Arch) # Additional CLI tools (migrated from Arch)
tealdeer # tldr - simplified man pages tealdeer # tldr - simplified man pages
duf # Better df (disk usage) duf # Better df (disk usage)
sd # Better sed (find & replace) sd # Better sed (find & replace)
pv # Pipe viewer (progress bar for pipes) pv # Pipe viewer (progress bar for pipes)
parallel # GNU parallel (run commands in parallel) parallel # GNU parallel (run commands in parallel)
inxi # System information tool inxi # System information tool
glances # System monitor (htop alternative) glances # System monitor (htop alternative)
grc # Generic colorizer for CLI output grc # Generic colorizer for CLI output
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# Database Tools # Database Tools
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
dbeaver-bin # Universal database tool (GUI) dbeaver-bin # Universal database tool (GUI)
]; ];
# Note: Shell aliases are now managed in shell.nix (Fish shell) # Note: Shell aliases are now managed in shell.nix (Fish shell)

View File

@@ -1,25 +1,30 @@
# modules/gaming.nix # modules/gaming.nix
# Full gaming setup: Steam, Gamemode, Lutris, Heroic, Wine, Proton # Full gaming setup: Steam, Gamemode, Lutris, Heroic, Wine, Proton
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# Steam # Steam
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; # Steam Remote Play remotePlay.openFirewall = true; # Steam Remote Play
dedicatedServer.openFirewall = true; # Dedicated servers dedicatedServer.openFirewall = true; # Dedicated servers
localNetworkGameTransfers.openFirewall = true; # LAN game transfers localNetworkGameTransfers.openFirewall = true; # LAN game transfers
# Extra compatibility packages for Proton # Extra compatibility packages for Proton
extraCompatPackages = with pkgs; [ extraCompatPackages = with pkgs; [
proton-ge-bin # GloriousEggroll's Proton fork - better compatibility proton-ge-bin # GloriousEggroll's Proton fork - better compatibility
]; ];
}; };
# Gamemode - Optimize system for gaming # Gamemode - Optimize system for gaming
programs.gamemode = { programs.gamemode = {
enable = true; enable = true;
enableRenice = true; # Allow renice for priority boost enableRenice = true; # Allow renice for priority boost
settings = { settings = {
general = { general = {
renice = 10; renice = 10;
@@ -40,20 +45,20 @@
# Gaming packages # Gaming packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Game launchers # Game launchers
lutris # Multi-platform game launcher lutris # Multi-platform game launcher
heroic # Epic Games & GOG launcher heroic # Epic Games & GOG launcher
# Proton management # Proton management
protonup-qt # GUI to manage Proton-GE versions protonup-qt # GUI to manage Proton-GE versions
# Wine for non-Steam games # Wine for non-Steam games
wineWowPackages.stagingFull # Latest Wine with all features wineWowPackages.stagingFull # Latest Wine with all features
winetricks # Wine helper scripts winetricks # Wine helper scripts
protontricks # Proton helper scripts (like winetricks for Proton) protontricks # Proton helper scripts (like winetricks for Proton)
# Misc gaming utilities # Misc gaming utilities
gamemode # CLI tool to trigger gamemode gamemode # CLI tool to trigger gamemode
gamescope # Micro-compositor for games (fixes some issues) gamescope # Micro-compositor for games (fixes some issues)
]; ];
# Gaming-related kernel tweaks # Gaming-related kernel tweaks
@@ -68,7 +73,7 @@
# Udev rules for game controllers # Udev rules for game controllers
services.udev.packages = with pkgs; [ services.udev.packages = with pkgs; [
game-devices-udev-rules # Support for various game controllers game-devices-udev-rules # Support for various game controllers
]; ];
# Add user to gamemode group # Add user to gamemode group

View File

@@ -1,16 +1,21 @@
# modules/gpu-amd.nix # modules/gpu-amd.nix
# AMD GPU configuration: drivers, Vulkan, VA-API hardware acceleration, CoreCtrl # AMD GPU configuration: drivers, Vulkan, VA-API hardware acceleration, CoreCtrl
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# Enable OpenGL/Vulkan # Enable OpenGL/Vulkan
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
enable32Bit = true; # For Steam and 32-bit games enable32Bit = true; # For Steam and 32-bit games
extraPackages = with pkgs; [ extraPackages = with pkgs; [
# VA-API for hardware video acceleration # VA-API for hardware video acceleration
libva-vdpau-driver # Renamed from vaapiVdpau libva-vdpau-driver # Renamed from vaapiVdpau
libvdpau-va-gl libvdpau-va-gl
# OpenCL support (optional, for compute workloads) # OpenCL support (optional, for compute workloads)
@@ -45,15 +50,15 @@
# GPU monitoring tools # GPU monitoring tools
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Monitoring # Monitoring
radeontop # AMD GPU monitoring (like nvidia-smi) radeontop # AMD GPU monitoring (like nvidia-smi)
nvtopPackages.amd # Modern GPU monitor with AMD support nvtopPackages.amd # Modern GPU monitor with AMD support
# Vulkan tools # Vulkan tools
vulkan-tools # vulkaninfo, etc. vulkan-tools # vulkaninfo, etc.
vulkan-loader vulkan-loader
# Video acceleration verification # Video acceleration verification
libva-utils # vainfo - verify VA-API libva-utils # vainfo - verify VA-API
vdpauinfo # Verify VDPAU vdpauinfo # Verify VDPAU
]; ];
} }

View File

@@ -1,6 +1,11 @@
# modules/navidrome.nix # modules/navidrome.nix
# Self-hosted music streaming server # Self-hosted music streaming server
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# ═══════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════
@@ -24,7 +29,7 @@
EnableTranscodingConfig = true; EnableTranscodingConfig = true;
# Scan settings # Scan settings
ScanSchedule = "@every 1h"; # Rescan library every hour ScanSchedule = "@every 1h"; # Rescan library every hour
# Last.fm scrobbling (configure in UI after setup) # Last.fm scrobbling (configure in UI after setup)
LastFM.Enabled = true; LastFM.Enabled = true;

View File

@@ -1,6 +1,11 @@
# modules/power.nix # modules/power.nix
# Power management for desktop: CPU governor control, power profiles # Power management for desktop: CPU governor control, power profiles
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# ═══════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════

View File

@@ -1,6 +1,11 @@
# modules/services.nix # modules/services.nix
# System services: SSD maintenance, swap, mDNS, profile sync # System services: SSD maintenance, swap, mDNS, profile sync
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# ═══════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════
@@ -18,8 +23,8 @@
# Compressed swap in RAM - better than no swap, faster than disk # Compressed swap in RAM - better than no swap, faster than disk
zramSwap = { zramSwap = {
enable = true; enable = true;
algorithm = "zstd"; # Best compression ratio algorithm = "zstd"; # Best compression ratio
memoryPercent = 50; # Use up to 50% of RAM for compressed swap memoryPercent = 50; # Use up to 50% of RAM for compressed swap
}; };
# ═══════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════
@@ -28,8 +33,8 @@
# mDNS for local network discovery (.local domains) # mDNS for local network discovery (.local domains)
services.avahi = { services.avahi = {
enable = true; enable = true;
nssmdns4 = true; # Enable .local resolution nssmdns4 = true; # Enable .local resolution
openFirewall = true; # Allow mDNS through firewall openFirewall = true; # Allow mDNS through firewall
publish = { publish = {
enable = true; enable = true;
@@ -64,8 +69,8 @@
# Early OOM killer - prevents system freeze on memory exhaustion # Early OOM killer - prevents system freeze on memory exhaustion
services.earlyoom = { services.earlyoom = {
enable = true; enable = true;
freeMemThreshold = 5; # Start killing at 5% free memory freeMemThreshold = 5; # Start killing at 5% free memory
freeSwapThreshold = 10; # Also consider swap freeSwapThreshold = 10; # Also consider swap
enableNotifications = true; enableNotifications = true;
}; };

View File

@@ -1,6 +1,11 @@
# modules/shell.nix # modules/shell.nix
# Fish shell configuration with plugins and aliases # Fish shell configuration with plugins and aliases
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# Enable Fish shell # Enable Fish shell
@@ -98,13 +103,13 @@
# Fish plugins (managed by NixOS) # Fish plugins (managed by NixOS)
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Fish plugins # Fish plugins
fishPlugins.pure # Pure prompt (minimal & fast) fishPlugins.pure # Pure prompt (minimal & fast)
fishPlugins.autopair # Auto-close brackets, quotes fishPlugins.autopair # Auto-close brackets, quotes
fishPlugins.fzf-fish # Fzf integration for fish fishPlugins.fzf-fish # Fzf integration for fish
fishPlugins.done # Notification when long command finishes fishPlugins.done # Notification when long command finishes
fishPlugins.grc # Colorize command output fishPlugins.grc # Colorize command output
# Required by aliases # Required by aliases
dust # Better du dust # Better du
]; ];
} }

View File

@@ -1,6 +1,11 @@
# modules/virtualization.nix # modules/virtualization.nix
# Virtual machine support: QEMU, KVM, libvirt, virt-manager # Virtual machine support: QEMU, KVM, libvirt, virt-manager
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
# ═══════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════
@@ -36,11 +41,11 @@
# PACKAGES # PACKAGES
# ═══════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
virt-manager # GUI for managing VMs virt-manager # GUI for managing VMs
virt-viewer # Viewer for VM displays (SPICE/VNC) virt-viewer # Viewer for VM displays (SPICE/VNC)
virtiofsd # Fast file sharing between host and VM virtiofsd # Fast file sharing between host and VM
qemu-utils # QEMU utilities (qemu-img, etc.) qemu-utils # QEMU utilities (qemu-img, etc.)
spice-gtk # SPICE client libraries spice-gtk # SPICE client libraries
]; ];
# ═══════════════════════════════════════════════════════════════ # ═══════════════════════════════════════════════════════════════