我在 Arch Linux 中遇到了 Feh 的奇怪问题。当我开始 openbox 会话时,feh 加载背景一瞬间,然后它就消失了。如果我手动加载背景,那么 feh 将在会话的剩余时间内完美运行,但在启动时总是失败。
我正在运行 Arch Linux(当前)和 Openbox 3。
相关文件:
〜/.config/openbox/autostart.sh
# Set a background color
BG=""
if which hsetroot >/dev/null 2>&1; then
BG=hsetroot
else
if which esetroot >/dev/null 2>&1; then
BG=esetroot
else
if which xsetroot >/dev/null 2>&1; then
BG=xsetroot
fi
fi
fi
test -z $BG || $BG -solid "#303030"
# D-bus
if which dbus-launch >/dev/null 2>&1 && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
eval `dbus-launch --sh-syntax --exit-with-session`
fi
if test -x /usr/libexec/gnome-settings-daemon >/dev/null; then
/usr/libexec/gnome-settings-daemon &
elif which gnome-settings-daemon >/dev/null 2>&1; then
gnome-settings-daemon &
elif which xfce-mcs-manager >/dev/null 2>&1; then
xfce-mcs-manager n &
fi
if which start_kdeinit >/dev/null 2>&1; then
LD_BIND_NOW=true start_kdeinit --new-startup +kcminit_startup &
fi
# Run XDG autostart things. By default don't run anything desktop-specific
# See xdg-autostart --help more info
DESKTOP_ENV="OPENBOX"
if which /usr/lib/openbox/xdg-autostart >/dev/null 2>&1; then
/usr/lib/openbox/xdg-autostart $DESKTOP_ENV
fi
## My startup programs:
cairo-compmgr &
pypanel &
sh ~/.fehbg &
〜/.fehbg
feh --bg-fill '/home/cknadler/Wallpaper/wall.jpg'
此时,我要么正在寻找一种解决方案,使 feh 在每次启动会话时都正确加载,要么可能是在 openbox 中加载背景的替代 feh。任何一个都将不胜感激,谢谢。
答案1
几乎可以肯定 feh 正在加载后台,然后在启动过程的其余部分中会重置 X 背景。我怀疑这与您启动 gnome-settings-daemon 的事实有关。这将启动一系列巨大的事情,其中包括设置背景和其他桌面设置(例如字体渲染)。您应该删除启动脚本的某些部分,直到找到正在重置背景的部分,但我几乎可以肯定您会发现它是 gnome-settings-daemon。
您可以通过延迟启动 feh 来解决这个问题,让 gnome-settings-daemon 完成相关操作。
(睡眠 2 ; feh --bg-fill ~/wall.jpg ) &