wob for vol/brightness
This commit is contained in:
parent
49d20db7f3
commit
fa6c592faf
3 changed files with 69 additions and 8 deletions
|
@ -56,6 +56,7 @@
|
||||||
waybar.enable = true;
|
waybar.enable = true;
|
||||||
batsignal.enable = true;
|
batsignal.enable = true;
|
||||||
clipse.enable = true;
|
clipse.enable = true;
|
||||||
|
wob.enable = true;
|
||||||
|
|
||||||
# display manager
|
# display manager
|
||||||
sddm.enable = true;
|
sddm.enable = true;
|
||||||
|
|
|
@ -47,7 +47,9 @@ in {
|
||||||
|
|
||||||
systemd.variables = [ "--all" ];
|
systemd.variables = [ "--all" ];
|
||||||
|
|
||||||
settings = {
|
settings = let
|
||||||
|
wobSock = config.modules.desktop.wob.sockPath;
|
||||||
|
in {
|
||||||
source = [];
|
source = [];
|
||||||
|
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
@ -56,22 +58,31 @@ in {
|
||||||
"$mod, mouse:272, movewindow"
|
"$mod, mouse:272, movewindow"
|
||||||
"$mod, mouse:273, resizewindow"
|
"$mod, mouse:273, resizewindow"
|
||||||
];
|
];
|
||||||
bindel = [ # "bind held & locked"
|
bindel = (if config.modules.desktop.wob.enable then [ # "bind held & locked"
|
||||||
|
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ | sed 's/[^0-9]//g' > ${wobSock}"
|
||||||
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- | sed 's/[^0-9]//g' > ${wobSock}"
|
||||||
|
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} -c backlight s +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > ${wobSock}"
|
||||||
|
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} -c backlight s 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > ${wobSock}"
|
||||||
|
] else [
|
||||||
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
|
||||||
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} -c backlight s +5%"
|
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} -c backlight s +5%"
|
||||||
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} -c backlight s 5%-"
|
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} -c backlight s 5%-"
|
||||||
];
|
]);
|
||||||
bindl = [ # "bind locked"
|
bindl = ([ # "bind locked"
|
||||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
",switch:Lid Switch,exec,${lib.getExe config.modules.desktop.hyprlock.package}"
|
||||||
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
||||||
|
|
||||||
", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
|
", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
|
||||||
", XF86AudioStop, exec, ${lib.getExe pkgs.playerctl} stop"
|
", XF86AudioStop, exec, ${lib.getExe pkgs.playerctl} stop"
|
||||||
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
|
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
|
||||||
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
|
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
|
||||||
];
|
|
||||||
|
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
] ++ (if config.modules.desktop.wob.enable then [
|
||||||
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && (wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -q MUTED && echo 0 > ${wobSock}) || wpctl get-volume @DEFAULT_AUDIO_SINK@ | sed 's/[^0-9]//g' > ${wobSock}"
|
||||||
|
] else [
|
||||||
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
]));
|
||||||
bindr = [ # "bind released"
|
bindr = [ # "bind released"
|
||||||
"SUPER, Super_L, exec, ${lib.getExe pkgs.nwg-drawer}"
|
"SUPER, Super_L, exec, ${lib.getExe pkgs.nwg-drawer}"
|
||||||
];
|
];
|
||||||
|
|
49
modules/desktop/wob.nix
Normal file
49
modules/desktop/wob.nix
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.desktop.wob;
|
||||||
|
in {
|
||||||
|
options.modules.desktop.wob = {
|
||||||
|
enable = mkEnableOption "Enable wob, a Wayland overlay bar";
|
||||||
|
sockPath = mkOption {
|
||||||
|
description = "Wob sock location";
|
||||||
|
type = types.str;
|
||||||
|
default = "$XDG_RUNTIME_DIR/wob.sock";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
hm.wayland.windowManager.hyprland.settings.exec-once = let
|
||||||
|
path = cfg.sockPath;
|
||||||
|
script = pkgs.writeScript "launch-wob" ''
|
||||||
|
rm -f ${path} && mkfifo ${path} && tail -f ${path} | ${lib.getExe pkgs.wob}
|
||||||
|
'';
|
||||||
|
in [ script ];
|
||||||
|
hm.services.wob = {
|
||||||
|
enable = true;
|
||||||
|
settings = with config.colorScheme.palette; {
|
||||||
|
"" = {
|
||||||
|
timeout = 1000;
|
||||||
|
|
||||||
|
border_offset = 2;
|
||||||
|
border_size = 2;
|
||||||
|
bar_padding = 2;
|
||||||
|
|
||||||
|
anchor = "top";
|
||||||
|
width = 300;
|
||||||
|
height = 30;
|
||||||
|
|
||||||
|
margin = 12;
|
||||||
|
|
||||||
|
border_color = "${base04}FF";
|
||||||
|
background_color = "${base01}66";
|
||||||
|
bar_color = "${base05}FF";
|
||||||
|
|
||||||
|
overflow_mode = "nowrap";
|
||||||
|
output_mode = "focused";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue