您是否尝试过对类似问题的答案详细介绍了什么?/unix//a/183941/141220
您有Arch和一个不常见的WM,因此您可能知道自己必须自己进行一些黑客操作。
在这里重新发布,这来自上面的链接,如果可行,别忘了感谢用户mikeserv,因为我在这里主要是使者。
以下内容可能适合您:
#!/bin/sh
unset X Y; sleep 1
eval "$(xdotool getmouselocation -shell 2>/dev/null)"
for n in X Y; do : "$(($n-=$n>25?25:$n))"; done
xwd -root -silent |
xv - -crop "$X" "$Y" 50 50 \
-geometry "50x50+$X+$Y" \
-nodecor -viewonly -rv -quit
这取决于三个工具xv
,xwd
和xdotool
。前两个是非常常见的X实用程序,第三个我可以肯定地说您已经拥有了。
睡眠一秒钟后,xdotool
将鼠标的当前坐标以评估友好的-shell
格式写入其标准输出,例如:
X=[num]
Y=[num]
windowID=[num]
eval
套壳变量相应,并且来自每个的for循环中减去一半即将待显示的图像的大小的$X
和$Y
的值,或者,如果有一个值小于25
,套他们0
。
xwd
将根窗口转储到管道上xv
,该管道在鼠标位置附近裁剪为图像大小,50x50
并在没有任何窗口管理器修饰的情况下在小窗口中的当前鼠标光标下显示图像负片。
最终结果是这样的:
...虽然我猜我的鼠标光标没有出现在屏幕截图中。不过请放心,当我拍照时,它就在那边的白盒子上。
您可以在图像中看到我也是如何将其编写为Shell函数并使其成为背景的。主要是因为这个原因,里面根本没有一个sleep
-如果您已经在底部,按RETURN键将滚动终端,并且xwd
在终端滚动之前足够快地抓取其屏幕图片-这会抵消我的图片中的底片有点,我不喜欢它。
无论如何,由于xv
同时与-viewonly
和-quit
开关一起运行,因此一旦单击鼠标按钮或按下键盘键,它便会消失-但将一直保留到您执行任一个为止。
毫无疑问,您ImageMagick
甚至可以xv
单独进行甚至更复杂的操作-但我只是在鼠标光标下做了一个小否定框。您可以在这里XV文档 和文档为xwd
在man xwd
。