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

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

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

7 ответов

Решение

Я нашел ошибку 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    

Если вы используете Xephyr с xpra и у вас неверная клавиатурная карта. Если вы видите странную ситуацию: клавиша "вниз" работала как ввод (стрелка вниз как линия разрыва), стрелка вверх не работает - используйте эту команду для установки истинной карты xkb.

: 100 - Показать номер с контролем xpra

: 200 - Отображение номера управления Xephyr

Может быть, эта команда поможет, если вы используете x2go и рабочую среду mate (если клавиатура настроек x2go на клиенте отключена)

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

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

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

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

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

xmodmap -pke > ~/my_xmodmap

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

xmodmap ~/my_xmodmap

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

Другие вопросы по тегам