Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide workspaces in inactive group #3

Open
infokiller opened this issue Nov 7, 2018 · 10 comments
Open

Hide workspaces in inactive group #3

infokiller opened this issue Nov 7, 2018 · 10 comments
Labels
enhancement New feature or request

Comments

@infokiller
Copy link
Owner

I can think of two possible ways that this can be done:

  • Sending containers to the scratchpad and later retrieving them
  • Configure the bar
@infokiller infokiller added the enhancement New feature or request label Nov 7, 2018
@infokiller
Copy link
Owner Author

I added support for this in my fork of Polybar. I hope to merge it into upstream polybar once the code is more stable.

@infokiller
Copy link
Owner Author

infokiller commented Mar 14, 2019

Update: this change will not end up being in polybar, but I still plan to implement it by using marks to store the workspace metadata (instead of the group name). See #13

@RafalSkolasinski
Copy link

I think this would be really awesome feature.
Is there any work towards this happening now?

@infokiller
Copy link
Owner Author

No, there's no work on this is happening.
I currently use my polybar fork that supports using different colors for these workspaces (see above), which I use to set a light gray color for the workspaces in inactive groups.

@RafalSkolasinski
Copy link

I still think it would be really useful to have it. Any suggestions where to start?
I am relatively new to i3 but no stranger to linux or python cli tools.

Also, I noticed that changing workspace using

bindsym $mod+1 $exec_i3_groups workspace-number 1

works with a bit of lag in comparison to normal and does not really work well
with Regolith's workspaces that have glyphs in their name.

Would be possible to just send all current workspaces to some "invisible" named storage and later retrieve?

@infokiller
Copy link
Owner Author

infokiller commented Apr 19, 2020

I still think it would be really useful to have it. Any suggestions where to start?

The workspace list is shown by another program. By default in i3 this will be i3bar, but there are alternatives like Polybar. You can start by looking at my Polybar fork, it should be straightforward to modify to hide the inactive workspaces (but it's written in C++).

I am relatively new to i3 but no stranger to linux or python cli tools.

Also, I noticed that changing workspace using

bindsym $mod+1 $exec_i3_groups workspace-number 1

works with a bit of lag in comparison to normal and does not really work well
with Regolith's workspaces that have glyphs in their name.

Yes, this lag is documented in the README and is caused by Python's startup time. I think the best way to solve it would be to the slow functions in this project in golang.

Would be possible to just send all current workspaces to some "invisible" named storage and later retrieve?

Yes, I think you can use the scratchpad for that, but this will be a bit complex because you will have to store all the layouts of the windows you moved over there, and it may be a bit slow once you want to rebuild the workspace.

@georgesamy
Copy link

@infokiller First, thank you for this library and great work. Second, I will use this feature so I'd be pleased to help with a pull request.
I'm good with python and bash so I think I can work on this issue. But I don't know C++, if you could explain to me the abstract idea of how it's done and I'll continue it would be very helpful!

@infokiller
Copy link
Owner Author

@georgesamy there's no need to program C++ for this feature, what makes you think you need to?
Since #56 there's a better way to integrate specifically with polybar, see also https://github.com/infokiller/i3-workspace-groups#polybar
This option can be added there

@georgesamy
Copy link

@infokiller

what makes you think you need to?

I was actually referring to this part:

it should be straightforward to modify to hide the inactive workspaces (but it's written in C++).

Anyhow, I've integrated Polybar using the link you provided 👍 . I will try to do it using polybar.
I have a question though, can you elaborate on this part:

This option can be added there

Where do you mean by there?

@infokiller
Copy link
Owner Author

@infokiller

what makes you think you need to?

I was actually referring to this part:

it should be straightforward to modify to hide the inactive workspaces (but it's written in C++).

Yeah, that comment referred to my polybar fork- polybar is written in C++.

Anyhow, I've integrated Polybar using the link you provided +1 . I will try to do it using polybar. I have a question though, can you elaborate on this part:

This option can be added there

Where do you mean by there?

See #56

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants