NixOS is the best operating system I absolutely cannot recommend to anyone - Anurag Singh
(www.xda-developers.com)
This module is actually a bit of a pet peeve of mine and a big reason I soured on Home Manager in general...
You inevitably end up writing chimera configurations like this:
# home.nix
programs.sway = {
enable = true;
# not supported by module - need to use escape hatch
# good luck getting your editor to syntax highlight this snippet btw
extraConfig = /* swayconfig */ ''
bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
'';
};
programs.waybar = {
enable = true:
# can't do that in Nix
style = /* css */ ''
window#waybar {
background: #16191C;
color: #AAB2BF;
}
'';
};
# configuration.nix
# need to enable Sway a second time so the display manager can see it
# this may also install a second Sway if you fuck up your HM setup
programs.sway.enable = true;
and in exchange for this you get:
- 30s+ iteration times for basic changes like keybinds
- No ability to copy paste config snippets from READMEs/Wikis (unless you use
home.file/extraConfigescape hatches) - No ability to edit configuration in scripts (breaks a lot of theming functionality in "shells" like DMS, Noctalia, etc.)
- More ways to write configs that look right but don't quite work or just do dumb things (extra Nixpkgs imports, duplicated packages, WMs that aren't visible to the DM, etc.)
Alternatively you could just use a dotfile manager like rcm or stow or chezmoi like everyone not on NixOS+HM and not have to deal with any of this.