Feh (简体中文)

From ArchWiki
Jump to: navigation, search

Feh是一个轻量级、强大的图像查看器,同时它也可以用来管理桌面壁纸,特别适合缺少这类特性的独立窗口管理器。

安装

feh 可从官方源安装:

# pacman -S feh

用法

feh具有很高的可配置性。运行feh --help可以得到详细的选项列表。

图像浏览

要快速的浏览指定目录里的图像,你可以用以下参数启动feh:

$ feh -g 640x480 -d -S filename /path/to/directory
  • -g 选项强制图像的显示大小不大于640x480
  • -S filename 选项按文件名排列图像

这只是一个小例子,它还有其他大量选项可供你灵活使用。

文件浏览器图片启动器

下面的脚本原来贴在 这里,对于文件管理器很有用。它会先在 feh 中显示你选中的图片,但是它同时也允许你浏览该目录中的其他图片(按照默认顺序,也就是说,与你直接运行 "feh *" 的顺序相同)。

该脚本假设第一个参数是文件名。

#!/bin/bash

shopt -s nullglob

if [[ ! -f $1 ]]; then
	echo "$0: first argument is not a file" >&2
	exit 1
fi

file=$(basename -- "$1")
dir=$(dirname -- "$1")
arr=()
shift

cd -- "$dir"

for i in *; do
	[[ -f $i ]] || continue
	arr+=("$i")
	[[ $i == $file ]] && c=$((${#arr[@]} - 1))
done

exec feh "$@" -- "${arr[@]:c}" "${arr[@]:0:c}"

使用选中的路径调用该脚本,接着是可选的传递给 feh 的参数。这是一个你可以在文件浏览器中调用的例子:

 /path/to/script %f -F -Z

-F-Z 是 feh 的参数。 -F 用全屏模式打开图片,-Z 自动缩放图片。添加 -q 标志 (quiet) 抑制终端中的当 feh 视图打开当前文件夹中的非图片文件时的错误输出。

桌面壁纸

feh也适合缺少管理桌面壁纸特性的独立窗口管理器,例如OpenboxFluxbox。以下命令是一个设置初始背景的例子:

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

其它缩放选项包含了:

--bg-tile FILE
--bg-center FILE
--bg-seamless FILE

要在下一次会话期恢复背景,把以下内容加入到你的启动文件(例如~/.xinitrc、~/.config/openbox/autostart.sh等):

eval `cat ~/.fehbg` &

随机背景图片

为了随机切换桌面壁纸,用下面的代码创建一个脚本 (例如 wallpaper.sh)。设置脚本为可执行 (chmod +x wallpaper.sh) 然后从 ~/.xinitrc 中调用。你也可以直接把代码放置在 ~/.xinitrc 中而不是放在单独文件中。

按照您的需要更改 ~/.wallpaper 目录,以及 15m 延时 (参见 man sleep 查看选项)。

#!/bin/sh

while true; do
	find ~/.wallpaper -type f \( -name '*.jpg' -o -name '*.png' \) -print0 |
		shuf -n1 -z | xargs -0 feh --bg-scale
	sleep 15m
done

下面的版本不会fork太多次,但是无法递归到子目录:

#!/bin/bash

shopt -s nullglob
 
cd ~/.wallpaper

while true; do
	files=()
	for i in *.jpg *.png; do
		[[ -f $i ]] && files+=("$i")
	done
	range=${#files[@]}

	((range)) && feh --bg-scale "${files[RANDOM % range]}"

	sleep 15m
done