My NixOS configuration with multi-host setup, a few GitHub Actions, personal build cache, checks via pre-commit hooks & CI, and Catppuccin theme for all programs.
Key components:
- NixOS for system configuration
- Home Manager for user configuration. Most user-space programs are installed and configured via Home Manager.
- Hyprland as Wayland compositor & window manager. It's very fast, looks amazing, and has a lot of features. Now has a huge community and is finally stable!
- Hyprpanel a panel, widgets, and notifications for Hyprland. Has very good defaults and doesn't require much configuration.
- Ghostty - an amazing modern terminal emulator. Very performant, has a lot of features and super good defaults.
- Catppuccin theme for everything - because it's beautiful, easy on eyes, and has an implementation for every app in the world. It's automatically applied to all programs via cattppuccin/nix.
Minor stuff:
- Starship terminal prompt. Nothing can beat it in terms of speed, features, and looks.
- YubiKey for SSH and GPG. It makes life easier and more secure.
- VS Code and Zed Editor setups. I am moving to Zed while
prerequisites: nix
The repo contains a helper justfile
to assist with common NixOS management tasks.
just
, unbuffer
(provided by expect
package) and nom
commands are required to use it. They can be installed with Nix
in case they are missing:
nix-shell -p just expect nix-output-monitor
To test a new NixOS build, run:
just nixos-rebuild <host>
This will download, build and install system packages and configurations.
To make the build permanent, add mode=switch
:
just mode=switch nixos-rebuild <host>
This will add a new boot record to the bootloader.
Files in $HOME
are defined via Home Manager
, which can be invoked separately:
just home <host> switch
Purpose | Name | Comment |
---|---|---|
Code | FiraCode Nerd Font | |
UI | Cabin | Easy on eyes, good default |
UI | Recursive | Eye candy, catchy |
It's necessary to rebuild fonts cache in order to observe live changes after modifying the config:
fc-cache -rf
-
modules/
contains some custom modules. They are: -
modules/home-manager/nebius-cli.nix
- Nebius CLI
XDG_UTILS_DEBUG_LEVEL=2 xdg-mime query filetype foo.pdf
XDG_UTILS_DEBUG_LEVEL=2 xdg-mime query default application/pdf
fd evince.desktop /