(deflisten batterystatus :initial "unknown" "listen/battery BAT1" ) (deflisten workspaces :initial '{"current":1,"used":[1]}' "listen/hypr workspace" ) (deflisten windowtitle :initial '' "listen/hypr activewindow" ) (deflisten submap :initial '' "listen/hypr submap" ) (deflisten network :initial '{"state":"disconnect"}' "listen/network" ) (deflisten notifications :initial '{"count":0}' "swaync-client --subscribe" ) (defvar battery-icon '{ "unknown": "", "critical": "", "low": "", "medium": "", "high": "", "full": "" }') (defvar network-icon '{ "disconnected": "󰲛", "ethernet": "󰈀", "wifi-terrible": "󰤯", "wifi-bad": "󰤟", "wifi-mediocre": "󰤢", "wifi-good": "󰤥", "wifi-excellent": "󰤨", "tethering": "󰕓" }') (defvar notifications-icon '{ "nothing": "󰂚", "new": "󱅫", "dnd": "󰂛" }') (defwidget workspaces [] (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}"' (box :width 25 "${workspace}") ) ) ) ) ) (defwidget submap [] (eventbox :onclick "hyprctl dispatch submap reset" (box :class "submap" "${submap}") ) ) (defwidget window-title [] (box "${windowtitle ?: ''}") ) (defwidget tray [] (box (systray :icon-size 15 :spacing 10) )) (defwidget time [] "${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.wifi.signal}"] : network-icon[network.state] } ${ network.state == "disconnected" ? "no network" : network.state == "ethernet" ? "wired" : network.state == "wireless" ? network.wifi.ssid : '' }" ) (defwidget battery [] "${battery-icon[batterystatus]}${EWW_BATTERY.BAT1.status == "Charging" ? " " : ""} ${EWW_BATTERY.BAT1.capacity} %" ) (defwindow bar :monitor 0 :geometry (geometry :anchor "bottom center" :width "100%" :height 25 ) :exclusive true (centerbox (box :halign "start" :space-evenly false :class "left" (workspaces) (submap) (window-title) ) (box :space-evenly false :class "middle" (tray) (time) (notifications) ) (box :halign "end" :space-evenly false :class "right" ; (sound) (network) (battery) ) ) )