Answers:
除了现有答案外,要在终端中以ASCII显示屏幕截图:
xwd -root -display :0 | convert - jpg:- | jp2a - --colors
(需要x11-apps
对xwd
,imagemagick
为convert
和jp2a
)。
xwd -root -display :0 | convert - jpg:- > screenshot.jpg
xwd
从幻数推断出格式,因此最好明确指定输入格式: xwd -root -display :0 | convert xwd:- jpg:- | jp2a - --colors
xwd -name "$win_name" | convert xwd:- /tmp/"$win_name".png
哪里win_name=$(xwininfo -tree -root | grep 'The Window Name Im Looking For' | awk -F\" '{print $2}')
这是使用的解决方案xwd
,几乎所有Xorg安装中都提供了该解决方案:
xwd -root -out screenshot.xwd
该screenshot.xwd
文件可以用GIMP打开:
有关更多信息,请参见http://www.x.org/wiki/UserDocumentation/GettingStarted/。
尝试使用快门
DISPLAY=:0 shutter -f -e -n -o "$HOME/Pictures/screenshot.png"
导入将不起作用,因为未使用根窗口。组合“绕过”它(每个窗口都在其自己的缓冲区中呈现,然后多路复用到显示器上,而不是旧的方式,它们都在“根”窗口上呈现)。
另外,在截屏之前,您需要确保VTY处于活动状态。例如
#!/bin/bash
X :1 &
export DISPLAY=:1
sleep 10 # give time for X to start
gedit &
sleep 10 # give time for app to do something
chvt 8 # ensure the X display is active
shutter -f -e -n -o "$HOME/Pictures/screenshot.png" # screenshot
killall xorg # terminate X
X :0 & sleep 50 && sudo chvt 6 && program & sleep 5 && screenshot
(注意完全是假脚本)。
坐在同一台计算机上,并从与X服务器正在运行的虚拟终端不同的虚拟终端上进行操作不起作用。
在那里进行了解释:http : //www.karlrunge.com/x11vnc/faq.html#faq-linuxvc。引用:
Q-108:我使用Linux虚拟终端(VT)在用户会话之间实现“快速用户切换”(例如Betty在Ctrl-Alt-F7上,Bobby在Ctrl-Alt-F8上,而Sid在Ctrl-Alt上-F1:他们使用这些击键在会话之间切换。主动VT?
这似乎与应用程序(在这种情况下为X服务器处理)如何不在活动VT(有时称为虚拟控制台的VC)上必须“正常播放”有关。也就是说,不应从键盘读取它们。或鼠标或管理视频显示,除非它们具有活动的VT。鉴于看起来XGetImage()调用最终必须从视频硬件本身检索帧缓冲区数据,因此除非X会话对VT进行主动控制,否则x11vnc的轮询将无法工作。
似乎没有解决此问题的简便方法。在这种情况下,即使xwd(1)也不起作用(尝试一下。)例如,在XFree86 / Xorg X服务器中,需要在较低级别上执行某些操作。另外,使用影子帧缓冲区(视频帧缓冲区的副本保留在主内存中)似乎无法解决该问题(上次检查是2007年)。
如果没有人坐在工作站上,而您只想将VT远程切换到与您的X会话相关联的VT(以便x11vnc可以正确轮询它),则可以使用chvt(1)命令,例如“ chvt 7”对于VT#7。