NX从Mac OS X Lion到Ubuntu的键盘映射问题

时间:2011-08-10 22:36:38

标签: macos remote-desktop keymapping nomachine-nx

我的NX会话密钥映射出现乱码问题。

我有一台运行OS X Lion的Macbook Air。我使用OpenNX与运行FreeNX的Ubuntu服务器启动会话。会话类型是Gnome。

我的关键图非常关闭(例如,w给出=,删除给出“,”,t给出w)。我试过了:

xmodmap -pke > nxclient.xmodmap

在客户端上,

xmodmap nxclient.xmodmap
在服务器上

我恢复了很多密钥,但它仍然无法使用。我尝试了Gnome键盘布局但没有工作。 XFCE会话也会出现问题。

我会很感激任何提示。 x2go使用Gnome在客户端和服务器上工作,没有任何问题。不幸的是,它目前无法在Mac OS X Lion上运行。

7 个答案:

答案 0 :(得分:3)

我找到了一个非常简单的解决方案:断开X2Go会话并重新连接。这为我修复了Mac键盘问题(这似乎超出了OS X Lion)。

答案 1 :(得分:3)

我想提供一个完整的实用解决方案。我在一些 Fedora FC20 机器上遇到了同样的问题。这是应该复制和粘贴的完整方法。

username是您使用ssh远程连接到需要运行x2go的计算机的用户名,machine是该计算机的主机名。

注意:如果目标计算机上有自定义键映射,则会导致x2go陷入困境。为了完成这项工作,我需要重置键映射并设置一个裸英语(美国)。我正在使用国际英语(美国)与死键,但它无法正常工作......

已经在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联系。基本上它应该可以工作。

  6. 如果仍然无效,请尝试:

    • 断开连接并与x2go
    • 重新连接
    • 使用鼠标点击桌面上的run_keyboard.sh,然后选择运行
    • 和以前一样,然后断开连接并重新连接x2go
    • 不幸的是,这不是一个完整的解决方案据报道,有些计算机无法使用它

答案 2 :(得分: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 :(得分:1)

这个答案是由@Simon在问题的评论中给出的,对我有用(x2go / Xquartz):

在OSX上执行:

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

编辑keymap-x2go-osx.xmodmap并从@ ato的答案添加修饰符重置,然后将其复制到VM:

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

答案 4 :(得分:0)

对我有用的是进入系统菜单 - &gt;键盘 - &gt;布局标签 - &gt;键盘模型 - &gt; apple - &gt; Macintosh旧。但是,有一些问题。我似乎无法使用 Control + C Control + V 或箭头键。如果您的箭头键有效,如果您告诉我.nxs键盘选项的样子,我将不胜感激。

答案 5 :(得分:0)

我们遇到了同样的问题,虽然运行xfce,但这与gnome2类似。我刚刚找到了解决方案(运行Mac OSX 10.9.1):

  • 下载最新的x2go客户端(发布时为4.0.1.3)
  • 将x2go会话设置为“自动检测键盘设置”
  • 连接并意识到,例如tabulator仅在您另外按下控制键时才起作用。
  • 解决方案:编辑“〜/ .config / xfce4 / xfconf / xfce-perchannel-xml / xfce4-keyboard-shortcuts.xml”中的键盘快捷键(在服务器上)并删除设置为“Super”的条目+标签“
  • 享受您的功能键盘

积分转到goofrider

答案 6 :(得分:0)

尝试将您的Shell从tcsh更改为bash。 Tcsh导致键盘问题。