Configuration files for NixOS + Home Manager.
Find a file
jasmine 571c034691
feat(editors): add Claude slash command and refactor config structure
Reorganize Claude configuration into dedicated subdirectory and add
reusable slash command for updating Docker services.

- Create editors/claude/ directory structure
- Move CLAUDE.md and settings.json into claude/
- Add slash commands directory with update-docker-services command
- Update default.nix to link individual files (allows Claude state files)
2025-12-23 11:14:49 +08:00
assets rotate monitor, bump xmonad 2025-06-19 09:48:43 +08:00
home-manager/sajenim feat(editors): add Claude slash command and refactor config structure 2025-12-23 11:14:49 +08:00
modules fmt: alejandra 2024-08-08 09:02:42 +08:00
nixos refactor(jade): install wallpaper to system and separate xinitrc sections 2025-12-21 13:00:44 +08:00
overlays feat(jade): create modular desktop environment 2025-12-21 12:36:11 +08:00
pkgs chore: migrate xmonad + xmobar to there own flake 2025-02-23 18:24:25 +08:00
.envrc setup just 2025-03-23 20:41:04 +08:00
.gitignore Update .gitignore 2024-07-26 08:49:06 +08:00
.mcp.json Revert "chore: remove .mcp.json to enable on-demand only" 2025-10-04 16:17:35 +08:00
flake.lock feat: upgrade to NixOS 25.11 2025-12-20 16:53:59 +08:00
flake.nix feat: upgrade to NixOS 25.11 2025-12-20 16:53:59 +08:00
justfile docs: update README and add justfile recipes 2025-12-21 21:45:35 +08:00
LICENSE Create LICENSE 2023-07-07 23:52:30 +00:00
README.md docs: update README and add justfile recipes 2025-12-21 21:45:35 +08:00
shell.nix setup just 2025-03-23 20:41:04 +08:00

NixOS & Home-Manager Configuration

My NixOS and Home-Manager config files. Based upon Misterio77's starter configs.

This repo is often neglected and doesn't necessarily follow best practices. I recommend only using this repo for inspiration and instead use this boilerplate

Preview

screenshot

Hosts

  • fuchsia - Desktop gaming and development machine with full desktop environment
  • viridian - Server hosting multimedia services, git forge, and various web services

Features

  • Opt-in persistence with ephemeral btrfs root and 14-day snapshot retention.
  • Snapper automated snapshots with tiered retention (24h/7d/4w/12m).
  • Automated borgbackup of mutable service and container data.
  • Traefik reverse proxy with geoblock and crowdsec security middleware.
  • Secrets managed with agenix and rekeyed with yubikey.
  • Standalone nixvim configuration for neovim.
  • Custom haskell packages for xmonad & xmobar.
  • Declarative minecraft server with nix-minecraft.
  • Media server with typical *arr stack.
  • Private DNS with .home.arpa for all internal services.

Usage

Common tasks are available via the justfile:

just build <hostname>         # Build configuration without switching
just switch <hostname>        # Build and switch to new configuration
just deploy <hostname>        # Deploy to remote host over SSH
just update                   # Update all flake inputs
just update-input <input>     # Update specific flake input

Installation

# Prepare disks, create an EFI System partition and Linux Filesystem partition
fdisk /dev/nvme0n1

# Create our filesystems
mkfs.fat -F32 -n ESP /dev/nvme0n1p1
mkfs.btrfs -L ${hostname} /dev/nvme0n1p2
    
# Create our subvolumes
mount /dev/nvme0n1p2 /mnt/btrfs
btrfs subvolume create /mnt/btrfs/{root,nix,persist,swap}
umount /mnt/btrfs

# Prepare for installation
mount -o compress=zstd,subvol={root,nix,persist,swap} /dev/nvme0n1p2 /mnt/{nix,persist,swap}
mount /dev/nvme0n1p1 /mnt/boot

# Clone the configuration files and enter repo
git clone https://github.com/sajenim/nix-config.git && cd nix-config

# Install our system configuration
nixos-install --flake .#hostname

FAQ

  • What is nix?
    Nix is a tool that takes a unique approach to package management and system configuration.
  • Nix benefits
    Nix is reproducible, declarative and reliable.
  • Why flakes?
    Flakes allow you to specify your code's dependencies (e.g. remote Git repositories) in a declarative way, simply by listing them inside a flake.nix file.

Credit

Boilerplate

Other Configs