mirror of
https://github.com/JakeStanger/ironbar.git
synced 2026-07-11 07:15:19 +01:00
[GH-ISSUE #90] Always visible workspaces #2863
Labels
No labels
A:Build
A:CI
A:Client
A:Config
A:Core
A:Documentation
A:Documentation
A:IPC
A:Testing
A:UX/UI
blocked
BREAKING CHANGE
duplicate
good first issue
GTK4
help wanted
invalid
M:Battery
M:Battery
M:Bindmode
M:Bluetooth
M:Brightness
M:Cairo
M:Clipboard
M:Clock
M:Clock
M:Custom
M:Focused
M:Keyboard
M:Launcher
M:Menu
M:Music
M:Music
M:Music
M:Network Manager
M:Notifications
M:SysInfo
M:Tray
M:Volume
M:Workspaces
partially resolved
P:Critical
P:High
P:Low
P:Medium
pull-request
T:Bug
T:Bug
T:Core Enhancement
T:Module Enhancement
T:New Module
T:Question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
JakeStanger/ironbar#2863
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @yavko on GitHub (Mar 30, 2023).
Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/90
Originally assigned to: @yavko on GitHub.
Is your feature request related to a problem? Please describe.
I kinda just want 10 workspaces always showing
Describe the solution you'd like
An option that allows setting a range of workspaces, that are always shown
Describe alternatives you've considered
Maybe a list of workspaces instead?
@JakeStanger commented on GitHub (Mar 30, 2023):
Hm, this will be a bit fiddly but I can see the value.
I reckon the best way would probably be to use the existing
name_mapoption, and add some flag along-side that to toggle filtering the entries based on open workspaces.I think that way it should play nicely with
all_monitorstoo.@yavko commented on GitHub (Mar 30, 2023):
Yeah, actually that would be better, maybe making
name_mapcheck if the value is either a string or object, then a prop likealways_shown, andtextfor what it should appear as@yavko commented on GitHub (Apr 2, 2023):
Oh, yeah, this should also add a new CSS class for inactive ones.
@Gajus84 commented on GitHub (Apr 12, 2023):
And maybe also the possibility to do the opposite too. Workspaces that are always hidden. Hyprlands Special Workspaces for example.
@yavko commented on GitHub (Apr 12, 2023):
Yeah that makes sense, but that seems better to be a config option like
show_special@JakeStanger commented on GitHub (Apr 12, 2023):
Do you think there would be value in this, as in do you have some workspaces you'd like to always show but some you don't? Implementing it on a per-workspace basis would make things more complex, but is doable if you see immediate value in it.
Assuming the Hyprland IPC exposes whether a workspace is special, filtering those should be trivial.
@Gajus84 commented on GitHub (Apr 16, 2023):
It does via
createworkspace>>special:"name".@yavko commented on GitHub (Apr 16, 2023):
Ironbar uses Hyprland-rs which uses a ADT for workspace creation events, should be even easier
@yavko commented on GitHub (May 7, 2023):
I'm going to try implementing this, if thats okay
@JakeStanger commented on GitHub (May 7, 2023):
Absolutely, go for it!
My currently thoughts on this are that the best way to tackle it would be to add a new option, similar to the
favouriteslauncher widget option. That can just take an array of workspace names and pre-populate the workspaces with those.I think I prefer that to having
name_maphave two separate formats, and two separate responsibilities. My fear is otherwise the logic becomes more complex than it needs to be, and it becomes more complicated to configure.For special workspaces, it might make sense to either just add in logic to always ignore it, or add a new
ignore_specialoption.Of course if you have other ideas, let me know.
@yavko commented on GitHub (May 7, 2023):
On it
Oh, time to scrap that then, anyway I was doing this

I forgot, time to add that too
@yavko commented on GitHub (May 7, 2023):
I've encountered an issue, since by design these workspaces don't exist in the compositor, there is no way to know their
monitoror theirid, so how do I decide where to show them? Should it instead be an array of maps? Or a map of strings, the strings being the monitor name?@JakeStanger commented on GitHub (May 7, 2023):
I'd say a map of monitor names to workspaces to include would be clearest:
So to always show workspaces 1 and 2 on DP-1, and always show 3 and 4 on DP-2:
The only problem with that is that if you have separate configs per monitor, or if you have
all_monitorsenabled, you're going to end up duplicating that. So I'd say this is a case where accepting two formats would make sense? Sofavoritescan also take just an array of names, in which case it would apply it to all monitors:To always show 1, 2, 3 and 4 regardless of monitor:
Again, I'm open to ideas here - if you have other thoughts do let me know (or just run with them and I'll pick them up in the morning).
I'm not sure if the monitor name is currently passed in the context object, but if not it'd make sense (and hopefully be trivial) to add it.
@yavko commented on GitHub (May 7, 2023):
Yeah that's probably the best way