dwmステータスバーに情報を表示するスクリプト(明るさ/ボリュームの変更など)

dwmステータスバーに情報を表示するスクリプト(明るさ/ボリュームの変更など)

ボリューム、バッテリー、空きディスク容量、時間など、ほとんど情報がない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

あなたのdwmにはconfig.h次の行があります

...
    { 0,        XF86XK_AudioRaiseVolume,    spawn,      SHCMD("volume_change.sh -i") },
    { 0,        XF86XK_AudioLowerVolume,    spawn,      SHCMD("volume_change.sh -d") },
...

このSHCMDコマンドは与えられたシェルコマンドを実行します。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実行可能であることを確認してください。

おすすめ記事