這是一款把您的Linux桌面變成動態桌布(dynamic wallpaper)的命令行程式。
Github開發者Alexis Maiquez以教育程式的名義,製作了Linux版的「Linux Wallpaper Engine」。靠著這款開源程式,我們就能夠讀取Steam工作坊上的Wallpaper Engine桌布,藉此將其作為Linux桌面的背景。
可以播放部份帶有3D特效的動態桌布,光點、水波紋的特效的支援程度還不賴。
或是播放影片類桌布
經測試,本程式適用i3wm、awesome、dwm、Sway、Hyprland、Wayfire、KDE、XFCE、Cinammon、Deepin、LXQT、Mate桌面。X11與Wayland皆可。
但是GNOME不支援。別太灰心,有開發者製作了相容GNOME的改進版本。
考慮到本程式需要打指令,比較適合給視窗管理器的用戶使用。你只要在登入啟動的exec
處加入linux-wallpaperengine
指令就可以了。
本文將簡介Linux Wallpaper Engine的指令用法。如果要圖形化程式請參閱文末的其他動態桌布方案,那些方案多半有用到本程式的程式碼。
1. 安裝linux-wallpaperengine#
參照作者的 Github
Ubuntu 22.04要手動編譯。編譯後會得到linux-wallpaperengine
執行檔,執行指令為./linux-wallpaperengine
。
sudo apt-get update
sudo apt-get install build-essential cmake libxrandr-dev libfreeimage-dev libxinerama-dev libxcursor-dev libxi-dev libgl-dev libglew-dev freeglut3-dev libsdl2-dev liblz4-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libxxf86vm-dev libglm-dev libglfw3-dev libmpv-dev mpv libmpv1 libpulse-dev libpulse0
git clone https://github.com/Almamu/linux-wallpaperengine.git
cd linux-wallpaperengine
mkdir build
cd build
cmake ..
make
Arch Linux可以從AUR裝,執行指令為linux-wallpaperengine
yay -S linux-wallpaperengine-git
2. 取得Wallpaper Engine桌布#
於Linux安裝 Steam,至Steam商店購買 Wallpaper Engine:桌布引擎,以Proton執行。
如果你不是使用KDE,那大機率Wallpaper Engine主界面叫不出來。若要繞過Wallpaper Engine下載桌布的話,在Steam收藏庫對Wallpaper Engine按右鍵 → 內容 → 工作坊,點選「造訪工作坊」,從Steam工作坊網頁訂閱桌布下載。
查找Wallpaper Engine程式資料的位置,我們需要它
assets
目錄下的檔案。Flatpak版Steam預設應該會放在/home/使用者名稱/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/wallpaper_engine/assets/
接著找到Steam下載桌布的路徑,從下圖可看到,每個桌布目錄都會有一組數字代表。他們都位於目錄
/home/使用者名稱/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/
3. linux-wallpaperengine指令用法#
有二個必要參數:--assets-dir
指定Wallpaper Engine的assets目錄的絕對路徑。接著最後面接上你要用的桌布路徑+數字。
比如執行以下指令
linux-wallpaperengine \
--assets-dir "/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/wallpaper_engine/assets/" \
"/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2832263418"
預設模式下,會跳出檢視該桌布的獨立視窗。從這裡可以確定該桌布是否有正常運作。目前一些3D場景、應用程式類的桌布無法顯示,但影片是絕對沒問題的。
如果要將其設定為Linux桌布,先執行xrandr
指令取得所有螢幕的名稱(Wayland也可以用xrandr呦)
再用--screenroot
指定該螢幕要顯示哪個桌布。如果有多個螢幕得寫二次--screenroot
,分開指定桌布。
linux-wallpaperengine \
--assets-dir "/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/wallpaper_engine/assets/" \
"/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2832263418" \
--screen-root eDP-1
加上--fps 60
參數可提高桌布幀率,--noautomute --volume 100
讓桌布播放聲音,--slient
靜音。--scaling fit
調整縮放方式。
linux-wallpaperengine還可以讀取桌布的數值,藉此開關某些效果。
linux-wallpaperengine \
--list-properties \
--assets-dir "/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/wallpaper_engine/assets/" \
"/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2832263418"
不過沒有圖形界面,只能看文字瞎猜了。
以上面的為例,使用--set-property
調整該桌布的設定
linux-wallpaperengine \
--set-property newproperty1=1 \
--assets-dir "/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/wallpaper_engine/assets/" \
"/home/user/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2832263418"
其他Linux動態桌布方案#
圖形化Wallpaper Engine程式:
- fantascene-dynamic-wallpaper:支援GNOME桌面的Wallpaper Engine。
- wallpaper-engine-kde-plugin:將Wallpaper Engine與KDE Plasma桌面整合的插件。
Linux上各種Wallpaper Engine程式的價值在於利用Steam工作坊的大量現成Wallpaper Engine桌布。但若只是想播影片當動態桌布的話,那麼 swww和 mpvpaper會是更輕量的選擇。