Постоянно установленная раскладка клавиатуры в X11

Постоянно установленная раскладка клавиатуры в X11

Мне нужен психиатр для моего ПК.

Он убежден, что это iMac (вроде того).

Серьёзно: у меня проблема, которая возникла, по-видимому, из ниоткуда, скорее всего, из-за какого-то обновления с «побочными эффектами», но я на самом деле не знаю, что произошло.

Конечно, у меня довольно запутанная схема:

  • ПК X64 с ОС Windows 7
  • VirtualBoxОбезглавленныйВиртуальная машина под управлением Debian (stretch)
  • Я получаю доступ к виртуальной машине через ssh (KiTTY) с переадресацией X11
  • Обычно я работаю в командной строке, но иногда использую графические программы.
  • У меня на хосте установлена ​​текущая версия VcXserv для обслуживания Xclients.

Это работает уже много лет.

И вот теперь моя клавиатура внезапно начала «вести себя странно» только для клиентов X (обычный терминал SSH не пострадал).

После долгих поисков я нашел кое-что:

это вывод setxkbmap -print -verbose 10:

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/xorg...
Trying to load rules file /usr/share/X11/xkb/rules/xorg...
Success.
Applied rules from xorg:
rules:      xorg
model:      macintosh
layout:     it
options:    grab:break_actions
Trying to build keymap using the following components:
keycodes:   macintosh+aliases(qwerty)
types:      complete+numpad(mac)
compat:     complete+xfree86(grab_break)
symbols:    pc+macintosh_vndr/it+inet(apple)
geometry:   macintosh(macintosh)
xkb_keymap {
        xkb_keycodes  { include "macintosh+aliases(qwerty)"     };
        xkb_types     { include "complete+numpad(mac)"  };
        xkb_compat    { include "complete+xfree86(grab_break)"  };
        xkb_symbols   { include "pc+macintosh_vndr/it+inet(apple)"      };
        xkb_geometry  { include "macintosh(macintosh)"  };
};

Конечно, setxkbmap -model pc105 -layout itпроблема решена, но она вернется при следующей загрузке виртуальной машины.

Как я могу установить это на постоянной основе? (обратите внимание, у меня нет локального xserver на виртуальной машине, поэтому у меня нет ~/.xinitrcи подобных файлов)

Я бы тоже хотел понять, что произошло. Может кто-то подскажет, где искать?

решение1

Попробуйте установить системное значение по умолчанию для X:

$ sudo localectl set-x11-keymap it pc105

... это может повлиять только на X-серверы на хосте, но попробуйте сначала это; в качестве побочного эффекта это установит эквивалентную раскладку клавиатуры консоли, которая может быть частью обнаружения сбоев.

Если это не сработает, просто запустите соответствующую setxkbmap | xkbcompпроцедуру в ~/.profileили ~/.bashrc:

 if [ -n $DISPLAY ] ; then
   setxkbmap -model pc105 -layout it -print | xkbcomp - $DISPLAY
 fi

Он запустится, когда вы войдете в сеанс SSH, поэтому любые графические программы, которые вы запустите после этого, должны получить правильную раскладку клавиатуры.

Связанный контент