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:
7
flake.lock
generated
7
flake.lock
generated
@@ -275,16 +275,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770050462,
|
||||
"narHash": "sha256-SvIR3FrTRJE77C0JUowvItVqX/GBm830hXziN8KgHeU=",
|
||||
"lastModified": 1770051391,
|
||||
"narHash": "sha256-Z8DdRW3NCdzAlgF3xgjZCIU4MRCPCEv3wPZTsxVcQuk=",
|
||||
"owner": "anomalyco",
|
||||
"repo": "opencode",
|
||||
"rev": "cf8b033be1cbe9f20bc0921d9920a66c0d95c704",
|
||||
"rev": "cf828fff85b50baf8c57cc3811c8789d9adbcae2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "anomalyco",
|
||||
"ref": "dev",
|
||||
"repo": "opencode",
|
||||
"type": "github"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,55 @@
|
||||
# modules/apps.nix
|
||||
# User applications: media, productivity, communication, system utilities
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Media Viewers
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
loupe # GNOME image viewer
|
||||
evince # PDF/document viewer
|
||||
celluloid # MPV frontend (GTK video player)
|
||||
mpv # Powerful CLI video player
|
||||
loupe # GNOME image viewer
|
||||
evince # PDF/document viewer
|
||||
celluloid # MPV frontend (GTK video player)
|
||||
mpv # Powerful CLI video player
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Music
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
amberol # Simple music player for local files
|
||||
feishin # Navidrome/Jellyfin client
|
||||
picard # MusicBrainz Picard - music tagger
|
||||
beets # Music library manager
|
||||
cava # Audio visualizer
|
||||
amberol # Simple music player for local files
|
||||
feishin # Navidrome/Jellyfin client
|
||||
picard # MusicBrainz Picard - music tagger
|
||||
beets # Music library manager
|
||||
cava # Audio visualizer
|
||||
# Feishin available via Flatpak for Navidrome/Jellyfin
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Communication
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
vesktop # Discord client (Wayland-native, with Vencord)
|
||||
thunderbird # Email client
|
||||
signal-desktop # Encrypted messaging
|
||||
telegram-desktop # Telegram client
|
||||
vesktop # Discord client (Wayland-native, with Vencord)
|
||||
thunderbird # Email client
|
||||
signal-desktop # Encrypted messaging
|
||||
telegram-desktop # Telegram client
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Office & Productivity
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
libreoffice-fresh # Office suite (latest)
|
||||
obsidian # Note-taking with Markdown
|
||||
libreoffice-fresh # Office suite (latest)
|
||||
obsidian # Note-taking with Markdown
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# System Utilities
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
btop # Modern system monitor (terminal)
|
||||
mission-center # GNOME system monitor (GUI, like Windows Task Manager)
|
||||
|
||||
btop # Modern system monitor (terminal)
|
||||
mission-center # GNOME system monitor (GUI, like Windows Task Manager)
|
||||
|
||||
# File management
|
||||
file-roller # Archive manager (GUI)
|
||||
gnome-disk-utility # Disk management
|
||||
file-roller # Archive manager (GUI)
|
||||
gnome-disk-utility # Disk management
|
||||
|
||||
# Archive tools (for file-roller and CLI)
|
||||
unzip
|
||||
@@ -55,29 +60,29 @@
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Screenshots & Screen Recording
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
swappy # Screenshot annotation tool
|
||||
swappy # Screenshot annotation tool
|
||||
# grim + slurp already in your base config
|
||||
|
||||
# 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)
|
||||
kooha # Simple GNOME-style screen recorder
|
||||
kooha # Simple GNOME-style screen recorder
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Security & Passwords
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
bitwarden-desktop # Password manager
|
||||
seahorse # GNOME Keyring GUI
|
||||
bitwarden-desktop # Password manager
|
||||
seahorse # GNOME Keyring GUI
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Utilities
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
gnome-calculator # Calculator
|
||||
gnome-clocks # World clocks, alarms, timers
|
||||
baobab # Disk usage analyzer
|
||||
localsend # AirDrop-like file sharing (cross-platform)
|
||||
meld # Visual diff and merge tool
|
||||
rclone # Cloud storage sync (Google Drive, Dropbox, etc.)
|
||||
gnome-calculator # Calculator
|
||||
gnome-clocks # World clocks, alarms, timers
|
||||
baobab # Disk usage analyzer
|
||||
localsend # AirDrop-like file sharing (cross-platform)
|
||||
meld # Visual diff and merge tool
|
||||
rclone # Cloud storage sync (Google Drive, Dropbox, etc.)
|
||||
];
|
||||
|
||||
# GNOME Keyring for secrets storage
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# modules/audio.nix
|
||||
# Audio and Bluetooth configuration: Blueman GUI, volume control, media keys
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# Bluetooth GUI management
|
||||
@@ -9,17 +14,17 @@
|
||||
# Audio packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
# PipeWire volume control
|
||||
pwvucontrol # Modern PipeWire volume control (Qt)
|
||||
pavucontrol # Classic PulseAudio volume control (GTK) - as backup
|
||||
helvum # PipeWire patchbay for routing audio
|
||||
qpwgraph # PipeWire graph editor (visual audio routing)
|
||||
pwvucontrol # Modern PipeWire volume control (Qt)
|
||||
pavucontrol # Classic PulseAudio volume control (GTK) - as backup
|
||||
helvum # PipeWire patchbay for routing audio
|
||||
qpwgraph # PipeWire graph editor (visual audio routing)
|
||||
|
||||
# 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
|
||||
easyeffects # Audio effects and equalizer for PipeWire
|
||||
|
||||
easyeffects # Audio effects and equalizer for PipeWire
|
||||
|
||||
# Bluetooth audio codecs are handled by PipeWire automatically
|
||||
];
|
||||
|
||||
@@ -34,10 +39,26 @@
|
||||
"bluez5.enable-hw-volume" = true;
|
||||
|
||||
# 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)
|
||||
"bluez5.codecs" = [ "ldac" "aac" "aptx_hd" "aptx" "sbc_xq" "sbc" ];
|
||||
"bluez5.codecs" = [
|
||||
"ldac"
|
||||
"aac"
|
||||
"aptx_hd"
|
||||
"aptx"
|
||||
"sbc_xq"
|
||||
"sbc"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
# modules/desktop.nix
|
||||
# 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.
|
||||
@@ -42,26 +48,26 @@
|
||||
|
||||
# Wayland utilities
|
||||
wl-clipboard
|
||||
wtype # Wayland keyboard automation
|
||||
wlr-randr # Display configuration
|
||||
wayland-utils # Debug utilities
|
||||
wtype # Wayland keyboard automation
|
||||
wlr-randr # Display configuration
|
||||
wayland-utils # Debug utilities
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Additional desktop utilities (migrated from Arch)
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
cliphist # Clipboard history for Wayland
|
||||
wlsunset # Blue light filter / night mode
|
||||
brightnessctl # Brightness control (even for desktop monitors via DDC)
|
||||
wlogout # Logout menu / session manager
|
||||
cliphist # Clipboard history for Wayland
|
||||
wlsunset # Blue light filter / night mode
|
||||
brightnessctl # Brightness control (even for desktop monitors via DDC)
|
||||
wlogout # Logout menu / session manager
|
||||
];
|
||||
|
||||
# Environment variables for Wayland compatibility
|
||||
environment.sessionVariables = {
|
||||
# Wayland defaults
|
||||
NIXOS_OZONE_WL = "1"; # Electron apps use Wayland
|
||||
MOZ_ENABLE_WAYLAND = "1"; # Firefox Wayland
|
||||
QT_QPA_PLATFORM = "wayland"; # Qt apps use Wayland
|
||||
SDL_VIDEODRIVER = "wayland"; # SDL games use Wayland
|
||||
NIXOS_OZONE_WL = "1"; # Electron apps use Wayland
|
||||
MOZ_ENABLE_WAYLAND = "1"; # Firefox Wayland
|
||||
QT_QPA_PLATFORM = "wayland"; # Qt apps use Wayland
|
||||
SDL_VIDEODRIVER = "wayland"; # SDL games use Wayland
|
||||
_JAVA_AWT_WM_NONREPARENTING = "1"; # Java apps fix
|
||||
|
||||
# XDG
|
||||
@@ -73,6 +79,6 @@
|
||||
programs.dconf.enable = true;
|
||||
|
||||
# GNOME services for better desktop integration
|
||||
services.gvfs.enable = true; # Virtual filesystem (trash, MTP, SMB)
|
||||
services.udisks2.enable = true; # Disk mounting
|
||||
services.gvfs.enable = true; # Virtual filesystem (trash, MTP, SMB)
|
||||
services.udisks2.enable = true; # Disk mounting
|
||||
}
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
# modules/dev.nix
|
||||
# Development tools: Docker, Node.js, direnv, build tools
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# Docker
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
|
||||
|
||||
# Recommended settings
|
||||
autoPrune = {
|
||||
enable = true;
|
||||
@@ -21,7 +26,7 @@
|
||||
# Direnv for per-project environments
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true; # Faster direnv for Nix
|
||||
nix-direnv.enable = true; # Faster direnv for Nix
|
||||
};
|
||||
|
||||
# Development packages
|
||||
@@ -29,16 +34,16 @@
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Containers
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
docker-compose # Docker Compose v2
|
||||
lazydocker # Terminal UI for Docker
|
||||
docker-compose # Docker Compose v2
|
||||
lazydocker # Terminal UI for Docker
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Languages & Runtimes
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
nodejs_22 # Node.js LTS (for Vicinae extensions, etc.)
|
||||
bun # Fast JavaScript runtime/bundler
|
||||
python3 # Python 3
|
||||
rustup # Rust toolchain manager
|
||||
nodejs_22 # Node.js LTS (for Vicinae extensions, etc.)
|
||||
bun # Fast JavaScript runtime/bundler
|
||||
python3 # Python 3
|
||||
rustup # Rust toolchain manager
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Build Tools
|
||||
@@ -47,48 +52,48 @@
|
||||
gnumake
|
||||
cmake
|
||||
pkg-config
|
||||
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Version Control
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
git
|
||||
gh # GitHub CLI
|
||||
lazygit # Terminal UI for Git
|
||||
delta # Better git diff
|
||||
gh # GitHub CLI
|
||||
lazygit # Terminal UI for Git
|
||||
delta # Better git diff
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Editors & LSP
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# nil already in base config (Nix LSP)
|
||||
nixfmt-rfc-style # Nix formatter
|
||||
nixfmt # Nix formatter
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# CLI Utilities
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
ripgrep # Fast grep
|
||||
fd # Fast find
|
||||
fzf # Fuzzy finder
|
||||
eza # Modern ls
|
||||
bat # Cat with syntax highlighting
|
||||
httpie # Better curl
|
||||
curlie # Curl wrapper with httpie-like syntax
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
ripgrep # Fast grep
|
||||
fd # Fast find
|
||||
fzf # Fuzzy finder
|
||||
eza # Modern ls
|
||||
bat # Cat with syntax highlighting
|
||||
httpie # Better curl
|
||||
curlie # Curl wrapper with httpie-like syntax
|
||||
|
||||
# Additional CLI tools (migrated from Arch)
|
||||
tealdeer # tldr - simplified man pages
|
||||
duf # Better df (disk usage)
|
||||
sd # Better sed (find & replace)
|
||||
pv # Pipe viewer (progress bar for pipes)
|
||||
parallel # GNU parallel (run commands in parallel)
|
||||
inxi # System information tool
|
||||
glances # System monitor (htop alternative)
|
||||
grc # Generic colorizer for CLI output
|
||||
tealdeer # tldr - simplified man pages
|
||||
duf # Better df (disk usage)
|
||||
sd # Better sed (find & replace)
|
||||
pv # Pipe viewer (progress bar for pipes)
|
||||
parallel # GNU parallel (run commands in parallel)
|
||||
inxi # System information tool
|
||||
glances # System monitor (htop alternative)
|
||||
grc # Generic colorizer for CLI output
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# 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)
|
||||
|
||||
@@ -1,25 +1,30 @@
|
||||
# modules/gaming.nix
|
||||
# Full gaming setup: Steam, Gamemode, Lutris, Heroic, Wine, Proton
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# Steam
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Dedicated servers
|
||||
localNetworkGameTransfers.openFirewall = true; # LAN game transfers
|
||||
remotePlay.openFirewall = true; # Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Dedicated servers
|
||||
localNetworkGameTransfers.openFirewall = true; # LAN game transfers
|
||||
|
||||
# Extra compatibility packages for Proton
|
||||
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
|
||||
programs.gamemode = {
|
||||
enable = true;
|
||||
enableRenice = true; # Allow renice for priority boost
|
||||
enableRenice = true; # Allow renice for priority boost
|
||||
settings = {
|
||||
general = {
|
||||
renice = 10;
|
||||
@@ -40,20 +45,20 @@
|
||||
# Gaming packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Game launchers
|
||||
lutris # Multi-platform game launcher
|
||||
heroic # Epic Games & GOG launcher
|
||||
lutris # Multi-platform game launcher
|
||||
heroic # Epic Games & GOG launcher
|
||||
|
||||
# Proton management
|
||||
protonup-qt # GUI to manage Proton-GE versions
|
||||
protonup-qt # GUI to manage Proton-GE versions
|
||||
|
||||
# Wine for non-Steam games
|
||||
wineWowPackages.stagingFull # Latest Wine with all features
|
||||
winetricks # Wine helper scripts
|
||||
protontricks # Proton helper scripts (like winetricks for Proton)
|
||||
wineWowPackages.stagingFull # Latest Wine with all features
|
||||
winetricks # Wine helper scripts
|
||||
protontricks # Proton helper scripts (like winetricks for Proton)
|
||||
|
||||
# Misc gaming utilities
|
||||
gamemode # CLI tool to trigger gamemode
|
||||
gamescope # Micro-compositor for games (fixes some issues)
|
||||
gamemode # CLI tool to trigger gamemode
|
||||
gamescope # Micro-compositor for games (fixes some issues)
|
||||
];
|
||||
|
||||
# Gaming-related kernel tweaks
|
||||
@@ -68,7 +73,7 @@
|
||||
|
||||
# Udev rules for game controllers
|
||||
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
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
# modules/gpu-amd.nix
|
||||
# AMD GPU configuration: drivers, Vulkan, VA-API hardware acceleration, CoreCtrl
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# Enable OpenGL/Vulkan
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true; # For Steam and 32-bit games
|
||||
enable32Bit = true; # For Steam and 32-bit games
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
# VA-API for hardware video acceleration
|
||||
libva-vdpau-driver # Renamed from vaapiVdpau
|
||||
libva-vdpau-driver # Renamed from vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
|
||||
# OpenCL support (optional, for compute workloads)
|
||||
@@ -45,15 +50,15 @@
|
||||
# GPU monitoring tools
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Monitoring
|
||||
radeontop # AMD GPU monitoring (like nvidia-smi)
|
||||
nvtopPackages.amd # Modern GPU monitor with AMD support
|
||||
radeontop # AMD GPU monitoring (like nvidia-smi)
|
||||
nvtopPackages.amd # Modern GPU monitor with AMD support
|
||||
|
||||
# Vulkan tools
|
||||
vulkan-tools # vulkaninfo, etc.
|
||||
vulkan-tools # vulkaninfo, etc.
|
||||
vulkan-loader
|
||||
|
||||
# Video acceleration verification
|
||||
libva-utils # vainfo - verify VA-API
|
||||
vdpauinfo # Verify VDPAU
|
||||
libva-utils # vainfo - verify VA-API
|
||||
vdpauinfo # Verify VDPAU
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# modules/navidrome.nix
|
||||
# Self-hosted music streaming server
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
@@ -24,8 +29,8 @@
|
||||
EnableTranscodingConfig = true;
|
||||
|
||||
# Scan settings
|
||||
ScanSchedule = "@every 1h"; # Rescan library every hour
|
||||
|
||||
ScanSchedule = "@every 1h"; # Rescan library every hour
|
||||
|
||||
# Last.fm scrobbling (configure in UI after setup)
|
||||
LastFM.Enabled = true;
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# modules/power.nix
|
||||
# Power management for desktop: CPU governor control, power profiles
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# modules/services.nix
|
||||
# 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
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd"; # Best compression ratio
|
||||
memoryPercent = 50; # Use up to 50% of RAM for compressed swap
|
||||
algorithm = "zstd"; # Best compression ratio
|
||||
memoryPercent = 50; # Use up to 50% of RAM for compressed swap
|
||||
};
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
@@ -28,9 +33,9 @@
|
||||
# mDNS for local network discovery (.local domains)
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true; # Enable .local resolution
|
||||
openFirewall = true; # Allow mDNS through firewall
|
||||
|
||||
nssmdns4 = true; # Enable .local resolution
|
||||
openFirewall = true; # Allow mDNS through firewall
|
||||
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
@@ -53,7 +58,7 @@
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# ADDITIONAL SYSTEM OPTIMIZATIONS
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
|
||||
|
||||
# Enable firmware updates
|
||||
services.fwupd.enable = true;
|
||||
|
||||
@@ -64,8 +69,8 @@
|
||||
# Early OOM killer - prevents system freeze on memory exhaustion
|
||||
services.earlyoom = {
|
||||
enable = true;
|
||||
freeMemThreshold = 5; # Start killing at 5% free memory
|
||||
freeSwapThreshold = 10; # Also consider swap
|
||||
freeMemThreshold = 5; # Start killing at 5% free memory
|
||||
freeSwapThreshold = 10; # Also consider swap
|
||||
enableNotifications = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# modules/shell.nix
|
||||
# Fish shell configuration with plugins and aliases
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# Enable Fish shell
|
||||
@@ -98,13 +103,13 @@
|
||||
# Fish plugins (managed by NixOS)
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Fish plugins
|
||||
fishPlugins.pure # Pure prompt (minimal & fast)
|
||||
fishPlugins.autopair # Auto-close brackets, quotes
|
||||
fishPlugins.fzf-fish # Fzf integration for fish
|
||||
fishPlugins.done # Notification when long command finishes
|
||||
fishPlugins.grc # Colorize command output
|
||||
fishPlugins.pure # Pure prompt (minimal & fast)
|
||||
fishPlugins.autopair # Auto-close brackets, quotes
|
||||
fishPlugins.fzf-fish # Fzf integration for fish
|
||||
fishPlugins.done # Notification when long command finishes
|
||||
fishPlugins.grc # Colorize command output
|
||||
|
||||
# Required by aliases
|
||||
dust # Better du
|
||||
dust # Better du
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# modules/virtualization.nix
|
||||
# Virtual machine support: QEMU, KVM, libvirt, virt-manager
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
@@ -36,11 +41,11 @@
|
||||
# PACKAGES
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
environment.systemPackages = with pkgs; [
|
||||
virt-manager # GUI for managing VMs
|
||||
virt-viewer # Viewer for VM displays (SPICE/VNC)
|
||||
virtiofsd # Fast file sharing between host and VM
|
||||
qemu-utils # QEMU utilities (qemu-img, etc.)
|
||||
spice-gtk # SPICE client libraries
|
||||
virt-manager # GUI for managing VMs
|
||||
virt-viewer # Viewer for VM displays (SPICE/VNC)
|
||||
virtiofsd # Fast file sharing between host and VM
|
||||
qemu-utils # QEMU utilities (qemu-img, etc.)
|
||||
spice-gtk # SPICE client libraries
|
||||
];
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user