系统规格

系统规格

我需要一个程序,从磁盘位置读取图像/home/me/image.png,将其显示在屏幕上的窗口中,然后每当位于 的图像发生更改时刷新窗口/home/me/image.png

我最喜欢的查看图像的程序是,fehfeh没有在文件更改时刷新自身的内置功能。

我考虑的一种选择是编写 bash 脚本,feh只要文件发生更改,该脚本就会终止并重新打开。但这会在新窗口中显示图像。我想在原始窗口中显示图像。

我尝试了 ImageMagick 的display实用程序,但它在我的机器上不起作用。也许我用display错了?我用了$ display -update 1 /home/me/image.png。 ImageMagick 没有给我任何错误。当我将更改写入磁盘时,它只是无法刷新图像。

当磁盘上的图像发生变化时刷新图像似乎是许多图像查看程序应该支持的基本功能,但我已经尝试了几种图像查看程序,例如fehfim但是eog当磁盘上的图像发生变化时它们都不会刷新。

系统规格

我的外壳是bash。我的窗口系统是i3。我的发行版是 lubuntu。

答案1

sxiv是一个简单的 X 图像查看器,可以在修改图像时自动重新加载图像。它不需要任何特殊选项。只需使用以下命令启动图像:

sxiv <file>

它可以在 Ubuntu 存储库中以软件包名称 找到sxiv

答案2

这有点复杂,但您可以构建一个feh支持--auto-reload使用 Ubuntu / Debian 工具的版本。坦率地说,我不知道为什么默认情况下不启用此功能。

安装构建 feh 所需的任何软件包:sudo apt-get build-dep feh

安装包构建支持:sudo apt-get install build-essential devscripts

创建一个工作目录:mkdir src && cd src

获取上游源码:apt source feh

Chdircd feh-3.6.3或 到您拥有的任何目录

编辑 debian/rules 文件以更改此行:

dh_auto_build --parallel -- PREFIX=/usr exif=1

到:

dh_auto_build --parallel -- PREFIX=/usr exif=1 inotify=1

构建包:debuild -us -uc -b.您可以忽略大多数警告,甚至一些错误。

安装闪亮的新feh包:sudo dpkg -i ../feh_3.6.3-1_amd64.deb

现在,您将有一个feh --auto-reload选项,如果磁盘上的文件发生更改,该选项将自动重新加载文件。与eog或不同的是eom,它将处理部分或损坏的文件,因此如果您以非原子方式更新文件(例如将图像处理程序的输出流式传输到文件),那么它不会损坏并停止显示文件。

您可能需要确保feh不会意外升级apt- 为此,请将其标记为“已保留”:

sudo apt-mark hold feh

如果您希望升级到发行版的上游版本,您可以在将来取消标记:

sudo apt-mark unhold feh

相关内容