Desktop environments are wonderful in that they just work. The complexity of what is happening is well hidden from the user. Looking at the various netbook desktop options, I was curious to understand what is involved in creating or modifying a netbook desktop experience. The idea is simple. Once a user signs in, a start-up program for the session runs the desired window manager and typically displays the desktop icons using a file manager and starts a panel. It then runs the components which need to be auto-started. However, trying to understand the detailed flow reminded me of a comment I read many years ago. I was trying to understand an Algol source file. The comment at the entry point said: “This is where you start. Where you end up is your problem!” Let's start at where we end up. A user is more likely to be interested in controlling the components or applications which are run as soon as the session is started. A standard location for these is /etc/xdg/autostart. A desktop environment may, of course, change it. Anyone interested in more details can see the standards proposed by freedesktop.org (http://www.freedesktop.org/wiki/Specifications). Since a user is likely to use a GUI, the name of this directory is not really needed by the user. Keywords 'OnlyShowIn' and 'NotShowIn' can control the desktop environments for which a component is applicable. A user can easily control the start-up applications for his or her environment by using a preferences option, e.g. 'Startup Applications' in Ubuntu Netbook Edition or on the standard Gnome desktop. The user modified files will be in the .config/autostart directory in user's home. I was, however, interested in understanding what happens before we reach this point. A convenient starting point is the display manager. We typically use gdm or kdm. The display manager will usually rely on desktop files in /usr/share/xsessions and /etc/X11/sessions to offer a list of options available. The former is the common usage now in major distributions including Fedora, Ubuntu and Suse. MeeGoMeeGo used its own display manager cum session launcher, 'uxlaunch'. The usp of this launcher is that it starts X server as a user process, not owned by root. The disadvantage is that it is a single user system, at least at present. Desktop session for the default user will be started. There is no option to logout or login. This is not a strict requirement for running MeeGo. Smeegol based on MeeGo by Suse uses gdm and a MeeGo desktop is one of the options possible. Gdm is the display manager which runs uxlaunch to start a MeeGo session. Ubuntu UnityOn Ubuntu Unity, gdm has 'Ubuntu Desktop Edition' and 'Ubuntu Netbook Edition' (une) as separate options. However, the desktop files for both show that the same 'gnome-session' is run. The essential difference between the two is the name of the desktop session. For a standard gnome-session, gconf/schemas/gnome-session.schemas defines the various options, including the required components – window manager, file manager and panel. In the case of Ubuntu, gnome-session uses the files in /var/lib/gconf. These are actually generated from the files in /usr/share/gconf. The package 'ubuntu-netbook-default-settings' installs une/mandatory and une/defaults which override the default values in case the desktop session is une. The window manager is replaced by 'mutter', the panel by a null string, which is indeed reported as an error in .xsession-errors. The option to display the desktop icons by nautilus is set to false. A critical specification is the clutter plugin to be used by 'mutter'. For Ubuntu Unity interface it is 'libunity-mutter'. This plugin controls the panels on the top and the side and the launching of various applications. Mutter is also the window manager used by MeeGo and Smeegol. It uses 'moblin-netbook' as the clutter plugin. It replaces the conventional panels by a tabbed view of the same functionality. Mutter is a fork of Metacity with Clutter support. It is likely to be the default window manager for Gnome 3 as gnome shell is integrated with Mutter (http://en.wikipedia.org/wiki/GNOME_Shell). KDE NetbookIn the case of KDE Netbook Workspace, gdm or kdm will run 'startkde' which will use the workspace preference settings of the user to show the appropriate desktop. KDE follows a more integrated approach. The user experience is controlled by containers (containments), which contain plugins, applets, applications. Common types of containments are the panel and the desktop. A starting environment for a distribution is packaged and provided by one or more packages containing the settings, e.g. kubuntu-settings and kubuntu-netbook-settings for the desktop and the netbook workspaces. These settings override the KDE defauts. Arch Linux does not provide such packages and uses the default templates. The standard kde defaults are provided in apps/plasma/layout-templates. The base directory is /usr/share in Arch Linux and /usr/share/kde4 in Kubuntu. The netbook workspace consists of a panel, a default page and a 'defaultSal'. Panel usage and concept is pretty clear. 'Sal' is the search and launch activity shown on the main desktop. It replaces the menu and eliminates its need in the panel. The 'page' is a recently introduced 'newspaper' containment which has widgets like news and weather embedded in it with fixed size and layout unlike in a desktop containment. A similar concept in Meego is the status tab, which provides integration of the desktop with some social sites like twitter, factbook and lastfm. You can know more about the kde netbook interface in http://akademy2009.kde.org/conference/papers/SouzaAD-Akademy2009.pdf. The contents of each containment are defined by a javascript file. It is much easier to manage than the numerous xml files typical of a gui. Once the intial setup is done, configuration files are created in .kde4/config and any customisation of them is easily done using the kde's graphical tools. I expect that we will continue to see more action on the netbook (and mobile) interfaces. The introduction of gnome shell may impact Meego and Ubuntu Unity as they are based on gnome. It would also be interesting to see how QT applications are integrated into Meego as that is the direction expected of Nokia. Understanding of customisation of the user interfaces is far more important than just netbooks. In my view, there are strong motivations for manufacturers to create custom looks for their notebooks and pc's as well. From my recent experience as a consumer, given the choices we face in our daily life ( http://www.ted.com/talks/lang/eng/sheena_iyengar_on_the_art_of_choosing.html ), isn't it strange that we don't have more choice in the desktop interfaces in the marketplace? I like to believe that KDE4 and Gnome3 will finally make it a commercial reality. Just one vendor has to take the lead. Oct 2010. |
Exploring Software >