KDE SC4 Architecture and What it Means for the Future

KDE SC 4.0 was released in January of 2008 and KDE SC 4.5 will be released shortly (August 4th, 2010), roughly two and a half years later, and it is time to reflect on what KDE SC4 seeks to accomplish and how well it is doing in its goals. The critical shift KDE SC took in this series is abstracting the desktop from the underlying system through three pillars, phonon, plasma and solid making the desktop some sort of a virtual platform environment and easily portable to other operating systems.

Phonon abstracts the platform from multimedia backends like xine, mplayer, vlc, gstreamer on *nix based systems and DirectX (required by DirectShow) on Windows and QuickTime on Mac making it possible to easily write and port KDE SC-based multimedia applications to other supported operating systems. Solid abstracts the hardware components of the host system making it possible for applications to utilize hardware capabilities of the host operating system without really caring what operating system they are running on. Plasma, the KDE SC4 desktop is the last and most visible of the three pillars and it is the part that takes most of the criticism and least understood. Plasma currently ships with two desktop interfaces, “plasma-netbook” for smaller screen sizes like the ones in netbooks and smaller notebooks and the standard “plasma-desktop” for normal monitor sizes.

Plasma adds its own level of abstraction to the desktop. The traditional Linux desktop offers virtual desktops to only opened windows and hence only application windows can be tied to any particular virtual desktop and hence all virtual desktops shares the same desktop wallpaper and show all files in a user’s desktop folder(~/Desktop). Plasma adds “containers” that are formally known as “activities” to the mix. All virtual desktops can be set to use the same activity making KDE SC desktop look and behave like the “traditional” desktop or different activities can be set to each virtual desktop making each virtual desktop totally different from each other. The latter option allows for different virtual desktops to have different wallpapers, different plasmoids, show different files from different places on the system and the list goes on.

KDE SC 4.5 continued this process of abstracting the desktop and most of the effort this time around was on the tray area. In the old days, the tray area was basically a dumb place to host tray applications and these applications were responsible for creating their own inconsistent UI and the only “intelligence” tray system had was hiding/unhiding icons and a user had to manually do this. In the old system, tray applications asked for attention by changing their icons and this necessitated having more icons shown than necessary because the tray system had no way of knowing and showing hidden icons that needed user attention. The new d-bus based protocol allows a tray applications to be hidden by default and to be shown only when it changes its status to “active” or “need attention”. For example, a gmail-plasmoid can be set to passively check for new emails every ten minutes while hidden and to automatically get unhidden when it detects a new email and wish to inform the user. With the new protocol, a tray application sends the information to the user through the protocol and leave it up to the system to presence the information in a way that is consistent and predictable.

KDE SC platform libraries and a few applications are now installable on Windows
and Mac and it is only a matter of time before KDE support on these platforms reach first class citizenship status as KDE SC is in Linux and BSD. The decoupling of the desktop from the underlying operating system seem to be nearly complete with this release and KDE SC is more or less at the same point that fish was when it took the first couple of step on land millions of years ago after it successfully concurred the ocean. KDE SC has its foundations set and it is time to claim its place on windows and Mac desktops.

About the Author.
The author is just a regular Linux and KDE user and a fan of OSAlert.

72 Comments

  1. 2010-08-02 10:18 am
    • 2010-08-02 10:43 am
      • 2010-08-02 10:59 am
      • 2010-08-02 11:07 am
      • 2010-08-02 11:59 am
        • 2010-08-02 1:34 pm
          • 2010-08-02 11:34 pm
        • 2010-08-03 5:13 am
          • 2010-08-03 7:41 am
      • 2010-08-02 1:27 pm
    • 2010-08-02 1:49 pm
    • 2010-08-02 2:21 pm
  2. 2010-08-02 11:45 am
    • 2010-08-02 12:16 pm
      • 2010-08-02 12:46 pm
        • 2010-08-02 11:56 pm
  3. 2010-08-02 3:05 pm
    • 2010-08-02 4:16 pm
  4. 2010-08-02 4:51 pm
    • 2010-08-02 5:02 pm
      • 2010-08-02 5:10 pm
        • 2010-08-02 5:38 pm
          • 2010-08-02 5:42 pm
          • 2010-08-02 5:55 pm
          • 2010-08-02 6:03 pm
          • 2010-08-02 6:12 pm
          • 2010-08-02 6:14 pm
          • 2010-08-02 6:15 pm
          • 2010-08-02 9:34 pm
          • 2010-08-02 10:43 pm
          • 2010-08-03 10:50 am
          • 2010-08-03 11:38 am
        • 2010-08-03 10:32 am
      • 2010-08-03 3:07 pm
        • 2010-08-03 4:41 pm
          • 2010-08-03 6:29 pm
          • 2010-08-04 12:40 am
          • 2010-08-04 2:54 pm
          • 2010-08-04 11:22 am
          • 2010-08-04 1:16 pm
          • 2010-08-04 5:19 pm
          • 2010-08-04 1:30 pm
          • 2010-08-04 5:22 pm
          • 2010-08-04 5:38 pm
          • 2010-08-04 5:59 pm
          • 2010-08-06 3:46 am
          • 2010-08-04 5:32 pm
          • 2010-08-04 5:36 pm
          • 2010-08-04 5:41 pm
          • 2010-08-04 5:46 pm
          • 2010-08-04 5:51 pm
  5. 2010-08-03 12:10 am
    • 2010-08-03 3:53 am
  6. 2010-08-03 6:15 am
    • 2010-08-03 9:25 am
      • 2010-08-04 2:09 pm
        • 2010-08-06 3:05 pm
  7. 2010-08-03 3:09 pm
    • 2010-08-03 3:50 pm
      • 2010-08-04 12:53 am
        • 2010-08-04 2:06 am
        • 2010-08-04 2:06 pm
          • 2010-08-04 5:44 pm
          • 2010-08-04 5:46 pm
          • 2010-08-04 5:48 pm
          • 2010-08-05 6:20 pm
          • 2010-08-06 1:51 pm
    • 2010-08-03 6:59 pm
      • 2010-08-03 8:39 pm
        • 2010-08-04 12:44 am
          • 2010-08-04 2:58 pm
          • 2010-08-04 5:40 pm