Для сложных ограничений я предпочитаю использовать язык программирования :Awk
find -name '*.c' \
-exec awk -v RS="\0" '/ABC/ && !/123/{print FILENAME}' {} \;
яркость:
xsetroot -name " $(expr $(cat /sys/class/backlight/intel_backlight/brightness) / 49)"
громкость:
xsetroot -name "奄 $(pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,')%"
мои точечные файлы:
https://github.com/felipefacundes/dotfiles/tree/master/config/dwm
Не копируйте и не вставляйте отсюда, потому что я заметил, что в посте этот сайт подавляет *недействительность регулярного выражения команды, зайдите в мои dotfiles и получите скрипт (barcomplete.sh)
Если я правильно понимаю, вы хотите видеть всплывающее окно 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
и он исполняемый.