7

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

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

7 ответов7

5

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

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

2

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

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

1
setxkbmap -model evdev -print | xkbcomp :100 :200    

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

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

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

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

1

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

Xephyr -screen 800x600 :1 > /dev/null &
sleep 2 && xkbcomp $DISPLAY :1
DISPLAY=":1" ./runcommand
0

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

Сервер xserver-xephyr 2:1.9.5-1

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

0

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

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

xmodmap -pke > ~/my_xmodmap

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

xmodmap ~/my_xmodmap

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .