My NixOS config
The name is inspired by the DOTA hero Nyx
- flake.nix => Base of the configuration
- modules => Flake Parts modules, the following modules are currently implemented:
- System Modules:
- apps.nix
- flatpak
- enable Flatpak and register the Flathub repository
- flatpak
- browser.nix
- chromium
- install Chromium with Widevine DRM
- firefox
- enable Firefox system-wide
- chromium
- desktop.nix
- base-desktop
- enable polkit and D-Bus, required by all desktop environments
- basic-catppuccin
- apply Catppuccin Mocha/Peach theming system-wide without cursor theme
- basic-fonts
- install core fonts and Nerd Font variants of JetBrains Mono and Noto, with sane defaults
- catppuccin
- apply full Catppuccin Mocha/Peach theming system-wide including cursor theme
- fonts
- install the full Nerd Fonts collection (60+ families) plus core/Vista fonts
- language-de
- set German (Austria) language and locale for all LC categories
- language-en
- set English (GB) UI language with Austrian locale for measurements, currency, and time
- base-desktop
- dev.nix
- android
- install Android Studio, SDK platform-tools, and adb; adds elias to the adbusers group
- c
- install GCC, CMake, Make, GDB, Valgrind, GTest, Conan, and related C/C++ tooling
- dev-certs
- load all .pem certificates from the certs/ directory into the system trust store
- dotnet
- install .NET 10 SDK with ILSpy and set DOTNET_ROOT/DOTNET_BIN environment variables
- go
- install the Go toolchain with gopls, Delve debugger, and golangci-lint
- java
- install JDK 25 and JDK 8 with Ant, Maven, and Gradle; sets JAVA_25_HOME and JAVA_8_HOME
- latex
- install the full TeX Live scheme for LaTeX document authoring
- python
- install Python 3 with scientific and GUI libraries (numpy, matplotlib, pandas, pygobject, etc.)
- android
- games.nix
- steam
- enable Steam with Proton, Protontricks, MangoHud, Gamescope, and open firewall ports
- steam
- kde.nix
- kde
- enable KDE Plasma 6 on X11 with SDDM, Austrian keyboard layout, and trimmed default packages
- kde
- network.nix
- blocky
- run Blocky as a local DNS resolver with ad/malware blocking and custom LAN hostname mappings
- cloudflared
- run a Cloudflare Tunnel daemon for zero-trust remote access to local services
- firewall-desktop
- enable firewall with ports for SSH, Steam, Spotify, KDE Connect, and Stardew Valley LAN
- firewall-server
- enable firewall with minimal ports for SSH, HTTP/HTTPS, and DNS only
- ssh
- enable OpenSSH server (key-only auth) and configure client host aliases and known hosts
- vpn
- enable Mullvad VPN service and install WireGuard tools
- warp
- enable Cloudflare WARP client for secure DNS and network privacy
- blocky
- niri.nix
- niri
- enable the Niri tiling compositor with DankMaterialShell greeter, Thunar, and XWayland support
- niri
- nix.nix
- base-settings
- enable flakes, allow unfree packages, configure the Nix daemon, and install Nix dev tools
- distributed-build
- configure this machine to offload builds to EliasPC via SSH
- distributed-builder
- configure this machine to accept remote build jobs from other hosts
- home-manager
- integrate Home Manager as a NixOS module with shared global packages
- nh
- enable nh with weekly auto-cleanup, keeping the last 3 generations for 7 days
- base-settings
- optimizations.nix
- optimizations-laptop
- use the Zen kernel with TLP for AC/battery power profiles and an 80% charge threshold
- optimizations-pc
- use the Zen kernel, enable TLP in performance mode, and disable USB/PCIe power-saving for desktop use
- optimizations-laptop
- system.nix
- basic-system
- set timezone to Vienna, enable all firmware, fwupd, fstrim, and NTFS support
- bluetooth
- enable Bluetooth, power on at boot, and enable experimental features for battery reportingcpu-in
- cpu-amd
- enable AMD CPU microcode updates
- cpu-intel
- enable Intel CPU microcode updates and install PowerTOP
- gpu-amd
- enable AMDGPU driver with ROCm/OpenCL support, GPU frequency boosting, and 32-bit graphics
- gpu-nvidia
- enable NVIDIA proprietary drivers with modesetting and 32-bit graphics support
- grub
- configure GRUB EFI bootloader with a UEFI firmware entry
- printing
- enable CUPS with the HP HPLIP driver and SANE scanning support
- sound
- enable PipeWire with ALSA and PulseAudio compatibility, rtkit, and media control tools
- swap
- configure zram swap and an encrypted swapfile sized via the swapSize specialArg (in GB)
- basic-system
- terminal.nix
- nix-index
- enable nix-index-database with comma for running unlisted commands without installing them
- terminal
- enable ZSH system-wide and pull in the terminal Home Module for all users
- nix-index
- users.nix
- elias
- create the elias user with wheel, networkmanager, and printing group memberships
- others
- create the fred and gerhard users with standard group memberships
- elias
- utilities.nix
- cli-utilities
- install network, filesystem, hardware, and diagnostic CLI tools (fastfetch, jq, curl, etc.)
- cli-utilities
- virtualization.nix
- docker
- enable Docker daemon with Google DNS and add all users in the users specialArg to the docker group
- vm
- enable VirtualBox with extension pack and guest additions for running virtual machines
- winboat
- enable QEMU/libvirt with SPICE USB redirection and virt-manager for Windows VMs
- docker
- apps.nix
- Home Modules:
- ai.nix
- opencode
- enable the OpenCode AI coding agent with auto-update, Context7 MCP server, nix-module/caveman/caveman-commit/caveman-review skills, and NixOS/Nix subagent with nix-check and nix-rebuild commands
- opencode-dotnet
- extend OpenCode with the dotnet-dev skill and dotnet build/test/format commands
- opencode-java
- extend OpenCode with the java-dev skill and Maven/Gradle build/test/format commands
- opencode
- apps.nix
- discord
- install Vesktop with Catppuccin Mocha CSS theme
- email
- install Thunderbird and register it as the default mail and calendar handler
- idea
- install JetBrains IntelliJ IDEA
- rider
- install JetBrains Rider
- kde-connect
- install KDE Connect for phone-desktop integration
- libreoffice
- install LibreOffice Qt with English and German spell-check dictionaries
- media
- install VLC and cava, and configure Spicetify-themed Spotify with extensions
- media-editors
- install GIMP, Inkscape, and kdenlive for image and video editing
- nomacs
- install Nomacs image viewer and register it as the default for common image formats
- obs
- install OBS Studio with wlrobs and background-removal plugins
- pdf
- install Okular and pdfarranger for viewing and rearranging PDF files
- qgis
- install QGIS geographic information system
- teams
- install Teams for Linux
- vscode
- install VS Code (FHS wrapper) and set it as the default text editor
- vscode-non-fhs
- install VS Code (non-FHS) and set it as the default text editor
- discord
- browser.nix
- betterfox
- configure Firefox with Betterfox hardened user.js and set it as the default browser
- betterfox
- desktop.nix
- basic-catppuccin
- apply Catppuccin Mocha/Peach theming in Home Manager without cursor theme
- catppuccin
- apply full Catppuccin Mocha/Peach theming in Home Manager including GTK, Qt, icons, and cursor
- basic-catppuccin
- games.nix
- minecraft
- install ATLauncher for managing Minecraft modpacks
- minecraft
- kde.nix
- plasma-manager
- configure KWin, KRunner, screen locker, power settings, and session restore via plasma-manager
- plasma-manager
- network.nix
- sailing
- install sailing applications ;)
- sailing
- niri.nix
- niri
- configure Niri keybinds, layout, and the full DankMaterialShell bar with plugins and Danksearch
- niri
- nix.nix
- home-manager
- enable Home Manager self-management with monthly auto-expiry of old generations
- home-manager
- terminal.nix
- terminal
- configure Kitty, ZSH with oh-my-zsh, Starship prompt, direnv, fzf, eza, ripgrep, and bat
- terminal
- users.nix
- elias
- set home directory and username for the elias Home Manager configuration
- fred
- set home directory and username for the fred Home Manager configuration
- gerhard
- set home directory and username for the gerhard Home Manager configuration
- elias
- utilities.nix
- git
- configure Git with user identity, LFS, rebase-on-pull, and a log graph alias
- gui-utilities
- install Baobab disk analyser, Bruno API client, and GNOME multi-writer
- git
- ai.nix
- System Modules:
- modules/hosts => Per-host setup. Uses the defined modules
- images => Background and ReadMe images
- workspaces => Workspaces for different tasks



