xrdp - как изменить раскладку клавиатуры
Когда я открываю сеанс xrdp с компьютера с Windows 7 на мой компьютер с Ubuntu, используется раскладка клавиатуры США. Тем не менее, моя раскладка клавиатуры по умолчанию отличается на машине с Ubuntu, и я хочу использовать ее во время сеансов xrdp. Как я могу это исправить?
7 ответов
Если вы установили xrdp, в вашей системе должен быть установлен пакет xrdp-genkeymap. утилита будет находиться в папке /etc/xrdp
Чтобы изменить раскладку клавиатуры, вам действительно нужно выполнить команду xrdp-genkeymap. Команду нужно запускать локально на компьютере с Ubuntu, а не из сеанса xrdp.
введите следующую команду, чтобы использовать нашу раскладку клавиатуры во время сеанса xrdp sudo xrdp-genkeymap /etc/xrdp/km-0409.ini
Если вам нужен другой языковой макет, вы должны найти правильный файл km-xxx.ini
Надеюсь, что эта помощь До следующего раза увидимся
Я хотел бы внести свой вклад здесь, так как там, кажется, мало инструкций.
Найдите нужный язык / ввод с клавиатуры здесь
Так, например, французы (Бельгия) 080C.
Затем выполните эти команды, чтобы сгенерировать раскладку клавиатуры для выбранного вами ввода.
xrdp-genkeymap km-080C.ini
Скопировать его в папку xrdp
sudo mv km-080C.ini /etc/xrdp
Помните, что вы должны изменить права доступа к файлу, чтобы его можно было использовать
sudo chown root:root /etc/xrdp/km-080C.ini
Перезапустите сервис, и он должен работать
sudo service xrdp restart
Для меня было достаточно выполнить следующую команду, чтобы установить правильную раскладку клавиатуры в X
setxkbmap be
где вы должны заменить "быть" с вашим земельным кодом. Вы можете увидеть текущее значение с
setxkbmap -query
К сожалению, ни один из приведенных выше ответов полностью не решил мою проблему.
После просмотра каталога
sudo ls /etc/xrdp/
я узнал что
.ini
В файлах было больше префиксов 0, поэтому вместо этого мне пришлось сделать следующее, чтобы заставить его работать.
sudo xrdp-genkeymap /etc/xrdp/km-00000424.ini
(словенская раскладка)
а потом дополнительно отредактировать файл
sudo vi /etc/xrdp/xrdp-keyboard.ini
и добавьте следующие строки после каждого раздела:
[default_rdp_layouts]
rdp_layout_si=0x00000424
; <rdp layout name> = <X11 keyboard layout value>
[default_layouts_map]
rdp_layout_si=si
[rdp_layouts_map_mac]
rdp_layout_si=si
Я надеюсь, что это поможет кому-то.
К сожалению, манипуляции с ini файлами у меня не сработали. Максимум, что я смог получить, это дополнительные раскладки, которые тоже английские. В итоге у меня получилось 3 раскладки со странными названиями на английском языке. Что помогло, так это добавить это в
начало/etc/xrdp/startwm.sh
а также
/etc/xrdp/reconnectwm.sh
сразу после 1-й строки, например:
( sleep 3; setxkbmap -model pc105 -layout us,ru -option grp:alt_shift_toggle )&
Или, если вы хотите установить раскладку клавиатуры XRDP из общесистемного файла настроек, что, вероятно, вам нужно, вместо этого поместите это:
. /etc/default/keyboard
( sleep 3; setxkbmap ${XKBMODEL:+-model "$XKBMODEL"} ${XKBLAYOUT:+-layout "$XKBLAYOUT"} ${XKBVARIANT:+-variant "$XKBVARIANT"} ${XKBOPTIONS:+-option "$XKBOPTIONS"} )&
Кстати, настройка общесистемного файла настроек клавиатуры
/etc/default/keyboard
сама может быть выполнена следующими способами:
- Редактирование вручную
- С помощью утилиты настройки:
dpkg-reconfigure keyboard-configuration
- С помощью утилиты командной строки:
localectl set-x11-keymap us,ru pc105 , grp:alt_shift_toggle
Я был в той же ситуации, что и k3br, ответ Энрико мне не помог, и решение для меня было похоже на ответ k3br. Однако в моем случае имя файла km-xxxxxxxx.ini, которое я получил, просматривая свою клавиатуру по этой ссылке из ответа Энрико, не соответствовало файлу, который xrdp пытался открыть при входе в систему.
Я использовал идею, описанную здесь, чтобы выяснить, какой файл клавиатуры xrdp пытался открыть при входе в систему, выполнив следующее
sudo cat /var/log/xrdp.log | grep key
который дал этот вывод:
[20220818-16:43:48] [INFO ] Cannot find keymap file /etc/xrdp/km-00001009.ini
[20220818-16:43:48] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
Итак, в моем случае xrdp пытался открыть km-00001009.ini, но не смог его найти, поэтому по умолчанию используется km-00000409.ini, что является американской клавиатурой. Я понятия не имею, почему xrdp искал km-00001009.ini, так как это соответствует английской (канадской) клавиатуре по ссылке выше, а я использую французскую (канадскую) клавиатуру. Итак, что я сделал, так это сгенерировал файл km-00001009.ini из сеанса без xrdp на машине с Ubuntu, где была активна нужная мне клавиатура, используя
xrdp-genkeymap km-00001009.ini
и скопировал его в /etc/xrdp/, как в ответе Энрико выше.
Наконец, мне пришлось добавить следующие строки в файл /etc/xrdp/xrdp_keyboard.ini, так как xrdp, по-видимому, проверяет наличие ключа, соответствующего файлу km внутри этого файла xrdp_keyboard.ini, и в противном случае отказывается:
...
[default_rdp_layouts]
...
rdp_layout_fr_ca=0x00001009
...
[default_layouts_map]
...
rdp_layout_fr_ca=ca
...
На самом деле я не знаю, насколько важны языковые буквы, следующие за rdp_layout_ (fr_ca, для французского канады в моем случае), я подозреваю, что это не так. Я также не знаю, имеет ли значение «ca» в rdp_layout_fr_ca=ca.ca — это буквы для французской канадской клавиатуры, поэтому я поставил ее, но я не пробовал с другими буквами, чтобы увидеть, будет ли она работать в любом случае.
Попробуйте локально запустить этот код не из сеанса xrdp:
xrdp-genkeymap /etc/xrdp/km-0409.ini
Перезапустите xrdp и попробуйте.