From a056431f0898ff14df45982b0d7dcbec9ce0337e Mon Sep 17 00:00:00 2001 From: ryukamish Date: Wed, 10 Jun 2026 22:23:42 +0530 Subject: add: scripts for waybar ext brightness and tmux-sessionizer --- .local/bin/waybar-brightness | 69 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 .local/bin/waybar-brightness (limited to '.local/bin/waybar-brightness') diff --git a/.local/bin/waybar-brightness b/.local/bin/waybar-brightness new file mode 100755 index 0000000..138f5ee --- /dev/null +++ b/.local/bin/waybar-brightness @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +# --- CONFIGURATION --- +DISPLAY_NUM=1 +STEP=5 +STATE_FILE="/tmp/waybar_brightness.tmp" +# --------------------- + +# Function to send the actual DDC/CI command in the background +set_brightness_in_background() { + pkill -f "ddcutil.*setvcp 10" + (ddcutil --display $DISPLAY_NUM setvcp 10 $1) & +} + +# Ensure state file exists, or create it by querying the monitor +if [ ! -f "$STATE_FILE" ]; then + # ddcutil terse output format: "VCP 10 C " + initial_brightness=$(ddcutil --display $DISPLAY_NUM getvcp 10 -t 2>/dev/null | awk '{print $4}') + # Fallback to 50 if ddcutil fails or returns non-numeric + if ! [[ "$initial_brightness" =~ ^[0-9]+$ ]]; then + initial_brightness=50 + fi + echo "$initial_brightness" >"$STATE_FILE" +fi + +current=$(cat "$STATE_FILE") +# Validate current is a number, fallback to 50 if corrupted +if ! [[ "$current" =~ ^[0-9]+$ ]]; then + current=50 + echo "$current" >"$STATE_FILE" +fi + +case "$1" in +"get") + echo "$current" + ;; +"up") + new_brightness=$((current + STEP > 100 ? 100 : current + STEP)) + if [ "$current" -ne "$new_brightness" ]; then + echo "$new_brightness" >"$STATE_FILE" + set_brightness_in_background "$new_brightness" + fi + pkill -RTMIN+9 waybar # Can add whatever RTMIN+n you please, as long as it's an integer. Make sure the signals match between the config and script. + ;; +"down") + new_brightness=$((current - STEP < 0 ? 0 : current - STEP)) + if [ "$current" -ne "$new_brightness" ]; then + echo "$new_brightness" >"$STATE_FILE" + set_brightness_in_background "$new_brightness" + fi + pkill -RTMIN+9 waybar + ;; +"right_click") + new_brightness=0 + if [ "$current" -ne "$new_brightness" ]; then + echo "$new_brightness" >"$STATE_FILE" + set_brightness_in_background "$new_brightness" + fi + pkill -RTMIN+9 waybar + ;; +"left_click") + new_brightness=100 + if [ "$current" -ne "$new_brightness" ]; then + echo "$new_brightness" >"$STATE_FILE" + set_brightness_in_background "$new_brightness" + fi + pkill -RTMIN+9 waybar + ;; +esac -- cgit v1.3