Yeah, that’s a super common feeling in the Nix world. It’s awesome that you found a setup you actually like with GNOME + PaperWM, though! A lot of people write it off without giving it a fair shot.
I think the main reason GNOME doesn’t get as much love from the Nix crowd is that it’s kinda the opposite of the Nix philosophy. GNOME is designed to be configured through GUIs and gsettings, not plain text files. So when you try to “declare” your entire system, you end up fighting against how it’s meant to be used. Wrangling all those extensions and settings can be a real pain, as you’ve noticed.
Window managers like Hyprland or Niri are built from the ground up to be configured with a single config file, which fits the Nix model perfectly. That’s why they’re so popular here.
Since you were originally looking at Hyprland/Niri, you might wanna check out LabWC if you ever get the itch to try something else. It’s a fantastic Wayland compositor that sits in a nice middle ground. It’s stacking by default, but you can easily make it tile, and you’re not locked into one paradigm.
The best part for a Nix user is how dead simple it is to configure declaratively. You don’t even need fancy home-manager modules, you can just dump the config right into your configuration.nix. For example, here’s a snippet of mine:
# environment.etc
environment.etc = {
# xdg/labwc/autostart
"xdg/labwc/autostart" = {
text = ''
/run/current-system/sw/bin/kitty --start-as=fullscreen &
'';
};
# xdg/labwc/environment
"xdg/labwc/environment".text = ''
XKB_DEFAULT_MODEL=pc105
XKB_DEFAULT_LAYOUT=us,ru
XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
'';
# xdg/labwc/rc.xml
"xdg/labwc/rc.xml".text = ''
<?xml version="1.0"?>
<labwc_config>
<windowRules>
<windowRule identifier="*" serverDecoration="no"/>
</windowRules>
</labwc_config>
'';
};
So you get full control over your keybindings, window rules, autostart apps, all right there in your main Nix config. No more hunting for obscure gsettings keys!
Anyway, just thought I’d throw it out there as an option. Happy tinkering