-
-
Notifications
You must be signed in to change notification settings - Fork 165
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
Tabbed columns #1085
The head ref may contain hidden characters: "\u{1F522}"
Tabbed columns #1085
Conversation
I would like to have indicator on the top, with text titles, you have it covered by this proposal. And I would like it arranged from left, not centered, if possible. Also, will it work with focus ring disabled? |
Yes. It only fetches default colors from these, otherwise it's a separate thing. |
Great. I have no further ideas, it seems configurable as necessary to me. |
Do you mean, like, left-aligned and not full-length? Because I imagine you'd just make it full-length (you already can with |
I should read the proposal more thoroughly. You take proportion of available size and split it between tab indicators then. I had indicator sizes based on text content width in my mind. With that it would be nice to have it left aligned. But it should follow rounded corners setting then ... It is more complicated than it looks. |
Usually one way or another, you want tabs to be equal length. (See tabs in browsers etc., they are all the same length.) |
Yes, that's true. Let forget that. But I would like to have it on 100% width then. |
New stuff:
|
42b0461
to
f4e9732
Compare
Pushed (to main but useful for tabs): focus-window-top/bottom/down-or-top/up-or-bottom and focus-window-in-column [index]. |
It's intended, yes. This needs the aforementioned "include tab indicator in column size" setting |
Updates:
|
Is there supposed to be some kind of animation for a window moving into a tabbed column? I don't actually know what that should look like, but as it stands they appear to just pop out of existence into the column. |
I haven't done anims yet |
Tabs work great for my workflow – thanks a lot!
👍 for that :) To get ahead on bikeshedding: how about I have very narrow gaps and borders and my current solution of having a semi-transparent indicator on top of the window contents works but doesn't really appeal to me – feels wrong to cover parts of the window and to have a tradeoff wrt to visibility of the indicator and usability of the window itself. |
Alright, big change: added As a bonus, added
Sorry, missed this edit (edits don't send emails unlike new comments). I think |
This might be a bit too much into the implementing half of css territory |
Understandable, thanks. |
Not strictly tabs-related, but it might fit some workflows to have newly spawned windows be placed into the same column/tab stack; that way, related windows naturally accumulate in larger tab stacks. For example:
|
The problem with this is that you can't generally tell these two cases apart. |
We'll add some extra logic there.
Lets hidden windows respond to events like resizes immediately. This is mainly relevant for tabbed columns. This commit doesn't actually force sending the frame callbacks in case we don't redraw. We'll see if this is a problem or not.
The gradient area should be relative to each tab's geometry. In most cases these geometries will all match, but not when some tabs have a different size, for example when they have a fixed size.
Updates:
With this I'm about ready to merge this PR to get more testing on the main branch. There's no text titles, but they can come later. If there's something else simple I might add it, but I won't block on anything complex. |
Didn't do this because it's generally a harder problem to animate something when it disappears. For switching from tabbed to normal it's easy, but when the whole column is gone (window closing), suddenly you need to come up with a way to draw a thing that no longer exists. So, maybe later. |
Also it seems you forgot to activate your Linux |
Thanks everyone for testing! |
I'm too broke to afford linux lol. |
Tabbed display mode for columns. Implements #933 / #876.
This is a WIP draft meant to gather feedback and figure out how exactly this should work. I know animations are broken, I'll deal with them later.
UX-wise, there's a single new bind:
It toggles the focused column between normal and tabbed display mode. Everything else works the same way. Tabbed columns can be fullscreen with multiple windows, unlike normal columns.
The tab indicator is vertical and isn't included in the column size. I'm considering adding settings for both of those so you can have a more traditional horizontal tab bar at the top, maybe also with window titles as another setting.
By default, the tab indicator occupies 50% of the window height and has a gap. After going through several defaults here, this setup seems to be the only one that doesn't look broken for any kind of window: arbitrary shape, CSD with rounded corners, no-CSD with square or rounded corners. The requirement for the default is that it looks decent with everything.
You can override the active/inactive colors with layout settings and window rules. If you don't, then the tab indicator will try to sample colors and gradients from the window's border or focus ring, whichever is enabled:
I'm mainly looking for UX and design feedback here: