You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently, i3 added support for dynamically showing or hiding workspaces. The way it works is quite simple — i3bar forks a shell command and displays whatever list of workspaces the command returns. This allows users to define their own logic for which workspaces are visible at any time . I3 documention can be found here 👉 i3bar-workspace-protocol
The protocol is extremely lightweight: any tool that can output a JSON array to stdout can drive it. I managed to implement this quickly in Go, and the i3 examples even show how to do it from a simple bash script — which highlights how approachable this feature is.
In practice, this allows for much cleaner and more focused workspace setups. For example, I can have one group of workspaces for dev, and another for {client-a, client-b, ...} — with all irrelevant workspaces hidden when I switch context. It really helps reduce distraction.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi folks 👋
Recently, i3 added support for dynamically showing or hiding workspaces. The way it works is quite simple — i3bar forks a shell command and displays whatever list of workspaces the command returns. This allows users to define their own logic for which workspaces are visible at any time . I3 documention can be found here 👉 i3bar-workspace-protocol
The protocol is extremely lightweight: any tool that can output a JSON array to stdout can drive it. I managed to implement this quickly in Go, and the i3 examples even show how to do it from a simple bash script — which highlights how approachable this feature is.
In practice, this allows for much cleaner and more focused workspace setups. For example, I can have one group of workspaces for dev, and another for {client-a, client-b, ...} — with all irrelevant workspaces hidden when I switch context. It really helps reduce distraction.
I brought this up with the Hyprland folks here:
👉 hyprwm/Hyprland#11908
Their feedback was that this kind of functionality would need to be implemented at the bar level, not in Hyprland itself.
So I wanted to ask the Waybar community:
Thanks for your time and for maintaining this awesome project!
Beta Was this translation helpful? Give feedback.
All reactions