Red Hat Bugzilla – Bug 214427
/etc/X11/Xmodmap not honoured on login (randomly)
Last modified: 2007-11-30 17:11:48 EST
Since FC2 or FC3 (since XFree86 4.4, IIRC), mod4 is incorrectly mapped, which is
a known bug (and noone cares, so maybe it's a feature after all). xmodmap shows:
mod4 Super_L (0x7f), Hyper_L (0x80)
but in "pc105" model with "pl" layout, or in my GNOME session (it has its own
keyboard properties after all) I don't have such keys (and Super_L has another
code). So I put the lines:
add mod4 = Super_L
add mod4 = Super_R
into /etc/X11/Xmodmap, which gives me:
mod4 Super_L (0x7f), Hyper_L (0x80), Super_L (0x73), Super_R (0x74)
and everything works as I want, but I need to type:
In earlier versions of Fedora (and XFree86/Xorg), putting the lines in
~/.Xmodmap worked by itself upon login, then stopped, but editing
/etc/X11/Xmodmap continued to work.
In FC6, however, /etc/X11/Xmodmap sometimes works, sometimes doesn't. I can't
find any reason for it not to work and I can't determine what is changing
between logins with and without working mod4. It looks like a race between
xinitrc-common and some gnome app which assigns "Windows" keys to Super_L/R, but
I can't tell, what that app is and how it's started (the only thing I can tell
is that it doesn't offer me an option to add the new Supers to mod4).
I don't have any Xkbmap files, the Xmodmap file is world-readable and
approximately 3 out of 4 logins it is used.
I don't know if it's the correct component, but:
$ rpm -qf /etc/X11/xinit/xinitrc-common
Thanks for the bug report. We have reviewed the information you
have provided above, and there is some additional information we
require that will be helpful in our diagnosis of this issue.
Please attach your X server config file (/etc/X11/xorg.conf) and X
server log file (/var/log/Xorg.*.log) to the bug report as individual
uncompressed file attachments using the bugzilla file attachment link
Could you also try to restart X WITHOUT any /etc/X11/xorg.conf (i.e., move it
somewhere else before starting X) and report us what happens?
We will review this issue again once you've had a chance to attach
Thanks in advance.
One more thing: when you remove /etc/X11/xorg.conf, could you please also remove
any Xmodmap files, and setup your keyboard just with Gnome tools? By that we
should be able to better find the source of the problem. Being a Czech (with
perfectly working Czech keyboard out of the box) be sure, that i18n issues are
high on my priority list :-).
This bug is not about localization. It's about Xmodmap files not being used by X
Xmodmap files used to work in earlier Fedora releases. Now they work from time
to time, which looks like some race condition or whatever. The commands are
still there, only they don't always get executed in correct order, or executed
Of course, the root of the problem is the necessity of using xmodmap at all,
which is caused by l10n issues in my case.
Running X with no config at all works - it defaults to keyboard model "pc105"
and layout "us". GNOME complains that it was expecting layout "pl", but after
telling it to keep the GNOME setting, mod4 works OOTB (using Windows keys, just
like I expect it to work) and Polish keyboard almost works - except for my bug
Experimenting with gnome-keyboard-properties doesn't help, so even if mod4
started working with "us" layout, I still need Xmodmap.
Gnome-keyboard-properties are broken horribly. Please don't tell me to use it,
as the only thing it can do is disable things which you want it to enable or
randomly switch meaning of a button 3 buttons away of the one it offers to
change (I even used it with LANG unset, I thought the strings were badly
translated, but no - it's all just totally wrong).
I'll stick to xmodmap and ~/.Xmodmap or /etc/X11/Xmodmap. Just make it work
every time I log in, as it did prior to FC6. If you're insisting that GNOME
should control my keyboard, not xmodmap, disable Xmodmap files entirely (in
/etc/X11/xinit/xinitrc-common) and I'll (unhappily) spam you with tens of GNOME
bugs noone's fixing since years (yes, years).
Now I'm on my knees - please, have mercy for Xmodmap, for it is our only savior
from Xorg and GNOME developers laziness/stupidity/whatever :)
Now, after an investigation in bug #214453:
- I'm certain that my Xmodmap isn't (or rather, shouldn't be) needed and not
sure if it ever was used in FC6.
- Turns out setting keyboard layout with setxkbmap acts randomly - one time it
activates my mod4, the other time it deactivates it (using the same layout, and
it doesn't matter, which layout I choose). So it's obvious that the same happens
when I start my X session (GNOME loads the layout using XKEYBOARD extension,
So there are two problems:
- xmodmap not working every time,
- setxkbmap not working every time.
The first may depend on the second. Checking without any Xmodmap file reveals
that the keyboard behaves differently between logons and between running of
setxkbmap. So xkb should be fixed first or even only.
I'll try to dig into it tomorrow.
Could you please provide promised information. I will try to investigate this
Sorry, I was overworked earlier and forgot about this BZ entry.
Like I said in bug #214453 comment #3, it looks like Xmodmap files don't work at
all, or even if they do, it's hard to check, because setxkbmap doesn't work as
So I have a problem with setxkbmap which behavior wrt mod4 switch is totally
random. I have two different FC6 machines and both exhibit the same problem - I
have to run `setxkbmap xx` (in my case, pl, but I've already demonstrated that a
layout doesn't matter here) few times in a row to get working mod4. It works by
itself once per few logins (but I can break it again and fix it again, all using
So, my xmodmap problem is in fact a setxkbmap problem.
Of course this entry is not about setxkbmap, but Xmodmap being not honored
(turned out it doesn't work at all, not randomly - it's setxkbmap that works
randomly). So I'd still prefer /etc/X11/Xmodmap disappear in order to not
misinform people like me. If it's supposed to not work (in favor of xkb), it
should at least be documented inside of the file. I can imagine it works when
using twm, so a comment would be better :)
Oh, and please attach your Xorg.0.log file yourself - my problems exist on every
FC6 installation (tried 4 of them) ;)