feh

出自 ArchWiki

出自 Wikipedia

feh 是一款轻量级的图像查看器,主要面向命令行界面的用户。与大多数图形图像查看器不同,feh 没有任何图形控制元素(可选的文件名显示除外),这使其也可以在运行 X 窗口系统的系统上用于显示背景图像。

安装

安装 feh 软件包。

用法

feh 是高度可配置的。有关完整选项列表,请运行 feh --help 或参阅 feh(1) man page

浏览图像

要快速浏览特定目录中的图像,您可以使用以下参数启动 feh

$ feh -g 640x480 -d -S filename /path/to/directory
  • -g 标志强制图像显示不大于 640x480
  • -d 标志绘制文件名
  • -S filename 标志按文件名对图像进行排序

这只是一个示例;如果您需要更高的灵活性,还有更多选项可用。

提示: --start-at 选项将在 feh 中显示选定的图像,同时允许浏览目录中的所有其他图像,并且按照默认顺序,即,就像您运行了 feh * 并循环浏览到选定的图像一样。例如,feh --start-at ./foo.jpg . 查看当前目录中的所有图像,从 foo.jpg 开始。

设置壁纸

feh 可用于设置桌面壁纸,例如对于没有此功能的窗口管理器,如 Openbox、Fluxbox 和 xmonad。

以下命令是如何设置初始背景的示例

$ feh --bg-scale /path/to/image.file

其他缩放选项包括

--bg-tile FILE
--bg-center FILE
--bg-max FILE
--bg-fill FILE

要在下次会话时恢复背景,请将以下内容添加到您的启动文件(例如 ~/.xinitrc~/.config/openbox/autostart 等)

~/.fehbg &

要更改背景图像,请编辑文件 ~/.fehbg,该文件在运行上述命令 feh --bg-scale /path/to/image.file 后创建。

可以通过同时传递 --no-fehbg 标志来显式禁用 ~/.fehbg 的创建。

要为不同的显示器设置不同的壁纸,应该传递与可用显示器数量相同的文件路径。例如,对于双显示器设置,它将是

$ feh --bg-center path/to/file/for/first/monitor path/to/file/for/second/monitor

打开 SVG 图像

$ feh --conversion-timeout 1 file.svg

请注意,这需要 imagemagick 软件包。

随机背景图像

您可以使用 --randomize 选项和 --bg-foo 选项之一,让 feh 设置随机壁纸,例如

$ feh --bg-fill --randomize ~/.wallpaper/*

上面的命令告诉 feh 随机化 ~/.wallpaper/ 目录中的文件列表,并将所有可用桌面的背景设置为随机列表前端的图像(每个桌面一张独特的图像)。如果您的壁纸分为子文件夹,您也可以递归地执行此操作

$ feh --recursive --bg-fill --randomize ~/.wallpaper

要在每个会话中从 ~/.wallpaper 设置不同的随机壁纸,请将以下内容添加到您的 .xinitrc

$ feh --bg-max --randomize ~/.wallpaper/* &

在每个 xorg 会话中设置随机壁纸的另一种方法是如下编辑您的 .fehbg

$HOME/.fehbg
feh --bg-max --no-fehbg --randomize ~/.wallpaper/* 
提示: 要定期更改壁纸,请使用脚本(参见 while 循环)、cron 任务或 systemd 计时器,以在所需的时间间隔执行命令。

故障排除

在 cron 任务中使用

要在 cron 任务中使用 feh 来随机化您的壁纸,您必须指定 DISPLAY 环境变量

DISPLAY=:0 feh --bg-max --randomize ~/.wallpaper/*

请注意,某些显示管理器(如 sddm)可能不会将 XAUTHORITY 文件保存在 feh 期望的 ~/.Xauthority 中,这会导致 cron 任务抱怨:“需要授权,但未指定授权协议”