549834f343
leo 2026-08-05:「依照 google drive,托盤裡只剩下按右鍵會結束, 其他設定都在這個頁面,點擊托盤的 icon 就立刻展開界面」 ## 托盤 Wails v2 沒有內建托盤 ⇒ 用 energye/systray(Wails 相容分支,支援左鍵事件)。 - 左鍵:直接展開主視窗,**不彈選單** - 右鍵:只有一項「結束 Arcrun」 - 設定全部留在視窗裡,托盤不再是第二套 UI (fyne 版把設定塞下拉選單,leo 早說過「不可能統統塞在下拉選單」) - 關窗=隱藏不結束(daemon 常駐;按 × 就停止同步不符預期) - Dock 不出現 icon:Wails v2.13 的 mac.ActivationPolicy 還沒開放(原始碼是註解掉的) ⇒ 改走 Info.plist 的 LSUIElement,與 fyne 版同一個做法 ## 🔴 順手抓到自己的大漏:這個 App 根本沒有啟動 collector daemon 的**本體**是 `collector direct`(監看/萃卡/上傳),Wails 版我一路沒接 ⇒ 照這樣出貨會是「裝了也不會同步」的空殼。 修:新增 supervise.go,**複用既有 supervisor 套件**(重起退避/狀態機/ t191 的 phase:start/done ⇒「同步中…」),不複製一份(複製=會漂移)。 go.mod 用 replace 指回 collector 主模組。 加/刪資料夾、改 AI 設定後都會 restartWatch(),設定立刻生效。 ## 打包 新增 build-mac.sh:編 collector → wails build → **同綑進 .app** → ad-hoc 重簽。 沒同綑就等於沒有 daemon。 實測(v0.18.0):collector 同綑 15M ✅/LSUIElement=true ✅/版本注入 ✅/已簽 ✅ 兩支機械閘全過。 ⚠️ 未驗:托盤左右鍵的實際行為要真機點(我開不了視窗)。
68 lines
2.4 KiB
Plaintext
68 lines
2.4 KiB
Plaintext
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<!-- 🔴 選單列常駐工具:Dock **不出現** icon(沿用 fyne 版的決定,leo 07-24 裁)。
|
|
Wails v2.13 的 mac.ActivationPolicy 尚未開放,只能走這裡。 -->
|
|
<key>LSUIElement</key>
|
|
<true/>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>CFBundleName</key>
|
|
<string>{{.Info.ProductName}}</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>{{.OutputFilename}}</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>com.wails.{{safeBundleID .Name}}</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>{{.Info.ProductVersion}}</string>
|
|
<key>CFBundleGetInfoString</key>
|
|
<string>{{.Info.Comments}}</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>{{.Info.ProductVersion}}</string>
|
|
<key>CFBundleIconFile</key>
|
|
<string>iconfile</string>
|
|
<key>LSMinimumSystemVersion</key>
|
|
<string>10.13.0</string>
|
|
<key>NSHighResolutionCapable</key>
|
|
<string>true</string>
|
|
<key>NSHumanReadableCopyright</key>
|
|
<string>{{.Info.Copyright}}</string>
|
|
{{if .Info.FileAssociations}}
|
|
<key>CFBundleDocumentTypes</key>
|
|
<array>
|
|
{{range .Info.FileAssociations}}
|
|
<dict>
|
|
<key>CFBundleTypeExtensions</key>
|
|
<array>
|
|
<string>{{.Ext}}</string>
|
|
</array>
|
|
<key>CFBundleTypeName</key>
|
|
<string>{{.Name}}</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>{{.Role}}</string>
|
|
<key>CFBundleTypeIconFile</key>
|
|
<string>{{.IconName}}</string>
|
|
</dict>
|
|
{{end}}
|
|
</array>
|
|
{{end}}
|
|
{{if .Info.Protocols}}
|
|
<key>CFBundleURLTypes</key>
|
|
<array>
|
|
{{range .Info.Protocols}}
|
|
<dict>
|
|
<key>CFBundleURLName</key>
|
|
<string>com.wails.{{.Scheme}}</string>
|
|
<key>CFBundleURLSchemes</key>
|
|
<array>
|
|
<string>{{.Scheme}}</string>
|
|
</array>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>{{.Role}}</string>
|
|
</dict>
|
|
{{end}}
|
|
</array>
|
|
{{end}}
|
|
</dict>
|
|
</plist>
|