如何在终端应用程序(例如Konsole)发送转义序列时捕获转义序列?例如,如果你点击 PgDown ,会发送什么到虚拟控制台?
我想记录发送到虚拟控制台的字节流(比如当我点击" Ctrl + C"它产生什么转义序列)到一个文件,我可以用hexdump读取。
答案 0 :(得分:0)
我做了一个小蟒蛇脚本来做这个伎俩:
#!/bin/env python
import curses
from pprint import pprint
buf = ''
def main(stdscr):
global buf
curses.noecho()
curses.raw()
curses.cbreak()
stdscr.keypad(False)
stop = stdscr.getkey()
c = stdscr.getkey()
buf = ''
while c != stop:
buf += c
c = stdscr.getkey()
def run():
curses.wrapper(main)
pprint(buf)
tmp = buf.encode('latin1')
pprint([hex(x) for x in tmp])
pprint([bin(x) for x in tmp])
run()
...清除屏幕,然后键入一个键(例如 a ),然后键入任何内容,并键入与要停止的第一个键相同的键。然后,它将显示收到的所有字节(例如: a [开始录制]
Alt + b [停止录制] a 使用我的终端生成字节:['0x1b', '0x62']