nixos: add quickshell/waybar/taffybar modules

- Switch taffybar input to the local submodule
- Add caelestia quickshell (home-manager module)
- Make waybar/taffybar mutually exclusive, defaulting based on xmonad
- Move tray ordering and status notifier watcher config into the right modules
This commit is contained in:
2026-02-05 12:00:46 -08:00
committed by Kat Huang
parent 2d8d5d7fcb
commit 1f60631e6c
12 changed files with 436 additions and 899 deletions

View File

@@ -1,4 +1,4 @@
{ config, pkgs, lib, makeEnable, inputs, ... }:
{ config, pkgs, makeEnable, inputs, ... }:
makeEnable config "myModules.hyprland" true {
programs.hyprland = {
enable = true;
@@ -8,29 +8,6 @@ makeEnable config "myModules.hyprland" true {
withUWSM = true;
};
home-manager.sharedModules = [
{
programs.waybar.enable = true;
systemd.user.services.waybar = {
Unit = {
Description = "Waybar";
PartOf = [ "wayland-session@Hyprland.target" ];
After = [ "wayland-session@Hyprland.target" ];
};
Service = {
ExecStartPre = "${pkgs.bash}/bin/bash -lc 'uid=$(id -u); for i in $(seq 1 50); do runtime_dir=\"$XDG_RUNTIME_DIR\"; if [ -z \"$runtime_dir\" ]; then runtime_dir=\"/run/user/$uid\"; fi; if [ -n \"$WAYLAND_DISPLAY\" ] && [ -S \"$runtime_dir/$WAYLAND_DISPLAY\" ]; then exit 0; fi; sleep 0.1; done; exit 1'";
ExecStart = "${pkgs.waybar}/bin/waybar";
Restart = "always";
RestartSec = 1;
};
Install = {
WantedBy = [ "wayland-session@Hyprland.target" ];
};
};
}
];
# Hyprland-specific packages
environment.systemPackages = with pkgs; [
# Hyprland utilities