No description
Find a file
2026-02-04 19:55:06 +01:00
hm Hyprland: use normal obsidian command on thor 2026-02-04 19:55:06 +01:00
instances Sif: switch gdm to cosmic-greeter 2026-02-04 15:44:44 +01:00
nixos Modularized virtualization config 2026-01-28 14:12:47 +01:00
pkgs Fix hyprland background 2026-01-16 14:13:58 +01:00
secrets update(secrets): rclone 2025-12-01 16:02:10 +01:00
themes Nix fmt rfc style (more or less) 2024-08-13 12:22:23 +02:00
wallpapers Lockscreen: update background 2024-10-18 15:37:51 +02:00
.envrc Disable dotenv 2025-03-28 17:04:36 +01:00
.gitignore fixup! Fix thor 2024-10-21 20:06:58 +02:00
.markdownlint.json Readme file 2026-02-02 10:49:02 +01:00
.typos.toml False positive typos 2026-02-02 10:21:04 +01:00
default.nix Nix fmt rfc style (more or less) 2024-08-13 12:22:23 +02:00
flake.lock Flake lock update 2026-02-04 17:29:15 +01:00
flake.nix Fix many typos 2026-02-02 10:14:33 +01:00
hosts.nix Add sif to hosts 2025-11-07 16:17:07 +01:00
README.md Readme file 2026-02-02 10:49:02 +01:00

bertof's NixOS Dotfiles

Personal NixOS configuration repository using flake-parts for modular system management across multiple hosts.

Architecture

Structure

  • flake.nix - Main flake definition with flake-parts modularization
  • instances/ - Host-specific configurations (thor, sif, odin, heimdall, baldur)
  • hm/ - Home Manager modules and user configurations
  • nixos/ - NixOS system modules and shared configurations
  • pkgs/ - Custom packages and overlays
  • secrets/ - Encrypted secrets managed with ragenix

Hosts

  • thor - AMD desktop system (stable channel)
  • sif - Intel desktop system (stable channel)
  • odin - Intel laptop/server hybrid
  • heimdall - AMD server with self-hosted services
  • baldur - Intel server with monitoring services

Features

System Management

  • flake-parts for modular flake structure
  • Multi-channel support (stable/unstable nixpkgs)
  • Hardware-specific configurations via nixos-hardware
  • Secret management with ragenix encryption

Development & Quality

  • Pre-commit hooks with nix-git-hooks:
    • deadnix - Remove dead code
    • nixpkgs-fmt - Format Nix code
    • statix - Lint for best practices
    • flake-checker - Validate flake structure
    • mdformat & markdownlint - Markdown formatting
    • typos - Spell checking

Home Manager Integration

  • Modular user configurations in hm/
  • Development environments (cpp, go, javascript, kubernetes)
  • Desktop applications (alacritty, neovim, browsers)
  • Custom theming with nix-rice

Custom Packages

  • keyboard-switch - Keyboard layout switcher
  • wl-clipedit - Wayland clipboard editor
  • wl-lockscreen - Wayland lock screen
  • wl-update-background - Background updater

Usage

Development Environment

nix develop

Build System

nix build .#nixosConfigurations.thor.config.system.build.toplevel

Deploy Configuration

sudo nixos-rebuild switch --flake .#thor

System Images

Generate deployment images:

nix build .#install-iso          # Installer ISO
nix build .#raw-base-image       # RAW image
nix build .#vmdk-base-image      # VMware image
nix build .#aarch64-base-image    # ARM64 image

Configuration Details

Channels

  • Stable (nixpkgs-s) - Production systems (thor, sif)
  • Unstable (nixpkgs-u) - Development and latest packages

Modules

  • basic - Core Nix configuration
  • commonModules - Shared system modules
  • mainModules - Desktop environment modules
  • homeManagerModules - User-level configuration

Services by Host

  • heimdall: Nextcloud, Immich, Forgejo, Garage, Ollama
  • baldur: Vaultwarden, Uptime Kuma, Garage
  • thor/sif: Steam, Ollama, Garage, Virtualization
  • odin: IP forwarding, Garage, Steam

Requirements

  • Nix with flakes enabled
  • Git for version control
  • ragenix for secret management

Workflow

  1. Make changes to configuration
  2. Pre-commit hooks automatically validate and format
  3. Test with nix build
  4. Deploy with nixos-rebuild switch
  5. Commit with validated changes

License

Personal configuration - not intended for redistribution