Как мне разобраться в раскладке клавиатуры Xephyr?

6742
qedi

Когда я запускаю Xephyr внутри X, моя клавиатурная карта становится шаткой в ​​основном только для непечатных символов. Я не могу использовать клавиши со стрелками. Согласно xev, стрелка вниз отображается на Super_R. Стрелка вверх - это экран печати. PgDown сопоставлен с «Меню». Моя клавиатура работает нормально на оригинальном дисплее X (: 0), но в поддисплее Xephyr (: 1) больше ничего не работает правильно.

У меня нет каких-то забавных вещей xmodmap, происходящих на моем главном дисплее X, о которых я знаю. Все, что я на самом деле сделать это setxkbmap -option ctrl:swapcaps.

7
Вы не используете SSH, верно? Или другими словами: вы используете точно такую ​​же клавиатуру и X-сервер с Xephyr, как и без него? И есть ли лучшие результаты при использовании более старого `Xnest`? Я не знаю, как эти знания помогут вам, но, возможно, это поможет. ;-) Arjan 14 лет назад 0
Ага. нет сш. Та же клавиатура и сервер. Я попробую Xnest. qedi 14 лет назад 0
Xnest сделал то же самое, но, по крайней мере, это указало мне на решение. qedi 14 лет назад 0

7 ответов на вопрос

5
qedi

Я нашел ошибку 19365, которая решила мою проблему:

Начиная Xnest / Xephyr с -kb.

И, надеюсь, больше нет необходимости в `xmodmap`? Хорошая находка! Arjan 14 лет назад 0
(Я думаю, что вы можете принять свой собственный ответ через 48 часов? Пожалуйста, вернитесь, чтобы сделать это. Спасибо!) Arjan 14 лет назад 0
2
Jim Hunziker

Опция -kb не работает в Ubuntu 10.04. Вот что сработало для меня:

Xephyr -keybd ephyr,,,xkbmodel=evdev -ac -screen 800x600 -br -reset -terminate :1

Там нет необходимости для всех пустых запятых, просто перечислите параметры клавиатуры по мере необходимости. В моем случае это `-keybd ephyr, xkbmodel = evdev, xkblayout = 'de (nodeadkeys)'` Olaf Dietsche 8 лет назад 0
1
Tomasz

Вы также можете запустить xkbcomp $DISPLAY :1сеанс X, в котором был запущен Xephyr. Эта команда скопирует карту клавиатуры с текущего сервера на ваш только что созданный. Я использую это так:

Xephyr -screen 800x600 :1 > /dev/null & sleep 2 && xkbcomp $DISPLAY :1 DISPLAY=":1" ./runcommand 
1
Alexander Demidov
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)

Пожалуйста, объясните, что делает этот код - это не очень полезно в нынешнем виде. bwDraco 9 лет назад 2
0
Arjan

Кажется, вы не используете SSH для этого, верно? Тем не менее, следующее может помочь вам начать; это то, что я написал для устранения проблем с клавиатурой при использовании ssh -Y:

Вы можете сохранить текущую раскладку клавиатуры (если Xephyr не запущен), используя:

xmodmap -pke > ~/my_xmodmap 

Затем в Xephyr вы можете попытаться явно загрузить это:

xmodmap ~/my_xmodmap 

И с помощью xevвы можете отслеживать события клавиатуры. Это, вероятно, не очень поможет само по себе, но может помочь вам найти более полезные статьи, так как эта команда иногда упоминается в таких статьях.

Это заставляет работать некоторые другие ключи, но не все. Например, xev утверждает, что косая черта клавиатуры - это XF86_Ungrab, а не KP_Divide, как это определено в файле xmodmap, который я выгрузил и использовал. qedi 14 лет назад 0
0
Alberto

Для меня (используя немецкую клавиатуру), он работает только сочетание предыдущего решения, указываемой Арьяна вместе с раствором, указываемой Панзи в 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

Благодаря оригинальным постерам!

Я нашел лучшее решение: см. Мой [другой ответ] (http://superuser.com/questions/70428/how-can-i-sort-out-xephyrs-keyboard-mapping/273603#273603) на этот вопрос. Alberto 13 лет назад 0
0
Alberto

После более безуспешного поиска в 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 доступна полезная опция, которая поможет вам устранить неполадки с клавиатурой (см. Соответствующий журнал исправлений ).

В [этом ответе] (http://superuser.com/questions/209433/xephyr-keyboard-layout/273611#273611) я указываю, как запустить Xephyr для его правильной настройки. Alberto 13 лет назад 0

Похожие вопросы