Я пытаюсь заставить xrdp работать правильно в Ubuntu 16.04, используя xfce на AMD64. Я использую это как среду разработки, и я просто хочу иметь возможность использовать phpstorm, но вкладки, стрелки и т. Д. Просто не работают.
После долгих поисков и множества неудачных попыток я оказался здесь: http://cloclotron.net/xrdp_keyboard_layout_workaround.html
У меня нет проблем с выполнением инструкций, но ключи, которые не работают, кажутся быть установлен правильно.
например, в моей раскладке консоли строка клавиш табуляции выглядит так:
23 0xff09 (вкладка) 0xfe20 (ISO_Left_Tab) 0xff09 (Tab) 0xfe20 (ISO_Left_Tab)
который говорит мне, что код должен быть либо (dec) 65056, либо 65289, но строка 23 km-0409 уже показывает 65289, когда я устанавливаю его на 65056, это не имеет значения, и клавиша табуляции по-прежнему не работает.
У меня такая же проблема с клавишами со стрелками, и я убедился, что они тоже верны.
Как я могу проверить, какая раскладка клавиатуры действительно используется xrdp?
Где хранится этот параметр?
Есть ли лучший способ получить рабочую раскладку клавиатуры?
tightvnc также имеет неправильную раскладку клавиатуры.
Когда я подключаюсь через Диспетчер виртуальных машин, клавиатура работает правильно
Уже поздно, но я все равно постараюсь ответить на ваши вопросы на будущее.
Как я могу проверить, какая раскладка клавиатуры на самом деле используется xrdp?
setxkbmap -query
Где хранится этот параметр?
Вы можете найти настройки keuborad в /etc/xrdp/xrdp_keyboard.ini
: файл содержит сопоставление между языками и раскладками клавиатуры в шестнадцатеричном формате.
Есть ли лучший способ получить рабочую раскладку клавиатуры?
В большинстве случаев проще всего использовать обходной путь (обратите внимание, что вы должны выполнять эти шаги, когда вы вошли в систему напрямую, а не через подключение к удаленному рабочему столу):
Определите шестнадцатеричное число, соответствующее желаемой раскладке, просмотрев вышеупомянутый файл (xrdp_keyboard.ini).
Создайте резервную копию раскладки по умолчанию (США), используемой xrdp:
sudo cp /etc/xrdp/km-00000409.ini /etc/xrdp/km-00000409.ini.bak
Создайте файл текущей раскладки раскладки присвоив ему имя по умолчанию:
sudo xrdp-genkeymap /etc/xrdp/km-00000409.ini
Перезапустите xrdp и попробуйте войти в машину через подключение к удаленному рабочему столу
sudo systemctl перезапустить xrdp
Имейте в виду, что более ранние версии xrdp называют файлы раскладок более короткими: km-0409.ini вместо km-00000409.ini.
Чтобы узнать, что происходит, просмотрите журналы xrdp:
tail -f /var/log/xrdp.log
ОБНОВЛЕНИЕ: тем не менее, вы можете снова столкнуться с той же проблемой при повторном подключении к тому же хосту: это известная проблема. Я не знаю, как это решить, но, пожалуйста, рассмотрите также языковые настройки в Панели управления клиента Windows (или любого другого вашего клиента).Кто-то в вышеупомянутом выпуске предложил изменить исходный код, чтобы смягчить проблему, возникающую при повторном подключении:
static int rdpLoadLayout (rdpKeyboard * клавиатура, структура xrdp_client_info * client_info) { Набор XkbRMLVOSet;
int keylayout = client_info->keylayout;
LLOGLN(0, ("rdpLoadLayout: keylayout 0x%8.8x variant %s display %s", keylayout, client_info->variant, display));
memset(&set, 0, sizeof(set));
set.rules = "base";
set.model = "pc105";
set.layout = "us,ru";
set.variant = "";
set.options = "grp:ctrl_shift_toggle";
reload_xkb(keyboard->device, &set);
reload_xkb(inputInfo.keyboard, &set);
return 0;
}
set.model = "pc105";
set.layout = "us,ru";
set.variant = "";
set.options = "grp:ctrl_shift_toggle";