在 emacs 中,将鼠标悬停在其他框架上会导致 Alt 键产生事件

在 emacs 中,将鼠标悬停在其他框架上会导致 Alt 键产生事件

在 emacs 中,如果我打开了两个框架并且鼠标位于另一个框架上(即不在活动框架上),则按下该Alt键会产生<switch-frame>事件。

虽然此事件本身不执行任何操作,但它会破坏诸如 之类的事情yank-pop,如果它像往常一样绑定到 ,它将不再起作用M-y(因为不是命令序列yank-> yank-pop,而是现在我们有yank-> handle-switch-frame-> yank-pop,这会给出错误“用户错误:上一个命令不是拉出”)。

我对 X-Windows 了解不多,不知道这是 emacs 的问题还是 x-windows 的问题。但这很烦人。我该怎么办?

[尝试了 Emacs 版本 24.5、25.1 和 26.0 以及 Ubuntu 16.10。
我最初在 emacs stack exchange 上发布了此内容,但除了建议在此处发布外,没有收到任何回复。]

答案1

此问题是由于 Unity 向 alt 键添加了信号。表面上的原因是为了让 Unity 可以隐藏菜单,然后使用 Alt 键重新显示它。因此,有两个步骤可以解决此问题:

  1. 在设置|外观|行为中,将“菜单可见性”更改为“始终显示”。

  2. 禁用 Unity 拦截密钥:

    $ dconf write /org/compiz/profiles/unity/plugins/unityshell/show-menu-bar "'Disabled'"

[顺便说一句,我花了一些时间尝试正确解决这个问题,但我从未收到 Unity 团队的回复,而且我没有足够的时间。]

相关内容