The Linux kernel itself almost never directly interacts with the user. (In fact, it only does when you get a "Kernel panic" or "Oops", which is very rare when running stable releases.) The user interface is therefore completely malleable. StephanHouben
, for example, seems to think that GUIs are only good for displaying multiple xterms at the same time, and therefore has a rather spartan GUI. However, it is conceivable that others disagree with him, and run some bloatware such as KDE or Gnome, which makes your Linux machine very much like a Windows machine, both in look and in responsiveness.
Speaking of spartan GUIs, I'm still inspired by tales of using no WindowManager at all, and instead just having emacs frames which are navigated between with the other-frame function, etc.
While I'm sure this is fun, I doubt it makes the machine much more responsive or reduces X's memory usage by much.
Actually, I wouldn't use X at all if it weren't for the occasional image viewer which requires it. The nicest thing about Unix is that you can multitask very well with just a bare shell. Control-Z stops the current-running application, `fg' will resume it, `bg' puts it in the background. `jobs' can be used to view all applications you are currently running. You can switch between them with `%prefix', where "prefix" is some unique prefix for the program's name. I use this a lot, but I'm probably a UnixJunkie
beyond redemption. -- StephanHouben
[ jobs running in the background run at a lower priority, and some jobs do not take kindly to not being able to talk to their output stream nicely ]
I have one overwhelming reason to use X and own a large monitor: PDFs at 1:1 (or even 1.25:1 if I'm feeling blind that day). That saves sooo many trees and makes it so much easier to keep my tech library organized. -- DanielKnapp
I have a friend who goes ever further than that: he just uses virtual consoles and gpm for copy and paste when he feels like. I usually do that on laptops, on my home box I use a really spartan GUI (evilwm, based upon 9wm) with rxvt's and lots of jobs on background, which is like StephanHouben
's idea of a workspace...
Another great GUI that has spawned from 9wm is larswm. It automatically tiles your rxvts, with the emphasis on the current window being the largest, so that you can avoid using the mouse 95% of the time. Since it also supports virtual screens, you have different tiling rules for each screen. I get work done very efficiently using this GUI, which loads up in no time and takes less resources than one rxvt.
I do this on my laptop - I have to, I'm allergic to X in 640x480 - and it works real well if you totally give up the idea of viewing purty pictures. Being a studly EmacsDude, and more importantly having another machine to view all my po^WUML documents on, it works out quite well.
Plus, then you get to play Angband when you're bored. -- GrahamHughes
On my laptop, which has an 800x600 display, I run X for viewing PDFs (and the HTML that doesn't render well with either LynxBrowser or LinksBrowser) and playing the occasional game, but do all my coding on a single virtual terminal running screen. Then I duplicate the screen on the X session if I need to code while looking at documents. I played around with SvgaTextMode? to get a nice display for the consoles... On laptops, you really do have to be creative with this sort of thing if you want to code effectively. -- DanielKnapp
For the ultimate lightweight X WindowManager
, check out LWM by James Carter. From http://www.jfc.org.uk/software/lwm.html
- lwm (Lightweight Window Manager) is a WindowManager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it.
It does only three things:
- Left mouse button - Resize/close/hide window
- Middle mouse button - Create new xterm
- Right mouse button - Bring up a list of hidden windows
That's it. That's everything. It's the BearSkinsAndStoneKnives
of X window managers.
Another cool lightweight X wm is flwm. You can find it at http://flwm.sourceforge.net
It may have a few more features than the really minimalist wms, but it is nice.
- Nifty sideways titlebars that use screen space better.
- Horizontal & Vertical maximize buttons.
- a simple root menu.
I mucked around with it a bit and added a command line to the root menu.
And an even more minimal wm is aewm. http://www.red-bean.com/~decklin/aewm/
At a mere 1500 lines of legible C code, it's a bliss to customize to work just the way you want it. Not that there's a need to, mind you.
is based on aewm. It adds a taskbar and launcher menu while remaining easy to customize. I modified it to add a true fullscreen mode and window maximize widget.''
Another one is XFce (http://xfce.org
). It supports everything I ever use
and is 100% compatible with Gnome and KDE. I switched to it when I became
frustrated with Gnome's bloat. My only real complaint is that its file
manager (xftree) copies files when you drag them (unless modifier keys are down), which violates every UI convention in the books (including X11's).
Try it out; I'm sure even emacs mavens will like it. -- BradCox
See also http://www.all-day-breakfast.com/wmx/
, the home page for the marvellous wmx.
I used to use this when I had to use Linux. It works very well, and looks cool to boot (dodgy mouse cursor notwithstanding). See also wm2 (same site); this is even more spartan. Both suffer from the usual X problems - you have to use the mouse, and you can't play WormsArmageddon
. -- TomSeddon
screen owns. This is GnuScreen or ScreenMultiplexor
You can run any number of applications at the same time, without messing with job-control. You can detach the screen, leave home, drive to work, ssh back into your home box, reattach the screen session, and continue composing the email you were halfway through when you had to run to catch your train. If I didn't need to use a graphical web browser occasionally, I'd never bother loading X.
I too use screen all the time. The coolest is to re-attach via screen -x which duplicates the screen you are re-attaching to. This means that if you had twenty computers in a room, what you type on one would be echoed on all the others; very useful.
I used this feature to do a linux course for 6 blind students this year in Graz, Austria. I simply started one instance of screen at my tutor-PC and created an account named watch on all the student-PCs. That account got a .bashrc which automatically connected to my tutor-PC via ssh and invoked screen -x. This way they simply needed to login as watch, and could see what I was typing. This eliminated the need for a projector completely. -- MarioLang?
When trying to use ssh over a dodgy connection, screen definitely helps maintain sanity.
Lately a lot of folks have been switching from screen to tmux, which is purported to be more-cleanly coded. tmux has screen compatibility options to support switchers-it only took me a few minutes to migrate my config.
You might want to try RatpoisonWindowManager
. It is a WindowManager
designed after ScreenMultiplexor
. All windows are maximized all the time. http://ratpoison.sourceforge.net/
I use it with two screens at home. It uses GNU-screen-like hotkeys for everything.
You can configure fvwm, tvtwm, or twm to act like lwm described above. I've
been running a basic blue desktop without icons or anything else on it for a decade now. Just a left mouse menu for starting applications and a right mouse menu to restore running applications. (Wasn't this the basic philosophy of the
original Plan 9 WindowManager
Now for the unusual piece... I came home from work one day and found that my 6 year old daughter had figured this all out and had changed the background and opened several applications on my Linux system. Which she still hadn't figured out how to do on my wife's windows box. Since then (about 4 years ago) I've run several experiments where I sat people down at my desktop. They inevitably start pushing the mouse buttons. Its never taken anyone more than a minute to figure the whole system out.
I'm convinced that simplicity is the reason that the palm is popular. So get rid of all those icons and bars and buttons and make that interface actually usable.
) as an AlternativeToXfree?
This is not as minimal as some of the ones mentioned above, but fluxbox is very nice with only a wafer-thin taskbar that kindly shows you the time (aagh, yes I know you have a watch and don't need your computer to tell you the time, but there it is), the names of your minimized windows, and your current desktop. I know fluxbox is not really a secret, but maybe there are some who have not heard of it yet. It's really quite nice. http://fluxbox.sourceforge.net/
If I'm not mistaken, FluxBox? is a fork of the BlackBoxWindowManager. Blackbox has several forks to its codebase: FluxBox? (which adds window grouping and tabs), HackedBox? (which removes the toolbar completely and aims to remove Blackbox's "bloat"), and OpenBox (which aims to be an optimized yet featurefull BlackBox). Blackbox is already pretty minimal as-is, having only a root window menu to start apps and no icons whatsoever. It is also one of the lighter WindowManagers around. On my LinuxOperatingSystem box, it loads within 3 seconds, considering I load a lot of apps in my .xinitrc and that I have an AMD K6-266Mhz box. The speed is anecdotal of course
Two more great ones, those being wmii (http://wmii.de/
) and Ion (http://modeemi.cs.tut.fi/~tuomov/ion/
). Both are worth a look for the frames and tabs types.
And then there's xmonad, written in HaskellLanguage
nawm is not a window manager. I use it to manage my windows from my xterm running screen. My .xinitrc is as follows:
Xgl :1 -fullscreen &
xterm -geometry =169x8+2-1
All glory to EksMonad?
You can also try ScrotWm
). Similar to dwm but smarter and easier to configure.