My config files, helpful resources, and some advice from my experience with NixOS.
- Firefox CSS: panefox
- Wallpapers (with credits): wallpaper-stash
- Neovim config: neovim-dots
- Fetcher: fletchling
Desktop Environments & Window Managers
Login Manager: greetd with tuigreet
Applications | |
---|---|
Terminal | kitty |
Editor | Neovim (with nixPatch) |
File manager | Thunar & yazi |
Web browser | Firefox |
Art program | Krita |
Document viewer | Zathura |
To-do list | dooit |
Music player | Tauon |
Hyprland-specific | |
---|---|
Lockscreen | hyprlock |
Bar | AGS |
Notifications | AGS (mako-like style) |
Logout menu | AGS |
Launcher | fuzzel |
Wallpaper | swww |
Screen temperature | wlsunset |
Screenshot | hyprshot |
Color picker | hyprpicker |
Theming | |
---|---|
GTK theme | Rose Pine |
Cursor | Rose Pine Dawn cursor |
Icons | Papirus with Catppuccin folders & Adwaita |
Sans serif font | Karla |
Monospace font | 0xProto (Nerd Font) |
Display font | RitzFLF |
Colorscheme generator | hellwal |
- Krita
- Theme: Catppuccin Macchiato Maroon
- Brushes & Resources
- Plugins
- Obsidian.md CSS snippets
These are things I used that ended up not entirely fitting my use-case, but they're wonderful nonetheless and I still recommend them.
- foot, lightweight terminal emulator for Wayland
- NixOS website
- Nix package manager & NixOS download
- The
nix-env
package manager works like most other package managers. However, I'd advise against it if you really want to get into Nix's declarative nature.- Unless all you want is just a good package manager
- The
- nix.dev, Nix ecosystem documentation
- Nixpkgs reference manual
- NixOS wiki
- Search
- Awesome Nix
- Flakes
- NixOS & Flakes Book
- Very helpful guide to Nix flakes
- Flakes may seem daunting at first, but they make it easier to add extra sources and configuration options. Plus, they're more declarative than Nix channels.
- Nix User Repository (NUR)
- User-maintained NixOS wiki
- Remember to optimize your NixOS storage
A declarative approach to configuring your user environment! It's like NixOS's configuration file, but only for the home directory. It's great if you want to tinker without adding a bunch of generations to your boot menu, or use different configurations for users on the same system.
It can work on other distros too. I tried it on openSUSE Tumbleweed, though not long-term.
I mainly use NixOS and Home Manager, but here are some other interesting tools.
- nh, a pretty wrapper for rebuilding
- NixVim, for configuring Neovim and its plugins declaratively
- Stylix, for quick universal colorschemes and fonts
- nix-flatpak, for managing Flatpaks declaratively
NixOS works very differently to other Linux distros, but that's why I enjoy it!
- To locate an installed package's directory, use
nix path-info nixpkgs#<package-name>
.- It is not fun to manually search through
/nix/store/
to find a specific package version.
- It is not fun to manually search through
- If you want a starter config, start small!
- You can understand a lot by doing things yourself.
- Configs that are too complex may confuse you out of changing them.
- If you really want a config without the manual effort, NixOS is probably not for you.
- NixOS documentation truly is sparse.
- To dig deep, don't be afraid to look through the source code and manuals.
- You can do a ton on NixOS, but it takes time, effort, and undoubtly frustration.
- You don't need to rely on the options NixOS and Home Manager give you to create config files.
- NixOS has
environment.etc."path/file.type"
, which creates/etc/path/file.type
. - Home Manager has many:
home.file."path/file.type"
creates/home/user/path/file.type
.xdg.configFile."path/file.type"
creates~/.config/path/file.type
.- (Unless your XDG config directory is somewhere else.)
- You can use
"path/file.type".source = config.lib.file.mkOutOfStoreSymlink /absolute/path/to/file
to create a symlink.- Unlike the options above, it is not necessary to rebuild and switch for changes to take place.
- Or create your own modules.
- NixOS has
The beginning may be tough, but given enough time, navigating NixOS becomes second nature. The declarative nature gives me piece of mind that nothing important is forgotten. From development environments to custom packages, Nix is a wonderful piece of software!