1.0、参考
1.1、feh简介
是什么 ?:an X11 image viewer aimed mostly at console users. Unlike most other viewers, it does not have a fancy GUI, but simply displays images. It is controlled via commandline arguments and configurable key/mouse actions.
开发语言:C
官方主页:http://feh.finalrewind.org
1.2、通过包管理器安装feh
操作系统包管理器安装命令
macOSHomeBrewbrew install feh
GNU/LinuxLinuxBrewbrew install feh
aptsudo apt-get install -y feh
CentOSyum参考
dnfsudo dnf install -y feh
openSUSEzyppersudo zypper install -y feh
Alpine Linuxapksudo apk add feh

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm feh
Gentoo LinuxPortagesudo emerge feh
1.3、通过源码安装feh 

step1、安装依赖

下载时cURL
解压时tarbzip2
编译时POSIX shGNU CoreUtilsmakeGCC ( gcc )   | LLVM / Clang
运行时

step2、使用curl命令下载feh源码包 (

curl -LO https://feh.finalrewind.org/feh-3.3.tar.bz2

step3、使用tar解压feh源码包

tar vxf feh-3.3.tar.bz2

step4、进入feh-3.3目录

cd feh-3.3

step5、查看feh-3.3目录的内容

step6、创建构建目录,并进入该目录

mkdir build && cd build

step7、配置编译参数

编译参数都在config.mk中。

配置编译参数可以直接编辑config.mk文件。

VAR默认值说明
curl1是否使用cURL(libcurl)
exif0是否使用libexif
xinerama1是否使用libXinerama
debug0是否定义宏DEBUG
help0是否定义宏INCLUDE_HELP
verscmp1是否定义宏HAVE_VERSCMP

step8、使用make进行编译

make [option]... [VAR=VALUE]... [TARGET]...
VARVALUE示例说明
CCgcc |  clang指定C编译器命令
CFLAGS-O2 -v指定C编译器命令的参数
CPPcpp指定C预处理器命令
CPPFLAGS-I<includeDir>指定C预处理器命令的参数
LDFLAGS-L<libDir>指定C链接器命令的参数
LIBS-l<libName>指定C链接器要链接的库的名称

示例:

CPUCoreCount=$(grep -c processor /proc/cpuinfo)
jobCount=$((CPUCoreCount + 1))

make -j${jobCount} CFLAGS="-O2 -v"

step9、安装

sudo make install PREFIX=/usr
1.4、feh命令
feh mywife.jpg

主界面:

设置随机桌面:

我们可以建立一个文件夹~/wallpaper,在其中放入多张图片,并在桌面系统的配置文件中进行开机启动。

exec feh --randomize --bg-fill ~/wallpaper