From d2e44d330de33260b7cd06c381f277f062611d90 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sun, 20 Dec 2020 23:13:36 +0100 Subject: [PATCH] dunst: Add brightness level notifications Added notifications on changing brightness, will stack by default to show the current level before disappearing. The script to change and notify can be run through the command `control-brightness`, and is bound to the sxhkd media key shortcuts for brightness changes. Removed the brightness indicator from polybar since it should be easy enough to check current brightness by doing a quick higher-lower and that's it. Kept the module in polybar configuration script since I might reconsider its removal if it turns out to have been useful. --- nvim/.config/nvim/spell/en.utf-8.add | 1 + polybar/.config/polybar/config | 13 ++++--- scripts/.local/bin/control-brightness | 55 +++++++++++++++++++++++++++ sxhkd/.config/sxhkd/sxhkdrc | 2 +- 4 files changed, 64 insertions(+), 7 deletions(-) create mode 100755 scripts/.local/bin/control-brightness diff --git a/nvim/.config/nvim/spell/en.utf-8.add b/nvim/.config/nvim/spell/en.utf-8.add index 23e4299..662453d 100644 --- a/nvim/.config/nvim/spell/en.utf-8.add +++ b/nvim/.config/nvim/spell/en.utf-8.add @@ -95,3 +95,4 @@ transnationalism universalisms univseralism weaponization +blog diff --git a/polybar/.config/polybar/config b/polybar/.config/polybar/config index 1738cc1..ac48e9a 100644 --- a/polybar/.config/polybar/config +++ b/polybar/.config/polybar/config @@ -57,9 +57,9 @@ padding-left = 0 padding-right = 0 module-margin-left = 2 -modules-left = workspaces sxhkdmode pomo papersdue +modules-left = sxhkdmode workspaces pomo papersdue modules-center = music date -modules-right = networkspeed mail weather archupdates cpu temp backlight volume battery +modules-right = networkspeed mail weather archupdates cpu temp volume battery ; do not use offsets for the bar, would only work with override-redirect ; and will mess up tray https://github.com/polybar/polybar/issues/1355 tray-position = right @@ -130,7 +130,7 @@ ws-icon-default = ♟ ; Default: %icon% %name% ; unfocused = Inactive workspace on any monitor label-unfocused = %icon% -label-unfocused-padding = 4 +label-unfocused-padding = 2 label-unfocused-underline = ${colors.background-alt} ; focused = Active workspace on focused monitor label-focused = %icon% @@ -212,7 +212,7 @@ format-underline = ${colors.primary} [module/date] type = internal/date ; Seconds to sleep between updates -interval = 1.0 +interval = 5.0 ; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string ; NOTE: if you want to use syntax tags here you need to use %%{...} date = %d/%m @@ -221,8 +221,8 @@ time = %H:%M ; if `date-alt` or `time-alt` is defined, clicking ; the module will toggle between formats date-alt = %A, %d %B %Y (W %V) -time-alt = %H:%M -label = %date%%{T2}  %{T-}%time% +time-alt = %H:%M:%S +label = %date%%{T2} %{T-}%time% format-underline = ${colors.primary} ; display information on currently playing track, allows simple track manipulation @@ -295,6 +295,7 @@ format-underline = ${colors.primary} [module/networkspeed] type = custom/script exec = $XDG_CONFIG_HOME/polybar/scripts/poly-networkspeed +exec-if = type $XDG_CONFIG_HOME/polybar/scripts/poly-networkspeed tail = true format-underline = ${colors.primary} diff --git a/scripts/.local/bin/control-brightness b/scripts/.local/bin/control-brightness new file mode 100755 index 0000000..afcf83d --- /dev/null +++ b/scripts/.local/bin/control-brightness @@ -0,0 +1,55 @@ +#!/usr/bin/env sh +# Brightness control script using xbacklight +# Will use notify-send to create brightness notifications, if dunst is used +# or the notification daemon supports tag stacks, will automatically update +# the same notifications and not create new ones. +# +# inspired from https://gist.github.com/Blaradox/030f06d165a82583ae817ee954438f2e + +usage() { + echo "usage: control-brightness up|down [step], where step can be any int value +or: control-brightness set target, where target can be an int value 0-100" +} + +direction=$1 +step=${2:-10} + +get_brightness() { + xbacklight -get | cut -d. -f1 +} + +send_notification() { + icon="preferences-system-brightness-lock" + brightness=$(get_brightness) + # Make the bar with the special character ─ (it's not dash -) + # https://en.wikipedia.org/wiki/Box-drawing_character + bar=$(seq -s "─" 0 $((brightness / 5)) | sed 's/[0-9]//g' | + sed -e 's/^─/┠/' -e 's/^\(.\{20\}\)/\1┫/') + if type dunstify 1>/dev/null 2>/dev/null; then + dunstify -i "$icon" -u normal " $bar" -a "xbacklight" -h string:x-dunst-stack-tag:brightness + else + notify-send -i "$icon" -u normal " $bar" -a "xbacklight" -h string:x-dunst-stack-tag:brightness + fi +} + +case $direction in +up) + xbacklight -inc "$step" + send_notification + ;; +down) + xbacklight -dec "$step" + send_notification + ;; +set) + if [ -z "$step" ]; then + echo "set option requires target brightness to be specified." + return 1 + fi + xbacklight -set "$step" + send_notification + ;; +*) + echo "usage: control-brightness up|down [step], where step can be any int value" + ;; +esac diff --git a/sxhkd/.config/sxhkd/sxhkdrc b/sxhkd/.config/sxhkd/sxhkdrc index 5ce3764..c0371c3 100644 --- a/sxhkd/.config/sxhkd/sxhkdrc +++ b/sxhkd/.config/sxhkd/sxhkdrc @@ -19,7 +19,7 @@ super + F7 # enable function (/media) key functionality XF86MonBrightness{Up,Down} - xbacklight {-inc,-dec} 10 + control-brightness {up, down} 10 XF86AudioMute pavolume mutetoggle XF86Audio{LowerVolume,RaiseVolume}