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": {
|
"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"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
# ═══════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════
|
||||||
|
|||||||
Reference in New Issue
Block a user