feat(eww): Add simple bluetooth widget
This commit is contained in:
parent
b80c011052
commit
2be407b7c9
3 changed files with 62 additions and 0 deletions
|
@ -6,6 +6,9 @@
|
|||
; Battery
|
||||
(defvar battery-icons '{"Full": {"10": ""}, "Charging": ["", "", "", "", "", "", "", "", "", "", ""], "Discharging": ["", "", "", "", "", "", "", "", "", "", ""]}')
|
||||
|
||||
; Bluetooth
|
||||
(deflisten bluetooth :initial "{}" "~/.config/eww/scripts/get-bluetooth.sh")
|
||||
|
||||
; DateTime
|
||||
(defpoll datetime :interval "1s" "date +'%a %-e %b %X'")
|
||||
(defpoll month :interval "1m" :initial "1" "date +'%m'")
|
||||
|
@ -46,6 +49,7 @@
|
|||
(packages-updates)
|
||||
(volume)
|
||||
(network)
|
||||
(bluetooth)
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -118,8 +122,24 @@
|
|||
)
|
||||
)
|
||||
|
||||
(defwidget bluetooth []
|
||||
(eventbox :onclick "~/.config/eww/scripts/toggle-bluetooth-state.sh"
|
||||
(label :text "${bluetooth.icon} ${bluetooth.device}"
|
||||
:class "${bluetooth.state}"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defwidget bar-middle []
|
||||
(box :halign "center"
|
||||
:spacing 12
|
||||
:space-evenly false
|
||||
(title)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget title []
|
||||
(label :limit-width 42
|
||||
:show-truncated false
|
||||
:text "${window-title}"
|
||||
|
|
30
.config/eww/scripts/get-bluetooth.sh
Executable file
30
.config/eww/scripts/get-bluetooth.sh
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
|
||||
interval=2
|
||||
|
||||
function get {
|
||||
unset icon state device
|
||||
|
||||
if bluetoothctl show | grep -q 'Powered: no'; then
|
||||
icon=""
|
||||
state="disabled"
|
||||
device="Disabled"
|
||||
else
|
||||
icon=""
|
||||
state="powered"
|
||||
device="Not connected"
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
{"icon": "$icon", "state": "$state", "device": "$device"}
|
||||
EOF
|
||||
}
|
||||
|
||||
if [[ "$1" == "once" ]]; then
|
||||
get
|
||||
else
|
||||
while :; do
|
||||
get
|
||||
sleep $interval
|
||||
done
|
||||
fi
|
12
.config/eww/scripts/toggle-bluetooth-state.sh
Executable file
12
.config/eww/scripts/toggle-bluetooth-state.sh
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ $(bluetoothctl show | grep Powered: | cut -f 2 -d ' ') == "no" ]]; then
|
||||
if [[ ! $(bluetoothctl power on) ]]; then
|
||||
rfkill block bluetooth
|
||||
rfkill unblock bluetooth
|
||||
fi
|
||||
else
|
||||
bluetoothctl power off
|
||||
fi
|
||||
|
||||
eww update bluetooth="$(~/.config/eww/scripts/get-bluetooth.sh once)"
|
Loading…
Reference in a new issue