16 KiB
OmarchyCN task list
Progress source of truth for the omarchycn branches of omarchy, omarchy-iso and omarchy-pkgs. Work top to bottom, one item at a time. Each item closes only after a codex review (GPT 6.1 Sol, xhigh, in a herdr split) passes; at most 5 reviews per item.
Decisions (confirmed with the owner, 2026-10-05)
- Region is machine state in
/etc/omarchy/region(china); absent means Global. - Arch and Omarchy repos follow the domain plan: every
*.omarchy.orgserver gets a*.omarchy.cntwin listed first.pkgs.omarchy.cnis live;stable-mirror,rc-mirrorandmirror.omarchy.cndo not resolve yet, so pacman falls through to.org. - China means a Chinese UI:
LANG=zh_CN.UTF-8and Chinese menu labels. Global meansen_US.UTF-8.omarchy updatenever touches the locale. - Input method: rime-ice-installer (omarchy-pkgs PR 265, not merged yet). The ISO bundles the package, the Rime Ice
full.zipand the Wanxiang grammar model; the install finishes with Rime and US keyboard ready, Ctrl+Space toggles. The installer gets a local patch:--asset-dirand no sudo when its packages are present. - China to Global: switch sources and language, keep CJK fonts and the input method, remove the Claude Code third-party provider entry and the env it wrote, hide the China software entry. Dim and Kimi stay for every region.
- Deferred provisioning and factory reset get the region's system setup but no offline input method (deferred).
Decisions (owner and maintainers, 2026-10-08)
These replace the 2026-10-05 decisions where they disagree.
- Region and language are separate. Region comes from the timezone the user picks (omarchy #13690, omarchy-iso #241); the installer adds no region screen. Language is the first installer screen.
- The
.cnpacman mirrors are #13690'smirrorlist-<channel>.prependfiles. Ourservers.sedtwins and the USTC Arch fallback go;[omarchy]keeps onlypkgs.omarchy.org, as in #13690. - Input methods come from dhh's #14433 and omarchy-iso #237. Rime,
rime-ice-installerand its bundled assets go. - The language picker offers English and Simplified Chinese. Chinese reruns the installer in cage + foot with fonts unpacked from the offline repository's
noto-fonts-cjk; the target getsLANG=zh_CN.UTF-8. - Setup > Region switches mirrors, developer mirrors, the China apps entry and the Claude Code API entry. Setup > Language switches
LANGand the Chinese UI. Neither touches the other.
Decisions (owner, 2026-10-11, after the maintainers tested the ISO)
- Drop Setup > Claude Code API (
omarchy-setup-claude-api) and the Dim/Kimi agent roster and migration.omarchy region globalno longer touches Claude settings. - Drop the ISO's local-build pin (
pin_local_packages,IgnorePkgand its hooks). - Drop the
omarchy-pkg-addchange; it served Rime. - PRs carry only our changes and never overlap Yunjie Dai's (#13690, iso #241) or David's (#14433, iso #237). Region work stacks on #13690; ISO work stacks on iso #241.
Shipping prerequisites
- The region profile and timezone mapping wait on omarchy #13690 and omarchy-iso #241; input methods (omarchy #14433, omarchy-iso #237) are merged. The language screen, CJK console, Chinese UI, developer mirrors and China apps exist only on the
omarchycnbranches: build a test ISO with./bin/omarchy-iso-make --local-source ../omarchy ../omarchy-pkgsfromomarchy-iso/. - A local-source ISO builds
omarchy-devandomarchy-settings-devunder the published version number and does not pin them, so the next published release replaces them onomarchy update. Local test ISOs are for testing only. stable-mirror.omarchy.cn,rc-mirror.omarchy.cnandmirror.omarchy.cnresolve and servecore.db(checked 2026-10-09).
PR branches (T32, 2026-10-12)
omarchy, each a fork branch:
cjk-variant-selectionon upstreamquattro: the Noto CJK variant fontconfig.chinese-languageon upstreamquattro:omarchy language, Setup > Language, the installer's language prompt, the Chinese menu overlay, shell and notification text.cn-developer-mirrorson #13690: thecndeveloper mirrors at install.cn-region-switchoncn-developer-mirrors:omarchy region, Setup > Region, China Apps,manual/52-china.md; English only.
omarchy-iso: chinese-installer on iso #241 (the language screen, the CJK console, the translated installer, the target locale, the summary's keyboard label); omarchycn merges it onto iso quattro. omarchy-pkgs: omarchycn is upstream master.
omarchy omarchycn merges them onto quattro and adds what no PR can carry yet: the Chinese wording for Region and China Apps and the language half of the China manual (needs both language and region), and, until #13690 rebases onto upstream's ARM templates, an integration-only pacman resolution and a guard that refuses omarchy region cn off x86. Known failure there: pacman-templates-test expects x86 refresh to copy templates directly, which #13690 replaces with a render.
Tasks
-
T0 Branches and this list
-
T1 China package sources (PRD 1): region state,
omarchy-regionreader,default/region/china/pacman.sed, applied byomarchy-refresh-pacmanandinstall/post-install/pacman.sh; tests -
T2 Region choice in the installer (PRD 2):
omarchy_prompt_regioninsetup-form.sh, ISO configurator screen, orchestrator passesOMARCHY_REGION,install/config/region.shrecords it -
T3 Input method (PRD 3): rime-ice-installer patch and PKGBUILD in omarchy-pkgs, IME packages in
omarchy-other.packages, install-time package add, user step runs the installer from bundled assets, ISO build bundles assets and the package -
T4 CJK fontconfig fix (PRD 4): rebuild PR 9693 on the current base
-
T5 AI (PRD 5): Dim and Kimi Code for every region (rebuild PR 9694), Claude Code third-party provider setup shown only in China
-
T6 Developer mirrors (PRD 6): npm, PyPI/uv, Go, rustup, crates.io, RubyGems, Maven via system drop-ins under
default/region/china/ -
T7 China software (PRD 7): Install menu entry shown only in China
-
T8 Region switching and Chinese UI (PRD 8):
omarchy-region china|global, Setup > Region, locale, Chinese menu overlay chosen byLANG -
T9 Logo (PRD 9): stock Omarchy logo everywhere
-
T10 Docs:
AGENTS.md, manual -
T11 Test ISO build (local source)
-
T12 QEMU install and verification: China and Global installs, region switch,
omarchy updatekeeps region and language -
T13 Acceptance checklist
-
T14 Chinese installer (owner request, parity with the old OmarchyCN ISO): choosing China on the VT reruns the installer in cage + foot with CJK fonts and a US keyboard, falling back to the English VT; there the region screen is bilingual and Global returns to the VT; every later installer screen, the shared setup form and the install dashboard read in Chinese
-
T15 Global to China fails on local-source installs (owner report):
rime-ice-installerlives only in the ISO's offline mirror, so a Global install cannot fetch it later; local-source installs install every pinned local build, andinstall/config/region.shinstalls the China packages before it writes any region state -
T16 A region switch offers to log out at once, since the language and the developer mirrors only reach a new session (owner request)
-
T17 The desktop shell reads in Chinese under
zh_CN(owner report): notifications, the bar panels (agents, network, display and the rest), the menu's search prompt — review cap reached: five codex rounds; the round-5 findings (user text translated at display, custom reminder list lines, reminder tooltips and errors) are fixed by wording every notification at its sender and verified by tests and in the China VM, without a sixth review -
T18 Merge the official region-profile PRs (omarchy #13690, #14399; omarchy-iso #206, #236) and align to them: region code
cnin/etc/omarchy/region, China files underdefault/regions/cn/, pacman rendered byomarchy-apply-pacman(.cntwins first, USTC fallback, ArchLinuxCN with its keyring), offline timezoneAsia/Shanghai; the ISO keeps the first-screen region choice and bundles the China profile,--region cnpreselects China -
T19 Merge the reworked #13690 (timezone-derived region) and align:
mirrorlist-<channel>.prependandtimezonesreplaceservers.sed,mirrorlist.appendandtimezone; drop #14399's timezone preselection (closed upstream);install/config/region.shreads/etc/omarchy/regioninstead ofOMARCHY_REGION; drop the deadchinarename migration -
T20 Merge #14433 (input methods) and remove Rime: packages,
install/user/region.sh, the Rime steps ininstall/config/region.shandomarchy-region -
T21 Split language from region:
omarchy-language en|zhand Setup > Language ownLANG;omarchy-regionandinstall/config/region.shstop touching the locale -
T22 omarchy-pkgs: revert the
rime-ice-installerpackage -
T23 omarchy-iso: merge upstream
quattro(#237) and #241; remove--region,prepare-region.sh, the region skel, the region preselected timezone, Rime bundling and its pin -
T24 omarchy-iso: the language screen replaces the region screen; Chinese reruns in cage + foot with
noto-fonts-cjkunpacked from the offline repository (no font packages added to the ISO); the CJK console lists only US-keymap keyboards and preselects Chinese (Simplified, Pinyin); the target getszh_CN.UTF-8throughlocale_config; the harness takes--language zh -
T25 Docs:
AGENTS.md,docs/regions.md,manual/52-china.md, omarchy-iso README -
T26 Build the local-source ISO and test in QEMU: Chinese +
Asia/Shanghai, English +America/New_York, runtime region and language switches -
T27 Acceptance checklist for T19–T26
-
T28 Drop the Claude Code API setup, the Dim/Kimi roster and migration, and the
omarchy-pkg-addchange (omarchy) -
T29 Drop
pin_local_packagesand the pin list (omarchy-iso) -
T30 The CJK console skips the second language screen; the summary's keyboard row shows the chosen layout, not its keymap (omarchy-iso)
-
T31 The CJK console fills the screen and the summary keeps the logo in view (omarchy-iso)
-
T32 Rebuild omarchy as PR branches on current upstream: CJK fontconfig, language and menus, shell text, cn developer mirrors (on #13690), Setup > Region and China Apps;
omarchycnbecomes their merge -
T33 Rebuild omarchy-iso as one PR branch on iso #241 and current upstream;
omarchycnbecomes it; omarchy-pkgs follows upstream master -
T34 Build the local-source ISO and test in QEMU: Chinese offline, English
-
T35 Acceptance checklist for T28–T34
-
T36 Open the PRs one at a time from Raiden-MeixElysia
T34 evidence (2026-10-12)
ISO release/omarchy-2026.10.12-x86_64-local.iso from omarchy omarchycn, omarchy-iso omarchycn (c407101), omarchy-pkgs upstream master (d47199f2). Screenshots in ~/omarchy-vm/shots/.
- Chinese, offline (
OFFLINE=on): the VT language screen, then cage + foot opens straight on the keyboard screen with Pinyin preselected and no strip (04-keyboard); the summary keeps the whole logo and shows键盘 Chinese (Simplified, Pinyin)(14-summary); installed in 4m 0s (18-progress). First boot: Chinese desktop and notifications (21-desktop);LANG=zh_CN.UTF-8, regioncn,mirror.omarchy.cnfirst,[archlinuxcn], noIgnorePkgor pin hooks, developer mirror links andNPM_CONFIG_REGISTRY/GOPROXYin the session, Fcitx5 profile with Pinyin (30-state);Super + I,nihao, Space typed 你好 (31-pinyin); Setup shows 语言 and 地区 (34-setup);fc-matchgives SC for untagged Han under zh_CN and TC, HK, JP, KR for tagged text, Liberation Sans for tagged Latin (36-fonts). - Runtime, online:
omarchy region global→ Global, no marker,.orgmirror, no ArchLinuxCN, links gone,LANGkept, Chinese logout prompt (42, 43);omarchy language en→en_US.UTF-8, English logout prompt (44);omarchy region cn→ China,.cnfirst, ArchLinuxCN, links back,LANGkept (45, 46);omarchy language zh→zh_CN.UTF-8(47). The.cnedge mirror lagged.orgby one sqlite release, which the cn refresh downgraded. - English, harness: install and first boot pass; four acceptance failures, all upstream: Mozc Qt, weather OCR,
omarchy-borevslinux-omarchy, and the menu test still walking Style > Menu Bar, which upstream moved to Trigger > Appearance.
Acceptance checklist
Evidence comes from the T26 runs of omarchy-iso/release/omarchy-2026.10.09-x86_64-local.iso (omarchy fcd681c0, omarchy-iso 30f63b6, omarchy-pkgs a4cc3234): run A in host QEMU with the guest cut off from the network during install, run B in the ISO test harness.
| # | Requirement (discussion of 2026-10-08) | Result | Evidence |
|---|---|---|---|
| 1 | Language picker on the first screen; Chinese gets cage + foot | Pass | Run A: the VT screen offers English and Chinese; Chinese reruns in cage + foot on a bilingual language screen, and every later screen and the install dashboard read in Chinese. |
| 2 | CJK font from the offline repository, not added to the ISO | Pass | unpack_cjk_font extracts NotoSansCJK-Regular.ttc from the offline mirror's noto-fonts-cjk; the ISO package list drops ttf-jetbrains-mono and wqy-microhei and keeps only cage and foot. |
| 3 | Translated installer strings and the target locale | Pass | Run A: summary, finish screen and dashboard in Chinese; installed LANG=zh_CN.UTF-8 through locale_config. Run B: English throughout, LANG=en_US.UTF-8. |
| 4 | Region from the timezone, no extra step (#13690, #241) | Pass | Run A: Asia/Shanghai shows 区域 cn on the summary and writes /etc/omarchy/region = cn. Run B: America/New_York installs Global with no marker. |
| 5 | Offline install ready without network | Pass | Run A installed in 8m13s with the guest network cut off; ArchLinuxCN keyring trusted, mirror.omarchy.cn first, Pinyin ready at first login. |
| 6 | .cn pacman mirrors from #13690; ours dropped |
Pass | China: mirror.omarchy.cn before mirror.omarchy.org, [archlinuxcn] from USTC. Global: mirrorlist equals the channel template; pacman.conf differs only by the local-build IgnorePkg pin. |
| 7 | Developer mirrors on the cn profile | Pass | China links /etc/environment.d/90-omarchy-china.conf, /.cargo/config.toml, /etc/gemrc; Global removes them and NPM_CONFIG_REGISTRY is gone after relogin. |
| 8 | Input methods from dhh's #14433; Rime removed | Pass | Chinese preselects Chinese (Simplified, Pinyin); INPUT_METHOD=pinyin; Ctrl + Shift + Space then nihao typed 你好. No Rime package, asset or pin remains. |
| 9 | Region and language switch separately at runtime | Pass | omarchy region global and cn leave LANG alone; omarchy language en and zh leave the region alone; each offers logout in the right language; Claude Code API and China Apps follow the region. |
| 10 | omarchy update keeps region and language |
Pass | After omarchy update -y: LANG=zh_CN.UTF-8, region cn, mirror.omarchy.cn first, [archlinuxcn] present. |
| - | Automated tests | Pass, no new regressions | omarchy shell suite in an Arch container: every failure is environmental and predates these tasks; some sit in branch-only tests (fontconfig-cjk-test needs the Omarchy font set, hyprland-jis-bindings-test needs lua, menu-plugin-test and tailscale-receive-test chmod a symlink on the read-only mount). omarchy-iso ./test/all passes apart from test_keyboard (needs systemd's localectl). Harness acceptance: four failures outside this branch (Mozc Qt; weather and reminder prompts on screen but missed by OCR; linux-omarchy vs omarchy-bore kernel). |
Open items outside this branch: the shipping prerequisites above; the four acceptance failures listed; .automated_script.sh exits 1 when its dashboard returns without rebooting after the mirror warm-up has finished, from upstream's EXIT trap under set -e; each omarchy region switch asks for the sudo password several times through refresh's command-scoped sudo calls.