Non XFCE-related stuff
It won't be exactly an answer to your problem, sorry for that, but still should be useful for someone at least. In Gnome it was fixed in recent Ubuntus. By it I mean treating Win not as a modifier key. In the old days, e.g. in Ubuntu 9.04, you had to do following change:
Go to System -> Preferences -> Keyboard
, under Layouts
tab click Layout options...
button and in Alt/Win key behavior
list choose Meta is mapped to Win keys
(or Meta is mapped to Left Win
) instead of Default
.
What it really does? Changes altwin
option in $HOME/.gconf/desktop/gnome/peripherals/keyboard/kbd/%gconf.xml
file (or creates it if it does not exist):
<?xml version="1.0"?>
<gconf>
<entry name="options" mtime="1298496603" type="list" ltype="string">
<li type="string">
<stringvalue>altwin altwin:meta_win</stringvalue>
</li>
</entry>
</gconf>
If you've chosen Left Win
, then there will be following string value:
altwin altwin:left_meta_win
In Ubuntu 10.10 it's not needed as Default
apparently has changed.
But you have XFCE, not Gnome, so this rather won't help you.
XFCE-related stuff
I've downloaded Xubuntu (9.10), played with it a bit and finally found a solution.
Firstly, though, I must say that keyboard settings are really screwed in XFCE. In Settings -> Keyboard
under Layout
tab you don't have too many options. You cannot change XkbOptions
there and even if you do it manually in ~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml
, it will be overwritten. So I've changed /etc/default/console-setup
by adding altwin:meta_win
to XKBOPTIONS
(use comma as separator if there are some other option(s) already). Still, no luck.
tl;dr
What's the solution?
Do not care about XFCE way of handling keyboard, because it's apparently broken. Use setxkbmap
directly:
setxkbmap -option altwin:meta_win
(or left_meta_win
, whatever you prefer)
Now you have to check that it really solved your problem. :)
How to apply it permanently?
echo -option altwin:meta_win >>~/.Xkbmap
It can be also done for all users by writing to /etc/X11/Xkbmap
instead.
How can I quickly check if altwin:meta_win
or altwin:left_meta_win
has been applied?
setxkbmap -print
Line with xkb_symbols
should have something like altwin(meta_win)
.
I found something interesting related to this though not exactly the same. And I hope this might be helpful to some one.
I was using a dual boot windows 7 and ubuntu system. One day I found and Crtl + C and Shift + C key combination were not working in windows or in linux. But the right side Crtl + C and Shift + C were working.
How I solved the issue:
In ubuntu I opened keyboard preferences >> Accessibilty
Then under sticky keys checked the option Simulate Simultaneous Keypreses
- and unchecked the option disabled sticky keys if two keys are pressed together
This solved the problem both in Ubuntu and Windows 7.
(I do not have privileged to post it as a comment so posted as an answer. Though its not an exact answer, similar things may be tried out to solve such type of issues.)
Best Answer
Since you're comfortable with opening the laptop, you could insert a wedge of some sort, e.g. a toothpick, under the membrane to disable the bad key (if you have two Alt keys, this should cause no problem.
Replacement keyboards for some Asus models are as little as US$13. There are also model-specific instructions, including videos. It helps to get a better answer if you state the model number of your laptop.
Unplug the internal keyboard and use an external USB keyboard. Caveat: it might be impossible to use BIOS on a particular model if it does not recognize the external keyboard before booting, so test before unplugging the internal one.