rgb on waybar

This commit is contained in:
Reid 2026-04-05 17:00:30 -07:00
parent 96d02ac12e
commit d25752f468
Signed by: reidlab
GPG key ID: DAF5EAF6665839FD
3 changed files with 334 additions and 293 deletions

View file

@ -5,10 +5,38 @@ let
cfg = config.modules.hardware.rgb;
in {
options.modules.hardware.rgb = {
enable = mkEnableOption "Enable support for rgb devices through openrgb";
enable = mkEnableOption "Enable support for rgb devices through OpenRGB";
package = mkOption {
type = types.package;
default = pkgs.openrgb;
example = "pkgs.openrgb";
};
swapScript = mkOption {
type = types.package;
default = pkgs.writeShellScript "openrgb-swap" ''
set -euo pipefail
mapfile -t files < <(
find "$XDG_CONFIG_HOME/OpenRGB" -name "*.orp"
find /var/lib/OpenRGB -name "*.orp" 2>/dev/null
)
selected=$(printf '%s\n' "''${files[@]}" | xargs -n1 basename | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -i -p "select profile")
[[ -z "$selected" ]] && exit 0
for f in "''${files[@]}"; do
if [[ $(basename "$f") == "$selected" ]]; then
${lib.getExe cfg.package} -p "$f"
break
fi
done
'';
};
};
config = mkIf cfg.enable {
services.hardware.openrgb.enable = true;
services.hardware.openrgb.package = cfg.package;
};
}