eww timings
This commit is contained in:
@@ -14,21 +14,21 @@
|
|||||||
:orientation "v"
|
:orientation "v"
|
||||||
(label :show-truncated false
|
(label :show-truncated false
|
||||||
:class "hour"
|
:class "hour"
|
||||||
:text {hour})
|
:text {time.hour})
|
||||||
(label :show-truncated false
|
(label :show-truncated false
|
||||||
:class "minute"
|
:class "minute"
|
||||||
:text {minute}))
|
:text {time.minute}))
|
||||||
(revealer
|
(revealer
|
||||||
:reveal date_rev
|
:reveal date_rev
|
||||||
(box
|
(box
|
||||||
:class "date"
|
:class "date"
|
||||||
:orientation "v"
|
:orientation "v"
|
||||||
(label :show-truncated "false"
|
|
||||||
:class "day"
|
|
||||||
:text {day})
|
|
||||||
(label :show-truncated "false"
|
(label :show-truncated "false"
|
||||||
:class "month"
|
:class "day"
|
||||||
:text {month}))
|
:text {time.day})
|
||||||
|
(label :show-truncated "false"
|
||||||
|
:class "month"
|
||||||
|
:text {time.month}))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -36,7 +36,5 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defpoll hour :interval "15s" "date '+%H'")
|
(defpoll time :interval "15s" "date '+{\"hour\":\"%H\",\"minute\":\"%M\",\"day\":\"%d\",\"month\":\"%m\"}'")
|
||||||
(defpoll minute :interval "15s" "date '+%M'")
|
|
||||||
(defpoll day :interval "15s" "date '+%d'")
|
|
||||||
(defpoll month :interval "15s" "date '+%m'")
|
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ case "$1" in
|
|||||||
*)
|
*)
|
||||||
gen_output
|
gen_output
|
||||||
[ -z "$DEV" ] && exit 0
|
[ -z "$DEV" ] && exit 0
|
||||||
# Poll for changes every 2s (sysfs files don't support inotify reliably)
|
udevadm monitor --udev --subsystem-match=backlight 2>/dev/null | while read -r _; do
|
||||||
while true; do sleep 2; gen_output; done
|
gen_output
|
||||||
|
done
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ pipe="$tmp/bt-events"
|
|||||||
mkfifo "$pipe"
|
mkfifo "$pipe"
|
||||||
trap 'rm -rf "$tmp"; kill 0 2>/dev/null' EXIT INT TERM
|
trap 'rm -rf "$tmp"; kill 0 2>/dev/null' EXIT INT TERM
|
||||||
|
|
||||||
# Poll every 2s as reliable fallback for missed events
|
# Poll every 10s as reliable fallback for missed events
|
||||||
(while true; do sleep 2; echo poll; done) > "$pipe" &
|
(while true; do sleep 10; echo poll; done) > "$pipe" &
|
||||||
|
|
||||||
# bluetoothctl monitor for reactive device connect/disconnect events
|
# bluetoothctl monitor for reactive device connect/disconnect events
|
||||||
(bluetoothctl monitor 2>/dev/null | grep --line-buffered -E "Powered|Connected|Device") > "$pipe" &
|
(bluetoothctl monitor 2>/dev/null | grep --line-buffered -E "Powered|Connected|Device") > "$pipe" &
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ pipe="$tmp/bt-dev-events"
|
|||||||
mkfifo "$pipe"
|
mkfifo "$pipe"
|
||||||
trap 'rm -rf "$tmp"; kill 0 2>/dev/null' EXIT INT TERM
|
trap 'rm -rf "$tmp"; kill 0 2>/dev/null' EXIT INT TERM
|
||||||
|
|
||||||
# Poll every 3s as fallback for missed events
|
# Poll every 10s as fallback for missed events
|
||||||
(while true; do sleep 3; echo poll; done) > "$pipe" &
|
(while true; do sleep 10; echo poll; done) > "$pipe" &
|
||||||
|
|
||||||
# Reactive updates from D-Bus
|
# Reactive updates from D-Bus
|
||||||
(bluetoothctl monitor 2>/dev/null | grep --line-buffered -E "Connected|Device|Powered") > "$pipe" &
|
(bluetoothctl monitor 2>/dev/null | grep --line-buffered -E "Connected|Device|Powered") > "$pipe" &
|
||||||
|
|||||||
@@ -1,9 +1,15 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
current=$(eww state 2>/dev/null | grep '^power-save:' | awk '{print $2}')
|
case "$1" in
|
||||||
if [ "$current" = "true" ]; then
|
status)
|
||||||
powerprofilesctl set balanced 2>/dev/null || true
|
powerprofilesctl get | grep -q power-saver && echo true || echo false
|
||||||
echo false
|
;;
|
||||||
else
|
*)
|
||||||
powerprofilesctl set power-saver 2>/dev/null || true
|
if powerprofilesctl get | grep -q power-saver; then
|
||||||
echo true
|
powerprofilesctl set balanced 2>/dev/null || true
|
||||||
fi
|
echo false
|
||||||
|
else
|
||||||
|
powerprofilesctl set power-saver 2>/dev/null || true
|
||||||
|
echo true
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ case "$1" in
|
|||||||
mkfifo "$pipe"
|
mkfifo "$pipe"
|
||||||
trap 'rm -rf "$tmp"; kill 0 2>/dev/null' EXIT INT TERM
|
trap 'rm -rf "$tmp"; kill 0 2>/dev/null' EXIT INT TERM
|
||||||
|
|
||||||
# 1s polling fallback
|
# 2s polling fallback
|
||||||
(while true; do sleep 1; echo poll; done) > "$pipe" &
|
(while true; do sleep 2; echo poll; done) > "$pipe" &
|
||||||
# PipeWire property-change events (fires on mute/volume change)
|
# PipeWire property-change events (fires on mute/volume change)
|
||||||
(pw-cli -m 2>/dev/null | grep --line-buffered "changed") > "$pipe" &
|
(pw-cli -m 2>/dev/null | grep --line-buffered "changed") > "$pipe" &
|
||||||
|
|
||||||
|
|||||||
@@ -69,8 +69,8 @@
|
|||||||
|
|
||||||
; --- Quick Actions ---
|
; --- Quick Actions ---
|
||||||
|
|
||||||
(defvar power-save false)
|
(defpoll power-save :interval "5s" :initial "false" "scripts/power-save status")
|
||||||
(defvar night-light false)
|
(defpoll night-light :interval "5s" :initial "false" "scripts/nightlight status")
|
||||||
|
|
||||||
(defwidget quick-btn [icon label onclick active]
|
(defwidget quick-btn [icon label onclick active]
|
||||||
(button :class "quick-btn ${active ? 'quick-btn-active' : ''}"
|
(button :class "quick-btn ${active ? 'quick-btn-active' : ''}"
|
||||||
@@ -85,8 +85,8 @@
|
|||||||
(box :orientation "v" :space-evenly false :class "quick-grid" :spacing 4
|
(box :orientation "v" :space-evenly false :class "quick-grid" :spacing 4
|
||||||
(box :orientation "h" :space-evenly true
|
(box :orientation "h" :space-evenly true
|
||||||
(quick-btn :icon "" :label "Wallpaper" :onclick "scripts/wallpaper" :active false)
|
(quick-btn :icon "" :label "Wallpaper" :onclick "scripts/wallpaper" :active false)
|
||||||
(quick-btn :icon "" :label "Power Save" :onclick "eww update power-save=$(scripts/power-save)" :active {power-save})
|
(quick-btn :icon "" :label "Power Save" :onclick "scripts/power-save" :active {power-save})
|
||||||
(quick-btn :icon "" :label "Night Light" :onclick "eww update night-light=$(scripts/nightlight)" :active {night-light}))
|
(quick-btn :icon "" :label "Night Light" :onclick "scripts/nightlight" :active {night-light}))
|
||||||
(box :orientation "h" :space-evenly true
|
(box :orientation "h" :space-evenly true
|
||||||
(quick-btn :icon "" :label "Screenshot" :onclick "scripts/screenshot" :active false)
|
(quick-btn :icon "" :label "Screenshot" :onclick "scripts/screenshot" :active false)
|
||||||
(quick-btn :icon "" :label "Lock" :onclick "scripts/lock" :active false)
|
(quick-btn :icon "" :label "Lock" :onclick "scripts/lock" :active false)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
(defpoll swap :interval "5s" "scripts/sys/swap")
|
(defpoll swap :interval "30s" "scripts/sys/swap")
|
||||||
|
|
||||||
(defpoll cpu-freq-min :interval "60s"
|
(defpoll cpu-freq-min :interval "60s"
|
||||||
"awk '{print $1/1000}' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq")
|
"awk '{print $1/1000}' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq")
|
||||||
(defpoll cpu-freq-max :interval "60s"
|
(defpoll cpu-freq-max :interval "60s"
|
||||||
"awk '{print $1/1000}' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq")
|
"awk '{print $1/1000}' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq")
|
||||||
(defpoll cpu-temp :interval "2s"
|
(defpoll cpu-temp :interval "4s"
|
||||||
"scripts/sys/cputemp")
|
"scripts/sys/cputemp")
|
||||||
(defpoll cpu-freq-avg :interval "2s"
|
(defpoll cpu-freq-avg :interval "2s"
|
||||||
"awk '{sum+=$1; count++} END {printf \"%.1f\", sum/count/1000000}' /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq")
|
"awk '{sum+=$1; count++} END {printf \"%.1f\", sum/count/1000000}' /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq")
|
||||||
|
|||||||
Reference in New Issue
Block a user