1
0
Fork
You've already forked flake
0
My Personal Modular Flake Configuration
  • Nix 75.9%
  • Python 10.2%
  • Shell 7.6%
  • Lua 3.4%
  • HTML 2.9%
2026年06月08日 21:51:32 +01:00
hosts feat: add AdGuardHome and Caddy 2026年06月08日 21:17:00 +01:00
modules feat: add Zed editor with nix-ld 2026年06月08日 21:51:32 +01:00
wallpapers feat: add wallpapers 2026年05月07日 23:42:06 +01:00
.envrc (feat) restructure modules and enhance neovim config 2026年02月06日 13:39:08 +00:00
.gitignore (chore) add gitignore 2026年02月15日 23:36:04 +00:00
flake.lock chore: nixpkg version 26.05 and misc 2026年06月07日 16:16:09 +01:00
flake.nix feat: bootstrap minix host configuration 2026年06月07日 16:58:33 +01:00
README.org (chore) add README.org 2026年02月17日 20:31:01 +00:00

My Personal Flake

Overview

This is my personal NixOS configuration, managed using Nix Flake and Flake-parts.

I am (and probably will for a long time) actively learning as I use and tweak this setup. So it is designed to be modular for extensibility as this iterates over time.

The goal is to have custom functional setups across both my laptop and desktop computer with all the packages and tools that I use. I plan to share most modules across both device as they are for personal work and entertainment, which does not differ too much. However, I try to make things with the future extensibility in mind. I am interested in home labs and will use this to help me build them when time allows.

Features - Main tools that I use

Niri
The scrolling Wayland compositor, my preference after having extensive experience with Hyprland, Sway, KDE Plasma and Gnome.
Waybar
The minimal yet highly customisable status bar.
Fish
Current interactive shell of choice, for ease of use.
Emacs
I use Doom Emacs, in this case an "unstraightened" version with my own Doom config repository imported.
Neovim
I have a somewhat basic Neovim setup using Nixvim, my editor of choice if I don't have Emacs.
And more...
See modules/features/.

Structure

Current project structure, will probably change over time.

flake/
 ├── flake.nix # Entry point
 ├── flake.lock # Dependency lockfile
 ├── hosts/ # Host-specific configurations
 │ └── laptop/ # Lenovo T480 configuration
 └── modules/ # Reusable modules
 ├── core/ # Base system/home configuration
 └── features/ # specific software stacks
 ├── cli/ # CLI utilities
 ├── doom/ # Doom Emacs (unstraightened)
 ├── neovim/ # Neovim (nixvim)
 ├── niri/ # Niri WM & configuration
 ├── shell/ # Fish & configuration
 ├── utilities/ # Screen locking, etc.
 └── waybar/ # Status bar configuration

Usage

I use nh for executing Nix related commands because of it's list of useful features like shorter commands and more readable outputs.

  • To switch to new configuration upon changes:
nh os switch . -H laptop
  • To update my Doom configuration:
nix flake update doom-config
git add flake.lock
nh os switch . -H laptop
  • To perform an update:
nix flake update
git add flake.lock
nh os switch . -H laptop