Comment 19 for bug 97175

Revision history for this message
asdfhjkllkjhfdsa (asdfhjkllkjhfdsa-deactivatedaccount) wrote :

Since the above fix was only for Hardy, I'll post the workaround I found for Gutsy. I needed this for the extra keys on my Logitech G11 keyboard.

Background:
As mentioned before, Xfce's xinitrc calls xfce-session, which calls xfce-mcs-manager. And this is the program that is using xkbcomp to override .Xmodmap. The problem is that xfce-mcs-manager is called as pretty much the last step in xfce-session (even after Xfce's autostarted programs list, and the ClientN_Command lines in xfce4-session.rc), and xfce-session does not actually complete until you log out of Xfce (obviously.) So there's no place to ask Xfce to load a custom .Xmodmap without having it overridden, short of modifying the sources to xfce-session and/or xfce-mcs-manager.

Workaround:
Since xfce-mcs-manager is causing the problem, we can replace it with a small shell script that will execute it, and then load the .Xmodmap file upon completion. The following commands will work:

cd /usr/bin
sudo mv xfce-mcs-manager xfce-mcs-manager-bin
sudo mousepad xfce-mcs-manager
sudo chmod 0755 xfce-mcs-manager

After the third line, you'll obviously get a blank mousepad window. Add the following to it and then save the file:

#!/bin/sh
xfce-mcs-manager-bin
test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap

... and follow with the chmod command to mark the new script as executable. Log out and back in, and your custom .Xmodmap should still be active. Verify with xev, if you like.

I understand this may not be the desirable way to fix this problem. But it works, and doesn't break anything (as chmod 0644 xkbcomp does.)

Hope this helps.