Проблемы с Keymap с NX от Mac OS X Lion до Ubuntu

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

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

My keymap очень неактивен (например, w дает =, delete дает ",", t дает w). Я пробовал:

xmodmap -pke > nxclient.xmodmap

на клиенте и

xmodmap nxclient.xmodmap

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

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

Ответ 1

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

Ответ 2

Добавьте это к концу своего 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

Ответ 3

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

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

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

Был протестирован на Mac Book Pro Mid 2010, 2011 и 2013 годах. Новые машины Retina, похоже, не пострадали от этой ошибки.

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

    xmodmap -pke > osx-keymap
    

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

  • Добавьте в файл некоторые модификаторы (как из ответа 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
    
  • Загрузите файл на машине (username - это ваше имя пользователя для входа в систему на компьютере. Измените его!)

    scp osx-keymap [email protected]:~/.Xmodmap 
    
  • Создайте script на рабочем столе, который можно запустить с помощью мыши, если клавиатура не работает.

    ssh [email protected] <<"STR"
    echo '#/usr/bin/env bash
    xmodmap ~/.Xmodmap;'>~/Desktop/fix_keyboard.sh; chmod +x ~/Desktop/fix_keyboard.sh
    STR
    
  • Подключиться к x2go. В принципе, он должен работать.

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

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

Ответ 4

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

В OSX выполните:

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

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

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

Ответ 5

Что сработало для меня, идет в системное меню → клавиатура → вкладка Макеты → модель клавиатуры → яблоко → Macintosh старое. Однако есть проблемы. Я не могу использовать Control + C, Control + V или клавиши со стрелками. Если ваши клавиши со стрелками работают, я был бы признателен, если бы вы сказали мне, как выглядят ваши варианты клавиатуры .nxs.

Ответ 6

У нас была такая же проблема, хотя и выполнялась 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.

Ответ 7

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