30 lines
1.5 KiB
Plaintext
30 lines
1.5 KiB
Plaintext
(defvar bluetooth-reveal false)
|
|
(defpoll bluetooth-status
|
|
:initial ""
|
|
:interval "10s"
|
|
"bluetoothctl show | grep -q \"Powered: yes\" && { [[ $(bluetoothctl devices Connected) ]] && echo \"connected\" || echo \"on\"; } || echo \"off\"")
|
|
(defpoll bluetooth-devices
|
|
:initial ""
|
|
:interval "20s"
|
|
"for device in $(bluetoothctl devices Connected | grep Device | cut -d ' ' -f 2); do bluetoothctl info $device | grep \"Alias\" | cut -d ' ' -f 2-; done;")
|
|
|
|
|
|
(defwidget bluetooth-module []
|
|
(eventbox :onhover "${EWW_CMD} update bluetooth-reveal=true"
|
|
:onhoverlost "${EWW_CMD} update bluetooth-reveal=false"
|
|
:onclick "$HOME/.config/rofi/menus/bluetooth/bluetooth.sh &"
|
|
(box :class "module bluetooth"
|
|
:orientation "h"
|
|
:space-evenly "false"
|
|
:tooltip {bluetooth-status == "connected" ? bluetooth-devices :
|
|
bluetooth-status == "on" ? "Bluetooth: On" : "Bluetooth: Off"}
|
|
(label :text {bluetooth-status == "connected" ? "" :
|
|
bluetooth-status == "on" ? "" : ""}
|
|
:class "bluetooth icon")
|
|
(revealer :transition "slideleft"
|
|
:duration "750ms"
|
|
:reveal {bluetooth-reveal && winfo.connected}
|
|
(label :class "bluetooth-text"
|
|
:text {bluetooth-status == "connected" ? "Connected" :
|
|
bluetooth-status == "on" ? "On" : "Off"})))))
|