Клавиша со стрелкой x2go не работает должным образом
Я установил Ubuntu 12.04.1 и x2goclient на нем.
при подключении к x2goserver (Ubuntu 12.04.1) клавиши со стрелками не работали должным образом
Например: клавиша "вниз" работает как Enter
У кого-нибудь тоже была эта проблема?
5 ответов
Проблема была раскладка клавиатуры.
это было ноль, я изменил его на английский (США), теперь он работает правильно.
Запустите на сервере:
setxkbmap us -print | xkbcomp - $DISPLAY
Он выводит на экран таблицу раскладки клавиатуры на английском языке и повторно инициализирует ваш X вместе с ней.
Я хотел бы объяснить, что случилось:
На вашем локальном X11 коды клавиш вашей клавиатуры:
- 111 для ▲ (клавиша со стрелкой вверх)
- 104 для ENTER на клавиатуре
Но в x2go одни и те же ключи производят разные коды клавиш!
- 104 для ▲ (клавиша со стрелкой вверх)
Я понятия не имею, почему реализация x2go делает это (вместо пересылки кода ключа как есть!), Но это так, как есть. Это не происходит со всеми кодами клавиш.
Поэтому, когда вы инструктируете x2go ничего не делать с настройкой XKB, назначенный keycode -> keysym по сути тот же, а keycode 104 имеет тот же результат: клавиатуру ENTER.
Интересно то, что за этим отображением есть схема! Сторона x2go, кажется, использует коды клавиш, записанные в "старом" XKBROOT/keycodes/xfree86
файл, в то время как "современный" рабочий стол Linux имеет коды клавиш, пришедшие от evdev, чьи коды клавиш записаны в файле XKBROOT/keycodes/evdev
,
Результат: вам всегда нужно загрузить новую конфигурацию XKB в x2go. Позвольте клиенту x2go инициировать это самостоятельно или загрузите свой собственный, но помните, что следует использовать правила xfree86 (или напрямую коды клавиш из xfree86 (то же имя)).
У меня была похожая проблема: ключи имели случайный эффект в удаленном сеансе. Затем я понял, что на клиентском компьютере (Mac) у меня была активирована другая раскладка клавиатуры, чем обычная. После установки его обратно к обычному (на Mac), ввод снова работал в удаленном сеансе.
В моем случае я использовал Archlinux и x2goserver требует xorg-setxkbmap
а также xorg-xkbcomp
хотя пакеты должны быть установлены на стороне сервера x2goserver
Сам пакет не перечисляет эти пакеты как зависимости. Он не может применить настройки клавиатуры без них. Вы можете установить их в Archlinux с помощью:
sudo pacman -S xorg-setxkbmap xorg-xkbcomp
Я отправил отчет об ошибке.
Что сработало для меня, так это установка раскладки клавиатуры в настройках x2go-client на что-то другое, а затем обратно.