! READ THE README FOR YOUR PLATFORM BEFORE DOING ANYTHING !
- Linux (NixOS): Linux/README.md
- Windows: Windows/README.md
Personal system configuration for Linux (NixOS + Hyprland) and Windows (Komorebi + YASB).
8-minute video tour - click the image above
Three interchangeable Hyprland shells - caelestia, noctalia, end-4 - swap between them at runtime, no reinstall needed. Details: Linux/README.md.
Full keybind reference (every shell, every bind): GitHub Wiki
or Linux/keybinds.md.
Want your own logo on the GRUB/SDDM/Plymouth boot screens instead of the default one? Drop an
image in ~/.config/wahrwelt/boot-theme/ - details in
Linux/README.md.
Want your own Hyprland keybinds/rules/execs without forking the repo? Everything under
~/.config/hypr/ is Home Manager-managed and read-only, but ~/.config/hypr/wahrwelt/ isn't -
details in
Linux/README.md.
Any image works as-is (sizing/format is handled automatically), but if you want the same circular, transparent-background look as the built-in default, crop it yourself first with ImageMagick:
convert your-photo.jpg -resize 320x320^ -gravity center -extent 320x320 \
\( +clone -alpha extract -fill black -colorize 100 -fill white -draw "circle 160,160 160,0" \) \
-alpha off -compose CopyOpacity -composite logo.pngThis is entirely optional - a plain rectangular photo works fine too, it just renders as a square instead of a circle.
| caelestia-shell | noctalia v5 | noctalia v4 | end-4 (Illogical Impulse) |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Zen Browser (Catppuccin chrome) | Zen + Sine mods | Neovim (LazyVim) |
|---|---|---|
![]() |
![]() |
![]() |
| TUI Installer - User | TUI Installer - Display |
|---|---|
![]() |
![]() |
Contributors: read CONTRIBUTING.md before opening a PR. Security issues: see SECURITY.md.
- Linux/ - NixOS configuration with Hyprland 0.55+ Lua config, custom themes, dev environment
- Windows/ - Windows configuration with Komorebi tiling WM and YASB status bar
Read Linux/README.md first - pre-installation requirements, path config, regional notes, troubleshooting, and the full command reference all live there.
| Scenario | Command |
|---|---|
Install (stable main, opens TUI) |
nix run --refresh 'github:TakuyaYagam1/wahrwelt' |
Install (latest dev, opens TUI) |
nix run --refresh 'github:TakuyaYagam1/wahrwelt/dev?dir=Linux/NixOS#wahrwelt' -- tui |
Install with more build cores (match your CPU's thread count via nproc, not just the 4 4 example below - and keep max-jobs low regardless of core count on machines with less than ~16GB RAM, since each job builds independently and OOM doesn't check core count), stable main, opens TUI |
nix run --refresh --option max-jobs 4 --option cores 4 'github:TakuyaYagam1/wahrwelt' |
Install with more build cores (same caveats as above), latest dev, opens TUI |
nix run --refresh --option max-jobs 4 --option cores 4 'github:TakuyaYagam1/wahrwelt/dev?dir=Linux/NixOS#wahrwelt' -- tui |
| Reapply saved config, no TUI | nix run --refresh 'github:TakuyaYagam1/wahrwelt?dir=Linux/NixOS#wahrwelt' -- apply |
| Inspect / repair an installed host | nix run --refresh 'github:TakuyaYagam1/wahrwelt?dir=Linux/NixOS#wahrwelt' -- doctor |
| Update an already-installed system | nixos-update |
Existing installations remain compatible with the legacy repository URL, flake output, CLI
name, module namespace, and host constructor. For example,
nix run --refresh 'github:TakuyaYagam1/MySetup?dir=Linux/NixOS#mysetup' -- doctor
continues to work. On the first successful Wahrwelt update, recognized legacy state and
configuration paths are migrated automatically to wahrwelt; compatibility names remain
available only as source/API aliases.
The installer asks about: Wahrwelt channel, username/password, package preset, display and
keyboard layout, Secure Boot, GPU type, locale/timezone, CTF tools, and user
dotfiles. Full flag reference (--layout, --lock-mode, low-RAM bootstrap, flake module usage
for external hosts, etc.) is in Linux/README.md.
Presets are cumulative - each tier includes everything below it and adds more on top
(minimal -> desktop -> developer -> personal). Pick by what the machine is for:
| Preset | Boots into | What it adds on top of the tier below | Best for |
|---|---|---|---|
minimal |
Text console only (no display manager, no Hyprland) | Base system + core CLI/system tools, Wayland libraries/tools, and audio utilities (cava, pavucontrol). No graphical desktop - you log in at a TTY. | Servers, VMs, low-spec boxes, or anyone who just wants the CLI base. If you boot to a black screen with a blinking cursor, that is the console login working as intended - type your user and password. |
desktop |
The graphical Hyprland rice | SDDM greeter + Hyprland compositor + the three runtime shells, plus everyday GUI apps (Firefox, Zen, Spotify, Telegram, Vesktop, LibreOffice, mpv, Obsidian, file manager, screenshot/calculator/terminal-multiplexer tools) and gaming/portal/font support. | Most people who want the desktop but not a dev or private-workstation load. This is the lowest preset that gives you a graphical session. |
developer |
Same graphical desktop | Developer/API/container tooling: VS Code, API clients (yaak, ngrok), a SQLite TUI, Claude Code, Codex CLI, Codex Desktop, and container extras. | A workstation you also code on, without the full personal app pile. |
personal |
Same graphical desktop | The full private-workstation load: Chrome, extra office suites, Anytype, DBeaver/DataGrip, many editors/IDEs (Cursor, Zed, QtCreator, Android Studio), additional AI tools (gemini-cli, ollama, opencode), Flutter/Android tooling, plus games (Lutris, Heroic). | My own machine, basically. I built this preset specifically for my personal daily-driver, so it's opinionated and packed with my exact toolset - most people should stick to one of the first three. This is by far the heaviest build; on <16GB RAM keep max-jobs low (see the build-cores note above) to avoid OOM during the first build. |
Read Windows/README.md first - you must update paths in
yasb/config.yamlbefore running the installer.
git clone https://github.com/TakuyaYagam1/wahrwelt.git
cd wahrwelt\Windows
.\install.ps1The Hyprland shells, rices, and themes here are built directly on top of these upstream projects - these dots would not exist without them:
- meowrch/meowrch - original rice that inspired the SDDM theme, Plymouth/GRUB visuals, and the overall Hyprland aesthetic.
- noctalia-dev/noctalia - QuickShell-based desktop shell shipped as one of the runtime profiles.
- end-4/dots-hyprland - the Illogical Impulse
Hyprland/QuickShell dotfiles wired in as the
end4runtime profile. - caelestia-dots/shell - Caelestia QuickShell, the default runtime profile.
- anotherhadi/nixy - reference NixOS workstation config used for ideas around Home Manager modules, MIME defaults, and Nix utility wiring.
Additional thanks to @outfoxxed for QuickShell, which all three shell profiles depend on, and to the wider Hyprland community for the help, suggestions, and reference configs.
GPL-3.0










