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.
- Zed editor setup with a bunch of language servers and plugins. Zed is the future. The GOAT Python LSs are configured for Zed:
ruff
andbasedpyright
.
Packages are cached in CI so local installations are faster (this is critical for nightly Zed builds from the flake which take 40+ min).
- NixOS or just nix (only
$HOME
setup) - nh - an excellent Nix helper. It has a better UX and the output is nicer.
nh os switch
This will download, build and install system packages, files and configurations.
Note
Use nh os test
to test configurations without adding boot entries.
nh home switch
This will download, build and install user packages, files and configurations.
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 /