[eww] Filters out empty workspaces, again.
This commit is contained in:
@@ -18,17 +18,15 @@ list_workspaces() {
|
|||||||
# 1. Select only workspaces on the current monitor.
|
# 1. Select only workspaces on the current monitor.
|
||||||
# 2. Remove duplicates (might be a bug with split-monitor-workspaces
|
# 2. Remove duplicates (might be a bug with split-monitor-workspaces
|
||||||
# 3. Create the output structure
|
# 3. Create the output structure
|
||||||
|
# 4. Select interesting entries, ones that are focused, active or have windows
|
||||||
# 5. Sort
|
# 5. Sort
|
||||||
hyprctl workspaces -j | jq --compact-output --monochrome-output "
|
hyprctl workspaces -j | jq --compact-output --monochrome-output "
|
||||||
map( select( .monitor | contains(\"${monitor}\") ) ) |
|
map( select( .monitor | contains(\"${monitor}\") ) ) |
|
||||||
reduce .[] as \$item ( []; if any( .[]; .id == \$item.id ) then . else . + [\$item] end ) |
|
reduce .[] as \$item ( []; if any( .[]; .id == \$item.id ) then . else . + [\$item] end ) |
|
||||||
map( { id: .id, name, active: (.id == ${active}), focused: (.id == ${focused}), has_windows: (.lastwindowtitle != \"\") } ) |
|
map( { id: .id, name, active: (.id == ${active}), focused: (.id == ${focused}), has_windows: (.lastwindowtitle != \"\") } ) |
|
||||||
|
map( select (.active or .focused or .has_windows)) |
|
||||||
sort_by(.id)
|
sort_by(.id)
|
||||||
"
|
"
|
||||||
|
|
||||||
# Other lines that may be useful in the future
|
|
||||||
# - Select interesting entries, ones that are focused, active or have windows
|
|
||||||
# map( select (.active or .focused or .has_windows))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
monitor=$1
|
monitor=$1
|
||||||
|
|||||||
Reference in New Issue
Block a user