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

Option to show open tabs #12

Closed
alex285 opened this issue Jan 13, 2016 · 14 comments
Closed

Option to show open tabs #12

alex285 opened this issue Jan 13, 2016 · 14 comments

Comments

@alex285
Copy link
Contributor

alex285 commented Jan 13, 2016

Although it follows Builder design on tabs, in Terminal is useful to always see the open tabs, unlikely with the files on a code editor.

Cant be an option here to have open tabs always visible (the standard way)?

@gnunn1
Copy link
Owner

gnunn1 commented Jan 15, 2016

I've been thinking about this and I'm not averse to doing this, however I do think I want to avoid maintaining two different UI styles as it impacts the design of features. If I switch to tabs some changes I'd want to make include:

  • Right now notifications for sessions/tabs that are out of view are shown in a button on the header bar that becomes visible when notifications are present. If we do tabs, I'd switch this to putting an indicator in the tab itself.
  • Make the tabs detachable and re-attachable similar to the terminals
  • Close tabs with the 'x' button on the tab instead of from the session menu
  • Change all the terminology from sessions to tabs

So from my point of view we need to commit to one style (Builder as per now) or the other (tabs). While I prefer the builder style, I'd be fine with switching to tabs if the consensus is there so I'd be interested in hearing from others on this topic. I'll leave this feature request open for awhile to get some feedback.

@alex285
Copy link
Contributor Author

alex285 commented Jan 15, 2016

Session menu can be turned into "views/workspaces" menu, displays "views". Every view can contain one or more tabs, and tabbing can follow Firefox like system. Tabs or drop-down, or both. Closing a view, closes all the tabs inside it. Moving tabs (attach), should also change the view that a tab belongs. Is that makes more sense?

It could turned into regression if someone "loses" a running process on a tab, that he missed to see. In any case please leave this issue open.

@alex285
Copy link
Contributor Author

alex285 commented Jan 15, 2016

Or tabs can dont be attachable. That would save lot of complexity.

@gnunn1
Copy link
Owner

gnunn1 commented Jan 15, 2016

I think having tabs nested into views is too many levels of UI nesting. Like I said, I'm fine with changing the UI to tabs if the consensus is there, I just want to commit to one style rather then doing two half-assed. I will leave the issue open until at least February and towards the last week of January I'll throw up a poll, hopefully by that time there will be enough users to get a meaningful consensus.

@alex285
Copy link
Contributor Author

alex285 commented Jan 25, 2016

To add, the concept of running terminal thumbnails on a left drawer seems better idea than tabs.

@gnunn1
Copy link
Owner

gnunn1 commented Jan 29, 2016

Started working on the sidebar, here's an early look and very unpolished look. I think though this will eliminate the need for tabs, the fact that each session has a preview really helps in figuring out which one to switch to. I'm debating about removing the concept of naming sessions, I just don't think it's going to be needed after this change.

screenshot from 2016-01-28 21-26-49

@davidosomething
Copy link
Contributor

possible to pull that out into a tray, or change location? from a user experience standpoint, i'd like to be able to still see what's in the left terminal when switching to another one (e.g. what if i wanted to reference something?)

also maybe then you could show a preview of the terminal while mouseover/hotkeying between them since it is hard to figure out what the layout contains without actually opening it (tiny text)

drawer/tray style is more multipurpose too -- maybe repurpose the gtk widget for some other info in there like shared clipboard history

@gnunn1
Copy link
Owner

gnunn1 commented Jan 29, 2016

The problem with a drawer or tray is that it squishes the terminal to make room for itself. For the search it's no big deal since the splitters are not involved, but once the splitter are in the mix I'd be a little worried about the effect on layout. The other issue with a drawer is the expectation that it could be open permanently and thus constant updating of it would be required which is a pain as well.

Anyways, I'm not even sure this will be feasible as the more I play with it the more flaky getting the non-visible sessions to paint into thumbnails appears. I've got a question about it on the GTK app mailing list so we'll see if I get any responses. In the absence of an example to make this work in a sane way I may not proceed with it as there are too many issues impacting stability.

@gnunn1
Copy link
Owner

gnunn1 commented Feb 6, 2016

I don't think I'm going to carry forward with the sidebar branch, while it seems to work OK I get a number of GTK critical error messages on all versions of GTK and the general way it works isn't leaving me comfortable with it's stability. I'm putting it on the shelf for now, if someone more adept with GTK then I wants to take a crack at it feel free. I'm switching back to Master and moving on to other items at this point.

Note I'm still open to suggestions for alternative ways to manage sessions, aka tabs.

@gnunn1
Copy link
Owner

gnunn1 commented Feb 19, 2016

Good news, I have merged the sidebar branch into master. I feel much more comfortable with it now as I resolved the GTK errors I was getting and I managed to minimize having to process events enough that I'm much less concerned about side-effects.

Another reason why I'm comfortable merging it is that I have a reasonable backup plan for an alternate way to do the sidebar. This backup plan is to draw a wireframe icon representing the layout of each session so there is still a visual representation of the session even if it's not as good as the thumbnail in the current version. I'm hoping not to have to implement the backup as the sidebar as it is now seems robust, but having an alternate workable plan in my back pocket means we can move forward.

I still need to do a bunch of testing as the sidebar branch was missing the maximize capability from master, initial testing after the merge shows everything seems to work as expected but I'll want to run over a few things to make sure it all hangs together properly. I'm aiming for a new release tomorrow night which gives me Saturday and Sunday to fix any unexpected issues.

I also made some improvements to the sidebar since the branch, in particular keyboard and focus handling is now working as expected. I also fixed some painting issues when transparency was enabled that caused sessions that were not visible to look somewhat fuzzy.

@gnunn1
Copy link
Owner

gnunn1 commented Feb 21, 2016

One todo item left on this which is to integrate notifications into the sidebar instead of having a separate button for it. Will leave this open until then.

@gnunn1
Copy link
Owner

gnunn1 commented Feb 25, 2016

Notifications have been moved to the sidebar and I tweaked the sidebar look at bit as per the screenshot below. The purple circle shows the number of notifications for a given session, if you hold the mouse over it it displays a tooltip showing the commands completed. Unfortunately I could not get the tooltip in the screenshot.

Note I'm not much for CSS, I stole the CSS for the circles from Adwaita, if someone wants to take a crack at adding some transparency to them I think it would improve the look a bit.
screenshot from 2016-02-24 20-01-11

@gnunn1 gnunn1 closed this as completed Feb 25, 2016
@alex285
Copy link
Contributor Author

alex285 commented Feb 26, 2016

Awesome! Kinda irrelevant but do you have a clue how we can enable notifications for Zsh?

@gnunn1
Copy link
Owner

gnunn1 commented Feb 27, 2016

The notification is emitted via overriding the PROMPT_COMMAND in
/etc/profile.d/vte.sh, on Arch it appears it supports zsh though I haven't
tested it.

On Thu, Feb 25, 2016 at 10:36 PM, alex285 notifications@github.com wrote:

Awesome! Kinda irrelevant but do you have a clue how we can enable
notifications for Zsh?


Reply to this email directly or view it on GitHub
#12 (comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants