2f2e3162878f9c6947f5745dc6455a17a13101c9
finally fucking fix default browser hurricane: 135 current 2025-06-30 10:55:19 25.05.20250620.b2485d5 6.15.3 *
Felix's NixOS Configuration
A modular, flake-based NixOS configuration supporting multiple hosts with shared and host-specific configurations.
🏗️ Structure Overview
nix-config/
├── flake.nix # Main flake definition with inputs and outputs
├── hosts/ # Host-specific configurations
│ ├── wildfire/ # Desktop workstation (AMD GPU)
│ └── hurricane/ # Laptop/secondary system
├── modules/ # Shared configuration modules
│ ├── common.nix # Base system configuration
│ ├── programs.nix # System-wide packages and programs
│ ├── hm/ # Home Manager configurations
│ └── desktops/ # Desktop environment configurations
└── rebuild-nix-system.sh # Helper script for system rebuilds
🖥️ Hosts
Wildfire (Desktop Workstation)
- GPU: AMD with
lact
daemon for GPU control - Features: Gaming setup with Steam, DaVinci Resolve, Ardour
- Special: LUKS encryption, dedicated GPU configuration
Hurricane (Laptop/Secondary)
- Type: Portable system
- Features: Basic desktop setup with power management
- Special: Touchpad support, power profiles
Both hosts use:
- Desktop: Hyprland (Wayland compositor)
- Display Manager: regreet (lightweight Wayland greeter)
- Audio: PipeWire with ALSA and PulseAudio compatibility
- Security: Firejail sandboxing for browsers, Yubikey support
🧩 Modules
modules/common.nix
Base system configuration shared across all hosts:
- User Management: Main user
schulze
with shell and groups - Boot: systemd-boot with latest kernel
- Networking: NetworkManager with firewall
- Localization: Swedish locale with English UI
- Security: Core dump disabled, firewall enabled, ClamAV antivirus
- Home Manager: Integration and user-specific imports
- System: Auto-upgrades, fonts, and core settings
modules/programs.nix
System-wide packages and program configurations:
- Development: VS Code (Cursor), Git, Python, Node.js, etc.
- CLI Tools: Modern alternatives (zoxide, starship, fish)
- Security: GPG, OpenSSL, Yubikey tools
- Applications: Firefox, Thunderbird, LibreOffice, media tools
- Virtualization: Docker, libvirt/QEMU with virt-manager
modules/desktops/hyprland-desktop.nix
Hyprland desktop environment setup:
- Compositor: Hyprland with UWSM session management
- Portal: XDG desktop portal for Wayland
- Workflow: Waybar, Rofi, Mako notifications
- Theming: Gruvbox theme with consistent fonts
- Tools: Screenshot tools, clipboard manager, file manager
modules/hm/
Home Manager configurations:
hyprland.nix
: User-specific Hyprland configurationhome-manager.nix
: Base Home Manager settings
🚀 Usage
Building and Switching
# Build and switch to new configuration
sudo nixos-rebuild switch --flake .#hostname
# Or use the helper script
./rebuild-nix-system.sh
Updating the System
# Update flake inputs
nix flake update
# Update and rebuild
./update-nix-system.sh
🔒 Security Features
- Sandboxing: Browsers run in Firejail containers
- Firewall: Enabled by default, minimal open ports
- Antivirus: ClamAV with automatic signature updates
- Authentication: Yubikey U2F support
- Encryption: LUKS disk encryption (wildfire)
- Updates: Automatic security updates at 02:00
🎨 Theming and UI
- Theme: Gruvbox Dark
- Icons: Flat-Remix-Red-Dark
- Fonts: Intel One Mono, Noto Sans
- Terminal: Ghostty with Fish shell
- Launcher: Rofi (Wayland)
- Notifications: Mako
📦 Package Management
System Packages
- Defined in
modules/programs.nix
- Available system-wide for all users
Host-Specific Packages
- Added in individual host
configuration.nix
files - Only installed on that specific host
User Packages
- Managed through Home Manager
- Per-user configurations in
modules/hm/
🔄 Development Workflow
Code Style
- Use
alejandra
for Nix code formatting - Comment complex configurations
- Group related settings together
Description
Languages
Nix
97.5%
Shell
2.5%