我有一个 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 "