1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{
config,
lib,
pkgs,
...
}:
{
services.wob = {
enable = true;
settings."" = {
anchor = "top center";
background_color = "0000004d";
border_color = "3b875680";
bar_color = "ffffff4d";
margin = "5 0 0 0";
height = 25;
bar_padding = 0;
border_offset = 0;
border_size = 2;
};
};
programs.niri.settings.binds = with config.lib.niri.actions; {
"XF86AudioMute".action =
spawn (lib.getExe pkgs.bash) "-c"
"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && (wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnugrep} -q MUTED && echo 0 > $XDG_RUNTIME_DIR/wob.sock) || wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnused} 's/[^0-9]//g' > $XDG_RUNTIME_DIR/wob.sock)";
"XF86AudioRaiseVolume".action =
spawn (lib.getExe pkgs.bash) "-c"
"(wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnugrep} -q MUTED && echo 0 > $XDG_RUNTIME_DIR/wob.sock) || (wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ && wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnused} 's/[^0-9]//g' > $XDG_RUNTIME_DIR/wob.sock)";
"XF86AudioLowerVolume".action =
spawn (lib.getExe pkgs.bash) "-c"
"(wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnugrep} -q MUTED && echo 0 > $XDG_RUNTIME_DIR/wob.sock) || (wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnused} 's/[^0-9]//g' > $XDG_RUNTIME_DIR/wob.sock)";
"XF86MonBrightnessUp".action =
spawn (lib.getExe pkgs.bash) "-c"
"${lib.getExe pkgs.brightnessctl} set +2% | ${lib.getExe pkgs.gnused} -En 's/.*\\(([0-9]+)%\\).*/\\1/p' > $XDG_RUNTIME_DIR/wob.sock";
"XF86MonBrightnessDown".action =
spawn (lib.getExe pkgs.bash) "-c"
"${lib.getExe pkgs.brightnessctl} set 2%- | ${lib.getExe pkgs.gnused} -En 's/.*\\(([0-9]+)%\\).*/\\1/p' > $XDG_RUNTIME_DIR/wob.sock";
};
}