Проблемы с раскладкой клавиатуры с NX от Mac OS X Lion до Ubuntu

У меня есть проблемы с искаженной картой ключей моего сеанса NX.

У меня Macbook Air под управлением OS X Lion. Я использую OpenNX, чтобы начать сеанс с сервером Ubuntu, на котором работает FreeNX. Тип сеанса - Gnome.

Моя раскладка клавиатуры очень отключена (например, w дает =, удаление дает ",", t дает w). Я старался:

xmodmap -pke > nxclient.xmodmap

на клиенте и,

xmodmap nxclient.xmodmap

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

Буду признателен за любые советы. x2go работал на клиенте и сервере, используя Gnome без проблем. К сожалению, в настоящее время он не работает на Mac OS X Lion.

8 ответов

Я нашел удивительно простое решение: отключить сеанс X2Go и восстановить соединение. Это исправляет проблему с клавиатурой Mac для меня (которая, кажется, сохраняется за пределами OS X Lion).

Я хотел предоставить полное практическое решение. У меня была такая же проблема на некоторых машинах Fedora FC20. Это полное руководство, которое должно работать копирование и вставка.

username ваше имя пользователя для удаленного подключения с помощью ssh к компьютеру, на котором вы хотите запустить x2go на и machine это имя хоста этой машины.

ПРИМЕЧАНИЕ. Если на целевой машине есть пользовательские сопоставления клавиш, они могут испортить x2go, Чтобы это работало, мне нужно было сбросить раскладки клавиш и установить голый английский (США). Я использовал Международный английский (США) с клавишами Dead, и он не работал...

Был протестирован на Mac Book Pro в середине 2010, 2011 и 2013 гг. Похоже, что эта ошибка не распространяется на новые компьютеры Retina.

  1. Создайте файл определения карты ключей, используя xmodmap на локальном компьютере (клиентском компьютере) XQuartz может понадобиться для того, чтобы эта команда была доступна. Также необходимо использовать x2go Кстати.

    xmodmap -pke > osx-keymap
    

    Если xmodmap не найдено, что означает, что это не в PATH, если вы установили XQuartz, команда должна быть помещена в /usr/X11/bin/xmodmap поэтому вместо использования просто xmodmap пройдите к нему полный путь.

  2. Добавить некоторые модификаторы в файл (как из ответа ato)

    echo '! Now reset all the modifiers too
    !
    clear shift
    clear lock
    clear control
    clear mod1
    clear mod2
    clear mod3
    clear mod4
    clear mod5
    add shift = Shift_L Shift_R
    add lock = Caps_Lock
    add control = Control_L Control_R
    add mod1 = Alt_L Alt_R
    add mod2 = Meta_L Meta_R' >> osx-keymap
    
  3. Загрузите файл на машину (username ваше имя пользователя для входа на машины. Измени это!)

    scp osx-keymap username@machine:~/.Xmodmap 
    
  4. Создайте скрипт на рабочем столе, который можно запустить, просто используя мышь, если клавиатура не работает

    ssh username@machine <<"STR"
    echo '#/usr/bin/env bash
    xmodmap ~/.Xmodmap;'>~/Desktop/fix_keyboard.sh; chmod +x ~/Desktop/fix_keyboard.sh
    STR
    
  5. Соединить с x2go, В основном это должно работать.

Если это все еще не работает, попробуйте:

  • отключить и снова подключиться с x2go
  • нажми на run_keyboard.sh на рабочем столе с помощью мыши и выберите Run.
  • как и раньше, но затем отключите и снова подключите x2go
  • К сожалению, это не полное решение. Сообщается, что некоторые компьютеры не работают с ним

Добавьте это в конец вашего nxclient.xmodmap создано xmodmap -pke чтобы получить полезный макет:

!
! Now reset all the modifiers too
!
clear shift
clear lock
clear control
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5
add shift = Shift_L Shift_R
add lock = Caps_Lock
add control = Control_L Control_R
add mod1 = Alt_L Alt_R
add mod2 = Meta_L Meta_R

Этот ответ был дан @Simon в комментариях к вопросу и работает для меня (x2go / Xquartz):

На OSX делаем:

xmodmap -pke > keymap-x2go-osx.xmodmap
echo "xmodmap ~/keymap-x2go-osx.xmodmap" > x2go-xinit

редактировать keymap-x2go-osx.xmodmap и добавьте модификатор reset из ответа @ato, затем скопируйте его в виртуальную машину:

scp keymap-x2go-osx.xmodmap -P your_port your_ip:/home/your_user/
scp x2go-xinit -P your_port your_ip:/home/your_user/.xinit

Вы можете просто исправить это, изменив один параметр в Xquarts. Исправить:

  1. Открыть Xquarts
  2. Перейти к настройкам
  3. Проверьте следование системной раскладке клавиатуры.
  4. Сделанный!

Попробуйте сменить свой Shell с tcsh на bash. Tcsh вызывает проблемы с клавиатурой.

То, что сработало для меня, собиралось в системное меню -> клавиатура -> вкладка Layouts -> модель клавиатуры -> apple -> Macintosh old. Однако есть проблемы. Я не могу использовать Control+C, Control+V или клавиши со стрелками. Если ваши клавиши со стрелками работают, я был бы признателен, если бы вы сказали мне, что ваши .nxs варианты клавиатуры выглядят так.

У нас была такая же проблема, хотя мы запускали xfce, который похож на gnome2. Я только что нашел решение (под управлением Mac OSX 10.9.1):

  • Загрузите новейший клиент x2go (4.0.1.3 на момент публикации)
  • Настройте x2go-сессию на "автоматическое определение настроек клавиатуры"
  • Подключитесь и поймите, что, например, табулятор работает только при дополнительном нажатии клавиши управления.
  • Решение: отредактируйте сочетания клавиш в "~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml" (на сервере) и удалите запись, для которой установлено значение "Super + Tab"
  • Наслаждайтесь функциональной клавиатурой

Кредиты идут на goofrider.

Другие вопросы по тегам