获取 curses 应用程序的屏幕截图

Get screenshot of curses application

在远程站点,我是 运行 curses based application at a virtual console。如果我不在现场检查应用程序,我可以使用以下任何命令查看发生了什么:

$ sudo screenshot 1
$ sudo cat /dev/vcs1

但是当我使用这些命令时,着色和边框被搞砸了。

所以这大致就是我想要的我得到的:

我能以某种方式正确显示颜色和边框(以及所有其他内容)吗?我在想这样的事情:

$ sudo mysuperscreenshot 1
$ sudo cat /dev/vcs1 > out.txt; vim out.txt
$ sudo cat /dev/vcs1 > out.txt; mysuperviewer out.txt
$ sudo myterminalimport /dev/vcs1 > out.png

您可能已经注意到远程计算机上没有 X,因此 importgnome-screenshot 之类的东西将不起作用(至少据我所知)。

这可能吗?在那种情况下如何?我是否遗漏了一些参数或应用程序?

如果不可能:那是为什么?我是否遗漏了一些概念性的东西使这个问题有缺陷?

您可以从虚拟控制台设备读回的数据省略了视频属性——只有占据每个单元格的 8 位字符。没有可以为您提供此信息的系统调用(请参阅 console_ioctl 手册页)。

如果您 运行 您的应用程序使用 screen(或 tmux 等),那么您可以连接到该应用程序并在你的本地机器,需要注意的是,如果远程机器没有使用 UTF-8 语言环境,那么两者都不可能很好地绘制线运行。