![在 dwm 状态栏中显示信息的脚本(例如亮度/音量变化)](https://linux22.com/image/159518/%E5%9C%A8%20dwm%20%E7%8A%B6%E6%80%81%E6%A0%8F%E4%B8%AD%E6%98%BE%E7%A4%BA%E4%BF%A1%E6%81%AF%E7%9A%84%E8%84%9A%E6%9C%AC%EF%BC%88%E4%BE%8B%E5%A6%82%E4%BA%AE%E5%BA%A6%2F%E9%9F%B3%E9%87%8F%E5%8F%98%E5%8C%96%EF%BC%89.png)
我有一个 dwm 状态栏,其中只有很少的信息(使用 bash 脚本):音量、电池、可用磁盘空间和时间。有些东西,例如音量和亮度,应该只在变化时出现(音量增大/减小,亮度增大/减小)。
我可以在终端中执行以下操作:
vol="$(amixer get Master | tail -n1 | sed -r 's/.*\[(.*)%\].*/\1/')"
printf '%s\n' "Volume set to ${vol}" | dzen2 -p 3
这使得 dzen 在条形中间显示实际音量(亮度也一样)。
我使用 XF86MonBrightnessDown XF86MonBrightnessUp (在 config.h 中定义)来改变亮度。
如何获取有关音量/亮度变化的信息?
感谢您的帮助!
答案1
如果我理解正确,您希望dzen2
在更改亮度/音量时看到弹出窗口。您可以从脚本中执行此操作,并在按下相同的按键( 等)时触发XF86MonBrightnessUp
它XF86XK_AudioLowerVolume
。
你的 dwmconfig.h
会有这条线
...
{ 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("volume_change.sh -i") },
{ 0, XF86XK_AudioLowerVolume, spawn, SHCMD("volume_change.sh -d") },
...
该SHCMD
命令将运行给定的 shell 命令。你可以有一个volume_change.sh
脚本
#!/bin/sh
case $1 in
# Increase volume
-i)
pactl set-sink-volume @DEFAULT_SINK@ +5%
vol="$(amixer get Master | tail -n1 | sed -r 's/.*\[(.*)%\].*/\1/')"
printf '%s\n' "Volume set to ${vol}" | dzen2 -p 3
;;
# Decrease volume.
-d)
pactl set-sink-volume @DEFAULT_SINK@ -5%
vol="$(amixer get Master | tail -n1 | sed -r 's/.*\[(.*)%\].*/\1/')"
printf '%s\n' "Volume set to ${vol}" | dzen2 -p 3
;;
esac
还有一个类似的亮度键脚本。
确保您volume_change.sh
的文件中有PATH
并且它是可执行的。
答案2
亮度:
xsetroot -name "