Вопрос или проблема
Я установил xrdp на свой сервер Linux FC 17 KDE, чтобы я мог использовать mstsc из Windows для подключения к нему.
Всё работает очень хорошо, кроме того, что у меня швейцарская клавиатура, и когда я набираю, например, Z, на экране появляется Y (швейцарская клавиатура – QWERTZ, а не QWERTY).
Я установил Linux на сервер с подключенной швейцарской клавиатурой. Локально всё работает нормально.
Я пробовал добавлять швейцарскую раскладку в окне, называемом “Клавиатура – KDE Control Module”, но это не помогает.
Я использую одного и того же пользователя, вне зависимости от того, вхожу ли я локально или удалённо.
Как мне решить эту проблему?
Поскольку вы заметили, что переменная $LANG
неверна, вы должны попробовать установить её в вашем ~/.bashrc
.
Извините, поторопился и не подумал. Переменная $LANG управляет всеми аспектами вашей локали, а не раскладкой клавиатуры как таковой. Насколько я могу судить, самый простой способ исправить это – добавить эту строку в ваш ~/.bashrc
:
setxkbmap -layout de_CH
Теперь я не совсем уверен, что это правильное название для швейцарской раскладки, которую вы используете. Я посмотрел и эта страница предлагает либо de_CH
, либо fr_CH
. Однако ни одна из них не работает на моей системе, но это может быть просто потому, что у меня нет соответствующих раскладок. Поэкспериментируйте с setxkbmap
, просто откройте терминал и попробуйте некоторые раскладки:
setxkbmap -layout de_CH
setxkbmap -layout fr_CH
и так далее.
Вы можете посмотреть на некоторые имена локалей в /usr/share/i18n/locales/
, возможно, вы сможете определить, какая вам нужна :).
Ответ или решение
Извините за неудобства, которые вы испытываете с клавиатурной раскладкой при подключении по удалённому рабочему столу от Windows к Linux. Давайте разберёмся в проблеме и рассмотрим несколько возможных решений.
Проблема
Вы установили xrdp на ваш сервер с операционной системой Linux Fedora 17 с окружением KDE, чтобы использовать mstsc из Windows для подключения к нему. Однако сталкиваетесь с проблемой неправильной клавиатурной раскладки: ваша физическая клавиатура — швейцарская (QWERTZ), но на экране отображаются символы, соответствующие английской раскладке (QWERTY).
Теория
Проблема с раскладкой клавиатуры довольно распространена в контексте удалённого подключения. Это происходит из-за того, что настройки локального и удалённого систем могут различаться или не синхронизироваться автоматически. В вашем случае, сервер Linux и клиентский компьютер Windows используют разные настройки клавиатурной раскладки, и это приводит к несоответствию.
- setxkbmap — это команда в Linux, которая используется для настройки раскладки клавиатуры. Она является гибким инструментом, который позволяет вручную настроить нужную раскладку, выбирая необходимые параметры.
- LANG — системная переменная среды, которая влияет на локальные настройки, такие как язык интерфейса и форматы даты, времени и чисел, но не управляет раскладкой клавиатуры.
Пример
Вы упоминаете, что вручную добавили швейцарскую раскладку в «Keyboard – KDE Control Module», но это не решило проблему при удалённом подключении. Это связано с тем, что настройки KDE модуля не всегда применяются в сеансах xrdp.
Давайте использовать команду setxkbmap для смены раскладки на уровне терминала. Это может быть проверено следующими командами:
setxkbmap -layout de_CH
setxkbmap -layout fr_CH
Попробуйте эти команды в терминале на сервере Linux, чтобы подтвердить, какая из них корректно настроит вашу раскладку. Если ни одна из них не сработает, вы можете перейти в директорию /usr/share/i18n/locales/
, чтобы просмотреть доступные локали и более точно подобрать нужную.
Применение
-
Настройка сессий xrdp: Иногда проблема может быть в том, как настроены конфигурации xrdp. Проверьте файл конфигурации
/etc/xrdp/xrdp.ini
и убедитесь, что параметры клавиатуры установлены корректно. Если настройки по умолчанию не работают, попробуйте явно указать layout. -
Изменение bashrc для каждого сеанса: Вы можете настроить вашу раскладку для каждого удалённого сеанса, добавив соответствующую команду
setxkbmap
в ваш файл~/.bashrc
. Это гарантирует, что каждый раз при входе в систему нужная раскладка активируется автоматически.
echo "setxkbmap -layout de_CH" >> ~/.bashrc
или для французской части Швейцарии:
echo "setxkbmap -layout fr_CH" >> ~/.bashrc
-
Тестирование и проверка: После внесения изменений перезапустите xrdp и попробуйте снова подключиться. Вы можете использовать команды
xrdb
для пересоздания каталога настроек X с помощью.Xresources
, это обеспечит, что на уровне X11 будут использоваться актуальные настройки. -
Использование файлов конфигурации X11: Ещё один способ – это внести изменения в
/etc/X11/xorg.conf.d/
. Создайте новый конфигурационный файл или отредактируйте существующий, чтобы установить нужную раскладку по умолчанию. Пример:
Section "InputClass"
Identifier "keyboard-all"
Driver "evdev"
Option "XkbLayout" "de_CH"
EndSection
Эти действия должны привести к синхронизации раскладки клавиатуры, что позволит вам работать комфортно и продуктивно, независимо от того, работаете ли вы локально или удалённо. Помимо этого, не забудьте убедиться, что обе системы (Windows и Linux) имеют последние обновления, так как это может повлиять на стабильность и совместимость, особенно в связке таких приложений, как xrdp и mstsc.