如何从 GNOME 中的窗口上下文菜单中取消分配 Alt 键

如何从 GNOME 中的窗口上下文菜单中取消分配 Alt 键

当我使用 GNOME Shell 和 GNOME 连接管理器程序,并在 Midnight Commander 中尝试Alt+ S(全部在 GNOME 连接管理器内)时,我打开了一个窗口上下文菜单,而不是搜索动作MC 中的快捷方式。这只是一个例子:其他程序中也有这个问题。

我无法通过描述的键盘快捷键设置来解决这个问题在这个 Ask Ubuntu 答案中。没有“键盘快捷键”这样的菜单项。

同时使用Escape钥匙的诀窍这并不好,因为它是一种变通方法,而不是真正的解决方案。

我怎样才能简单地禁用这个特定的Alt按键行为?

答案1

GNOME 连接管理器正在拦截Alt其自身菜单的组合键,并拒绝将其传递给其托管的 shell(您的 MC 实例正在其中运行)。这是不可配置的。

这是 GNOME 连接管理器的一个错误,或者准确地说是它使用的 GUI 库 (Gtk) 中的一个错误,所以唯一的好解决办法是他们的网站并报告该错误。

另一种方法是向 GTK 提交有关“Alt 被硬编码”的错误,但您需要很大的号召力和毅力才能说服他们让 Alt 可配置。所有替代方案都是变通方法,其中 ESC 键技巧是最优雅的。

答案2

有一个确实有效的解决方法。(测试于Ubuntu 15.10和 Gnome 连接管理器v1.1.0

对我来说,主要问题在于我经常使用的Alt+ ,但在 GCM 中它显示文件菜单。F

我的解决方案是修改语言文件(en_US.po)并删除所有菜单助记符(例如_FileFile_

cd /usr/share/gnome-connection-manager/lang
sudo sed -i -e 's/"_File"/"File_"/g' -e 's/"_Edit"/"Edit_"/g' -e 's/"_View"/"View_"/g' -e 's/"_Servers"/"Servers_"/g'  -e 's/"_Help"/"Help_"/g' en_US.po
msgcat en_US.po | sudo msgfmt -o en/LC_MESSAGES/gcm-lang.mo -

它将删除所有菜单快捷键:Alt+F、Alt+E、Alt+V、Alt+S、Alt+H。

Gnome 连接管理器还有一个硬编码的快捷方式:Alt+ A(打开“添加主机”对话框)。您也可以在文件中禁用它gnome-connection-manager.glade

cd /usr/share/gnome-connection-manager/
sudo sed -i 's/(<accelerator key="a" modifiers="GDK_MOD1_MASK" signal="clicked"\/>)/<!-- \1 -->/g' gnome-connection-manager.glade

相关内容