有没有办法让我的二进制文件对 Linux 中的某些全局热键做出反应?
题
是否可以监听某个热键(例如:控制键-我)然后执行特定操作?我的应用程序是用 C 编写的,只能在 Linux 上运行,并且没有 GUI。有没有任何库可以帮助完成此类任务?
编辑:例如,amarok 具有全局快捷键,因此,例如,如果您将按键组合映射到操作(假设 控制键-+, 控制键 和 +)您可以在按下按键时执行该操作。如果我会绘制地图 控制键-+ 到音量增加动作,每次我按 控制键-+ 音量应增加一定量。
谢谢
其他提示
你应该看看源代码 xbindkeys.
Xlib 编程相当晦涩难懂,文档很难找到,并且存在微妙的可移植性问题。复制一些久经考验的代码会更好。
一种方法是让您的应用程序在某个端口或套接字文件上侦听传入的请求。
然后,您可以编写一个小型客户端应用程序,连接到该端口或套接字文件并向正在运行的应用程序发送命令。
然后,您可以配置窗口管理器以绑定某些组合键来启动小型客户端应用程序。
在 UNIX 中,您可以通过 终端. 。这让人回想起人们通过直接连接到机器的终端(例如,计算机)访问大型共享计算机的时代。通过串行电缆)。
事实上,“xterm”程序或您在 UNIX 机器上使用的任何衍生程序都被正确地称为 终端仿真器 - 它的行为(从您的角度和操作系统的角度来看)非常像那些老式终端机之一。
这使得以有趣的方式处理输入变得稍微复杂,因为有许多不同类型的终端,并且您的 UNIX 系统必须了解每种终端的功能。这些功能传统上存储在 术语帽 文件,我认为更现代的系统使用 术语信息 反而。尝试
man 5 terminfo
在 Linux 系统上了解更多信息。
现在,好消息是您不需要对终端功能等做太多的事情。拥有一个命令行应用程序,可以通过输入或窗口功能执行有趣的操作。有一个图书馆, 咒骂, ,这会有帮助。抬头
man 3 ncurses
在您的 Linux 系统上了解更多信息。您可能能够在网上找到有关使用 Curses 的不错的教程。