Linux 使用shell脚本和shell进程陷阱解决了dwm音频控制问题

Linux 使用shell脚本和shell进程陷阱解决了dwm音频控制问题,linux,shell,kill,Linux,Shell,Kill,我正在尝试使用xsetroot-name和shell脚本设置卷状态。这个shell脚本还每分钟更新一次时间。当按下音量增大键(MODKEY+XK_equal)时,会生成增加音量的shell命令(amixer set),如果成功生成用户陷阱信号SIGUSR1,则会更新音量和xsetroot。这项工作通过终端(st)进行,但不使用dwm config.h中的键绑定 dwmbar shell脚本的一部分 #!/bin/sh DWMBAR_PID=$$ reset_sleep() { pk

我正在尝试使用xsetroot-name和shell脚本设置卷状态。这个shell脚本还每分钟更新一次时间。当按下音量增大键(MODKEY+XK_equal)时,会生成增加音量的shell命令(amixer set),如果成功生成用户陷阱信号SIGUSR1,则会更新音量和xsetroot。这项工作通过终端(st)进行,但不使用dwm config.h中的键绑定

dwmbar shell脚本的一部分

#!/bin/sh

DWMBAR_PID=$$


reset_sleep() {
    pkill -P $DWMBAR_PID sleep
    echo "reset!!"
}

trap reset_sleep USR1

while :; do
    xsetroot -name "$(get_status | tr '\n' "$delim")"
    sleep 1m &
    wait $!
done
dwm config.h中的键绑定

{ MODKEY, XK_equal, spawn, SHCMD("amixer -q set Master 5%+ unmute && kill -SIGUSR1 $(pidof dwmbar)")}
注意

amixer-q set Master 5%+取消静音
使用keybind成功运行。 我尝试了使用pidof和pgrep的-x选项来获取dwmbarshell脚本的PID,这两个选项都通过按键失败,但通过终端工作

有什么办法可以解决这个问题吗

谢谢

编辑

解决了!
kill-USR1$(pidof-x dwmbar)
kill-10$(pidof-x dwmbar)
可通过按键工作