80 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
(defwidget bar []
 | 
						|
  (centerbox :orientation "h"
 | 
						|
    (workspaces)
 | 
						|
    (music)
 | 
						|
    (sidestuff)))
 | 
						|
 | 
						|
(defwidget sidestuff []
 | 
						|
  (box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
 | 
						|
    ; (metric :label "🔊"
 | 
						|
    ;         :value volume
 | 
						|
    ;         :onchange "amixer -D pulse sset Master {}%")
 | 
						|
    (metric :label ""
 | 
						|
            :value {EWW_RAM.used_mem_perc}
 | 
						|
            :onchange "")
 | 
						|
    (metric :label "💾"
 | 
						|
            :value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
 | 
						|
            :onchange "")
 | 
						|
    time))
 | 
						|
 | 
						|
(defwidget workspaces []
 | 
						|
  (box :class "workspaces"
 | 
						|
       :orientation "h"
 | 
						|
       :space-evenly true
 | 
						|
       :halign "start"
 | 
						|
       :spacing 10
 | 
						|
    (button :class "${active_workspace == 1 ? 'active' : '' }" :onclick "wmctrl -s 0" 1)
 | 
						|
    (button :class "${active_workspace == 2 ? 'active' : '' }" :onclick "wmctrl -s 1" 2)
 | 
						|
    (button :class "${active_workspace == 3 ? 'active' : '' }" :onclick "wmctrl -s 2" 3)
 | 
						|
    (button :class "${active_workspace == 4 ? 'active' : '' }" :onclick "wmctrl -s 3" 4)
 | 
						|
    (button :class "${active_workspace == 5 ? 'active' : '' }" :onclick "wmctrl -s 4" 5)
 | 
						|
    (button :class "${active_workspace == 6 ? 'active' : '' }" :onclick "wmctrl -s 5" 6)
 | 
						|
    (button :class "${active_workspace == 7 ? 'active' : '' }" :onclick "wmctrl -s 6" 7)
 | 
						|
    (button :class "${active_workspace == 8 ? 'active' : '' }" :onclick "wmctrl -s 7" 8)
 | 
						|
    (button :class "${active_workspace == 9 ? 'active' : '' }" :onclick "wmctrl -s 8" 9)))
 | 
						|
 | 
						|
(defwidget music []
 | 
						|
  (box :class "music"
 | 
						|
       :orientation "h"
 | 
						|
       :space-evenly false
 | 
						|
       :halign "center"
 | 
						|
    {music != "" ? "🎵${music}" : ""}))
 | 
						|
 | 
						|
 | 
						|
(defwidget metric [label value onchange]
 | 
						|
  (box :orientation "h"
 | 
						|
       :class "metric"
 | 
						|
       :space-evenly false
 | 
						|
    (box :class "label" label)
 | 
						|
    (scale :min 0
 | 
						|
           :max 101
 | 
						|
           :active {onchange != ""}
 | 
						|
           :value value
 | 
						|
           :onchange onchange)))
 | 
						|
 | 
						|
 | 
						|
 | 
						|
(deflisten music :initial ""
 | 
						|
  "playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
 | 
						|
 | 
						|
; (defpoll volume :interval "1s"
 | 
						|
;   "scripts/getvol")
 | 
						|
 | 
						|
(defpoll time :interval "10s"
 | 
						|
  "date '+%H:%M %b %d, %Y'")
 | 
						|
 | 
						|
(defpoll active_workspace :interval "10ms"
 | 
						|
  "hyprctl monitors -j | jq '.[]|.activeWorkspace.id'")
 | 
						|
 | 
						|
(defwindow bar
 | 
						|
  :monitor 0
 | 
						|
  :windowtype "dock"
 | 
						|
  :geometry (geometry :x "0%"
 | 
						|
                      :y "0%"
 | 
						|
                      :width "100%"
 | 
						|
                      :height "10px"
 | 
						|
                      :anchor "top center")
 | 
						|
  :reserve (struts :side "top" :distance "4%")
 | 
						|
  :exclusive true
 | 
						|
  (bar))
 | 
						|
 |