Я нашел ошибку 19365, которая решила мою проблему:
Начиная Xnest / Xephyr с -kb.
Когда я запускаю Xephyr внутри X, моя клавиатурная карта становится шаткой в основном только для непечатных символов. Я не могу использовать клавиши со стрелками. Согласно xev, стрелка вниз отображается на Super_R. Стрелка вверх - это экран печати. PgDown сопоставлен с «Меню». Моя клавиатура работает нормально на оригинальном дисплее X (: 0), но в поддисплее Xephyr (: 1) больше ничего не работает правильно.
У меня нет каких-то забавных вещей xmodmap, происходящих на моем главном дисплее X, о которых я знаю. Все, что я на самом деле сделать это setxkbmap -option ctrl:swapcaps
.
Я нашел ошибку 19365, которая решила мою проблему:
Начиная Xnest / Xephyr с -kb.
Опция -kb не работает в Ubuntu 10.04. Вот что сработало для меня:
Xephyr -keybd ephyr,,,xkbmodel=evdev -ac -screen 800x600 -br -reset -terminate :1
Вы также можете запустить xkbcomp $DISPLAY :1
сеанс X, в котором был запущен Xephyr. Эта команда скопирует карту клавиатуры с текущего сервера на ваш только что созданный. Я использую это так:
Xephyr -screen 800x600 :1 > /dev/null & sleep 2 && xkbcomp $DISPLAY :1 DISPLAY=":1" ./runcommand
setxkbmap -model evdev -print | xkbcomp :100 :200
If you use Xephyr with xpra and you have incorrect keyboard map. If you see strange situation: Down key worked as enter (down arrow as break line), up arrow not working - use that command for set true xkb map.
:100 - Display number with control of xpra
:200 - Display number control of Xephyr
May be that command help, if you use x2go and mate desktop environment (if x2go settings keyboard on client turned off)
Кажется, вы не используете SSH для этого, верно? Тем не менее, следующее может помочь вам начать; это то, что я написал для устранения проблем с клавиатурой при использовании ssh -Y
:
Вы можете сохранить текущую раскладку клавиатуры (если Xephyr не запущен), используя:
xmodmap -pke > ~/my_xmodmap
Затем в Xephyr вы можете попытаться явно загрузить это:
xmodmap ~/my_xmodmap
И с помощью xev
вы можете отслеживать события клавиатуры. Это, вероятно, не очень поможет само по себе, но может помочь вам найти более полезные статьи, так как эта команда иногда упоминается в таких статьях.
Для меня (используя немецкую клавиатуру), он работает только сочетание предыдущего решения, указываемой Арьяна вместе с раствором, указываемой Панзи в Xephyr раскладке клавиатуры, то есть:
Запустите Xephyr:
Xephyr -keybd ephyr,,,xkbmodel=evdev,xkblayout=de -ac -reset -screen 800x600 -retro :1 &
Сохраните текущее сопоставление клавиатуры и запустите xterm, загружая сопоставление:
xmodmap -pke > /tmp/my_modmap ; xterm -display :1 -ls -e "xmodmap /tmp/my_modmap; bash" &
Сервер Xephyr: xserver-xephyr 2:1.9.5-1
Благодаря оригинальным постерам!
После более безуспешного поиска в Google, man setxkbmap
наконец, указал мне на более простое решение:
ИСПОЛЬЗОВАНИЕ С xkbcomp
Если у вас есть Xserver и клиентская оболочка, работающие на разных компьютерах, и файлы конфигурации XKB на этих машинах различаются, вы можете получить проблемы с указанием карты клавиатуры по модели, раскладке, именам опций. [...] Вы можете решить эту проблему, запустив xkbcomp на стороне клиента тоже. [..] Например, команда
setxkbmap us -print | xkbcomp - $ DISPLAY
выполняет оба шага на одном и том же (клиентском) компьютере и загружает раскладку клавиатуры на сервер.
То есть,
запустить Xephyr:
Xephyr -ac -reset -screen 800x600 -retro :50 &
(не нужно предоставлять информацию о клавиатуре)
и настройте новый xsession:
setxkbmap de -print | xkbcomp - :50
(вам нужно знать раскладку клавиатуры)
Примечание: setxkbmap
это ваш друг, и с версии 1.2.0-query
доступна полезная опция, которая поможет вам устранить неполадки с клавиатурой (см. Соответствующий журнал исправлений ).