【问题标题】:Change the escape sequence generated更改生成的转义序列
【发布时间】:2012-08-11 15:56:46
【问题描述】:

这个问题是我上一个问题的一般版本:Change the escape sequence generated by xterm for key combinations。 关于如何更改 xterm 生成的转义序列(通过主目录中的 .Xresources 文件更改其转换表),我有一个很好的答案。

现在我想知道是否有更通用的方法来更改 linux (Ubuntu/CentOS) 中生成的转义序列。我的意思是,我希望更改不仅适用于 xterm,也适用于 gnome-terminals。我正在考虑使用 terminfo 来执行此操作,但我尝试并修改、重新编译了 terminfo,但无法获得 ^[O5Q 在终端中按 Ctrl+F2 的响应。

我也尝试了以下方法但没有成功:

  • xmodmap,但是对于组合键它不起作用
  • xdotool windowactivate xyz type ^[O5P,这会返回单个字符的字符代码
  • xmacro,它不会将击键发送到其他窗口
  • ironahk,我刚开始尝试运行 example.ahk 时遇到错误,但在其简易手册中找不到我想要的命令。
  • bind '\e[1;5P":"\e[O5P"', 这里的第一个键码是我当前输入 ctrl+f1 时得到的,然后是我希望通过这个组合得到的键码。没有效果.
  • xbindkeys + xvkbd,也没有用

提前致谢。

【问题讨论】:

    标签: linux keyboard terminal centos terminfo


    【解决方案1】:

    没有通用的方法来做到这一点。每个终端小部件(VTE 等)都有自己的将按键转换为字符序列的方法,有些甚至可能将其硬编码在代码本身中。

    【讨论】:

    • 他们不使用terminfo吗? Sombebody 告诉我,他曾经通过复制旧的 terminfo 文件解决了终端键盘问题。有没有一种简单的方法可以制作我自己的终端,以便按照我想要的方式使用转义序列?
    • 客户端软件正在使用terminfo;不能保证终端也是如此。
    • 所以我从终端运行的软件使用 terminfo 但不能保证终端也是如此......我是对的吗?那么现在,我怎么知道那个软件使用了哪个 terminfo 文件呢?
    • 它使用$TERM 告诉它的任何东西。
    猜你喜欢
    • 1970-01-01
    • 2013-03-31
    • 2013-09-21
    • 2012-02-29
    • 2017-10-21
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2015-05-08
    相关资源
    最近更新 更多