There exists nix-darwin, which allows for installing and configuring graphical apps on macOS. However, in my experience the OS starts freaking out about permissions every time you build --switch. Something about changing around the symlinks to .app files confuses it and resets permissions and duplicates autostart entries and such, which unfortunately got me to give up on it.