Quellcode durchsuchen

better hotkey handling

Noah Vogt vor 3 Jahren
Ursprung
Commit
cf20b7dc58

+ 30 - 10
dot-config/xbindkeys/config

@@ -1,3 +1,19 @@
+"dec-kbd-blt"
+   XF86KbdBrightnessDown
+"dec-kbd-blt"
+   Mod4 + F9
+
+"inc-kbd-blt"
+   XF86KbdBrightnessUp
+"inc-kbd-blt"
+   Mod4 + F10
+
+"rfkill toggle wifi && pkill -RTMIN+3 dwmblocks"
+   Mod4 + F5
+
+"rfkill toggle all && pkill -RTMIN+3 dwmblocks"
+   Mod4 + F4
+
 # toggle mute
 "amixer set Master toggle && pkill -RTMIN+1 dwmblocks"
    XF86AudioMute
@@ -5,34 +21,38 @@
    Mod4 + F1
 
 # lower volume
-"amixer set Master 10%- && pkill -RTMIN+1 dwmblocks"
+"amixer set Master 5%- && pkill -RTMIN+1 dwmblocks"
    XF86AudioLowerVolume
-"amixer set Master 10%- && pkill -RTMIN+1 dwmblocks"
+"amixer set Master 5%- && pkill -RTMIN+1 dwmblocks"
    Mod4 + F2
 
 # increase volume
-"amixer set Master 10%+ && pkill -RTMIN+1 dwmblocks"
+"amixer set Master 5%+ && pkill -RTMIN+1 dwmblocks"
    XF86AudioRaiseVolume
-"amixer set Master 10%+ && pkill -RTMIN+1 dwmblocks"
+"amixer set Master 5%+ && pkill -RTMIN+1 dwmblocks"
    Mod4 + F3
 
 # dmenu mount prompt
 "dmenumount"
-   Mod4 + F8
+   Mod4 + F7
 
 # dmenu umount prompt
 "dmenuumount"
-   Mod4 + F9
+   Mod4 + F8
 
 # decrease monitor brightness
-"dec-brightness && pkill -RTMIN+2 dwmblocks && brightness-save"
+"dec-brightness && brightness-save && set-brt"
+   XF86MonBrightnessDown
+"dec-brightness && brightness-save && set-brt"
    Mod4 + F11
 
 # increase monitor brightness
-"inc-brightness && pkill -RTMIN+2 dwmblocks && brightness-save"
+"inc-brightness && brightness-save && set-brt"
+   XF86MonBrightnessUp
+"inc-brightness && brightness-save && set-brt"
    Mod4 + F12
 
-# select area of screenshoot
+# select area of screenshot
 "screenshot-area"
    Mod4 + Print
 
@@ -82,4 +102,4 @@
 
 # open htop in new terminal window
 "st-exec htop"
-   Mod4 + F7
+   Mod4 + F6

+ 1 - 2
local-bin/battery

@@ -5,8 +5,7 @@
 acpi -b | grep -q "Battery 0" || { printf ""; exit; }
 
 BATTERYSTATE=$( acpi -b | awk '{ split($5,a,":"); print substr($3,0,2), $4, "["a[1]":"a[2]"]" }' | tr -d ',DiFu' )
-if [[ $BATTERYSTATE =~ "Ch" ]]
-then
+if [[ $BATTERYSTATE =~ "Ch" ]]; then
     icon="⚡"
 else
     icon="🔋"

+ 4 - 1
local-bin/brightness

@@ -2,7 +2,10 @@
 
 # script to display the brightness state in dwmblocks
 
-device=$(brightnessctl -l | grep "class 'backlight'" | head -n 1 | awk '{print $2}' | tr -d "'")
+device=$(brightnessctl -l | grep "class 'backlight'" | tail -n +3 | awk '{print $2}' | tr -d "'")
+if brightnessctl -l | grep "class 'backlight'" | grep -q "^Device 'acpi_video0'"; then
+    device="acpi_video0"
+fi
 [ -z "$device" ] && { printf ""; exit; }
 
 printf "🔆 %s\\n" "$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2}')"

+ 6 - 1
local-bin/brightness-save

@@ -2,7 +2,12 @@
 
 # script to save the brightness state so it is the same after a restart
 
-device=$(brightnessctl -l | grep "class 'backlight'" | head -n 1 | awk '{print $2}' | tr -d "'")
+device=$(brightnessctl -l | grep "class 'backlight'" | tail -n +3 | awk '{print $2}' | tr -d "'")
+if brightnessctl -l | grep "class 'backlight'" | grep -q "^Device 'acpi_video0'"; then
+    device="acpi_video0"
+fi
 [ -z "$device" ] && { printf ""; exit; }
 
+
+mkdir -p "$HOME/.config/norisa"
 printf "%s\\n" "$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2}' | tr -d "%")" > ~/.config/norisa/brightness-state

+ 7 - 3
local-bin/dec-brightness

@@ -1,8 +1,12 @@
 #!/bin/sh
 
-# script to decrease the brightness by 10%
+# script to decrease the display brightness by 5%
 
-device=$(brightnessctl -l | grep "class 'backlight'" | head -n 1 | awk '{print $2}' | tr -d "'")
-brightness=$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2 - 10}')
+device=$(brightnessctl -l | grep "class 'backlight'" | tail -n +3 | awk '{print $2}' | tr -d "'")
+if brightnessctl -l | grep "class 'backlight'" | grep -q "^Device 'acpi_video0'"; then
+    device="acpi_video0"
+fi
+
+brightness=$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2 - 5}')
 
 brightnessctl -d "${device}" set "$brightness"%

+ 8 - 0
local-bin/dec-kbd-blt

@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# script to decrease the keyboard backlight brightness by 10%
+
+device=$(brightnessctl -l | grep "kbd_backlight" | head -n 1 | awk '{print $2}' | tr -d "'")
+brightness=$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2 - 10}')
+
+brightnessctl -d "${device}" set "$brightness"%

+ 5 - 5
local-bin/dmenumount

@@ -13,21 +13,21 @@ getmount() { \
 	[ "$mp" = "" ] && exit 1
 	if [ ! -d "$mp" ]; then
 		mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1
-		[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp")
+		[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || doas mkdir -p "$mp")
 	fi
 	}
 
 mountusb() { \
 	chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?")" || exit 1
 	chosen="$(echo "$chosen" | awk '{print $1}')"
-	sudo -A mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0
+	doas mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0
 	alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}')
 	getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted"
 	partitiontype="$(lsblk -no "fstype" "$chosen")"
 	case "$partitiontype" in
-		"vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;;
-		"exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";;
-		*) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";;
+		"vfat") doas mount -t vfat "$chosen" "$mp" -o rw,umask=0000;;
+		"exfat") doas mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";;
+		*) doas mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; doas chown "$user":"$ug" "$mp";;
 	esac
 	notify-send "💻 USB mounting" "$chosen mounted to $mp."
 	}

+ 2 - 2
local-bin/dmenuumount

@@ -9,13 +9,13 @@ unmountusb() {
 	chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1
 	chosen="$(echo "$chosen" | awk '{print $1}')"
 	[ -z "$chosen" ] && exit
-	sudo -A umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted."
+	doas umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted."
 	}
 
 unmountandroid() { \
 	chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?")" || exit 1
 	[ -z "$chosen" ] && exit
-	sudo -A umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted."
+	doas umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted."
 	}
 
 asktype() { \

+ 12 - 4
local-bin/inc-brightness

@@ -1,8 +1,16 @@
 #!/bin/sh
 
-# script to increase the brightness by 10%
+# script to increase the display brightness by 5%
 
-device=$(brightnessctl -l | grep "class 'backlight'" | head -n 1 | awk '{print $2}' | tr -d "'")
-brightness=$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2 + 10}')
+device=$(brightnessctl -l | grep "class 'backlight'" | tail -n +3 | awk '{print $2}' | tr -d "'")
+if brightnessctl -l | grep "class 'backlight'" | grep -q "^Device 'acpi_video0'"; then
+    device="acpi_video0"
+fi
 
-brightnessctl -d "${device}" set "$brightness"%
+brightness=$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2 + 5}')
+
+if [ "$(cat .config/norisa/brightness-state)" -eq "100" ]; then
+    exit 1
+else
+    brightnessctl -d "${device}" set "$brightness"%
+fi

+ 8 - 0
local-bin/inc-kbd-blt

@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# script to increase the keyboard backlight brightness by 10%
+
+device=$(brightnessctl -l | grep "kbd_backlight" | head -n 1 | awk '{print $2}' | tr -d "'")
+brightness=$(brightnessctl -d "${device}" | grep Current | awk -F '[)(]' '{print $2 + 10}')
+
+brightnessctl -d "${device}" set "$brightness"%

+ 12 - 5
local-bin/internet

@@ -1,12 +1,19 @@
 #!/bin/sh
-
 # script to display the network state in dwmblocks
 
 wifi=$(iwgetid -r)
-upstate=$(ip a | grep BROADCAST,MULTICAST, | awk '{print $9}')
-if [ -z "$wifi" ];
-    then
-        printf "%s\\n" "🔌 $upstate"
+upstate=$(ip a | grep BROADCAST,MULTICAST | awk '{print $9}')
+if [ -z "$wifi" ]; then
+    if echo "$upstate" | grep -q "DOWN"; then
+        if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | sed 's/unblocked//g' | uniq | wc -l)" -eq "1" ]; then
+            if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | sed 's/unblocked//g' | grep . | wc -l)" -gt "0" ]; then
+                echo "📡 off"; exit
+            fi
+        elif rfkill list wifi | grep 'Soft blocked' | awk '{print $3}' | grep -q 'yes'; then
+            echo "📶 off"; exit
+        fi
+    fi
+    printf "%s\\n" "🔌 $upstate"; exit
     else
         # alternatively: diplay percentage
         # awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "%" }' \

+ 15 - 0
local-bin/set-brt

@@ -0,0 +1,15 @@
+#!/bin/sh
+
+mkdir -p "/tmp/norisa/"
+
+update() {
+    pkill -RTMIN+2 dwmblocks
+    touch "/tmp/norisa/brt-tempfile"
+    sleep 0.5
+    rm "/tmp/norisa/brt-tempfile"
+    pkill -RTMIN+2 dwmblocks
+}
+
+if [ ! -f "/tmp/norisa/brt-tempfile" ]; then
+    update
+fi