Мне нужен психиатр для моего ПК.
Он убежден, что это 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, поэтому любые графические программы, которые вы запустите после этого, должны получить правильную раскладку клавиатуры.