如何将选定的图像/屏幕截图复制到剪贴板?

如何将选定的图像/屏幕截图复制到剪贴板?

我目前正在使用 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

然而,这样做有两个问题:

  1. 这会将屏幕截图保存到文件中,然后再将其导入剪贴板。相反,如果可能的话,我希望它将图像直接保存到剪贴板。
  2. 通过使用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

...但仍然存在相同的“纯文本”问题。

我希望的行为:

  1. 当我截屏时,将图像直接放入剪贴板,而无需将其保存为单独的文件。
  2. 当我复制图像时,我希望它像图像一样right_mouse_click -> Copy Image而不是catecho一些原始文本数据进入剪贴板。

(我还希望能够选择一个图像(可能在sxiv)并将其复制/传输到剪贴板,但我会将其保存到此问题之后的另一个问题。)

我该如何创建这样的图像复制行为?

答案1

您不需要文件。摘自maimREADME:

maim -s | xclip -selection clipboard -t image/png

maim默认写入 STDOUT,你可以将其通过管道传输到 xclip — 否

相关内容