【问题标题】:How to intercept keyboard shortcuts in GNOME如何在 GNOME 中拦截键盘快捷键
【发布时间】:2011-04-08 12:09:52
【问题描述】:

我想编写一个应用程序,它会拦截一些键盘序列(如 Emacs 中的那些 - “C-c C-c”)并运行一些功能。

如何在 GNOME 中做到这一点?

我应该在哪个级别(内核、X11、窗口管理器)?

【问题讨论】:

  • 你能澄清你的目标吗?你想要全局快捷方式(无论哪个窗口有焦点都被捕获)还是应用程序快捷方式?我是否正确假设您要捕获组合键序列? (“C-c C-c”的意义超出了“C-c 的动作连续两次”)
  • 我想编写没有窗口的应用程序,它将捕获组合的全局序列(在 EMACS 中类似于此,但对于 GNOME),例如当我在 GEdit 中并运行我想要的“Cc Cu”时它在 GEdit 中的选定文本上运行函数大写,当我输入“Cc f”时,它会运行运行 firefox 的函数。

标签: c++ c linux keyboard


【解决方案1】:

要在某个按键上运行 commond,您可以在 metacity 或 compiz 中配置它(取决于您正在运行的)。

对于 metacity 运行 gconf-editor,转到 /apps/metacity/keybinding_commands 并在那里您将看到 command_1 等。在那里您设置要运行的命令,然后在 /apps/metacity/global_keybindings 您设置键绑定以匹配。 run_command_1 的密钥运行 command_1 的命令,依此类推。

对于 compiz,您希望运行 ccsm(“compiz config settings manager”)并使用 Commands 插件来配置它,方式大致相同。

要在 Gedit 中执行操作,据我所知,没有办法这样做,除非您发出的命令有现有的键盘快捷键。在这种情况下,您可能会找到一个将“C-c C-u”翻译成正确的 Gedit 快捷方式的应用程序。但我从来没有这样做过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多