141 lines
4.1 KiB
Plaintext
141 lines
4.1 KiB
Plaintext
|
|
(defwindow statusbar
|
|
:monitor 0
|
|
:stacking "fg"
|
|
:exclusive true
|
|
:geometry (geometry
|
|
:y "0.5%"
|
|
:width "100%"
|
|
:height "24px"
|
|
:anchor "top center")
|
|
(statusbar))
|
|
|
|
(defwidget statusbar []
|
|
(centerbox
|
|
(box :space-evenly false :halign 'start' :class 'padded'
|
|
(window-title))
|
|
(time)
|
|
(box :space-evenly false :halign 'end' :class 'padded'
|
|
(brightness-ctl)
|
|
(brightness-ctl-opener)
|
|
; (clipboard)
|
|
(volume)
|
|
(battery)
|
|
(bluetooth)
|
|
(wifi))))
|
|
|
|
(defwidget cmd-slider [?symbol value command max color]
|
|
(box :space-evenly false
|
|
(label :text symbol :class "symbol")
|
|
(scale
|
|
:min 0 :max max
|
|
:value value
|
|
:round-digits 0
|
|
:timeout "200ms"
|
|
:onchange command)
|
|
(label :text "${value}%" :class color)))
|
|
|
|
(defwidget window-title []
|
|
(label
|
|
:text "${windowtitle == "" ? "" : "(${windowtitle})"}"))
|
|
|
|
(defpoll windowtitle :interval "1s" `scripts/currentWindow.fish`)
|
|
(defpoll currentworkspace :interval "1s" `scripts/currentWorkspace.fish`)
|
|
|
|
(defwidget brightness-ctl []
|
|
(box :visible brightnessctl-open
|
|
(cmd-slider :symbol "" :value brightness
|
|
:command `brightnessctl set {}%`
|
|
:max 101 :color "${
|
|
brightness >= 80 ? "green" :
|
|
brightness >= 50 ? "yellow" :
|
|
brightness >= 30 ? "peach" :
|
|
brightness >= 10 ? "maroon" : "red"
|
|
}")))
|
|
|
|
|
|
(defpoll brightness :interval "1s" :run-while brightnessctl-open `brightnessctl -m | awk -F, '{print $4+0}'`)
|
|
|
|
|
|
(defvar brightnessctl-open false)
|
|
(defwidget brightness-ctl-opener []
|
|
(eventbox :class "button"
|
|
(button
|
|
:onclick `${EWW_CMD} update brightnessctl-open=${!brightnessctl-open}`
|
|
"")))
|
|
|
|
(defwidget clipboard []
|
|
(label :text clipboard-short :tooltip clipboard :class "clipboard"))
|
|
(defpoll clipboard :interval "5s" `scripts/clipboardInfo.zsh all`)
|
|
(defpoll clipboard-short :interval "5s" `scripts/clipboardInfo.zsh head`)
|
|
|
|
(defwidget wifi []
|
|
(eventbox
|
|
:class "button ${wifi-strength.colour}"
|
|
(label
|
|
:text {wifi-strength.icon}
|
|
:tooltip "Connected To: ${wifi-name}")))
|
|
|
|
(defpoll wifi-strength :interval "10s" `scripts/wifiInfo.zsh strength`)
|
|
(defpoll wifi-name :interval "1m" `scripts/wifiInfo.zsh name`)
|
|
|
|
(defwidget bluetooth []
|
|
(eventbox
|
|
:class "bluetooth button ${ bluetooth-name != "" ? "green" : "lavendar" }"
|
|
:onclick `blueman-manager &`
|
|
(label
|
|
:text "${bluetooth-name} ")))
|
|
|
|
(defpoll bluetooth-name :interval "10s" `bluetoothctl devices Connected | awk '{print $3}'`)
|
|
|
|
(defwidget time []
|
|
(box
|
|
:space-evenly false
|
|
:class "time"
|
|
:tooltip {time.long}
|
|
(label :class "yellow" :text {time.hour})
|
|
(label :text ":")
|
|
(label :class "yellow" :text {time.minute})))
|
|
|
|
(defpoll time :interval "1s" `date +'{"long":"%a %b %e %H:%M:%S %Z %Y","hour":"%H","minute":"%M"}'`)
|
|
|
|
; TODO: make this a package or something, not using rust-script
|
|
(defpoll powerstats :interval "2s" `~/Documents/power_bat.rs`)
|
|
|
|
(defwidget battery []
|
|
(box :space-evenly false
|
|
:tooltip powerstats
|
|
(label
|
|
:text "${EWW_BATTERY.BAT1.status == "Charging" ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 90 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 80 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 70 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 60 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 50 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 40 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 30 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 20 ? "" :
|
|
EWW_BATTERY.BAT1.capacity >= 10 ? "" : ""
|
|
} "
|
|
:class "${
|
|
EWW_BATTERY.BAT1.capacity >= 80 ? "green" :
|
|
EWW_BATTERY.BAT1.capacity >= 50 ? "yellow" :
|
|
EWW_BATTERY.BAT1.capacity >= 30 ? "peach" :
|
|
EWW_BATTERY.BAT1.capacity >= 10 ? "maroon" : "red"
|
|
}")
|
|
(label :text "${EWW_BATTERY.BAT1.capacity}%" :class "yellow")))
|
|
|
|
|
|
|
|
|
|
|
|
(defpoll volumevalue :interval "1s" `scripts/sound/getVolume.sh`)
|
|
(defpoll volumesink :interval "1s" `scripts/sound/getSink.sh`)
|
|
|
|
(defwidget volume []
|
|
(eventbox :tooltip volumesink
|
|
:onclick `pwvucontrol &`
|
|
(label :text "${volumevalue.count}%" :class "${volumevalue.color}")))
|
|
|
|
|