15

I made a cool, little script that will edit my /usr/share/X11/xkb/symbols/pc file automatically. It is useful when I want to switch between a Mac or Windows keyboard.

The one problem I've encountered is that I have to log out and then log back in after editing the file in order for the edited configuration to take effect.

I've tried deleting my xkb cache (/var/lib/xkb/*.xkm), but that did work.

Any help would be greatly appreciated. Cheers.

1
  • 1
    editing the .../symbols/pc file regularly isn't recommended. XKB probably already knows the differences; you just need to know what to tell it to load. if these are different physical keyboards you're switching between, specifying a model will probably do what you want: setxkbmap -model apple -layout us vs -model pc105.
    – quixotic
    Oct 25, 2017 at 20:40

2 Answers 2

22

Solution. Run this command. Of course, you could change "us" to your desired keyboard layout.

setxkbmap -layout us

4
  • Does what you say. The key ingredient for me was an additional -variant foo.
    – primfaktor
    Apr 25, 2019 at 18:55
  • 1
    This actually reload "us" keyboard, but unfortunately disables other keyboard layouts (in case of multi-keyboard use).
    – Name
    Sep 5, 2020 at 17:38
  • @Name you can set variants and other things as you like, you can also specify 1+ layouts to switch between. You can find more info in man setxkbmap.
    – WesternGun
    Apr 23, 2021 at 10:58
  • 1
    Thanks. This reloads my changes in /usr/share/X11/xkb/keycodes/evdev. Good.
    – WesternGun
    Apr 23, 2021 at 11:01
6

It's answered in Unix Stack Exchange:

https://unix.stackexchange.com/questions/290449/how-to-reload-xserver-after-a-change-in-keyboard-layout

Basically, you do this:

sudo udevadm trigger --subsystem-match=input --action=change

It is also mentioned that the following might be sufficient, please comment on what system setup it alone helped:

# For Ubuntu < 16.04
service keyboard-setup restart
# For Ubuntu >= 16.04
systemctl restart keyboard-setup

You might come across other answers suggesting you delete /var/lib/xkb/*.xkm. That would be an outdated suggestion. At least in Ubuntu, this directory wasn't used for this purpose for quite a few years.

1
  • 1
    That doesn’t actually “reload” the keyboard layout, at least not the current one. When I tried on 18.04, it didn’t pick up any of the changes made in /usr/share/X11/xkb/symbols; only sudo udevadm trigger --subsystem-match=input --action=change (also mentioned in the answer and a comment to it) did the trick.
    – user149408
    Jul 17, 2021 at 22:13

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.