Configuration files for NixOS + Home Manager.
Find a file
jasmine f7de9e3c05
feat(wezterm): unify navigation with XMonad keybindings
Add sequential pane navigation and rotation to match XMonad's window
management pattern. This creates consistent muscle memory across both
the window manager and terminal multiplexer.

Changes:
- Add Alt+PageUp/PageDown for sequential pane focus (mirrors XMonad's window cycling)
- Add Alt+Ctrl+PageUp/PageDown for pane rotation (mirrors XMonad's rotAll)
- Change Leader+Tab to Leader+t for new tab (free up 't' was for zoom, now 'm')
- Change zoom from Leader+t to Leader+m (matches XMonad's maximize mnemonic)

Keybinding philosophy:
- Base keys (Alt+PageUp/Down) = navigation/viewing
- Ctrl modifier = structural control (resize/rotate)
- Consistent with XMonad: Mod+PageUp/Down (focus), Mod+Ctrl+PageUp/Down (rotate)
2025-10-03 00:15:05 +08:00
assets rotate monitor, bump xmonad 2025-06-19 09:48:43 +08:00
home-manager/sajenim feat(wezterm): unify navigation with XMonad keybindings 2025-10-03 00:15:05 +08:00
modules fmt: alejandra 2024-08-08 09:02:42 +08:00
nixos refactor: centralize unfree package allowlists 2025-10-01 10:23:20 +08:00
overlays chore: fix unfree 2025-06-19 09:08:29 +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 chore: add MCP server configuration for NixOS integration 2025-09-30 16:36:57 +08:00
CLAUDE.md add Claude Code integration 2025-09-29 09:13:00 +08:00
flake.lock chore: add claude-code flake input 2025-09-30 16:11:13 +08:00
flake.nix chore: add claude-code flake input 2025-09-30 16:11:13 +08:00
justfile setup just 2025-03-23 20:41:04 +08:00
LICENSE Create LICENSE 2023-07-07 23:52:30 +00:00
README.md Update README.md 2024-08-05 09:34:17 +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 necesarrily follow best practices.
I recommend only using this repo for inspiration and instead use this boilerplate

Preview

screenshot

Features

  • Opt-in persistance with ephermeral btrfs.
  • 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.
  • Borgbackup of mutable service/container data.
  • Media server with typical *arr stack.
  • FQDN with private DNS for all internal services.
  • Crowdsecurity for all public services.

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/dotfiles.nix.git && cd dotfiles.nix

# 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