added keybind with script to switch sink
This commit is contained in:
parent
cb999ee36c
commit
6d005a373a
2 changed files with 57 additions and 3 deletions
|
@ -36,9 +36,9 @@ in
|
|||
};
|
||||
|
||||
home-manager.users.${conf.username} = {
|
||||
home.packages = with pkgs; [
|
||||
wl-clipboard
|
||||
xwayland-satellite-unstable
|
||||
home.packages = [
|
||||
pkgs.wl-clipboard
|
||||
pkgs.xwayland-satellite
|
||||
];
|
||||
|
||||
services.swayosd = {
|
||||
|
|
|
@ -7,6 +7,57 @@
|
|||
inherit (config.conf) keys extraLayout;
|
||||
inherit (lib.attrsets) genAttrs;
|
||||
inherit (lib) mkMerge;
|
||||
switch-sink =
|
||||
pkgs.writeScript "switch-sink"
|
||||
''
|
||||
#!/usr/bin/env fish
|
||||
|
||||
# set -l regex '^.* (\*?) \s+ ([[:digit:]]*)\. .* \[.*$'
|
||||
set -l sed 's/^.* ([[:digit:]]*)\. .*$/\1/'
|
||||
set -l awk 'BEGIN { A=0; S=0; } /^Audio/ { A=1; } /Sinks/ { S=1; } /Sources/ { S=0; } /^Video/ { A=0; } { if (A==1 && S==1 && / [[:digit:]]*\./) { print; } }'
|
||||
|
||||
set -l lines (wpctl status | awk $awk)
|
||||
set -l len (count $lines)
|
||||
|
||||
set -l current
|
||||
set -l sinks
|
||||
|
||||
for i in (seq 1 $len)
|
||||
set -l sink (echo $lines[$i] | sed -E $sed)
|
||||
set -a sinks $sink
|
||||
|
||||
if string match -qr '\*' $lines[$i]
|
||||
set current $sink
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
set -l len (count $sinks)
|
||||
set -l index
|
||||
|
||||
for i in (seq 1 $len)
|
||||
if [ $sinks[$i] = $current ]
|
||||
if [ $argv[1] = '-f' ]
|
||||
if [ $i = $len ]
|
||||
set index 1
|
||||
else
|
||||
set index (math $i + 1)
|
||||
end
|
||||
else if [ $argv[1] = '-b' ]
|
||||
if [ $i = 1 ]
|
||||
set index $len
|
||||
else
|
||||
set index (math $i - 1)
|
||||
end
|
||||
else
|
||||
exit 1
|
||||
end
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
wpctl set-default $sinks[$index]
|
||||
'';
|
||||
in {
|
||||
input = {
|
||||
keyboard = {
|
||||
|
@ -143,6 +194,9 @@ in {
|
|||
"Mod+Space".action.spawn = ["fuzzel"];
|
||||
"Mod+Y".action.spawn = ["yubioath-flutter"];
|
||||
|
||||
"XF86AudioNext".action.spawn = ["${switch-sink}" "-f"];
|
||||
"XF86AudioPrev".action.spawn = ["${switch-sink}" "-b"];
|
||||
|
||||
"XF86AudioRaiseVolume".action.spawn = [
|
||||
"swayosd-client"
|
||||
"--output-volume"
|
||||
|
|
Loading…
Add table
Reference in a new issue