選單列數字與供應商標記更容易辨認
百分比維持原有點數,但改為粗體,整條列約增加 5 點;在淺色桌布前也較容易一眼讀到。供應商標記(provider marks,標示服務來源的小圖樣)則改成單色範本影像,會跟著選單列外觀變化:淺色時顯黑,深色時顯白。它們不再倚賴顏色細節,Codex 標記不會在選單列大小縮成模糊一團;也與一向採同樣畫法的 critters 相符。標記大小現在為 14 至 16 點。
發布日期:2026-08-23
百分比維持原有點數,但改為粗體,整條列約增加 5 點;在淺色桌布前也較容易一眼讀到。供應商標記(provider marks,標示服務來源的小圖樣)則改成單色範本影像,會跟著選單列外觀變化:淺色時顯黑,深色時顯白。它們不再倚賴顏色細節,Codex 標記不會在選單列大小縮成模糊一團;也與一向採同樣畫法的 critters 相符。標記大小現在為 14 至 16 點。
散在 repository root 的 77 個模組,歸進 packages(套件,程式的可匯入資料夾)。menubar/、loaders/、wintray/、discussion/、tui/、updates/ 六個資料夾收進 42 個,root 剩 35 個。這只改 import paths(匯入路徑,程式尋找其他程式碼的位置)。行為不變。虛擬環境外的檔案沒搬;狀態列 hooks(掛鉤,特定事件發生時被觸發的小程式)仍留頂層,因為 usage setup 會複製到家目錄,由系統 Python 執行。main.py 以字串載入模組,搜尋找不到;搬走後,字串可能指向空處,測試仍通過,App 卻無法啟動。新增測試讀取 main.py,比對呼叫的模組屬性與內容。
Percentages keep their point size but are now bold, making the strip about 5 points taller and easier to read over light wallpaper. Provider marks, the small images that identify a service, are now monochrome template images. They turn black on a light menu bar and white on a dark one. Shape now does the work that color detail once did, so the Codex mark does not collapse into a blur at menu-bar size; the marks also match the critters, which have always been drawn this way. They are now 14 to 16 points tall.
The 77 modules that had been loose in the repository root are now grouped into packages, folders that hold related importable code. menubar/, loaders/, wintray/, discussion/, tui/, and updates/ absorbed 42 of them, leaving 35 at the root. Only import paths, where code looks for other code, changed; behavior did not. Files that run outside the virtualenv stayed put: status-line hooks, files called at particular moments, remain at the top level because usage setup copies them to the user's home directory for the system Python. main.py names modules with plain strings, which search cannot find. A moved module could leave one pointing nowhere, while the test suite still passes and the app fails to launch. A new test reads main.py and checks every module attribute it calls against that module's contents.
**The menu bar percentages are now bold.** They were drawn at the menu bar's own point size in regular weight, which left them lighter than everything around them — hard to read at a glance over a light wallpaper. Same size, bold weight; the strip grows by about 5 points.
**The provider marks in the menu bar are now monochrome and follow the menu bar's own appearance.** The color art had to work against whatever wallpaper was behind it, and the Codex mark in particular collapsed into an indistinct blob at menu bar size because its detail came from color rather than shape. The marks are now template images — the system tints them black on a light menu bar and white on a dark one, so they stay legible everywhere, and they match the critters, which have always been drawn this way. They are also 14 to 16 points now.**The 77 modules that sat loose in the repository root are now grouped into packages.** `menubar/`, `loaders/`, `wintray/`, `discussion/`, `tui/`, and `updates/` absorbed 42 of them; the root is down to 35. Nothing moved that runs outside the virtualenv — the status line hooks are still plain files at the top level, because `usage setup` copies them into the user's home directory to run under the system Python. Behavior is unchanged; only import paths moved.
**A test now guards the modules that `main.py` loads by name.** Those loads are plain strings, so no search finds them and a moved module leaves the string pointing at nothing while the whole suite still passes and the app fails to launch. The test reads `main.py` and checks every attribute it calls on such a module against that module's actual contents.