我的目标是设置一个终端,其中命令行界面程序的行为与键盘输入的预期一样(该程序最初是用 xharbour 为 Windows 编写的,但现在我想将它移植到 linux)。我选择 xterm 开始,因为它更简单,无需禁用默认终端组合键。
使用腻子,大多数角色都可以很好地工作,而对于那些不使用的人,我使用自动热键,一个 ahk 脚本就可以了。例如,对于 Ctrl+F1:
^F1::SendInput ^[O5P
我尝试并修改,重新编译 terminfo,更改它并更改键盘类型,但无法获得 ^[O5P 在终端中按 Ctrl+F1 的响应。如果您知道进行此更改的任何方法,请告诉我...我已经阅读了数百页据称可以执行此操作的页面,但是所有这些更改都没有产生任何效果或没有达到预期的效果。
所以我试图修改终端设置以实现我的 Ctrl+F1 到 ^[O5P 目标,并尝试了一些类似于自动热键的命令和程序:
xmodmap
,但对于组合键它不起作用xdotool
windowactivate xyz type ^[O5P,这将返回单个字符的字符代码xmacro
,它不会将击键发送到其他窗口ironahk
,我在开始尝试运行 example.ahk 时遇到错误,并且在其简易手册中找不到我想要的命令。bind '\e[1;5P":"\e[O5P"'
,这里的第一个键码是我当前在键入 ctrl+f1 时得到的,在我希望通过这个组合得到的那个键码之后。没有效果。xbindkeys
+xvkbd
,也没有帮助。
如果您已经知道,请帮助我,设法实现这一点(更改为组合键返回的键码)。
我使用最新的 CentOS 和 Ubuntu 进行测试。