I wish to adjust my shift+numpad-home behavior microsoft-like. At my previous distros, I remember appending in my xorg.conf.d/*keyboard.conf an XkbOption and that solved it all. Now I took the same path to no avail, and after some more research, I had to do setxkbmap -option numpad:microsoftto solve my problem. Apperantly, my xorg.conf files get either overwritten or ignored at each system startup. To be more precise, my added line did not get overwritten, but ignored. Then when I renamed 00-keyboard.conf as 80-keyboard.conf to see how it behaves, it created a default 00-keyboard.conf file from scratch on startup.

What is the exact relationship between setxkbmap and /etc/X11/xorg.conf.d configs? Where does whatever store its default configs which overwrite my own configs? Is it just another intrusive systemd way of doing things, or is it me being paranoid, as I have a strong dislike of systemd?

To clarify, I did manage to get the result I want, I'm just trying to see what's under the hood.

Summary: What is the mechanism that ignores my manual changes in /etc/X11/xorg.conf.d/*-keyboard.conf and forces me to use setxkbmap instead? Where are the defaults stored, and how and why does it overwrite at each startup?

  • Nah, it's regular Gnome with X11. – corsel Mar 11 '18 at 16:01
  • 2
    Related background questions are unix.stackexchange.com/questions/22092 and askubuntu.com/questions/57079 . – JdeBP Mar 11 '18 at 16:02
  • systemd was my first guess, if it's irrelevant, I modified my tags. – corsel Mar 11 '18 at 16:05
  • @JdeBP First one merely tells the solution, second link points to /etc/default/keyboard, I'll experiment with that directory a bit. – corsel Mar 11 '18 at 16:08
  • 1
    setxkbmap uses the keyboard extension on the running server, xorg.conf gets read at startup of the server. Otherwise they should be the same. To find out why your xorg.conf settings are ignored, the first step is to look at /var/log/Xorg.0.log. – dirkt Mar 11 '18 at 17:03

The most likely explanation for the behavior you describe is:

  • The settings in xorg.conf work.
  • When you log in, your desktop environment changes the configuration from the system defaults to your user defaults, which is a perfectly reasonable thing to do.
  • If you run setxkbmap later, that changes the configuration of the current session.

You need to either figure out how to configure your desktop environment for the behavior you want, or to run that setxkbmap command as part of something that runs late enough during your desktop environment's initialization process.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.