(include "variables.yuck") (include "templates.yuck") ;; left (defwidget time [] (eventbox :onclick `` :class "smallBox" :valign "center" :height 20 :width 70 (label :text "${formattime(EWW_TIME, "%H:%M:%S")}"))) ;; center (defwidget normalWorkspaces [monitor] (box :space-evenly false :spacing 3 (for workspace in workspaces (workspace :activeOn {workspace.normal.activeOn} :occupied {workspace.normal.occupied} :id {workspace.normal.id} :cmd {workspace.normal.id} :icon {workspace.normal.icon} :monitor {monitor})))) ;; right (defwidget cpu [] (icon :widgetclass "cpu" :hover "${round(EWW_CPU.avg, 1)}%" :percentage {round(EWW_CPU.avg, 1)} :image "images/cpu.png")) (defwidget ram [] (icon :widgetclass "ram" :hover "${round(EWW_RAM.used_mem /(1024*1024*1024), 1)} GiB | ${round(EWW_RAM.used_mem_perc, 1)}%" :percentage {round(EWW_RAM.used_mem_perc, 1)} :image "images/ram.png")) (defwidget audio [] (icon :widgetclass {volume.muted == 1 ? "muted" : "volume"} :hover "${volume.volume}%" :percentage {volume.volume >= 0 && volume.volume <= 100 ? volume.volume : 0} :image {volume.muted == 1 ? "images/volumeMuted.png" : "images/volume.png"})) (defwidget brightness [] (icon :widgetclass "brightness" :hover "${brightnessValue / 960}%" :percentage {brightnessValue / 960} :image "images/brightness.png")) (defwidget network [] (icon :widgetclass "network" :hover {network.name} :percentage "100" :image "images/${network.image}.png")) (defwidget bluetooth [] (icon :widgetclass "bluetooth" :hover {bluetooth.name} :percentage {bluetooth.battery} :image "images/bluetooth.png")) (defwidget battery [] (icon :widgetclass {EWW_BATTERY.BAT1.status == "Charging" ? "battery" : EWW_BATTERY.total_avg > 25 ? "battery" : "batteryLow"} :hover "${round(EWW_BATTERY.total_avg, 1)}%" :percentage {EWW_BATTERY.total_avg <= 90 ? round(EWW_BATTERY.total_avg, 1)/0.9 : 100} :image {EWW_BATTERY.BAT1.status == "Charging" ? "images/charging.png" : EWW_BATTERY.total_avg > 25 ? "images/battery.png" : "images/batteryLow.png"})) (defwidget power [] (icon :widgetclass "power" :hover "placeholder" :percentage "0" :image "images/power.png")) ;; Widget blocks ;;(defwidget media [] ;; (box ;; :class "smallBox" ;; :height 20 ;; :valign "center" ;; :space-evenly false ;; :visible {media.status == "Playing" ? true : false} ;; (smallSpacer) ;; (label ;; :text {media.name} ;; :tooltip {media.name} ;; :limit-width 40) ;; (smallSpacer))) (defwidget processing [] (eventbox :onclick 'hyprctl dispatch exec "[float; pin; size 40% 40%; move 100%-41% 40] kitty bpytop -b proc"' :class "smallBox" (box :space-evenly false :halign "end" :valign "center" :height 20 (smallSpacer) (cpu) (space) (ram) (smallSpacer)))) (defwidget controlls [] (eventbox :onclick 'hyprctl dispatch exec "[float; pin; size 40% 40%; move 100%-41% 40] kitty pulsemixer"' :class "smallBox" (box :space-evenly false :halign "end" :valign "center" :height 20 (smallSpacer) (audio) (space) (brightness) (smallSpacer)))) (defwidget wireless [] (eventbox :onclick "`networkmanager_dmenu`" :class "smallBox" (box :space-evenly false :halign "end" :valign "center" :height 20 (smallSpacer) (network) (space) (bluetooth) (smallSpacer)))) (defwidget energy [] (eventbox :onclick `sleep 1 && systemctl hibernate` :class "smallBox" (box :space-evenly false :halign "end" :valign "center" :height 20 (smallSpacer) (battery) (space) (power) (smallSpacer)))) (defwidget start [] (box :orientation "h" :space-evenly false :halign "start" (space) (time))) (defwidget center [monitor] (box :orientation "h" :space-evenly false :halign "center" (workspace :activeOn {workspaces[0].special.activeOn} :occupied {workspaces[0].special.occupied} :id {workspaces[0].special.id} :icon {workspaces[0].special.icon} :monitor {monitor}) (workspace :activeOn {workspaces[1].special.activeOn} :occupied {workspaces[1].special.occupied} :id {workspaces[1].special.id} :icon {workspaces[1].special.icon} :monitor {monitor}) (seperator) (normalWorkspaces :monitor {monitor}) (seperator) (workspace :activeOn {workspaces[2].special.activeOn} :occupied {workspaces[2].special.occupied} :id {workspaces[2].special.id} :icon {workspaces[2].special.icon} :monitor {monitor}) (workspace :activeOn {workspaces[3].special.activeOn} :occupied {workspaces[3].special.occupied} :id {workspaces[3].special.id} :icon {workspaces[3].special.icon} :monitor {monitor}))) (defwidget end [] (box :spacing 2 :orientation "h" :space-evenly false :valign "center" :halign "end" (processing) (seperator) (controlls) (seperator) (wireless) (seperator) (energy) (space))) (defwidget bar [monitor] (centerbox :orientation "h" (start) (center :monitor {monitor}) (end))) (defwindow bar [monitor width height] :monitor {monitor} :class "bar" :geometry (geometry :x "0%" :y "5px" :width "${width}px" :height "${height}px" :anchor "top center") :stacking "fg" :exclusive true (bar :monitor {monitor}))