Exploring KDE 4.10
Just Before 5By
KDE SC 4.10 was released six months after KDE 4.9, adding many new features. In the background, work is in full swing for the next generation, KDE Frameworks 5: a KDE based completely on Qt5 and QML.
The new KDE Software Compilation (KDE SC), like its predecessor, comprises the Plasma interface for various platforms (desktop, netbook, Plasma Active), the applications, and the back-end architecture. The architecture in turn consists of the KWin window manager, the libraries, the Akonadi framework for storing PIM data, and the SDK itself.
The KDE 4.10 SDK is the first version to unite the previously separate components of the developer platform in the form of the Plasmate tool. The project has been developing the tool since the beginning of 2010 as a kind of mini-SDK for coding plasmoids, data engines, and search plugins for Plasma programs, but it was primarily intended for Plasma Active. Because the developers wanted to merge the code of the individual plasma workspaces after porting to QML anyway, Plasmate is becoming increasingly important.
Version 4.10 makes use of “Qt Quick” on a much larger scale and now provides a scripting API for the KWin window manager. A more superficial innovation in KDE 4.10 is a new Air theme. KDE SC 4.10 is available by download from the KDE website, although it will be more practical for most users to wait until KDE SC is available in the repositories of their chosen distributions. The first distribution to include KDE 4.10 before this issue went to press was Chakra Linux.
The individual Plasma workspaces in KDE 4.10 draw more heavily than before on the Qt Quick plasma components first introduced in KDE SC 4.8. Qt 4.7 saw the declarative QML scripting language enter the C++ class library; since then, it is has been possible to create Qt-based interfaces with the new Qt UI Creation Kit (Qt Quick). Thus far, Qt Quick has been used primarily for applications and plasmoids, which appear in the native plasma look, thanks to the standardized APIs. KDE 4.10 now implements central plasma components in Qt Quick as well, including the pager, panel, screen lock, and system alerts. Even the wallpaper engine is based on Qt Quick, which simplifies the creation of animated desktop backgrounds.
The migration to QML code taking place behind the scenes predominantly comes down to strategic and technological reasons. For example, because widgets are now created with QML containment, developers no longer need to derive them from the Qt QgraphicsWidgets class. For users, the QML port will not necessarily be immediately apparent, with certain exceptions, one of which is the new screen locker, which demonstrates that the move to QML not only enhances the desktop’s appearance but also offers advantages to the user. Whereas a rather ugly gray box formerly prompted users to enter the password, now the prompt window is slightly transparent and moderately animated on entering an incorrect password. The new screen lock is also much more secure because the X server is no longer bypassed.
One welcome side effect of the introduction of Qt Quick is that increasing numbers of Qt developers contribute directly to KDE, as the touch typing trainer KTouch goes to show. The program had not been maintained since 2007 and was created originally with QT Designer. Qt developer Sebastian Gottfried completely revised the version included in KDE 4.10 because he was looking for a project with which he could familiarize himself with Qt Quick. Thanks to Qt Quick, KTouch now has a much nicer looking interface and presents a statistical evaluation of your skills after each lesson. The graph displayed in this process was written in QML.
Of primary interest to developers is that KDevelop now has a unit for unit testing. Additionally, the new version of KDevelop has a QML plugin. Programmers no longer need to resort to Qt Creator to write QML code. However, the QML plugin is still at an early stage of development. Moreover, the current version of KDevelop finally ports all Qt3 classes to Qt4; by its own account, the KDevelop team was mainly working on this last year.
With the use of scripts, you can even control or change the appearance and behavior of windows in the module responsible for KWin. In System Settings, look under the Workspace appearance and behavior section and click Window Behavior | KWin Scripts (Figure 2).
One of the most important new features in KWin is the use of X-C bindings for a number of operations, with the intent to switch from the generic X11 Xlib library to the new XCB abstraction layer in the near future. This move is a prerequisite for the switch to Qt5 that KDE Framework 5 introduces; in turn, it requires either the new Wayland screen server or XCB. KWin maintainer Martin Graesslin discusses the status of the port from Xlib to XCB in his blog, and he spoke at this year’s FOSDEM on XCB and Wayland. In Graesslin’s opinion, the most interesting new feature in KWin for users is the hidden menubar, which you can enable in the Application Appearance module in System Settings by clicking the Fine tuning tab under Style. For example, you can set Menubar style to Title bar button or Top screen menubar (Figure 3).
The KWin developers gleaned this feature from Unity and Mac OS. Unity users have had the ability on Ubuntu for some time now to decide to show the menubar of an application in the top bar and not in the application window. The Kubuntu team developed a separate Qt patch more than a year ago to make the function available in Kubuntu. In KDE 4.10, the new application menu is now available to all KDE users, provided the Appmenu-Qt library is installed.
The new application menu means that multiple applications use a common global menu in a style similar to Unity or Mac OS, so that just the menu of the active application is visible at any time. In Top screen menubar mode, KWin shows the menu at the top of the screen (Figure 4); KDE displays this menu when you move the mouse to the top edge of the screen.
The behavior is similar to the default behavior in Unity and also works in multiple display mode, but for now only with the default Oxygen theme.
The KDE developers have removed numerous bugs from the Nepomuk metadata engine, the “semantic social desktop.” Nepomuk now has a completely rewritten indexing service that replaces the indexer implemented in 2008 in the form of the Strigi C++ library. The new indexer (Figure 5) indexes files faster and is more robust because its operations are now handled in two steps.
In the first step, the service collects only basic information, such as file names or MIME types, and adds them to the index. In the second step, Nepomuk extracts more extensive information from the files but only if the necessary resources are available. The rework has dropped some previously supported file formats, but those will be reintroduced in the next KDE version 4.11.
The new indexer also provides filters that let you restrict indexing of certain file types, and the KDE developers have completely rewritten the Nepomuk backup application. It also includes a new tool to clean up corrupted data, the Nepomuk Cleaner. Additionally, a new “tags” kioslave lets you search for tags in any KDE application.
New KDE Core Applications
KDE SC 4.10 also introduces a number of innovations in the field of KDE core applications. For example, it includes a new Print Manager for setting up printers and managing print jobs. Additionally, the Dolphin file manager can now handle MTP devices, which simplifies data transmission to mobile devices.
The Kate text editor now supports Python plugins and predefined color schemes and includes a project management plugin. A “mini-map” can be enabled in place of the scrollbars at the right margin in both the text editor and in the KDE development environment for easier navigation in large files (Figure 6).
It also works in KWrite, which relies on Kate Part Ð the editor component in Kate Ð like KDevelop or the LaTeX front end Kile. Also new to Kate is a less disruptive notification feature. The developers also built in two new features to the Konsole terminal tool that used to exist in KDE 3 Ð that is, the ability to send signals and print the window content. You can also change the line spacing in the console.
Other KDE Applications
The Kontact email and groupware client indexes and finds mail faster in the new release. KMail now includes a configurable automatic spell checker, automatic image resizing, and an improved import wizard, and it can also search the address books from other applications.
The KDE developers have also improved the Okular document viewer. Using a new tiled rendering technique, it can zoom more quickly into a PDF file (Figure 7). This technique was created as a project at last year’s Google Summer of Code and reduces memory usage when zooming.
The “Okular Active” touch variant is just as easy to use on your mobile device as a mouse on the desktop, so Okular Active is now used as an ebook reader in Plasma Active. The Gwenview image viewer supports activities and has color correction as of KDE 4.10. The European space agency, ESA, made improvements to the Marble desktop globe as part of the “Summer of Code in Space” so that it can now display the orbits of satellites and space probes (Figure 8).
For example, computer science student Rene Kuettner developed new display modes for the SMART-1, Venus Express, and Mars Express satellites.
In the Plasma Active tablet interface, every application now supports activities because Plasma Active was rewritten from scratch. In the desktop version of Plasma, support for activities will be introduced gradually; in KDE SC 4.10 it has already been implemented for Dolphin, Okular, and Gwenview.
Activities let applications notify the user about open files or folders, and various files can be associated with an activity. A background service evaluates activities on the basis of their frequency of use.
Another service for forwarding the collected data to the Share Like Connect applet is so far only available in Plasma Active, not in KDE SC 4.10.
Besides the ongoing maintenance of changes, the main thrust of KDE version 4.10 was to port the entire interface from C++ to QML, which among other things, will enhance the appearance of Plasma workspaces. The ultimate goal of KDE Framework 5 is to merge the Plasma workspaces previously developed separately for desktop, netbook, and Plasma Active into a single binary file through re-implementation in Qt5 and QML, thus facilitating the transition between the different form factors. KDE developer Aaron Seigo explained the process recently in his blog, and, in a comprehensive blog post, KDE developer Sebastian Kügler also discussed the progress that the KDE development team has made on the road to KDE Framework 5.
After porting almost all KDE plasmoids (widgets) to QML in KDE 4.8 and 4.9, work in KDE SC 4.10 turned to integral KDE components, such as the system tray, screen locker, etc. Migration of the Plasma desktops to QML ushers in a new look, even if all users won’t notice it immediately. In most of the QML ports, the developers aim to preserve the functionality and appearance of the applications whenever possible, especially for desktop widgets. KDE SC 4.10 still does not implement containments (i.e., layouts for the Plasma desktop) in QML, even though a pre-release version of the desktop layout already exists. KDE SC 4.10 is a successful step en route to the upcoming KDE Framework 5.
New partnership will bring more and better CS training to US schools
Criminals offer online help over Tor network
Sophisticated malware is still present on Joomla and WordPress sites around the world.
Future versions of Ubuntu's code service will support the popular Git version control system used with Linux and other open source projects.
New release marks the arrival of AMD’s unified driver strategy.
A new study by IDC charts big changes in the big hardware market.
Azure CTO says Redmond has already considered the unthinkable.
Lead developer quells rumors that the Debian version is slated for center stage.
MSBuild is now just another GitHub project as Redmond continues its path to the light.
Malware could pass data and commands between disconnected computers without leaving a trace on the network.