Google it!

Today, I am writing the first entry of what may become a series of blog entries about the actual usefulness of search engines.

Often people who ask for support in mailing lists and forums are told, often not so politely, to "google it". I certainly understand the feeling: some people simply do not make the effort to look a solution for themselves, and expect the community to help them.

However, what I am trying to prove with this very web site is that forums and mailing lists are a very bad medium to provide help. People get their immediate problem sorted, but the overall state of the official documentation does not improve.

What's worse, this constant banter in discussion groups shows up in an un-organized fashion in search engines. When trying to solve a specific problem and using our favourite search engine for an answer, what shows up first is almost never an authoritative piece of documentation, but random answers in a discussion group. Sometimes, what comes up is only the question: a person facing the same problem, asking the same question but who got no answers. If there is any, the answer is, more often than not, outdated, incomplete, only partially right and sometimes even downright wrong.

I face this problem all the time, when I am forced to "google" for the solution to my problems. Here is the most recent example.

Recently, a 512MB memory module died on a secondary computer, leaving it with only 256MB, which is not enough to run KDE (official minimum requirements for Kubuntu: 384MB). I was thus forced to try a more lightweight desktop environment. XFCE was the first one that came to mind, so I installed it and liked it enough.

Two things were missing to make XFCE usable enough for the purposes of that computer:
- A keyboard layout switcher, because we regularly need to switch from a QWERTY keyboard to Dvorak.
- The ability to auto-login into a session, since the people who are going to use the computer do not know the login credentials.

The official online XFCE documentation is somehow officially lacking:

User documentation will be here soonish, but can already be found in the packages.

I wonder how long the "soonish" estimate has been up there... As to the installed documentation: I didn't find any menu item leading to any documentation. Don't ask a regular user to know to look in /usr/share/doc. And as it turned out, there is no documentation about any keyboard layout switcher applet documentation unless the keyboard layout switcher package is installed, but I didn't know which package to install because there was no documentation telling me this information. The Serpent is biting its tail.

So, there I was, forced to "google it". So I googled "xfce keyboard layout switch" and the first result that came was this thread started way back in 2005. What's horrible about this thread is that it starts by telling people to edit /etc/X11/xorg.conf. Come on! We are in 2011 and Linux is now generally very user friendly and there is no need to tell user to edit configuration files by hand. Especially since in that case, the solution was the wrong one for my needs. The thread was revived in 2008 with a mention of xfkc but apt-cache search xfkc didn't turn up anything. I finally figured out that the package to install (on a *ubuntu system) was xfce4-xkb-plugin. After that, I only needed to add the applet to the taskbar and configure it. Easy, once you know how to do it.

The real problem here is the lack of organized, official documentation that can be improved over time. The difference between proper documentation and search engines is that the latter use a stubborn algorithm without actually understanding the request, while the former can be constantly improved by intelligent, sentient beings, guiding the user to the proper section.

Here is a new page in the wiki, in which more relevant information (e.g. the package name in various linux distros) can be added any time:
http://linux.overshoot.tv/wiki/xfce/keyboard_layout_switcher

The second item I needed to complete the XFCE setting on that old machine was the auto-login. The solution again was very simple, but getting there was quite of a headache. Following someone's advice, I had installed the package lubuntu-desktop to have the most lightweight solution. During the package installation process, I was asked if I wanted to keep kdm (the KDE Desktop Manager, the default on Kubuntu), or use ldm instead. I selected ldm, because I thought it would require even less memory than kdm.

The auto-login I had configured for kdm obviously stopped working. I was now furiously "googling" for "ldm auto-login" but I seemed to never get anywhere near the appropriate solution for my case. It turned out that ldm is part of the Linux Terminal Server Project (LTSP), whereby schools and similar organizations use diskless terminals and connect via the LAN to a X Windows server. Thus, the solutions I googled were widely inappropriate for my simple set-up.

Any search related to "auto login" yielded a confusion of forum posts where random users said what worked for them, but I never found a generic solution to help any user work out what the proper solution would be for their particular case.

One important piece of information, once that I never found mentioned anywhere, is that the auto-login feature does not depend on the desktop environment used (KDE, Gnome, XFCE, etc.) but on the display manager (kdm, gdm, xdm, etc.). So people were telling how to configure auto-login based on the default display manager in use on their computer, which may or may not be the same as the one used by the original poster requiring assistance.

What's infuriating is that this kind of thread is repeated over and over again in countless forums and mailing lists, but a single, authoritative, informed, well thought-out and maintained article on this simple topic does not exist.

To fulfil this purpose and fill in this gap, I have created the following wiki article:
http://linux.overshoot.tv/wiki/system/desktop_auto_login
It is not complete, but good enough to start with. Obviously, other users will add more information as time goes by.