Web Devout tidings


Archive for October 19th, 2007

How to: Enable edge mouse wheel rotate in Gutsy

Friday, October 19th, 2007

Update: It seems this solution only works until you log out, and it has to be applied again. At the bottom I’ve written a script to do this automatically.

When I upgraded to Ubuntu Gutsy (7.10), there was one thing that annoyed me about its version of Compiz Fusion: I’m used to rotating my desktop cube (well, octagonal prism for me) by moving my mouse cursor near the screen edge and rotating the mouse wheel, but that no longer seems to work.

In the past, you’d enable this through the CompizConfig Settings Manager by going to Rotate Cube → Actions → General → Rotate Left / Rotate Right, enabling all edges, and setting button 4 for left and button 5 for right. But that doesn’t work in this version, because the Rotate Left and Rotate Right settings are bound to the general Gnome keyboard shortcuts (that’s what the blue text in the Name column means). So you can change the settings, and it doesn’t give you any errors, but it just doesn’t do anything.

But fear not! The problem is that the settings manager just isn’t bothering to change the Compiz Fusion gconf entry when you change it. So the solution is to just go in and change it yourself. Here are the steps:

(First of all, keep in mind that this issue and solution are only for people using the Rotate Cube plugin, which isn’t enabled in Ubuntu Gutsy’s default profiles. If you aren’t using the Rotate Cube plugin, this probably won’t interest you.)

  1. You’ll need the Configuration Editor. Although this application doesn’t appear in your menus, it should be installed on your system by default. In case it isn’t, you can install it by going to Applications → Add/Remove… → System Tools → gconf-editor; or if you prefer a command line, typing “sudo apt-get install gconf-editor” in a terminal.

  2. Press Alt+F2 to bring up the Run dialog, and type “gconf-editor” to bring up the Configuration Editor.

  3. In the Configuration Editor, navigate to / → apps → compiz → plugins → rotate → allscreens → options.

  4. Double-click on rotate_left_edge (not rotate_flip_left_edge). Add the following values: Top, TopRight, Right, BottomRight, Bottom, BottomLeft, Left, and TopLeft. Press OK.

  5. Double-click on rotate_left_edgebutton, change the value to 4, and press OK.

  6. Double-click on rotate_right_edge and add the same values as in step 4. Press OK.

  7. Double-click on rotate_right_edgebutton, change the value to 5, and press OK.

  8. Close the Configuration Editor.

That should be it. Now when you rotate your mouse wheel near the edge of the screen, it will rotate your desktop.

Update: As it turns out, the above solution is only a temporary fix. Once you log out, Compiz seems to forget the setting. Below is a workaround script that you can set to automatically run at the start of each session:

#!/bin/bash
sleep 5
gconftool --type=list --list-type=string --set \\
	/apps/compiz/plugins/rotate/allscreens/options/rotate_left_edge \\
	[Top,TopRight,Right,BottomRight,Bottom,BottomLeft,Left,TopLeft]
gconftool --type=left --list-type=string --set \\
	/apps/compiz/plugins/rotate/allscreens/options/rotate_right_edge \\
	[Top,TopRight,Right,BottomRight,Bottom,BottomLeft,Left,TopLeft]
gconftool --type=int --set \\
	/apps/compiz/plugins/rotate/allscreens/options/rotate_left_edgebutton 4
gconftool --type=int --set \\
	/apps/compiz/plugins/rotate/allscreens/options/rotate_right_edgebutton 5
  1. Paste the above into a text editor and save the file as /home/<username>/bin/enable-edge-mousewheel.sh (substituting <username> for your account username).

  2. Open your home directory, then the bin directory. Right-click on the newly created file and click Properties. Click on the Permissions tab and check the box next to Execute. Close the dialog.

  3. Click on your System panel menu, then go to Preferences and Sessions.

  4. Click the Add button. For Name, put “Enable Edge Mouse Wheel“. For Command, put “/home/<username>/bin/enable-edge-mousewheel.sh“. Click OK.

  5. Close the windows.