最近我想做一个小的实用程序,让我可以任意重新映射键盘上的键,以对应不同的字符输入。
从系统编程的角度来看,这通常是如何实现的,我应该参考什么来学习如何做到这一点?
谢谢!
最佳答案
我可能弄错了,但我相信这完全取决于你在运行什么(你的窗口管理器是什么)。例如,如果正在使用openbox(例如lubuntu)运行某个程序,则可以引用以下内容:
http://openbox.org/wiki/Help:Bindings
Gnome也有类似的概念。如果你想改变Gnome,你可能想围绕GNOMETACH工具如何改变事情达到顶峰(特别是看看keybindings——tweak做的更多!).
在这两种情况下,我都建议使用Python(gnome tweak工具将是如何做到这一点的一个很好的参考点),因为它非常方便地编写gui,并允许您轻松地更改必要的文件:)
如果你正在使用Ubuntu,这篇文章可能对你有用:
https://askubuntu.com/questions/115333/how-do-i-disable-the-sleep-button-on-my-keyboard
他们的问题是针对一个特定的关键,但前两个答案是相关的。使用dconf工具的答案可以帮助您更好地了解事物的位置。
因此,最终,您将需要以不同的方式配置一些文件,但这些文件的位置和更改方式取决于您的窗口管理器。
上面的说明对于禁用CAPS_LOCK或交换L_SHIFT和L_CTRL之类的操作很有用。如果你问的是一般性的改变任何键盘输入,那么幕后还有很多事情要做。您可能需要阅读这篇文章,以获得对当前情况的良好解释:
http://www.linuxjournal.com/article/1080
因此,如果要重新映射,比如切换“a”和“f”键,则需要捕获“a”的key event,然后改为发送“f”键事件。有很多方法可以查看按下的键,这可能是一个很好的开始:
https://superuser.com/questions/248517/show-keys-pressed-in-linux
在这个层次上改变事情要困难得多/危险得多,所以一定要小心!
希望能帮上一点忙!如果这不是你想要做的,请在你的问题中包含更多关于你的计划的实际目标是什么的信息。