[1+1=2]

OneAndOneIs2

« VindicatedThe first »

Fri, Oct 08, 2010

[Icon][Icon]MyUI

• Post categories: Omni, FOSS, Rant, Technology, My Life

The world is full of GUIs. They get to more and more new places every year. There was a time a phone only had buttons (there was a time they didn't even have those), now we have the iPhone. TV's once had a dial to change channel, now you can get touchscreen remote-controls. And computers...

Windows Aero. Mac OS X. KDE. Gnome. They're all shiny, 3D, all-singing, all-dancing.

I hate them. All of them. They all suck.

And I finally realized WHY.

It's because they try to be so generic. They try and work for everyone's UI needs. And that's like trying to design a shirt that will fit absolutely everyone - the only way to do it is too make it way too big, and then put in lots of velcro, or straps, or elastic, or buckles, or buttons, so you can rein in the excess material for all the people who want something smaller. And then it's still uncomfortable for almost everyone, because for a few people it'll still be too small, and for the rest of the world it'll just be a mass of excess material that serves no useful purpose.

It'll never be as comfortable as something that was specifically tailored to fit you exactly. It can't be.

All these UIs were designed to be able to do everything that anyone was likely to want them to do. That leads to two problems: They're hugely bloated; and they can only do stuff that people are likely to want to do.

KDE is based on QT, which is a superbly low-resource library. Gnome attempts to be as minimalist as a useful DE can be. Yet both still take several seconds to start up - they're that big.

And they still can't do everything I want them to. Sure, if you spend long enough, you can probably get them to do MOST of it. But it won't be easy.

So I thought I'd drop in a screenshot of my current working environment, explain it a bit, and maybe that would finally explain why I always end up using FVWM2 as my desktop: Because it's not so much a GUI as it is MyUI.


Click for larger version

This is a two-screen layout, the left is where I do my graphical work - it's a nicer monitor - whilst the right is where I do all the textual stuff. The interesting thing about this is, I keep the windows in the right "sticky" so they're on every virtual desktop, but leave the left pinned. So I can leap about from email to web to virtualbox to gimp, always have all my useful command-line stuff, and never have any worries.

It's the right hand side where everything is really happening, and it's a bit of a busy screen as a result.

Top left, there's the xterm where I do most of my work - the biggest window. All my xterms are the same size, 100x40, but the font size varies depending on what it's used for - the more I'll use it, the bigger it can be.

The blue taskbar at the bottom is courtesy of Gnu screen - one of my all-time favourite Linux apps. I don't do much work on my local machine, I log into a remote server and do it all there. You can see I had nine screens open at the time. In screen six (top left) I was checking my git status - and although we've only just switched from svn to git, I'm already massively fond of git. My bash prompt, as you can see, has username & machine name in green, then my current directory in blue, and then my current git branch in green - masses of useful information in one little bit of space. The prompt goes red when I'm on a live server instead of the development one.

In the smaller xterm on the bottom right, there's another blue taskbar - this is because this is connected to the same screen session as the other xterm. Being able to have multiple xterms attached to the same screen session is very useful. This window, I mostly keep showing my screen zero, where irssi is running. We use IRC for internal comms as well as for external help - here, I was watching the #git channel.

Bottom left is another small xterm, but this has a green taskbar. This is used for everything I do locally - on 0, I run the script that keeps my xplanet wallpaper updated. I'm also logged into multiple IM accounts on screen 1, via the CLI-based version of Pidgin, Finch. Screen 2 has a login to the server this blog lives on, screen 3 has my FVWM config open in an editor, and 4 is where I'm running the mplayer session you can see hovering over the xterm - the Foamy cartoon.

Top right is where things look their oddest, tho. Long-time Linux users might recognize the gkrellm showing system data, but what's that beside it..?

Believe it or not, it's more xterms. Three of them. And they are MASSIVELY useful.

These xterms are logged into screen sessions, just like the rest. The top two are showing the remote screens 1 and 3 - these are where I output logs for the stuff I work on. Being able to keep an eye on these at all times is very useful - I can get a lot of info from just the general output I'm able to see from the tiny screens, and if I need more detail, I use one of the larger xterms to simply switch to the relevant screen and read it.

The bottom one is showing my local finch screen, which means I can see if I've been IM'ed, or someone new has logged in, without having to give up a chunk of my monitor's real estate.

The best thing about these tiny xterms is, they give me a general idea of what's happening in multiple places, without taking up much space, and without clogging up my window list. Like the mplayer window, you can see they have no window decorations - this minimizes the space they take up. What you can't see is that they also don't show up in my window list. (What you get when you alt-tab.)

You'll also see, in the middle of the main xterm, a tiny window called "Run program" - I stole this idea from XFCE, it's the little app that comes up when you press Alt-F2. Very helpful, it is too.

The thing is, I had sixteen command-line sessions open in this screenshot. I had eleven actual windows open. But in my window-list, I only had five things to navigate between - three xterms, Firefox, and Evolution. That makes it very easy and very quick to get to exactly what I need to - three keystrokes can get me to any window I want. I always know what's going on in my logs. I always know if someone needs to get hold of me.

The entire UI is lightweight, lightning-fast, and is working totally the way I need it to - I don't have to fight my way through something that works ok-ish for the average desktop PC user but is a PITA for someone trying to be productive. Imagine trying to have all this stuff open in Windows 7 - I'd have a plethora of windows open that I had to fight my way around.

FVWM2 is the least-friendly WM I know of - setting it up is more about learning how to speak its language than it is about checkboxes and drop-downs. But because of this fact, it can be set up to work massively more efficiently than anything else I ever encountered. It's like the WM equivalent of a CLI - it's quick, it's powerful, and it's unbeatable when you just need to get something DONE.

12 comments

KimTjik
Comment from: KimTjik [Visitor]
Wouldn't a tiling WM fit your needs better? If you as standard have several terminals open it could help to organize it better. Some tiling WMs also have a built in key-binding for "run" (not necessarily F2). It's seldom these days I use anything else but a tiling WM.
08/10/10 @ 16:56
Petyo
Comment from: Petyo [Visitor]
I agree with Kim, I personally use ION. Nice setup you're a real pro!
08/10/10 @ 18:22
oneandoneis2
Comment from: oneandoneis2 [Member] · http://geekblog.oneandoneis2.org/
I can't really get on with tiling WMs.. I actually frequently find it very useful to have windows able to overlap. They're a great solution.. but for somebody else's problem :)
08/10/10 @ 19:10
Thomas M
Comment from: Thomas M [Visitor]
thx for sharing, always interesting reading about other peoples setup.

How do you get your git branch into the command line? haven't worked a lot on my prompt but that would be interesting.

Personally I use KDE and found out recently that kwin can remember shortcuts to windows. That was a huge productivity boost for me since all main applications now are just one keypress away.
08/10/10 @ 23:35
Dion Moult
Comment from: Dion Moult [Visitor] · http://thinkmoult.com/
Well, the problem is that some people like the prettiness and glossyness of modern UIs. I myself love KDE's look even though I'm fine with using ratpoison as a WM (which I do, when NX'ed in).

KDE IMO is getting window management _done_ _right_. From the ability to tab windows together, having inbuilt window tiling, the krunner dialog, organising windows into activities, window edges (eg: half and half screens), dynamically adding and removing desktops... once you learn how to use those tools I find that it's infinitely better than those minimalistic WM tools.

To each his own, I guess :)
09/10/10 @ 07:29
oneandoneis2
Comment from: oneandoneis2 [Member] · http://geekblog.oneandoneis2.org/
@Thomas M: Google "git ps1" and you'll find it - it's part of the same thing that gets tab completion for git into bash, so you can tab-complete branch names etc.

@Dion: I do like KDE's look, I like a lot about it, especially the QT stuff it's built upon, as I mentioned in the post.

The problems I have with all its shiny features are: They make KDE relatively slow (seconds of "Initializing" vs fvwm2's instant "Here I am, let's go!"; they get in the way of basic X functionality I like, such as xscreensaver & xsetroot etc; but mainly it's just knowing what all of them are & how to use them effectively - I haven't come across a decent guide yet & don't have the time or energy to go research them on the off-chance that I might decide I like them.

Maybe you could write one & let me know when it's published? ;)
09/10/10 @ 10:36
Hari
Comment from: Hari [Member] · http://harishankar.org/blog/
Personally I've stopped caring so much of the GUI that I hardly notice it these days. I use Gnome - it leaves me to do what it want to do (use applications etc.) without getting in the way. As long as the UI lets me relatively free I am not worried about its enhancements or productivity benefits.

Even KDE is fine for me except that it became too heavyweight and I don't need its customizability.

I guess I am just not fussed enough about productivity though. A few extra mouse clicks now and then to achieve something doesn't bother me at all. I don't customize much. I am mainly application focussed.
12/10/10 @ 04:16
oneandoneis2
Comment from: oneandoneis2 [Member] · http://geekblog.oneandoneis2.org/
The GUI itself I'm not fussed about, exactly. So long as it doesn't annoy me by being slow, I would happily use any DE/WM that could do what I need.

The trouble is, what I need includes:

  • Ability to switch a window from screen to screen by keyboard shortcut (KBS) - vital with a dual-monitor setup

  • Ability to remove a window's decorations & hide it from the window list

  • Ability to move and resize a window via KBS

  • Ability to move a window by clicking in it anywhere, or drop it to the bottom of the stack with a mouseclick


I need to be able to do all the above, and frequently - it's not just "a few extra mouse clicks now and then", it's continually throughout the day.

As far as I know, FVWM is about the only WM capable of providing all the above. I'd consider trying out anything else that did the same thing, but it's got to be able to do everything on that list or it's no good for me.
15/10/10 @ 09:47
Hari
Comment from: Hari [Member] · http://harishankar.org/blog/

# Ability to switch a window from screen to screen by keyboard shortcut (KBS) - vital with a dual-monitor setup

# Ability to remove a window's decorations & hide it from the window list

# Ability to move and resize a window via KBS

# Ability to move a window by clicking in it anywhere, or drop it to the bottom of the stack with a mouseclick


Actually that was what I meant by "fussy" requirements or rather specific needs, not in any negative sense, but the fact that you have a relatively non-standard setup emphasizes the need for what others would consider quirky features.

On the other hand, I have none of those requirements at all. That was the difference I was pointing to.
15/10/10 @ 16:41
oneandoneis2
Comment from: oneandoneis2 [Member] · http://geekblog.oneandoneis2.org/
The thing is, although most people don't have my specific needs, most people have a few specific needs or wants, and thousands of people with "just one or two little things" adds up to a multitude of conflicting behaviours.

There's only two real ways for DEs to cope with this - the Gnome way, of trying to encourage the "one true way"; or the KDE way of trying to code every possibility and make it configurable.

The Gnome way makes flexibility a chore, the KDE way encourages bloat.

The FVWM2 way, of making the WM configuration essentially a whole language that you can therefore make do whatever you say, is the only real way of being small & lightweight yet still uber-configurable.
18/10/10 @ 11:12
Hari
Comment from: Hari [Member] · http://harishankar.org/blog/
You make a good point with Gnome, but I am less confident of your assessment of KDE's bloat being in direct relation to its configurability.

I would say KDE's bloat is more to do with the increasing eye-candy and large-scale integration with a huge array of desktop applications rather than configurability. KDE 4 is not that much more configurable than KDE 3 but KDE 3 was a lot less bloated.
18/10/10 @ 14:10
oneandoneis2
Comment from: oneandoneis2 [Member] · http://geekblog.oneandoneis2.org/
I never said it was a direct relation - just that adding every possible config. option inescapably adds to the amount of code needed.

The whole KDE project as a whole has certainly become very large, and both KDE and Gnome have gone OTT with visual effects since compositing came in. I'm a fan of using the graphics card for rendering the desktop, but all that desktop-cube stuff annoys the hell out of me when I'm trying to actually get work done...
18/10/10 @ 15:17

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)
 

[Links][icon] My links

[Icon][Icon] I'm in the Perl newsletter again. I should try and write about some other language...
21/05/12

[Icon][Icon] Facebook Syndication Error
22/05/12

[Icon][Icon] I last listened to:
Johann Pachelbel - Canon in D major

[Icon][Icon] Most recent photo:
js.js

[Icon][Icon]About Me

[Icon][Icon]About this blog

[Icon][Icon]My LQ profile

[Icon][Icon]My /. profile

[Icon][Icon]My Wishlist

[Icon]MyCommerce

[FSF Associate Member]


May 2012
Mon Tue Wed Thu Fri Sat Sun
 << <   > >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Search

User tools

XML Feeds

eXTReMe Tracker

Valid XHTML 1.0 Transitional

Valid CSS!

[Valid RSS feed]

free open source blog