【问题标题】:Keymap issues with NX from Mac OS X Lion to UbuntuNX 从 Mac OS X Lion 到 Ubuntu 的键盘映射问题
【发布时间】:2011-10-24 12:42:40
【问题描述】:

我的 NX 会话的键盘映射出现乱码问题。

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

我的键盘映射非常偏离(例如 w 给出 =,delete 给出“,”,t 给出 w)。我试过了:

xmodmap -pke > nxclient.xmodmap

在客户端上,

xmodmap nxclient.xmodmap

在服务器上,我恢复了许多密钥,但它仍然无法使用。我尝试了 Gnome 键盘布局,但没有奏效。 XFCE 会话也会出现此问题。

如果有任何提示,我将不胜感激。 x2go 使用 Gnome 在客户端和服务器上工作,没有任何问题。不幸的是,它目前不适用于 Mac OS X Lion。

【问题讨论】:

  • 我遇到了同样的问题。你有进步吗?
  • 我也遇到过同样的问题。
  • 我也有同样的问题,但使用的是 x2go 而不是 OpenNX。我怀疑问题出在 XQuartz(OS X X11 实现)。我终于按照这篇文章中的建议使用 xmodmap -pke 并结合@ato 的答案让它工作。这似乎是一种解决方法,但不是真正的解决方案。
  • @Simon 我真的不明白该怎么做。我在 OSX 客户端上使用 xmodmap -pke 创建文件。比?我必须做什么?
  • @SolidSnake 您需要将生成的文件,例如keymap-x2go-osx 文件复制到服务器,并在启动窗口管理器 (WM) 或桌面管理器 (DM) 时调用 xmodmap keymap-x2go-osx。这可以通过例如.xinitrc 来完成,或者在使用 Gnome、KDE ​​等时通过不同的方法来完成。基本上这取决于您使用的 WM/DM,因此您必须参考 WM/ 的文档你正在使用的 DE。

标签: macos remote-desktop keymapping nomachine-nx


【解决方案1】:

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

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

注意:如果您在目标机器上有自定义键映射,它们往往会与x2go 混淆。为了完成这项工作,我需要重置键盘映射并设置一个简单的 English (US)。我使用的是国际英语(美国)和死键,但它不起作用...

已在 2010 年中、2011 年和 2013 年的 Mac Book Pro 上进行了测试。新的 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,然后选择运行
  • 和以前一样,但随后断开连接并使用x2go 重新连接
  • 很遗憾,这不是一个完整的解决方案。据报道,有些计算机无法使用它

【讨论】:

    【解决方案2】:

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

    在 OSX 上:

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

    编辑keymap-x2go-osx.xmodmap 并从@ato 的答案中添加修改器reset,然后将其复制到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
    

    【讨论】:

      【解决方案3】:

      我发现了一个非常简单的解决方案:断开 X2Go 会话并重新连接。这为我解决了 Mac 键盘问题(这似乎在 OS X Lion 之后仍然存在)。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

          学分转到goofrider

          【讨论】:

            【解决方案6】:

            将此附加到xmodmap -pke 生成的nxclient.xmodmap 的末尾以获得可用的布局:

            !
            ! 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
            

            【讨论】:

              【解决方案7】:

              对我有用的是系统菜单 -> 键盘 -> 布局选项卡 -> 键盘型号 -> 苹果 -> Macintosh old。但是,也有问题。我似乎无法使用 Control+CControl+V 或箭头键。如果您的箭头键有效,如果您告诉我您的.nxs 键盘选项是什么样的,我将不胜感激。

              【讨论】:

              • 我刚刚发布的解决方案也解决了箭头键的问题。如果它们对您不起作用,请确保您(暂时)删除所有使用箭头键的键盘快捷键。
              猜你喜欢
              • 2011-10-28
              • 2012-05-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-11-26
              • 1970-01-01
              • 1970-01-01
              • 2013-03-29
              相关资源
              最近更新 更多