| « Vindicated | The first » |
Fri, Oct 08, 2010
![[Icon]](rsc/img/chain_link.gif)
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.
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.
# 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
![[Links]](http://geekblog.oneandoneis2.org/skins/112/rsc/img/chain_link.gif)
I'm in the Perl newsletter again. I should try and write about some other language...
21/05/12
Facebook Syndication Error
22/05/12
![]()
I last listened to:
Johann Pachelbel - Canon in D major
Most recent photo:
js.js