Monday, February 25, 2008

Linux Rant

Figured since I just got added to Planet Nylug, I'd make a Linux related post. This is going to start out as a Gnome rant, but is much more generally applicable.

I switched from gnome a few months ago when the latest gnome release started running Nautilus on my desktop every time I logged in with no way to turn it off (the left edge of my screen is where the terminal windows go, running some huge bloated file manager just to put some $#%@@$%% icons where I'll never see them is a pain). Finally, I did a web search and found that you had to use gconf to enter an undocumented (as far as I could tell) option to not run it automatically. I'd already gotten sick of having to learn a new undocumented sooper-sekrit gconf option every release to just get gnome-terminal to use the ancient 6x12 bitmapped font (-misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1), and I'd had it. (I have, incidentally finally figured out a solution to getting 6x12 to work easily in KDE (and probably Gnome as well), I copied the font files, changed them from "semicondensed" to "normal", and changed the foundry to "fyndo", and the KDE font picker finds them now that it doesn't need to understand "semicondensed").

Sure, they're trying to make it more user friendly, but "Google the mailing list" is not user-friendly. Control panels can be user friendly, if they're complete. But even if you have an "intuitive" user interface, You need good docs. And Linux docs these days suck. I can almost live with the gnome people taking options off the control panel and making me set them directly with gconf, except they aren't documented. gnome-help has a nice friendly thing about "The Desktop", the nautilus man page documents the --no-desktop option:

--no-desktop
Do not manage the desktop — ignore the preference set in the preferences dialog.
, but since it's being started automatically, that does me no good, and the preference is no longer in the preference dialog. Wrong docs are not good docs. If I have to use gconf to configure something, there should be some reference that lists the gconf options, or they should be self-documenting like emacs. (In emacs functions have doc strings right in the function, and variables have doc strings, so that when you search for the variable to set with "apropos" you can get the docs. Also, since the docs are in the source, if you change a function's behavior, it's obvious where to document it). When I started using Unix back in 1988, I fell in love, because almost everything was configurable. Looking back, the key point was that how to do it was also well documented. I'm still fuzzy on how it is that KDE manages to launch xine when I put in a DVD. Or how to get it to do the right thing. Ok, it used to be the case (yesterday) that I'd put in a DVD, it'd start xine, which would complain it doesn't know what to to do with system:/media/hdc, and I'd have to click on "ok" and then the "DVD" button, and the DVD played. I decided I'd fix that while writing this post, so I went to the control center, and "KDE Components" and "File Associations", and.... it wasn't there. I knew I'd set it to use xine somewhere so I kept looking, and under "Peripherals" and "Storage Media", I found the option for "DVD Video Disk", and changed the command "xine %u" to "xine dvd:/", and now when I put in a DVD, I get a breaking glass sound, a dialog pops up with "/media/cdrom0 is a folder, but a file was expected". Now, the command "xine dvd:/" typed at a command line works ok. There's a little ? icon on the upper right that I take to be some kind of a help icon. Pressing it brings up the incredibly informative "FIXME: Write me" message. There's also a "Help" button on the bottom. It does, as best I can tell, nothing, and I can't find docs for the "peripherals" module. What does that %u do? Beats me! But it's important. If I leave it off, KDE doesn't even try to run the command I have there. I've tried replacing xine with a shellscript running in an xterm, and without the %u it doesn't run. Why? I don't know, the fact that if it DID use that command, it'd work seems irrelevant. And I have no idea how the "a DVD has been inserted" notification gets from the kernel (well, ok, it uses dbus, I think) to KDE. Sure, getting these things to "just work" is complicated, but that's no excuse for not explaining how they work. Neal Stephenson, in his "History of the Command Line" say that when linux fails, it does so transparently. That is no longer true, and I miss it.

1 comment:

Fyndo said...

For the curious, setting the command for xine to xine dvd:/ %u worked. Xine's happy to ignore the extra arg, and KDE thinks that it's magic arg is making it work.