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