我目前正在使用 Manjaro,但我希望将来迁移时也能使用 Arch。我目前使用 i3,但计划切换到 dwm。
要将屏幕截图放入剪贴板,我目前在 i3 配置中使用以下命令:
bindsym Print exec --no-startup-id maim /tmp/screenshot.png && cat /tmp/screenshot.png | xclip -selection clipboard -t image/png
然而,这样做有两个问题:
- 这会将屏幕截图保存到文件中,然后再将其导入剪贴板。相反,如果可能的话,我希望它将图像直接保存到剪贴板。
- 通过使用
cat
,图像的复制方式取决于要复制到的目标。例如,在 Facebook 上,它会在聊天框中作为图像复制(这很好),但当我将其粘贴到“帖子”框时,会复制原始文本。但是,right_mouse_click -> Copy Image
在图像上使用 根本不会出现这个问题。
我看过这个问题并尝试使用:
bindsym Print exec --no-startup-id maim /tmp/screenshot.png && xclip -selection clipboard -t "$(file -b --mime-type "$img")" < /tmp/screenshot.png
...但仍然存在相同的“纯文本”问题。
我希望的行为:
- 当我截屏时,将图像直接放入剪贴板,而无需将其保存为单独的文件。
- 当我复制图像时,我希望它像图像一样
right_mouse_click -> Copy Image
而不是cat
或echo
一些原始文本数据进入剪贴板。
(我还希望能够选择一个图像(可能在sxiv
)并将其复制/传输到剪贴板,但我会将其保存到此问题之后的另一个问题。)
我该如何创建这样的图像复制行为?
答案1
您不需要文件。摘自maim
README:
maim -s | xclip -selection clipboard -t image/png
maim
默认写入 STDOUT,你可以将其通过管道传输到 xclip — 否