86 lines
3.3 KiB
Text
86 lines
3.3 KiB
Text
(deflisten activeWorkspace :initial '1'
|
|
'scripts/bar/active-workspace')
|
|
(deflisten workspacesArray :initial '[{"name": "placeholder","focused":true,"num":0}]'
|
|
'scripts/bar/workspaces')
|
|
(defvar wsreveal false)
|
|
|
|
(defwidget workspaces [array]
|
|
(eventbox
|
|
:onhover "${EWW_CMD} update wsreveal=true"
|
|
:onhoverlost "${EWW_CMD} update wsreveal=false"
|
|
(box :class "workspaces"
|
|
:orientation "h"
|
|
:space-evenly false
|
|
:halign "start"
|
|
|
|
(revealer
|
|
:reveal wsreveal
|
|
:transition "slideleft"
|
|
:duration "500ms"
|
|
(box
|
|
(for entry in array
|
|
(literal
|
|
:visible {((entry.num <= activeWorkspace) && !entry.focused) ? true : false}
|
|
:content {((entry.num <= activeWorkspace) && !entry.focused) ? "(workspace :ws entry :side 'left')" : "(box :visible false)"}))))
|
|
(box
|
|
(for entry in array
|
|
(literal
|
|
:visible {entry.focused ? true : false}
|
|
:content {entry.focused ? "(workspace :ws entry :side 'center')" : "(box :visible false)"})))
|
|
(revealer
|
|
:reveal wsreveal
|
|
:transition "slideright"
|
|
:duration "500ms"
|
|
(box
|
|
(for entry in array
|
|
(literal
|
|
:visible {((entry.num >= activeWorkspace) && !entry.focused) ? true : false}
|
|
:content {((entry.num >= activeWorkspace) && !entry.focused) ? "(workspace :ws entry :side 'right')" : "(box :visible false)"})))))))
|
|
|
|
; (for entry in array
|
|
; {entry.focused ? (workspace :ws entry) : ""})))
|
|
; (for ws in {}
|
|
; (box
|
|
; (literal
|
|
; :visible {(entry.num < jq(array, '.. | select(.type?) | select(.focused==true).num', 'r')) ? true : false}
|
|
; :content {(entry.num < jq(array, '.. | select(.type?) | select(.focused==true).num', 'r')) ? "(workspace :ws entry)" : "(box :visible false)"})
|
|
; (literal
|
|
; :visible {entry.focused ? true : false}
|
|
; :content {entry.focused ? "(workspace :ws entry)" : "(box :visible false)"})
|
|
; (literal
|
|
; :visible {(entry.num > jq(array, '.. | select(.type?) | select(.focused==true).num')) ? true : false}
|
|
; :content {(entry.num > jq(array, '.. | select(.type?) | select(.focused==true).num')) ? "(workspace :ws entry)" : "(box :visible false)"})))))
|
|
|
|
;; {entry.focused ? "${entry.num}" : ""})))
|
|
; (button :onclick `swaymsg workspace "${entry.name}"`
|
|
; :class {entry.focused ? "focused" : ""}
|
|
; (box
|
|
; '${replace(entry.name,".*:","")}'
|
|
; (label
|
|
; :class "workspace-number"
|
|
; :text {jq(captures(entry.num, '[0-9]$'),'.[].[]','r')}))))))
|
|
|
|
(defwidget workspace [ws side]
|
|
(button :onclick `swaymsg workspace "${ws.name}"`
|
|
; :class {ws.focused ? "focused" : ""}
|
|
:class side
|
|
(box
|
|
'${replace(ws.name,".*:","")}'
|
|
(label
|
|
:class "workspace-number"
|
|
:text {jq(captures(ws.num, '[0-9]$'),'.[].[]','r')}))))
|
|
|
|
;(defwidget workspaces [array]
|
|
;(box :class "workspaces"
|
|
; :orientation "h"
|
|
; :space-evenly false
|
|
; :halign "start"
|
|
;
|
|
; (for entry in array
|
|
; (button :onclick `swaymsg workspace "${entry.name}"`
|
|
; :class {entry.focused ? "focused" : ""}
|
|
; (box
|
|
; '${replace(entry.name,".*:","")}'
|
|
; (label
|
|
; :class "workspace-number"
|
|
; :text {jq(captures(entry.num, '[0-9]$'),'.[].[]','r')}))))))
|