rgb on waybar
This commit is contained in:
parent
96d02ac12e
commit
d25752f468
3 changed files with 334 additions and 293 deletions
|
|
@ -168,7 +168,7 @@ window#waybar.floating #window {
|
||||||
color: @red;
|
color: @red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-wallpaper {
|
#custom-wallpaper, #custom-rgb {
|
||||||
color: @overlay1;
|
color: @overlay1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,8 @@ in {
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
mainBar = {
|
mainBar = mkMerge [
|
||||||
|
{
|
||||||
layer = "top";
|
layer = "top";
|
||||||
position = "top";
|
position = "top";
|
||||||
spacing = 4;
|
spacing = 4;
|
||||||
|
|
@ -67,6 +68,7 @@ in {
|
||||||
"custom/weather"
|
"custom/weather"
|
||||||
"privacy"
|
"privacy"
|
||||||
"custom/wallpaper"
|
"custom/wallpaper"
|
||||||
|
"custom/rgb"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"group/power" = {
|
"group/power" = {
|
||||||
|
|
@ -107,12 +109,6 @@ in {
|
||||||
tooltip-format = "Power menu";
|
tooltip-format = "Power menu";
|
||||||
on-click = "${powerMenuScript}";
|
on-click = "${powerMenuScript}";
|
||||||
};
|
};
|
||||||
"custom/wallpaper" = {
|
|
||||||
format = "";
|
|
||||||
tooltip = true;
|
|
||||||
tooltip-format = "Change wallpaper";
|
|
||||||
on-click = "${config.modules.desktop.swww.swapScript}";
|
|
||||||
};
|
|
||||||
"niri/workspaces" = {
|
"niri/workspaces" = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
|
|
@ -318,7 +314,24 @@ in {
|
||||||
exec = ''${lib.getExe pkgs.wttrbar} --location "$(${locationScript})" --hide-conditions --fahrenheit --mph'';
|
exec = ''${lib.getExe pkgs.wttrbar} --location "$(${locationScript})" --hide-conditions --fahrenheit --mph'';
|
||||||
return-type = "json";
|
return-type = "json";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
(mkIf config.modules.desktop.swww.enable {
|
||||||
|
"custom/wallpaper" = {
|
||||||
|
format = "";
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-format = "Change wallpaper";
|
||||||
|
on-click = "${config.modules.desktop.swww.swapScript}";
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
(mkIf config.modules.hardware.rgb.enable {
|
||||||
|
"custom/rgb" = {
|
||||||
|
format = "★"; # TODO: better icon (paintbrush or palette?)
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-format = "Change OpenRGB profile";
|
||||||
|
on-click = "${config.modules.hardware.rgb.swapScript}";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,38 @@ let
|
||||||
cfg = config.modules.hardware.rgb;
|
cfg = config.modules.hardware.rgb;
|
||||||
in {
|
in {
|
||||||
options.modules.hardware.rgb = {
|
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 {
|
config = mkIf cfg.enable {
|
||||||
services.hardware.openrgb.enable = true;
|
services.hardware.openrgb.enable = true;
|
||||||
|
services.hardware.openrgb.package = cfg.package;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue