The UI of my dreams : Firefox / Terminal / Thunderbird unified
by Tarek Ziadé
I work in three environments the whole day:
- Firefox (now mostly Minefield)
- Linux terminals
- Thunderbird
Yeah you can tell I am not good at screenshots 😉
I switch from one screen to the other using <Alt+Tab> and the underlying Operating System does not really matter. While I am under Ubuntu these days on my MacBook, I’d say that if I had a Bash or ZSH under Windows or Mac OSX, I would not care that much about the OS — Well I do because Linux offers the best environment when you develop server apps but that’s not the point–. In the shell, 90% of my windows are displaying a Vim and most of the time Vim displays itself several files in split mode.
Every time I switch the context, I have this tiny ergonomic fracture in my head. I try desperately my Vim shortcuts in Firefox. Thanks to Vimperator, I was able to reduce this fracture and I’d love to see something similar in Thunderbird.
But there’s still something Firefox has, I wish I’d find in all my contexts. Everyone of them has Tabs – But Firefox has TabCandy Panorama, which let you organize tabs in space. I’d also like to “Pin as App” some of my terminals, or do something similar in Thunderbird.
So the UI of my dreams would consist of having the same behavior for these three environments:
- Panorama
- App Tabs
- Same shortcuts everywhere (Vim mode for me ;))
- Eventually, have a Fusion mode where all tabs from all contexts are at the same level
I don’t think it’s that crazy and I think that’s where we tend to go to in the future. So, who’s in for a Desktop Panorama ?
I’m not much of a mouse user myself but I haven’t fully gotten into using all keyboard shortcuts in Gmail yet. I’m getting there. Once I have that the only reason I’ll need a mouse will be to click on links in the browser. And possibly to blur out of textareas.
By the way, also an Ubuntu user on a MacBook.
While not optimal for GMail, you should try Vimperator. It basically suppresses the need for a mouse when you want to visit links and makes the browsing experience super-fast. (If you are a Vim user I guess)
As a user often providing technical help, I’d find it absolutely infuriating trying to help people who had different UI setups than the standard unless they actually understood all the implications of the changes they’d made.
I can see people switching to ‘x’ mode and then when I ask ‘what’s the shortcut key for action y?’ getting ‘I dunno’ in return.
Consistent behaviour can only be consistent in a certain environment. Are developers supposed to write behaviour rulesets for EMACS, Notepad++, Powershell, CMD, Skywriter, etc, etc that people also love and enjoy?
I think extensions are the perfect way to go with this – this cannot ever be done systematically given the huge variety and regular variation of the products.
yeah.. agree with this. Although, as a developer, I should be able to handle all apps *and their tabs* at the same level, which is not the case yet. e.g. tabs are specific to each app and do not behave the same way from one app to the other.
You should try pentadactyl, a fork of vimperator, which is much faster, more stable and has mor features than vimperator.
ah.. thanks for the tip !
Of course there is muttator that is like vimperator but to be used as thunderbird plugin 🙂
Will try it, thanks !
Yep: that’s called Exposé on OS X and Compiz Scale on Linux; combined with a dock/launcher of some sort.
The real problem, then, is that window managers don’t treat tabs as top-level window objects.
yeah.. but those tools will let you organize windows in every screen. I think tabs are something else, especially in Firefox: they are “hidden windows” you want to keep around for later, and having them visible in Expose or Compiz would be a nightmare (I have +100 tabs)
That’s where Panorama makes the difference I think: it let you organize semantically and in a persistent state those “hidden windows”..
To me, Panorama groups are equivalent to other workspaces; and tabs in other groups are equivalent to windows/documents on other workspaces.
Gnome are working on making the contents of workspaces persist, which matches your use of tab groups as persistent identifiers.
Scale (and presumably Exposé) can be used to show just “this” workspace, and it would be this mode you’d normally use to see just the tabs/documents you’re interested in right now.
Windows 7 exposes an API for treating tabs as top-level window objects. I haven’t heard which non-IE browsers support it, yet.
“Muttator is a free add-on for the Thunderbird mail client, which makes it look and behave like the Vim text editor.”
http://vimperator.org/muttator
yeah… how did I miss that… thanks !
Well the UI of my dreams is one where every app doesn’t reinvent its interaction model but delegates it to the window manager where it belongs.
Yeah. And I want something like Panorama at the WM level. I mean: how would you organize +100 windows in a WM ?
See also the comment I made at Greg.
Ditch app level tabs and have a good compositor with those features. One benefit to, say firefox tabs, is that they can be saved when you leave. That isn’t entirely true of most app windows, and difficult ti achieve (especially with connected terminals and server states.)
I don’t know any good compositor, able to organize 100+ windows and have two levels: a visible set of windows, and hidden ones.
While technically not quite as panorama mode, I started using a tiling window manager (xmonad) a while ago and I’m not sure I’ll ever be able to go back.
The most powerful feature, imho, is the ability to set specific rules for every virtual desktop (for example, I keep IM windows in a grid and terminals tiled, while pretty much all the rest is tabbed) and then the ability to define “filters” that send windows to the proper workspace.
This way, after a few days, it becomes almost natural to use the keyboard to navigate between windows in a very predictable manner (which is what irritates me mostly about Alt-tabbing: it seems to bring up the applications at random, and always requires you to look and calculate how many times you have to tap Tab). And it saves up the time one generally spends resizing windows and moving them around.
I suggest you to give tiling window managers a look when you have some time: while not really intuitive, they can be very productive.
I tried it and loved it ! I was almost there using a regular WM since I had basically three full screen windows (FF, terminal, Thunderbird).
But xmonad make it easy to run other programs when needed. I have a problem though with Adobe Air based apps like TweetDeck: the popup messages are getting tiled and not considered as pop ups. So everytime I receive a twit, my desk gets all messed up for a few seconds 🙂
I’m afraid I can’t help you there since I generally try to avoid Adobe Air apps (for a number of reasons: performance since I use a netbook, “cleanliness” as I’m never quite sure if applications are installed globally or not, and where, and because they deviate greatly from the OS look & feel).
However, the problem might have been resolved by others: I too had to set in some special rules for some “misbehaving” apps (it mostly boiled down to the application incorrectly setting X11 flags).
The default OS X 10.6 shell:
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
I had this problem a long time ago and started looking into different window managers and found DWM. Which solves the unified UI problem. However it’s ugly… And has no clue of TABs!
Panorama looks awesome I will definitely try that, as I will loke to have a better way to handler my zillions tabs.
I’ll try DWM. I am currently trying xmonad, and while it does solve the zillions tabs issue, it’s great.
Tarek, I came to say this.
In a few months or so, Vimperator will disappear: the original founder is still “maintaining” vimperator, but the truth is that the two devs that have been adding features and supporting Vimperator over the last years have left to Pentadactyl. You might recognize Kris Maglione, from wmii.
I use the pentadactyl dev plugin, updating it every few days. You should, too 😉
thanks for the tip
ah, I expected “reply” to thread replies. My bad. I was replying to Klaus.
Me too, my OS (was Windows, now Kubuntu) is just that thin strip under my browser tabs and zsh terminal window.
I’d LOVE to see Thunderbird unified with Firefox, so I can add key mail messages to Panorama, and also bookmark them for easy retrieval from Places and the awesome bar. It’s a “simple matter of programming”: Thunderbird becomes an extension to Fx that adds View > Sidebar > “Mail folders”, and folder & message tabs that present a unique UI, as the Fx4 Add-Ons Manager does. I wrote Bug 610536 cogently arguing how awesome this would be, but (understandably) it was immediately marked a dupe of Bug 252425 – “provide Thunderbird as extension for Firefox” which is WONTFIX “Please use SeaMonkey for integrated browser / mail” (which I do, with all its pluses and minuses).
I dunno about integrating a vim/terminal window as a tab. Firefox and Thunderbird both deal at a fundamental level with URIs that you want to tag/bookmark/see in Places/Panorama-ize (which is why Tb IMO desperately needs Fx integration). But what’s the URI for a terminal? I guess a vim tab could be the handler for file:/// URLs.
Cheers!
Yeah, well — I think Panorama is less about URLs and more about grouping items that have something in common.
Let’s say, you are working on a difficult bug fix, and you want to group in the same Panorama box:
– the web page for the bugfix
– a couple of important email about this bug
– a terminal that contains a VIM session with the test and the code change
– a terminal that runs the test runner
– etc.
So I think it’s not a matter of being able to define a location for a tab, like an URL, but rather to be able to save a working context.
Some may argue that a tiling window manager is good enough to do this, but it’s visually limited. e.g. what happens when you want to save more than 9 contexts ? and what happens when you have like, +30 elements for a given context.
So I think there are two levels:
1- being able to save as many contexts as we want
2- being able for one context to define two levels:
a- what’s visible — which can be displayed via a tiling window manager
b- what’s hidden — which can be organized in space ala Panorama
And 2a is limited because you cannot set too many windows.
The difference between a tab and a bookmark is getting fuzzy in my mind…
This is spot on. Tiling window managers then to explode when you have +20 windows for one context, however IMO that’s a rare occasion.
To further address my propaganda agenda on DWM 😀 It has the concept of tags rather than spaces/desktops. So what you basically do is do tagging (and with some scripting you can do automatic tagging) which works as the turning on/off setup you suggest.
Hi,
Nice post !
Maybe http://code.google.com/p/sshconsole/ could find its place in your setup ?
Bests
Oh wow, nice ! I’ll try it, thx
Depending on your particular use case, WebShell (http://www-personal.umich.edu/~mressl/webshell/index.html) or its parent Ajaxterm might help, too.
This is actually why Emacs has become so ingrained in my workflow. In some ways it is nice, but it is also a curse. Almost any system I sit down out feels foreign. Normal this isn’t a big deal, but even on servers it can be an issue. It is not a huge deal, but it is always something to consider when tweaking your dev environment. I’ve met some really productive devs that can code well on any systems because they punt on the idea that major customizations will really improve their productivity.
The converse to that is when you really get in the groove, nothing gets in your way.
Yeah that’s an important point. Being a vi/vim user I kinda felt at home on servers because it’s the standard editor on most platforms. That said, I have these days a big vimrc that is making this less true.
Although this problem can be lowered by ssh, it’s still present if you’re not on your box. But in my case I spent 99% of my time in my own environment.
[…] Older » […]
Tonight I came up with the idea that it would have been nice to be able to have a terminal in a tab in firefox, and since other people often can get the same ideas as yourself, I googled it and found this post. 🙂 Naturally I think it’s a good idea.
There’s a lesser known alternative to Vimperator, that also enables you to browse without a mouse: look for the firefox addon called LoL, this maybe being more usefol for us non-vi:ers. I haven’t tried it much yet, though, I must admit.
When it comes to tiling window managers, there are a lot of variants out there. I would generally recommend a rather popular one called “awesome”, for its looks and features, I think that it ought to be a good alternative to xmonad and dwm. Another favourite of mine is i3 (some kind of fork of a predecessor called wmii). Just a few tips for you and other people reading this post. 🙂
(Sorry about any awkwardness in this text, it’s due to the fact that I’m no native english speaker… and also, I’m really tired 🙂 )
I don’t know how related this actually is, but I came to think of this post also when reading this:
http://www.fvwm.org/doc/unstable/modules/FvwmTabs.html