(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))) (defpoll windowtitle :interval "1s" `scripts/currentWindow.fish`) (defwidget window-title [] (label :text {windowtitle == "" ? "" : "(${windowtitle})"})) (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}))) (defpoll currentworkspace :interval "1s" `scripts/currentWorkspace.fish`)