Description of problem: Trying to reconfigure my keyboard via localectl, I have found that I'm missing information to create a full 'localectl set-x11-keymap ...' commandline. (Note that I need all the settings at once because of bug #1049306) Version-Release number of selected component (if applicable): systemd-208-9.fc20.x86_64 How reproducible: always Steps to Reproduce: 1. reboot 2. setxkbmap -query 3. localectl status Actual results: 2. rules: evdev model: evdev layout: cz variant: qwerty 3. System Locale: LANG=cs_CZ.UTF-8 VC Keymap: cz-lat2 X11 Layout: cz X11 Variant: qwerty Expected results: 3. System Locale: LANG=cs_CZ.UTF-8 VC Keymap: cz-lat2 X11 Layout: cz X11 Model: evdev X11 Variant: qwerty Additional info:
setxkbmap gets its information directly from the X server. If systemd was to do the same, it would mean a hard dependency on X libraries. There doesn't have to be an X server running on the queried machine, so this action doesn't have to make sense at all. By default, localed reads the information about the keyboard from /etc/X11/xorg.conf.d/00-keyboard.conf, which is owned by systemd. So, even if there's no X on the machine, this file exists and that's why localectl status shows "X11 Layout", but not model or variant. If you set those manually (e.g. with localectl set-x11-keymap), model and variant will show. I'll close this bug as WONTFIX, because I think it doesn't make sense to make systemd dependent on X libraries (or even parse setxkbmap output for that matter).