[1+1=2]

OneAndOneIs2

« They call it progressBread and whine »

Tue, Jul 26, 2011

[Icon][Icon]My GUI

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

I had a few requests for details about this after my last *nix-based posts. So here we go!

It's based on the minimalist window manager, FVWM2 - any decent Linux distro should have it available via the package manager. The config files and resources I use can be found in this file - for the most part things should work as-is but there's one C-script that you might need to compile for your own system.

Once you've got those files in your .fvwm directory, logging out of your usual Gnome/KDE/XFCE/whatever session and selecting "FVWM" on the login screen should be all you need to do. If it's not that simple on your system, you probably know how to deal with it.

You'll log into.. well.. a black screen with a simple pager, an xterm and (if you have it installed) a GKrellM system monitor. And nothing else.

Although I habitually use the same apps, I've never liked having more than the bare minimum in my startup - sometimes when I'm doing system testing or some such, I have to log in and out a dozen times in quick succession and this is a PITA if I have to wait for a dozen apps to start up each time.

Before we go any further, you need a basic understanding of what this GUI is designed to do and how I use it. First and foremost, this interface is designed around a dual-monitor system and a lot of what it does makes no sense if you're not using two screens.

Although nothing is done to enforce it, it's my habit - and a good idea, with this setup - to keep applications rigidly organised. To wit: GUIs go in one screen, xterms in the other. I put GUIs on my left screen, purely because that's the better display.

I also use virtual desktops, 3x3, to keep the number of applications on any one display to a minimum. Since my job pretty much revolves around web development, my central desktop has Firefox on the GUI screen. (Firefox is giving me enough problems with memory issues these days that I would consider switching to Chrome if it weren't for the fact that Chrome's Vi-based navigation plugin is nowhere near as good as FF's Vimperator add-on yet.)

The desktop to the left of FF has my email client in it, and to the right is a gedit session with a dozen tabs open & set to autosave every minute, which I use as a C&P scratch pad - output from logs and so forth.

The other six desktops I fill up as-and-when with apps such as VirtualBox (so I can use Windows when I'm forced to) or Gimp (when I can't get by with ImageMagick)

That's the GUI screen. The other screen has Xterms in it, and these are all made "sticky" so they're the same on every desktop - essentially, changing desktop is a means of changing what GUI app I'm looking at. Some might argue that this means I'm limiting myself to half as much screen estate as I would otherwise have. They're wrong - everything I need to access is in those Xterms, losing them every time I switched to a different GUI app would be a huge burden.

Functionally, I have three terminals open as standard (technically six, but three of them don't count) - these can be divided into:

  • Bottom right, IRC - for my colleagues and useful channels such as #git and #perl-help
  • Bottom left, a 'local' xterm - most of my terminals are connected via SSH to the remote development server, but it's helpful to have a local terminals for a few things.
  • Top left, my main work terminal - most of the time, this is the only window I use for actual working

So most of the time, my screen will look like this:

A firefox session on the left, two remote xterms on the right, and one small local xterm. Plus a few monitoring windows such as GKrellM and TinyTerms - small xterms that look at various system logs.

Every xterm I have, be it local or remote, is connected to a Gnu Screen session. This is such a vital feature that I'd go so far as to say that I couldn't work without Screen - if nothing else, it would massively increase the number of xterms I need. Which would break the fundamental minimalist design of the entire GUI.

Use Screen. It's brilliant.

Keeping the number of windows open to a minimum lends itself to another vital part of the design: The mouse is your enemy. Avoid it as much as possible.

Seriously: I worked out once that I would lose an hour's productivity every day if I used the mouse. It's that big a drag. Your hands should be on the keyboard as much as possible.

Since typically, I only have three windows selectable via alt-tab, it's easy to navigate between windows using only the keyboard. And then the window is either an xterm, which the mouse is useless for; or a GUI with enough keyboard shortcuts available that I rarely need the mouse.

I can also move and resize a window using nothing but keyboard shortcuts; and also toggle them between screens. I use the 'Windows' key as my meta key for FVWM-actions: Win-T toggles what screen a window is displayed on. Win-O toggles what screen the mouse is on. Win-cursor moves me between virtual desktops. Win-Z brings up my main menu. Win-X gives me a window-switcher like alt-tab but with all open windows instead of just the windows on my current desktop. Etc. etc.

An exception to Win-key functionality is the Alt-F2 command to bring up an application launcher. This is purely because it's what my co-workers are used to for this functionality so it's easiest all-round to have it set that way.

Unlike the menus in Gnome & KDE and their ilk, my menu doesn't have every application installed available from it: It has only the tiny subset I use regularly.

Using a user-defined menu has its benefits. For instance, I use a locally-installed version of Firefox rather than the version supplied by my distro; and can launch xterms with a variety of font sizes. This functionality is available in all DE/WMs that I'm aware of, but is rarely taken advantage of because it's easier to use the less-useful automated entries than add your own.

All other apps, I start from either an Xterm or the Alt-F2 app. The menu also appears wherever my mouse happens to be, instead of requiring me to move the mouse to a taskbar - this can be a big time-waster when you have to navigate across two screens to click on a menu.

I don't have any taskbars. They don't offer me anything I need.

Window decorations are fairly minimal and I frequently turn them off altogether. The four buttons on the right are Maximise, Minimise, Close and Kill - Close closes that one window, Kill nukes the entire program. By default, removing a window's decorations also removes it from the window list (Win-W toggles window decorations; Win-Tab and Win-Shift-Tab control window list skipping)

Because this has the possibility of minimising a window that I can't switch back to using alt-tab, there's a "Deminimize all" command to get me out of trouble if it's ever needed, Win-E

I explained before about how hugely useful the tiny xterms top-right are for keeping an eye on logs & things. The top two are logs, the bottom one is showing "Finch" - the command-line based version of the Pidgin IM client. It's a useful way of being on IM without the annoyance of having random windows popping up unexpectedly.

I think that pretty much sums up everythign I have to say on the subject. It's a GUI with a design & philosophy that works for me, the way I use it. The FVWM config file is fairly heavily commented, it's worth scanning it if you're not sure about how something works. It's also a config file written for version 2.5, not the latest 2.6 that I haven't gotten around to upgrading to yet.

Any questions? :)

2 comments

Nice article, thanks.

I have the same kind of layout, 3x3 virtual desktops, but I use E16. The icon boxes are a nice way to share terminals between desktops, but I don't use them as heavily as you do. I also keep a few other applications stowed there, such as IM chat windows, file browsers, VirtualBox instances and a few others. I might also run a systray or panel to hold useful program notification icons. A few old WM applications are nice too.
07/08/11 @ 01:43
busana muslim
Comment from: busana muslim [Visitor]
I like your story, ok, i’ll bookmark this site and return here in next few days.
29/02/12 @ 13:45

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]

powered by b2evolution