A modular, flake-based NixOS configuration featuring declarative disk partitioning, system-wide theming, hardened security, and gaming/productivity optimizations.
| Host | Description | CPU / Architecture | GPU | Boot / SecureBoot |
|---|---|---|---|---|
fumonix-desktop |
Main Workstation | AMD Ryzen (Zen 4) | AMD Radeon | Limine with SecureBoot |
fumonix-laptop |
Tuxedo InfinityBook Max 15 Gen 10 | AMD Ryzen (Zen 4) | AMD Radeon + NVIDIA RTX (PRIME Offload) | Limine with SecureBoot |
- Stylix: Coordinated system-wide dark theme based on Tokyo Night Dark (
base16-schemes). - Display Manager: SDDM customized with the Catppuccin Mocha Mauve theme (
catppuccin-sddm) with Qt multimedia & SVG support. - Bootloader: Themed Limine bootloader via Stylix.
- Typography & Cursors: JetBrainsMono Nerd Font, Noto Sans/Serif CJK JP, Noto Color Emoji, and
Bibata-Modern-Icecursors. - Integrated Toolkits: Cohesive theming across KDE Plasma 6, GTK, and Flatpak applications.
- Desktop Environment: Declaratively configured KDE Plasma 6 (Wayland) via
plasma-manager. - Panel & Layout: Floating bottom panel with NixOS Kickoff launcher, icon tasks, pager, 4 virtual desktops, 24h clock with custom date formatting (
dd/MM/yyyy), and system tray. - Window Management:
FocusFollowsMousepolicy with zero delay. - Default Terminal: Ptyxis terminal emulator integrated into KDE globals with session restore disabled.
- Default Applications: Comprehensive XDG MIME mappings for Brave, VS Code, Thunderbird, Gwenview, Elisa, MPV/umpv, Okular, and Dolphin.
- Input Tuning: Flat mouse acceleration profile (1:1 direct tracking).
- Optimized Kernel: CachyOS Zen 4 LTO kernel (
linuxPackages_cachyos-lto-znver4) sourced from Chaotic-Nyx (nyxpkgs-unstable) binary cache. - Wine Synchronization:
ntsynckernel module enabled for high-performance Wine/Proton thread synchronization. - System Tuning:
vm.max_map_count = 2147483642(SteamOS default) and maximumnofilepam/systemd limits (1048576). - Laptop Hardware: Tuxedo drivers (
tuxedo-driverswith custom pahole override for CachyOS kernels) and Tailor GUI (tailor-gui). - NVIDIA Hybrid Graphics: Open NVIDIA kernel modules (
nvidia_cachyos-lto) with PRIME offload (nvidia-offload).
- Steam: Configured with 32-bit graphics support, firewall rules for Steam Remote Play, and custom Proton compatibility tools:
proton-cachyos_x86_64_v3proton-ge-custom
- Performance & Monitoring: MangoHud, Goverlay, GameMode, and Gamescope session support.
- GPU Control: LACT daemon and GUI for AMDGPU fan curves, monitoring, and overclocking.
- Frame Generation: Lossless Scaling Vulkan layer (
lsfg-vk) and UI (lsfg-vk-ui).
- DNS-over-TLS & DNSSEC: Native
systemd-resolvedconfiguration enforcing DNS-over-TLS and DNSSEC with AdGuard DNS (dns.adguard-dns.com). - Network Privacy: NetworkManager configured with MAC address randomization (
stable-temporaryfor Wi-Fi and Ethernet) and IPv6 privacy extensions (ip6-privacy = 2). - Firewall: Modern
nftablesfirewall with selective ports for KDE Connect (1714–1764 TCP/UDP) and Steam. - Captive Portals:
captive-browserintegrated for public networks on laptop. - Hardened Firefox: Enterprise policy profile locking down all telemetry/studies, enforcing Brave Search, and force-installing uBlock Origin, Multi-Account Containers, and Cookie AutoDelete.
- Brave Browser: Configured with Proton Pass, Plasma Integration, Decentraleyes, and Privacy Badger.
- Declarative Partitioning: Automated GPT partitioning, LUKS2 encryption, and Btrfs subvolumes (
@,@home,@nix,@log,@snapshots,@swap) via Disko. - Containers: Rootless Podman configuration with Docker CLI alias, Docker socket compatibility, Podman Desktop, Podman TUI, and declarative OCI container definitions.
- Virtualization: QEMU/KVM via
libvirtdwith TPM emulation (swtpm),virtiofsdshared folders, and SPICE clipboard integration. - Package Management: Nix Flakes, Home Manager, Flatpak management via
nix-flatpakwith scheduled daily updates, andnix-ldfor running unpatched dynamic binaries.
-
Boot into the NixOS Live USB.
-
Verify target disk ID: Ensure the disk ID in hosts/desktop/disko.nix or hosts/laptop/disko.nix matches your target drive:
ls -l /dev/disk/by-id/
-
Partition, format, and mount with Disko:
For Desktop:
sudo nix --extra-experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode disko --flake github:fumoctl/FumoNix#fumonix-desktopFor Laptop:
sudo nix --extra-experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode disko --flake github:fumoctl/FumoNix#fumonix-laptop(Or clone the repo locally and use
--flake .#<hostname>) -
Install NixOS:
sudo nixos-install --flake github:fumoctl/FumoNix#<hostname>
-
Reboot:
reboot
- Boot into the NixOS Live USB on the target machine.
- Generate hardware configuration (without storage mounts):
(The
nixos-generate-config --no-filesystems --show-hardware-config
--no-filesystemsflag avoids hardcoding mounts and UUIDs since Disko manages storage). - Create the new host configuration:
- Create
hosts/<hostname>/:hardware-configuration.nix(paste the output from step 2).disko.nix(specify the target disk ID and partition scheme).containers.nix(host-specific container and Podman configuration).default.nix(import../common/default.nix,./hardware-configuration.nix,./disko.nix, and./containers.nix).
- Add the host definition under
nixosConfigurations.<hostname>in flake.nix.
- Create
- Partition and Install:
sudo nix --extra-experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode disko --flake .#<hostname> sudo nixos-install --flake .#<hostname> reboot
cd FumoNix
sudo nixos-rebuild switch --flake .#fumonix-<hostname>sudo nixos-rebuild boot --flake .#fumonix-<hostname>cd FumoNix
nix flake update
sudo nixos-rebuild switch --flake .#fumonix-<hostname>