[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: losing xmodmap settings during X startup



Anthony Campbell <ac@acampbell.org.uk> wrote on Tue, Feb 02, 2010 at 06:42:32PM +0000:
> On 02 Feb 2010, Joey Morris wrote:
> > > 
> > > Did you try running the xmodmap -e e stuff at the command line in an
> > > xterm? That might give you a clearer idea of what is wrong.
> > 
> > Yes, I've done that. In fact, since this problem started, the first
> > thing I do after restarting X is to run the following in an xterm to
> > get the modifiers set up the way I want them:
> > 
> > $ xmodmap -e "clear Lock"
> > $ xmodmap -e "add Control = Control_L"
> > 
> > I get no errors or warnings, and everything works fine afterwards. I
> > skip the "keysym Caps_Lock = Control_L" step because it isn't
> > necessary (it's the one part of my .Xmodmap that sticks around), but I
> > did verify that it worked during my original troubleshooting.
> > 
> > 
> I'm pretty much out of ideas, I'm afraid. I have found that the order in
> which things are placed in .xinitrc can make a difference, you might try
> variations there. Other than that, the only thing I can think of is to
> put the above commands in a script (and perhaps call it from .xinitrc).

I've done some more research and troubleshooting, and now I'm even
more confused.

First, I tried using IceWM instead of blackbox since IceWM is working
for you, but that didn't help.

Next, I found a few threads reporting similar problems and possible
workarounds. One suggested that numlockx was the culprit, which
sounded promising because I had recently installed numlockx.
Unfortunately, though, uninstalling it didn't help.

Other posts pointed to xkbcomp. See this thread for example:
https://bugs.launchpad.net/ubuntu/+source/xfce-mcs-plugins/+bug/97175
I verified that xkbcomp was being executed during my X startup, but it
was running before xmodmap. So while it may be related to the problem,
I don't think it's the direct cause. I also verified that setxkbmap
overrides my xmodmap settings, as described in
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508767, but it
appears that setxkbmap isn't being executed during my X startup.

Now here is where it gets strange. Testing a workaround, I changed the
xmodmap line in my .xinitrc from:

  /usr/bin/xmodmap $USRMODMAP

to

  (sleep 10 && /usr/bin/xmodmap $USRMODMAP) &

with the goal of delaying its execution until after the window manager
had started. This way it would run after whatever had been overriding
it ran. This workaround worked, but *only if* I pressed a key (any
key) during that period between the window manager coming up and when
xmodmap ran after the 10 second delay. If I started X and simply
waited 10 seconds, the xmodmap settings did not take effect. Baffling.
Does anyone have any insights about what's going on here?


Reply to: