#author: frisodubach
NixOS system configuration based on flakes & a simple module-folder structure. The configuration is based on that of mdvmeijer, expect for it’s more simple in nature. This is my first year of using Nix, and my use-case is not very complicated, so ease of use and simplicity are primarily important.
The configuration is split up in two main directories:
./hosts
./modules
Many Nix configurations I’ve seen are split up between home-manager
and ‘normal’-configuration. I instead like to organise things purely based on functionality.
In ./hosts
system configuration is defined. This should be specific for each system the Nix configuration is used on (currently just one system).
In ./modules
system capabilities are defined, mainly user-specific setup and home-manager
configured programs / dotfiles. Contained in here is configuration of my most used programs such as:
- Hyprland
- rofi
- EWW
- fish
- kitty
There are also a few currently un-used programs included, these I either used before and have since switched away from, or a work in progress. I keep these in for completeness-sake and I don’t want to bother with excluding them from the .gitignore
.
For my config, I emphasise using standard dotfiles when convenient, to allow for anyone to copy my configuration, and make it easy to move away from NixOS should I ever want to (although I doubt it).
While my current configuration is quite okay to use right now, there are still some things that are on my list to fix. Right now this is:
- [-] Battery/Power management for laptop. (Configure
tlp
orauto-cpufreq
)- [X]
tlp
configuration - [ ]
auto-cpufreq
usage/configuration
- [X]
- [X]
eww
improvements/clean-up- [X] Get workspace widget working on
eww
bar. - [X] Clean-up redundant files and folder structure
- [X] Get workspace widget working on
- [ ] Get a working
starship
configuration - [ ] Split up the
hyprland
module into smaller parts - [X] Scripts clean-up
- [X] Move out of
eww
module - [X] add to path
- [X] Create desktop file for convenient use w/ rofi
- [X] Create airplane-mode script
- [X] Create rofi script for tlp management
- [X] Move out of
- [X] Improve
hyprland
configuration ease-of-use. Maybe utilize scratchpad functionality, update / add keyboard shortcuts- [X] Improve multi-monitor workspace configuration
- [X] Improve laptop monitor behaviour
- [ ] Move home-manager to flake (mdvmeijer)
- [X] Configure Doom Emacs with home-manager
- [ ] Add doom folder to path or make environment variable (mdvmeijer)
Things I would really like to implement:
- [X] Bluetooth control menu
- [ ] Microphone control menu
- [ ] Implement nix variables for color scheme
- [ ]
firefox
/librewolf
configuration w/ Nix - [X] Bluetooth setup &
eww
widget - [X] Zatuhra configuration
- [ ] qutebrowser
- [X] Find & use more terminal applications to replace GUI applications (music-player, file-browser, etc)
- [ ] Configure
borg
backups - [X]
mullvad
script for wofi to switch locations