ui/widgets/bar/brightness.hy
2025-03-26 05:14:48 -07:00

23 lines
743 B
Hy

(import astal *)
(import astal.gtk3 *)
(import services.brightness [Brightness])
(import math [floor])
(import gi.repository [AstalWp])
(let [
backlight (Brightness "amdgpu_bl1")]
(setv brightness (Widget.Box
:class-name "brightness-slider"
:children [
(Widget.Button
:child (Widget.Icon :icon (bind backlight "brightness" (fn [brightness]
f"display-brightness-{(get ["off" "low" "medium" "high" "high"] (floor (/ (* brightness 100) 25)))}-symbolic"))))
(Widget.Slider
:class-name "brightness-slider"
:hexpand True
:draw-value False
:value (bind backlight "brightness")
:on-dragged (fn [self]
(. backlight (set-brightness (.get-value self)))))])))