diff --git a/bin/omarchy-brightness-keyboard b/bin/omarchy-brightness-keyboard index ea3a67b2..a05922d2 100755 --- a/bin/omarchy-brightness-keyboard +++ b/bin/omarchy-brightness-keyboard @@ -1,7 +1,7 @@ #!/bin/bash # Adjust keyboard backlight brightness using available steps. -# Usage: omarchy-brightness-keyboard +# Usage: omarchy-brightness-keyboard direction="${1:-up}" @@ -24,7 +24,9 @@ max_brightness="$(brightnessctl -d "$device" max)" current_brightness="$(brightnessctl -d "$device" get)" # Calculate step as one unit (keyboards typically have discrete levels like 0-3). -if [[ "$direction" == "up" ]]; then +if [[ "$direction" == "cycle" ]]; then + new_brightness=$(( (current_brightness + 1) % (max_brightness + 1) )) +elif [[ "$direction" == "up" ]]; then new_brightness=$((current_brightness + 1)) [[ $new_brightness -gt $max_brightness ]] && new_brightness=$max_brightness else @@ -37,4 +39,4 @@ brightnessctl -d "$device" set "$new_brightness" >/dev/null # Use SwayOSD to display the new brightness setting. percent=$((new_brightness * 100 / max_brightness)) -omarchy-swayosd-brightness "$percent" +omarchy-swayosd-kbd-brightness "$percent" diff --git a/bin/omarchy-swayosd-kbd-brightness b/bin/omarchy-swayosd-kbd-brightness new file mode 100755 index 00000000..7102b561 --- /dev/null +++ b/bin/omarchy-swayosd-kbd-brightness @@ -0,0 +1,15 @@ +#!/bin/bash + +# Display keyboard brightness level using SwayOSD on the current monitor. +# Usage: omarchy-swayosd-kbd-brightness + +percent="$1" + +progress="$(awk -v p="$percent" 'BEGIN{printf "%.2f", p/100}')" +[[ "$progress" == "0.00" ]] && progress="0.01" + +swayosd-client \ + --monitor "$(hyprctl monitors -j | jq -r '.[]|select(.focused==true).name')" \ + --custom-icon keyboard-brightness \ + --custom-progress "$progress" \ + --custom-progress-text "${percent}%" diff --git a/default/hypr/bindings/media.conf b/default/hypr/bindings/media.conf index 38334119..9506ff41 100644 --- a/default/hypr/bindings/media.conf +++ b/default/hypr/bindings/media.conf @@ -10,6 +10,7 @@ bindeld = ,XF86MonBrightnessUp, Brightness up, exec, omarchy-brightness-display bindeld = ,XF86MonBrightnessDown, Brightness down, exec, omarchy-brightness-display 5%- bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, omarchy-brightness-keyboard down +bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, omarchy-brightness-keyboard cycle # Precise 1% multimedia adjustments with Alt modifier bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1