47 lines
2.4 KiB
Text
47 lines
2.4 KiB
Text
(defvar wsreveal false)
|
|
|
|
(defwidget workspaces [array]
|
|
(eventbox
|
|
:onhover "${EWW_CMD} update wsreveal=true"
|
|
:onhoverlost "${EWW_CMD} update wsreveal=false"
|
|
(box :class "workspaces ${((jq(sway_info,'workspace_info[] | select(.is_focused) | .profile_name','r') == 'Work') ? 'profile-work' : ((jq(sway_info,'workspace_info[] | select(.is_focused) | .profile_name','r') == '20') ? 'profile-school' : ((jq(sway_info,'workspace_info[] | select(.is_focused) | .profile_name','r') == '10') ? 'profile-development' : ((jq(sway_info,'workspace_info[] | select(.is_focused) | .profile_name','r') == '0') ? 'profile-personal' : ''))))}"
|
|
:orientation "h"
|
|
:space-evenly false
|
|
:halign "start"
|
|
|
|
(revealer
|
|
:class "ws-left"
|
|
:reveal wsreveal
|
|
:transition "slideleft"
|
|
:duration "500ms"
|
|
(box
|
|
(for entry in array
|
|
(literal
|
|
:visible {((entry.position == 'l') && !entry.is_focused) ? true : false}
|
|
:content {((entry.position == 'l') && !entry.is_focused) ? "(workspace :ws entry :side 'left')" : "(box :visible false)"}))))
|
|
(box
|
|
:class "ws-center ${wsreveal}"
|
|
(for entry in array
|
|
(literal
|
|
:visible {entry.is_focused ? true : false}
|
|
:content {entry.is_focused ? "(workspace :ws entry :side 'center' :lastws ${jq(array,'.[-1].num')})" : "(box :visible false)"})))
|
|
(revealer
|
|
:class "ws-right"
|
|
:reveal wsreveal
|
|
:transition "slideright"
|
|
:duration "500ms"
|
|
(box
|
|
(for entry in array
|
|
(literal
|
|
:visible {((entry.position == 'r') && !entry.is_focused) ? true : false}
|
|
:content {((entry.position == 'r') && !entry.is_focused) ? "(workspace :ws entry :side 'right')" : "(box :visible false)"})))))))
|
|
|
|
(defwidget workspace [ws side ?lastws ?firstws]
|
|
(button :onclick `swaymsg workspace "${ws.name}"`
|
|
:tooltip "${ws.profile_name} ( ${jq(captures(ws.num, '[0-9]$'),'.[].[]','r')} )"
|
|
:class '${side} ${ws.num == lastws ? "last-workspace" : (ws.num == firstws ? "first-workspace" : "middle-workspace")} profile-${jq(ws,'.profile_name','r')}'
|
|
(box
|
|
'${replace(ws.name,".*:","")}'
|
|
(label
|
|
:class "workspace-number"
|
|
:text {jq(captures(ws.num, '[0-9]$'),'.[].[]','r')}))))
|