桌寵(window sitter,又稱desktop mascot)是一種趣味軟體,裝了會有一個小人偶坐在電腦視窗上,與使用者互動。
以前有 Shimeji和 MaCoPix等桌寵軟體,但他們已經很久沒更新了。
2023年,Steam又有新一代的 VPet出現。可惜儘管VPet是開源軟體,卻無法在Linux使用,用Proton跑視窗會黑邊。
此時我們可以使用替代方案:Divya Antony J.R開發的「Spirit」
開發者號稱Spirit是21世紀的新一代桌寵軟體,跨平台支援Linux/Windows/macOS。原生效能,執行非常快速。
裝了之後會有一個桌寵跟著你的視窗移動,還會有動作呈現,類似Live2D的感覺。作者也有提供一套API,讓使用者可以跟桌寵互動。
本文將介紹如何安裝Spirit以及自製Spirit桌寵。
1. 在Linux安裝Spirit#
請注意,作者說目前尚不支援Wayland顯示協定。
至 Spirit官網下載AppImage執行檔,按二下安裝主程式。
Spirit主控面板預設的人物是里維兵長,在這個面板可調整桌寵坐的位置。
Spirit的桌寵主要是跟著目前的視窗跑,切換視窗會跟著移動過去。如果視窗最大化,則桌寵會變成坐在右下角,滑鼠移動過去會自動隱藏。
點選File → Quirks,填入程式名字,可設定僅特定視窗才顯示桌寵。
如果要關閉桌寵就是將Spirit主面板關閉。如果桌寵仍持續顯示,就開工作管理員殺死Spirit的行程(AppRun)。
2. 安裝其他Spirit桌寵#
作者有提供其他Spirit桌寵範本,在 這裡下載。
下載後點選File → Load,載入.spirit結尾的檔案。像金木研載入後會播放東京喰種OP。
關於文章一開始提到的範例,你可以到 這裡下載我做的龍驤試用。
3. 跟Spirit桌寵互動#
可用指令控制Spirit桌寵的動作:
# 列出可用動作
./spirit.AppImage list-actions
# 設定動作
./spirit.AppImage set-acton default
作者提供一套API控制桌寵的事件。參考文件 Spirit REST API
例如這個桌寵跟Bash互動的指令稿。用以下指令安裝:
cd
curl -Ls "https://raw.githubusercontent.com/antony-jr/spirit-addons/main/bash_feedback/install.sh" | bash -s
# 解除安裝指令
curl -Ls "https://raw.githubusercontent.com/antony-jr/spirit-addons/main/bash_feedback/uninstall.sh" | bash -s
此指令稿會在Bash指令執行出錯的時候觸發事件,讓桌寵做出不同動作。
4. 製作自己的Spirit桌寵#
Spirit桌寵檔案格式為.spirit
,參考作者的範本修改就能做成自己想要的樣子。最簡單的作法是找個gif,將其轉換成為webp動圖,替換掉作者範本的檔案(.spirit其實就是.zip)。不過檔案壓縮必須使用作者開發的"Ritual"程式。
下面紀錄我自己做的艦隊收藏妖精桌寵的過程。
到 Kancolle Wiki下載素材。
用GIMP編輯圖片,這裡要製作二個圖層,一個圖層就是一個畫格。第一是妖精睜開眼睛,第二個是閉上眼睛。
點選檔案 → Export,檔案命名為
default.webp
,勾輸出為動畫,間隔1000毫秒並重複播放。以此類推,再製作一張視窗最大化時顯示的動圖,命名為
_default
,現在我們有了二張圖片。新增目錄
kancollespirit
,按照下圖結構新增目錄,把圖片檔放進去,音訊則是放到audio
目錄(只接受mp3)。再新增meta.json
。meta.json
填入以下內容:
{
"name": "Toukai 901 AG",
"edition": "2021",
"version": "v0.1.0",
"author": "Ivon",
"copyright": "Artwork Copyright (C) C2 Kikan",
"actions": {
"default": {
"xoff":0,
"yoff": 10,
"scale": 50,
"play": "母港"
}
}
}
- 用
Ritual壓縮成
.spirit
檔:
wget https://github.com/antony-jr/ritual/releases/download/development/ritual-linux-amd64
chmod +x ritual-linux-amd64
./ritual-linux-amd64 make kancollespirit
- 接著就可以用Spirit主程式載入了。