OSX Mojave釋出帶來了黑暗模式,眾多改進,其中一個功能就在能夠根據你當地所處的時間,動態切換系統背景
動態桌布
大家都知道,apple得益於自身的封閉特性,擁有眾多自身所特有的特殊格式,這次的動態背景其實就是依託於背後的Heic格式
Heic格式
如果你使用過apple的live photo 就會發現其匯出的格式就是heic, 這其實就是一個類似一個短視訊的格式,利用它, 我們將多張照片以及他們的時區等資訊直接整合,輸出成一張heic圖片,就能提供給Mojave使用了
開始構建吧
工具篇
關於工具,已經有人在github上開源了相關的構建指令碼,不過請注意,只有Mac可以使用哦 工具地址
開始
安裝工具
工具有兩種安裝模式 Homebrew 以及 github安裝,當然 如果你新裝了系統,有些Xcode功能需要重新安裝, 請先安裝xcode-select並且輸入sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Homebrew
開啟你的命令列輸入
brew tap mczachurski/wallpapper
brew install wallpapper
複製程式碼
github安裝
開啟你的命令列,輸入
git clone https://github.com/mczachurski/wallpapper.git
cd wallpapper
swift build --configuration release
sudo cp .build/x86_64-apple-macosx10.10/release/wallpapper /usr/local/bin
複製程式碼
注意 如果你用的swift4.1請編輯Package.swift
測試工具是否可用
和大多數軟體一樣wallpapper -h
然後你會看到
wallpapper: [command_option] -i inputFile
Command options are:
-h show this message and exit
-o output file name (default is `output.heic`)
-i input file name, json file with wallpaper description
複製程式碼
構建
前面所題,我們需要配置一些照片,並且配置每張照片的資訊,所以新建一個json檔案,內容類似
[
{
"fileName": "1.png",
"isPrimary": true,
"isForLight": true,
"isForDark": false,
"altitude": 27.95,
"azimuth": 279.66
},
{
"fileName": "2.png",
"isPrimary": false,
"isForLight": false,
"isForDark": false,
"altitude": -31.05,
"azimuth": 4.16
},
{
"fileName": "16.png",
"isPrimary": false,
"isForLight": false,
"isForDark": true,
"altitude": -28.63,
"azimuth": 340.41
}
]
複製程式碼
屬性解釋
- fileName – 檔名,對應的圖片名字
- isPrimary – 是否是主圖,heic的預覽圖就是他了,只能有一個
- isForLight – 如果設定為trure,將顯示在該桌布的靜態模式(白天)中
- isForDark – 同上,不過是黑暗模式
- altitude – 太陽和時間相關
- azimuth – 太陽和時間相關
altitude和azimuth可以在keisan.casio.com/exec/system…之中獲取,填入對應時間對應的值即可
生成
wallpapper -i <your_json_name>.json
之後你就能獲得一個output.heic啦,將背景桌布設定成他就行~