I think I've figured out why the Linux desktop sucks! It has to do with hackability and efficiency. As a programmer, I'm finding the mouse and mouse less efficient.* A little over a month ago, my right hand seemed to implore to me "Stop! Stop!" every time I'd reach for that mouse. For work, I normally have a couple terminals open for database access or viewing logs, emacs open for editing, webbrowser for email, and an IM client. I've been using KDE since the end of the last century and have been pretty satisfied with it up to the 3.5 series. But my body indicated "Don't use that mouse!" So I started to try and comply.
I think most of my mouse use was for re-positioning windows that were overlapping. (Of course I was also using the mouse for web browsing, IM'ing, and my RSS client.) The solution to the re-positioning problem seemed to me to be start using a tiling window manager. In the age of compiz and fancy window decorations this seemed silly, but felt right intuitively. If I can get my windows in a state where I can see everything I need, that would certainly help.
So I started researching tiling WM's. The two most featureful at the time seem to be Xmonad and Awesome. So without reading the manual I installed one and ran it, and I was lost. I started looking at configuring/documentation and got somewhat frustrated. Xmonad seems to be the Ruby on Rails project for Haskell (perhaps an overstatement, poster boy might be a better term). The configuration is actually a Haskell project that you compile to build your own WM. Awesome in the 3.x series is using Lua for configuration. Since, I like Python I thought, hmmmm why not python.
Turns out there are a few python window managers listed in the comprehensive list of Window Managers. Then I found a python tiling window manager, qtile. It's a relatively nascent project, and I had my mental model of what a tiling window manager should do for me. (Be useable out of the box, by providing a tabbed/tiling metaphor similar to the eclipse workspace. Which I don't think anyone currently provides). So I messed around with qtile for a bit. I even wrote a layout based not on eclipse, but on emacs (since it seemed simpler for a starting point, and it was familiar to me). Then I came to a point where I wanted gimp support, (now I understand why people hate the gimp interface), which basically requires "floating" windows. I came full circle and decided to see how Awesome handles floating windows. I got a 3.1 rc of Awesome running a few days back, and am actually really liking it. (It's crashed a couple times...) I figured if I wanted to hack more on qtile, I really should use the current state of the art for tiling WM's first. I'm still learning the keystrokes, and need to install vimperator for firefox.
So, one reason desktop "sucks" on Linux, is that out of the pool of possible developers, they eventually listen to their body, and move to something like a tiling wm. They scratch their itches. The Youtube demos of tiling WM's are boring, nothing like their compiz counterparts. So while they don't appear to be cool from the glossy marketing apple/MS point of view, from a getting things down view they are quite efficient.
* - Yes I still need it for gimp and inkscape. (And to skip music in pandora (I'm not aware of any native client for linux))
BTW, the worst part of awesome, is actually the name! It makes searching very hard, I think they should rename it awesomewm (or something unique) ASAP.
Small tip, search for awesomewm. Works pretty well. The wiki has some good
examples of configurations if that is what you're looking for. Had never
touched lua and picked up enough to hack my config to do what I wanted in a
few nights of playing around. There is also wmii that can be configured
with just about any language you want. Some people use bash, some use ruby,
lua, lisp, the list goes on. I personally think all the options linux has
for the desktop is what makes it so great. I'm not stuck using what some
team thought was best for me. I get to choose what I want, and I get to
choose how I configure it. The appealing thing for me when I moved to
awesome a month ago was the public API. You can easily tweak it to look/do
what you want. The head of the project is also very open to ideas. He won't
refuse patches because he doesn't work in a specific way. Long as the code
is clean he's happy to merge it in for the most part. So I guess I would
have to disagree with you a bit. I love the the Linux desktop.... maybe to
much? :)
Greg- Perhaps the sarcasm of my title is lost in the bits and bytes of the
intartubes. Re: 'awesomewm', it's ok for searching, but the top search
should be awesome's homepage. I still think it should have a more unique
name. Cheers.
I recently went down the same path. I think a good tiling WM would really
make life easier. I tried a few, wmii, xmonad, etc. but I never ended up
happy with things.
I've done pretty well with virtual desktops and fluxbox. The best way I've
found is to try to ignore getting multiple windows on the same screen, but
rather just get enough screens (virtual and physical, I've got two
monitors) to hold all your windows. Keep certain windows in the right
virtual window and you can get to it with a simple key combo (I get to
gaim/irc on ALT+F6, but have multiple terminals open that I can get to on
ALT+Y, ALT+U, ALT+I, etc.)
What about little bit hacky way of solving "the Gimp problem" with running
it under another window manager (openbox, or something similary resource
friendly) under Xnest. Try google("gimp xnest") for inspiration... http://www.google.cz/search?q=gi
mp+xnest
hey.
How about Dolphin? Talk about KDE becoming less useful because the
functionality of the mouse has been taken away (compared to file management
with Konqueror).
While I primarily use OS X to ssh into a box where I live in emacs, I've
been pretty happy with stumpwm. It is WM written in lisp and is pretty
friendly to those suffering from emacs keybindings. I also tried awesome,
but coming from emacs (which acts as my wm over ssh), it was much better.
I've been really happy with ion3 for the last few years. Not cutting edge
or anything, but very solid and fits my needs almost perfectly.
dwm (I believe awesome is a fork of same) is what I use, either "directly"
on my FreeBSD desktop machine or indirectly via Xming running on a MS
Window desktop for those periods of time when I need to be running Windows
(largely for testing with various other browsers).
Would this be any good to you? it really has help me take advandge of my
big screen (24").
I'm a python guy as well, and I use awesome as my WM. LUA isn't hard to
pick up, and it works really well for awesome. I recommend spending a
little time playing around with it.