Pimping my Desktop: have KWin Desktop Effects improved in KDE 4.6.2?

KWin Desktop Effects in past releases of KDE 4 were lacking in comparison to Compiz. After installing KDE 4.6.2 recently I decided to see if there has been any progress, and was pleasantly surprised. Although KWin is still not quite up to the standard of Compiz in all areas (the behaviour of 3D windows, especially around the corners of the Desktop Cube, being one example), KWin’s Desktop Effects are now very pleasant and a viable alternative to Compiz. I’ll talk you though my Desktop-pimping exercise using KWin on my main laptop running KDE 4.6.2, and then I’ll describe briefly a similar exercise using Compiz on the same machine.

KWin

I decided to have water and the colour blue as my theme. For wallpaper I chose a striking image created by Sabayon Linux user tarabaz.

I selected Oxygen for the widget and icons style (System Settings > Application Appearance) and for the Window Decorations (System Settings > Workspace Appearance), and Air for the Desktop Theme (System Settings > Workspace Appearance). With an attractive wallpaper, it is nice to have the ability, using the Folder View plasmoid, to contain the contents of the directory ~/Desktop in a window on the Desktop. The only other thing I placed on the Desktop was the excellent yaWP plasmoid. To download and install yaWP, follow the instructions on the yaWP page at KDE-Look.org.

I right-clicked on the Pager widget on the Panel, selected Pager Settings, and configured the Pager as follows in order to be able to switch Desktops in KWin in a similar way to Compiz:

General

  • Number of rows: 1

Virtual Desktops (Shortcuts on the ‘Switching’ tab):

  • Switch One Desktop Down > Ctrl+Alt+Down
  • Switch One Desktop to the Left > Ctrl+Alt+Left
  • Switch One Desktop to the Right > Ctrl+Alt+Right
  • Switch One Desktop Up > Ctrl+Alt+Up

The result looks like this:

KDE 4.6.2 Desktop

KDE 4.6.2 Desktop

KDE 4.6.2 Desktop with open windows

KDE 4.6.2 Desktop with open windows

I thought dolphins would look cool on the top and bottom of the Desktop Cube, and I found a gorgeous wallpaper from Vladstudio which matched my vision. I loaded the image into the GIMP, cropped and resized it to the required 800×800 pixels and saved it as a PNG image cubecap.png in my directory ~/Pictures/ (the images on the top and bottom of the Desktop Cube must be the same, unlike Compiz). To specify a KWin cubecap, you have to click on System Settings > Desktop Effects, click on the spanner icon for the Desktop Cube on the All Effects tab, and tick both ‘Show caps’ and ‘Display image on caps’ on the Advanced tab.

The KWin cubecap image must be stored in the /usr/share/apps/kwin/ directory. I backed up the default KWin cubecap first:

# mv /usr/share/apps/kwin/cubecap.png /usr/share/apps/kwin/cubecap.png.bak

and then moved my new cubecap to that directory:

# mv /home/fitzcarraldo/Pictures/cubecap.png /usr/share/apps/kwin/cubecap.png

For the background wallpaper behind the Desktop Cube (what in Compiz is called the ‘Skydome’), I selected a graduated-light undersea image that shows off the reflection of the base of the Desktop Cube and complements well the dolphins on the cubecaps. I saved the image in my directory ~/Pictures/. To set the background wallpaper, you have to click on System Settings > Desktop Effects, select the Desktop Cube on the All Effects tab, click on the spanner icon, and under Background on the Basic tab you’ll find a field in which to specify the Wallpaper. I hope you like the results, shown below.

KDE 4.6.2 Desktop Cube

KDE 4.6.2 Desktop Cube

KDE 4.6.2 Desktop Cube

KDE 4.6.2 Desktop Cube

KDE 4.6.2 Desktop Cube viewed from above

KDE 4.6.2 Desktop Cube viewed from above

KDE 4.6.2 Desktop Cube viewed from below

KDE 4.6.2 Desktop Cube viewed from below

Unlike the Desktop Cube, which I do find useful when I have many windows open, wobbly windows are pure ‘eye candy’. Nevertheless, they are fun to show off and impress users of that other OS. The trouble is, the default settings for wobbly windows in KWin Desktop Effects are too stiff for my liking, and the wobble is much less satisfying than in Compiz. Fortunately it is possible to adjust the behaviour in KWin, and I have found settings which make wobbly windows more like those in Compiz and more satisfying. To set the parameters for wobbly windows, you have to click on System Settings > Desktop Effects, then click on the spanner icon for Wobbly Windows on the All Effects tab. The settings that I like are:

Wobbliness: move the slider to More
Wobble when moving: ticked
Wobble when resizing: ticked
Enable advanced mode: ticked
Stiffness: 10
Drag: 50
Move factor: 9

KDE 4.6.2 Desktop Effects - Wobbly Windows

KDE 4.6.2 Desktop Effects - Wobbly Windows

So, there we have it. With little effort it is possible to set up an attractive and eminently usable 3D Desktop environment in KDE 4.6.2. I was so pleased with the result that I’m keeping it for the moment.

I have not yet tried it, but, as with Compiz, it is possible to configure KWin to use a Desktop Cylinder or Desktop Sphere instead of a Desktop Cube.

Compiz

I’ve been using Compiz, its ‘mother’ Compiz-Fusion and its ‘grandmother’ Beryl since 2007. As is the case with the newer KWin Desktop Effects, Compiz is a mixture of useful 3D effects and eye candy. I like Compiz very much. I use the Fusion Icon on the Panel to switch between KWin window manager and Compiz window manager. So, now let’s look at pimping my Compiz Desktop in KDE 4.6.2. This time I chose a darker theme.

I used a brushed aluminium wallpaper created in the GIMP by Sabayon Linux user alonsoty. I saved the wallpaper in my directory ~/Pictures/ and used the standard KDE 4 method of setting the Desktop wallpaper.

A dark Panel looks best with this wallpaper, so I selected a user-customised Desktop Theme (System Settings > Workspace Appearance) ‘(Customized)’ that is installed from the Sabayon Linux LiveDVD, although KDE’s Oxygen theme looks similar to this and would also work.

KDE 4.6.2 with Compiz Desktop

KDE 4.6.2 with Compiz Desktop

I used the Fusion Icon to launch the Emerald Theme Manager, and selected DarkLight v1.1 as the window theme. This Emerald theme was originally developed for use with Beryl and still looks gorgeous today with Compiz.

KDE 4.6.2 with Compiz Desktop with open windows

KDE 4.6.2 with Compiz Desktop with open windows

The above images show that Compiz looks good with KDE 4.6.2. The only problem I have found is with the Pager on the Panel: occasionally it shows all four Desktops, but usually only displays Desktop 1. Nevertheless I can rotate the Desktop Cube using either the keyboard shortcuts or the mouse, so this is only a minor issue. The CCSM (Compiz Config Settings Manager) is used in a similar way to System Settings > Desktop Effects in KWin. However, CCSM has an even more bewildering set of configuration options and is more complicated to use than the KWin equivalent.

Unlike KWin, it is possible for the cubecaps on the top and bottom of the Desktop Cube to be different to each other. I downloaded from the Web an image of the Earth and Moon from space for the top of the Desktop Cube and and an image of the Moon for the bottom of the Desktop Cube, saved them in my directory ~/Pictures/ and used CCSM > ‘Cube Reflection and Deformation’ > Appearance and specified the location of the top and bottom image files. Unlike KWin, they can have any file name.

The Skydome (the background wallpaper behind the Desktop Cube) is specially designed so that it pans when you rotate the Desktop Cube, providing you have selected ‘Animate Skydome’ in CCSM > Desktop Cube > Appearance > Skydome. The image, which must be 2048×1024 pixels, looks distorted when viewed in a browser window or graphics application but looks good in Compiz. This is more sophisticated than KWin’s Desktop Effects. Various Web sites have Skydome files for Compiz (Skydomes for Beryl and Compiz-Fusion work in Compiz too), and, in keeping with my space images on the top and bottom of the Desktop Cube, I downloaded a space-themed Skydome to my directory ~/Pictures/ and used CCSM > Desktop Cube > Appearance > Skydome to specify the file. Any file name is allowed.

Compiz Desktop Cube in KDE 4.6.2

Compiz Desktop Cube in KDE 4.6.2

Compiz Desktop Cube in KDE 4.6.2

Compiz Desktop Cube in KDE 4.6.2

Compiz Desktop Cube viewed from above in KDE 4.6.2

Compiz Desktop Cube viewed from above in KDE 4.6.2

Compiz Desktop Cube viewed from below in KDE 4.6.2

Compiz Desktop Cube viewed from below in KDE 4.6.2

Setting up wobbly windows was as simple as ticking Wobbly Windows in CCSM. I stayed with the default settings.

Compiz Wobbly Windows in KDE 4.6.2

Compiz Wobbly Windows in KDE 4.6.2

Compiz has some more features up its sleeve, though, and I show a couple of them below.

Compiz window top corner pulled down in KDE 4.6.2

Compiz window top corner pulled down in KDE 4.6.2

Compiz window top centre pulled down in KDE 4.6.2

Compiz window top centre pulled down in KDE 4.6.2

The picture above illustrates one area where Compiz (and its predecessor Compiz-Fusion) is less sophisticated than Beryl used to be: notice the polygonal shape of the top of the window that I was pulling down. I won’t bother posting one of the images I have from my Beryl-using days, but, with Beryl, the top of the pulled-down window had a smooth curvature and looked much nicer.

Something else which I don’t believe KWin Desktop Effects has is the ability to vary the transparency of a window by using the Alt key and the mouse wheel, as illustrated in the image below.

Compiz window transparency changed by mouse in KDE 4.6.2

Compiz window transparency changed by mouse in KDE 4.6.2

EDIT (April 28, 2011): Reader lefty.crupps has pointed out that it is possible to do this with KWin too; see his post in the COMMENTS section for how to do it.

Summary

I hope I have given you a taste of what is possible in KDE 4.6.2 using either KWin or Compiz. I have only scratched the surface of either window manager, as there are many features. And, hopefully, KWin Desktop Effects will continue to improve in future releases of KDE, as it has improved noticeably in this release.

Reboot button which allows you to specify which GRUB 2 menu entry to boot

When clicking on Leave > Restart Computer in your Desktop Environment it might be convenient to be able to specify straight away which GRUB 2 menu entry to boot, rather than having to wait for the machine to reboot and display the GRUB 2 menu. Here is how to do it. I use KDE, but the same approach would work in other desktop environments.

N.B. Some distributions use /boot/grub2/ rather than /boot/grub/ for GRUB 2, so replace the path accordingly if the distribution you use is one of them.

Setting it all up

1. Use your favourite text editor to create the simple Bash script shown below in your home directory. I’ll call the script reboot.sh for example:

#!/bin/bash
echo
echo "== SELECT WHICH OS TO BOOT =="
echo
# Delete the next line if you do not have a separate boot partition:
sudo mount /dev/sda3 /boot &>/dev/null # Change "/dev/sda3" to match your boot partition.
echo
sudo cat /boot/grub/grub.cfg | grep menuentry | awk -F\" '{print N++,$(NF-1)}'
echo
read -p "Enter number (q to abort) and press ENTER: " CHOICE
if [ "$CHOICE" != "q" ] ; then
  sudo grub-reboot $CHOICE
  sudo shutdown -r now
fi

In this script, the GRUB 2 menu entries are read directly from the grub.cfg file instead of being hard-coded in the script. Therefore this script would work as-is on anyone’s installation.

2. Make the script executable:

$ chmod +x ~/reboot.sh

3. Create an icon (Desktop Config File) on your Desktop (right-click on the Desktop and select Create New > Link to Application…), configure it to execute the command sh reboot.sh in a terminal, and give it a nice icon (the icon shown below would suffice). Drag it onto your Panel so it will always be visible and only needs a single click to activate.

Reboot button

Reboot button

4. Edit the file /etc/default/grub to have GRUB_DEFAULT=saved and GRUB_SAVEDEFAULT=true (if it is not already like that).

5. Regenerate the file /boot/grub/grub.cfg (this would only be necessary if you changed anything in /etc/default/grub):

# grub-mkconfig -o /boot/grub/grub.cfg

In some distributions the command is instead:

# grub2-mkconfig -o /boot/grub/grub.cfg

How to use it

1. Click on the new icon on your Panel.

2. You will be presented with a menu similar to the following:

== SELECT WHICH OS TO BOOT ==

Password:

0 Sabayon GNU/Linux, with Linux x86_64-2.6.38-sabayon
1 Sabayon GNU/Linux, with Linux x86_64-2.6.38-sabayon (recovery mode)
2 Sabayon GNU/Linux, with Linux x86_64-2.6.37-sabayon
3 Sabayon GNU/Linux, with Linux x86_64-2.6.37-sabayon (recovery mode)
4 Windows 7 (loader) (on /dev/sda1)
5 Windows 7 (loader) (on /dev/sda2)

Enter number (q to abort) and press ENTER:

You will first be prompted to enter your password, then the menu will be displayed and you will be prompted to enter the number of the menu item you want to boot. The example above is from my machine; your menu will have different entries, depending on what is in your /boot/grub/grub.cfg file.

The machine will then reboot to the kernel or OS you just selected, without you having to touch any further keys, or will exit the script and do nothing if you selected the Abort option (q).