Compare commits
3 commits
2cfd4c662e
...
9eb26b34d2
Author | SHA1 | Date | |
---|---|---|---|
9eb26b34d2 | |||
52fec5e9ee | |||
d9c824ddff |
2 changed files with 49 additions and 12 deletions
|
@ -19,10 +19,15 @@
|
|||
)
|
||||
|
||||
(deflisten network
|
||||
:initial '{"state":"disconnected","infos":{}}'
|
||||
:initial '{"state":"disconnect"}'
|
||||
"listen/network"
|
||||
)
|
||||
|
||||
(deflisten notifications
|
||||
:initial '{}'
|
||||
"swaync-client --subscribe"
|
||||
)
|
||||
|
||||
(defvar battery-icon '{
|
||||
"unknown": "",
|
||||
"critical": "",
|
||||
|
@ -43,13 +48,19 @@
|
|||
"tethering": ""
|
||||
}')
|
||||
|
||||
(defvar notifications-icon '{
|
||||
"nothing": "",
|
||||
"new": "",
|
||||
"dnd": ""
|
||||
}')
|
||||
|
||||
(defwidget workspaces []
|
||||
(eventbox :onscroll "action/hyprland/nearby-workspace {}"
|
||||
(eventbox :onscroll 'action/hyprland/nearby-workspace "{}"'
|
||||
(box :class "workspaces"
|
||||
(for workspace in {workspaces.used}
|
||||
(eventbox
|
||||
:class "workspace-button ${workspace == workspaces.current ? "workspace-current" : ""}"
|
||||
:onclick "hyprctl dispatch workspace ${workspace}"
|
||||
:onclick 'hyprctl dispatch workspace "${workspace}"'
|
||||
(box :width 25 "${workspace}")
|
||||
)
|
||||
)
|
||||
|
@ -75,9 +86,37 @@
|
|||
"${formattime(EWW_TIME, "%Y-%m-%d")} ${formattime(EWW_TIME, "%H:%M:%S")}"
|
||||
)
|
||||
|
||||
(defwidget notifications []
|
||||
(box (eventbox
|
||||
:class "module"
|
||||
:onclick 'swaync-client --toggle-panel'
|
||||
:onrightclick 'swaync-client --toggle-dnd'
|
||||
|
||||
"${
|
||||
notifications.dnd == true
|
||||
? notifications-icon["dnd"]
|
||||
: notifications.count > 0
|
||||
? notifications-icon["new"]
|
||||
: notifications-icon["nothing"]
|
||||
} ${notifications.count}"
|
||||
))
|
||||
)
|
||||
|
||||
; (defwidget sound [] "")
|
||||
|
||||
(defwidget network []
|
||||
"${network.state == "wireless" ? "${network-icon["wifi-${network.infos.signal}"]} ${network.infos.ssid}" : "${network-icon[network.state]}"}"
|
||||
"${
|
||||
network.state == "wireless"
|
||||
? network-icon["wifi-${network.wifi.signal}"]
|
||||
: network-icon[network.state]
|
||||
} ${
|
||||
network.state == "disconnected"
|
||||
? "no network" :
|
||||
network.state == "ethernet"
|
||||
? "wired" :
|
||||
network.state == "wireless"
|
||||
? network.wifi.ssid : ''
|
||||
}"
|
||||
)
|
||||
|
||||
(defwidget battery []
|
||||
|
@ -107,7 +146,9 @@
|
|||
:space-evenly false
|
||||
:class "middle"
|
||||
|
||||
(tray) (time)
|
||||
(tray)
|
||||
(time)
|
||||
(notifications)
|
||||
)
|
||||
(box
|
||||
:halign "end"
|
||||
|
|
|
@ -26,31 +26,27 @@ wifi_strength() {
|
|||
}
|
||||
|
||||
print_infos() {
|
||||
printf \{
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
route_line=$(ip route show dev "$1" | awk '($1 == "default") { print }')
|
||||
|
||||
printf '"ip":"%s","gateway":"%s"' \
|
||||
printf ',"ip":{"local":"%s","gateway":"%s"}' \
|
||||
"$(echo "$route_line" | awk '{ print $7 }')" \
|
||||
"$(echo "$route_line" | awk '{ print $3 }')"
|
||||
|
||||
if [ "$state" = wireless ]; then
|
||||
signal=$(iw dev "$1" link | awk '($1 == "signal:") { print $2}')
|
||||
printf ',"signal":"%s","ssid":"%s"' \
|
||||
printf ',"wifi":{"signal":"%s","ssid":"%s"}' \
|
||||
"$(wifi_strength "$signal")" \
|
||||
"$(iw dev wlan0 info | grep '^\s*ssid ' | xargs | cut -d \ -f 2-)"
|
||||
fi
|
||||
fi
|
||||
|
||||
printf '}\n'
|
||||
}
|
||||
|
||||
print_network_status() {
|
||||
device=$(ip route | awk '($1 == "default") { print $5 }')
|
||||
state=$(print_state "$device")
|
||||
|
||||
printf '{"state":"%s","infos":%s}\n' \
|
||||
printf '{"state":"%s"%s}\n' \
|
||||
"$state" \
|
||||
"$(print_infos "$device")"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue