Skip to content

feat(noctalia): sync portable shell preferences#85

Merged
CollieIsCute merged 1 commit into
masterfrom
feat/noctalia-portable-preferences
Jul 14, 2026
Merged

feat(noctalia): sync portable shell preferences#85
CollieIsCute merged 1 commit into
masterfrom
feat/noctalia-portable-preferences

Conversation

@CollieIsCute

@CollieIsCute CollieIsCute commented Jul 14, 2026

Copy link
Copy Markdown
Owner

目的

讓 Noctalia 的常用功能以 chezmoi 的 declarative config 跨機器重現,而不是依賴 GUI 寫入的 ~/.local/state/noctalia/settings.toml。後者優先權較高,且混有暫態與私密資料。

這個 PR 會重現

  • 螢幕使用時間功能開關。
  • Dock:啟用、auto-hide、圖示大小、放大倍率、透明度與不保留空間。
  • 螢幕角落、動畫速度、陰影方向、OSD 透明度。
  • CPU 溫度 activity/critical 門檻。
  • 全域桌布填滿模式 stretch;既有的預設桌布與天氣 Taipei 設定維持 declarative。
  • Noctalia Screen Recorder 與 Timer plugins。
  • Arch/CachyOS 的 gpu-screen-recorder,供 Screen Recorder plugin 使用。

使用方式與限制

  • 新機器執行 chezmoi apply 後,Noctalia 會讀取上述設定;如果曾經透過 GUI 設定相同項目,~/.local/state/noctalia/settings.toml 仍會覆蓋 dotfiles,需移除相應 override。
  • Screen Recorder 仍需要已存在的 xdg-desktop-portal-hyprland;錄影預設輸出目錄由 plugin 使用 ~/Videos/Recordings。
  • 每個輸出 connector(例如 DP-2)各自選的桌布不會同步,避免把公司螢幕名稱套用到其他硬體。

刻意不同步

  • 螢幕使用歷史、clipboard/notification history、recently-used 與 usage counts。
  • GUI state 的其他暫態資料與硬體綁定資料。
  • BongoCat plugin:不在這次需求內。

後續範圍(本 PR 未處理)

  • Greeter 的 auto-sync/polkit 流程。
  • 需在有效 Hyprland session 與至少三個輸出下產生的 desktop/lockscreen widgets。
  • Ubuntu/Debian/Mint 尚未安裝 Noctalia/greetd,因此不屬於完整 Shell/Greeter 支援。

驗證

  • noctalia config validate home/dot_config/noctalia。
  • 以空的 Noctalia state 目錄匯出有效設定,確認所有跨機器偏好存在。
  • GitHub Actions:Arch、CachyOS、Ubuntu、macOS。

@CollieIsCute
CollieIsCute force-pushed the feat/noctalia-portable-preferences branch from bc8598e to e342115 Compare July 14, 2026 18:38
@CollieIsCute
CollieIsCute merged commit f4ecc49 into master Jul 14, 2026
4 checks passed
@CollieIsCute
CollieIsCute deleted the feat/noctalia-portable-preferences branch July 14, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant