gnunn1 / tilix

A tiling terminal emulator for Linux using GTK+ 3
https://gnunn1.github.io/tilix-web
Mozilla Public License 2.0
5.41k stars 293 forks source link

Can we please have tabs? #114

Closed dejlek closed 8 years ago

dejlek commented 8 years ago

Can we please have tabs (could be simple Toggle Buttons) in each terminal? There is plenty of space between the "0: Terminal 1" and "+ x" in each of the terminals. That space could be used for tabs I humbly believe.

vaijab commented 8 years ago

I believe, current design is that sessions are treated almost like tabs, but not entirely. I find it quite confusing not to have tabs.

I guess it is worth looking at how terminology implemented tabs into their terminal. Each split pane can have tabs. I am not saying that this is a desired behaviour of terminix. Just something to think about.

gnunn1 commented 8 years ago

Sorry but no plans to add another layer of tabs into Terminix. As @vaijab pointed out, sessions take the place of tabs in Terminix. One of the reasons I started Terminix is I wanted to play around with applying the Builder UI patterns to a terminal application and I'm fairly committed to that at this point.

Additionally, from a coding perspective adding another layer of nesting complicates features. For example, if you add the ability to have tabs to each terminal, how does Synchronize Input work, should it sync input for terminals in tabs you can't see, ignore them, etc? Notifications is another area that would need enhancement if I added tabs.

I realize this might not be to everyone's taste and I'm wiling to keep an open mind about things as Terminix progresses, but I'd ask people try it as it is for awhile and let's see how it goes. Definitely comment on things you want or don't like though, while I may not agree with everything or implement every suggestion everyone of them influences my thinking.

vaijab commented 8 years ago

Fair points, @gnunn1. Thanks.

dejlek commented 8 years ago

Well, I understand your point about sessions, but I honestly disagree with the statement that sessions replace tabs. I use another tool similar to the Terminix and I have dedicated areas (that is what Terminix window is) for specific things. These areas are windows with tabs because I want to be able to easily switch between different servers and console sessions where I monitor certain services. Doing this with Terminix sessions is crazy because it switches the Terminix screens.

Anyway, Terminix is an awesome application - I gave it a go because it is made in D and will recommend it to friends.

alex285 commented 8 years ago

I dont mind the tabs that much, but I would appreciate a more obvious way that you have more than one session open, as it seems I always forget open views.

gnunn1 commented 8 years ago

@alex286 I can understand that, please open an issue for it and if you have any suggestions I'd be happy to entertain them. If I recall you had suggested maybe replacing the icon on the sidebar button with a dynamic number which would be pretty easy to do.

alex285 commented 8 years ago

@gnunn1 https://github.com/gnunn1/terminix/issues/117

porjo commented 8 years ago

I know this has been raised many times, and the answer is 'no'...but for what it's worth, here's my take:

Tabs allows me to do a visual scan across my 'sessions' and switch to the one I want based on the tab's title (which on, e.g. gnome-terminal, defaults to user@host). I typically have half a dozen sessions to different hosts at any time, so seeing which host I can switch to is critical. With Terminix I would need to name each session manually (unless there's a feature I've missed?) then open the sidebar each time I need to scan the list of sessions to find the one I need. Yes, I could memorize session numbers - and switch by memory, but working memory is overloaded enough! I could also use split screens for my different hosts but I very often want full width/heigh so that's not an option.

Those additional steps are a dealbreaker for me :cry:

gnunn1 commented 8 years ago

@porjo I appreciate your comments, but sorry my position remains the same with no plans to support a tabbed UI.

alexwhitman commented 8 years ago

@porjo Once #456 is implemented you'll be able to quick switch to a session by its name. It will mean that you'll have to name your sessions. There's the potential to also search/filter based on terminal users/hosts within a session if the demand is there for it.

gnunn1 commented 8 years ago

@alexwhitman @porjo That merge will be happening this weekend as I'm committed to getting it in before pushing a 1.30 release out the door.

One other thing I was thinking about last night, maybe there should be an option to auto-name sessions based on the currently active terminal in the session similar to what we support for terminal titles with variables. I get the sense that session naming is not used very much and there's an opportunity to improve this and fix some of the useability options @porjo identified. Thoughts?

Also, I'm always open to alternative UI schemes if someone can propose a good design and get some consensus around it. The major thing for me is I don't want to invest the effort in maintaining multiple UI systems, it would just take too much time to support this.

vaijab commented 8 years ago

maybe there should be an option to auto-name sessions

That would certainly help. What I find useful in gnome-terminal for example, is tabs are named after a running command. Personally I'd never name my sessions manually, too much effort.

Naatan commented 7 years ago

Why not add a pref that makes the session list permanently docked (visible) without the preview? In a way they would become tabs, but most importantly it would give instant access to them rather than have them be 2 clicks away.

gnunn1 commented 7 years ago

@Naatan The big thing is I'm not interested in maintaining multiple UI patterns, i.e I'm not going to support the sidebar and some other way to do things (tabs, docked list or some other design). It's just too much work trying to maintain a consistent feature set across two different UI paradigms.

Having said that, it's not like I'm married to the current sidebar design as the ultimate solution. If someone wants to undertake an alternative design and put together a mock-up for a proposal I'm certainly happy to consider it.

Naatan commented 7 years ago

@gnunn1 honestly I would settle just for having it on-screen permanently (docked). Which wouldnt require any new UI patterns aside from the docking part. My main annoyance is having to click twice to do something that should only take one click. Sure you could argue for keybings but then I might as well be using tmux :)

Basically the problem I'd like to see solved is having all my terminal sessions be only one mouse click away.

gnunn1 commented 7 years ago

I can understand that, but as I think you know the sidebar cannot be permanent in it's current form due to the thumbnails.

One concept I had discussed with @alex285 based on a simple mockup he did on Google+ was have a thin permanent bar running down the left side with small line drawing icons that depict the layout of the terminals in the session in a live way. If you hover the mouse over the icon you would get a snapshot of the session similar to what's shown in the sidebar now.

I do like this idea but would like to see someone mock it up and bring it forward so people can discuss it and come to a consensus before I actually do any work on it.

gnunn1 commented 7 years ago

Just to summarize, I'm amenable to making changes but someone needs to invest some time doing design work and a mock-up.

Naatan commented 7 years ago

That sounds interesting. What was wrong with the mockup @alex285 did? Seeing as you are asking for a new one.

gnunn1 commented 7 years ago

It was a start and @alex285 was going to open an issue for it but never did. The mock-up he did (which I annoyingly can't find on Google+) was a very simple layout that didn't include many of the elements I highlighted above. I'd like to see a more featured mockup that included:

@alex285 can you paste a link to that google+ post here if you remember what I'm talking about.

alex285 commented 7 years ago

@gnunn1 oops sorry, just saw that! I'll do them tomorrow in detail! Sorry!!

alex285 commented 7 years ago

I made this in 5 on GIMP, because the idea is very simply really, and I think it is better (if you like it!) to code it, rather doing mockups after mockups :)

You have a sidebar that shows the running sessions. The letters I have (T,B,A,) shows the first letters of each Terminal session, so you can easy recognize them. Current session (A) has a different (active) color.

Obviously you dont need the Terminal icons, you just can have the letters inside a box. Since these are supposed to be "tabs" they should also be re-ordered (with DnD) and optionally de-attached, something that Terminix now dont support (detaching sessions with multiple views).

Left click bring focus, right click can open a popover with info (like full name, close option etc) or whatever. Notification can be badges on top of the "terminal icons" I have. I dont think hover previews is needed. Perhaps a tooltip with the full name of the session?

The menu button, just opens/closes the thumbnails, and also hides the small sidebar, which is wrong, but it is a simple way to keep the vertical distances of the icons. Except if you want to make a cool animation :)

If many session, there should be a scrollbar, which may be an issue.

The top bar remains the same, just remove the "3/3" and replace "+" with open word. I didnt change these on mockups because ..lazy!

mockups-1

gnunn1 commented 7 years ago

Thanks @alex285, I'll take this and open a new issue in the next day or two to give people an opportunity to discuss and make suggestions.

alex285 commented 7 years ago

hey @gnunn1 do you want normal mockups on inkscape? or no need to? I believe is very straightforward concept, and the small details is better to go as you developing.

gnunn1 commented 7 years ago

Let's start with this and see where it goes.

fbruetting commented 7 years ago

@alex285 In contrast to larger previews – for a small bar, I would prefer it to be at the top under the title bar. Because you can display the running application name or some other name like „console x“ next to each icon for better orientation. Otherwise you have three v's for three vim-tabs, and 90° rotated application names in a side bar are hardly readable.

I got another (optional) idea: What about an optional side slider, which extends beyond the normal window frame to the outside (like in Pathfinder for Mac OS; or maybe also to the inside) which displays live previews of all tabs like the Gnome extension WorkspacesToDock persistently?

alex285 commented 7 years ago

@fb87 I'm not against to have a horizontal implementation or to have an option to move the bar on top/bottom/left/right ..but I think @gnunn1 didn't want to make classic tabs at first place. Plus we will end up with 3 horizontal bars. CSD + Tabs + Session Title Bar.

About the name and the three "Vs" for 3 Vims as you said, to my experience the full name isn't really important. I rarely can see full names on any tab system, including Chrome. Plus a quick tooltip on hover can solve it

About keep the session thumbnails persistent open, you can have it since it wont bother anyone, but I dont really see either how it will help usability :/

vaijab commented 7 years ago

Whatever you decide to do, please make it optional or a way to disable it. My number one user requirement is an ability to maximise on usable work space.

Naatan commented 7 years ago

Personally I like the vertical sidebar approach with just a simple icon indicator. I'm not a fan of the letter indicators "T", "B", "A". It doesn't instantly explain what they mean to me and they look out of place.

I think for a first iteration simply having the icons in a vertical sidebar (that can expan to become what you currently get when you invoke the sidebar) would suffice and set the foundation for further improvements. Eg. color coded profiles?

alex285 commented 7 years ago

@Naatan Well the idea is coming directly how social avatar works. It is not perfect but it is an additional info. However my idea was wrong because I forgot that a session can have many (split) terminals and therefore multiple commands running, when the session name will most probably be "D" for Default.

Naatan commented 7 years ago

Imo it just adds pointless clutter. Maybe if it was smaller and less intrusive? Calling out a letter that will for most people almost always be D is awkward.

alex285 commented 7 years ago

@Naatan Well the design is irrelevant, I didnt try it. Just posted as concept. But yes, having always a "D" makes no sense. Is what I said, I was wrong, because I forgot the multiple terminals (and therefore multiple commands) per session.

In any case you need to different each Terminal box / Icon / Tab somehow

pedzed commented 7 years ago

What an annoyance to not see what tabs (or "sessions") are open unless you click to show the sidebar.

"Click to reveal" is one of the greatest annoyances in UX. People want to be able to see the sessions without the need of clicking and be able to switch to another session with just one click. Having to click to simply see what sessions are open and having to click twice to be able to switch to another session really decreases my productivity.

If Tilix is supposed to be for power users, I think it really needs to rethink its UX choices. Horizontal (which everybody is used to) or vertical tabs? I don't mind. The only problem is needing to click to see what sessions you have open.

phw commented 7 years ago

@pedzed You realize this issue is marked closed since tabs are available since Tilix 1.7?

pedzed commented 7 years ago

@phw Good to hear. My OS came with Tilix 1.6.4.

dandv commented 5 years ago

I was going to ask for tabs support too, because of the much better usability. Before Tilix, I was using the default Terminal that ships with Ubuntu, which has horizontal tabs just like a browser.

Then I saw the comment that

You realize this issue is marked closed since tabs are available since Tilix 1.7?

I can't seem to find where tabs are, and I'm using Tilix 1.7.7.

So maybe reconsider the discoverability of tabs?

(Took me a bit to find the "Use tabs instead of sidebar" checkbox.)

pedzed commented 5 years ago

Offtopic: @phw and @gnunn1, I'm sorry for my comment that was worded quite harshly. Looking back at it almost two years ago, I realize it was quite unnecessary and I edited some bits out. While I do not use this anymore, thank you for this FOSS project!