#content-container 上有 contain: layout paint,它因此是 position: fixed 的 包含块。写在页面片段里的提示条和弹窗留在容器内部,fixed 就退化成相对该容器的 绝对定位,跟着内容一起滚:往下滚多少,浮层离窗口底边就多出多少;原先 showToast 每次还用 getBoundingClientRect() 的视口坐标去覆写 left,等于把容器偏移又加了 一遍,提示条因此偏向右侧,且只在弹出那一刻算一次,改窗口尺寸后就是旧值。 hoistOverlay() 在两个页面 setup 时把提示条和弹窗挂到 body 下,fixed 才真正 相对窗口解析,两处 JS 写 left 的代码删掉。提示条改由 CSS 定位:水平 calc(50% + var(--sidebar-width) / 2),即侧边栏右缘到窗口右缘的中点;垂直离 窗口底边两行正文高度。侧边栏宽度提成 --sidebar-width,sidebar.css 一并引用。 弹窗遮罩让开标题栏并左留侧边栏宽度的内边距,对话框居中于右侧内容区,弹窗期间 窗口按钮仍可点。浮层不再随模块容器隐藏,切页时由 dismissHoistedOverlays() 收起。 删除确认不再用 window.confirm:系统对话框不随设置页主题,在 WebView2 里是宿主 模态窗口,弹出期间页面自己的键盘和焦点处理全被挂起。confirmDialog() 复用 .dict-modal 样式自绘,支持 Enter 确认、Esc 取消、点遮罩取消和焦点还原。 顺带两处表格交互:翻页按钮改为靠右并排(状态文本移到左侧),与 .dict-table 单元格同样的 18px 内边距,不再贴着卡片边框;翻页时先把表格滚动条置顶,新一页 不再停在上一页的滚动位置。
Metasequoia IME for Windows
中文 README · Website · Docs · Privacy
A free and open-source Chinese and Japanese input method for Windows 10 and 11, built on TSF with no legacy IMM32 path.
This repository is the whole Windows product: the TSF text service DLL, the resident server, the conversion engine, a self-written native GUI framework, the HTML surfaces and the installer. The engine was imported from MSIME-Engine and specialized for Windows; it now lives in engine/ as a first-party component, so a plain clone builds the product. See engine/UPSTREAM.md.
This is a public beta. Expect rough edges and read the release notes before upgrading.
Install
Download the installer from Releases or the download page, run it, then switch with Win + Space.
Current builds are not code signed. SmartScreen will block them and uiAccess is unavailable, which means the candidate window cannot float above elevated applications. Verify the download with the SHA256 published on the download page.
You need the Microsoft Visual C++ 2015–2022 Redistributable (x64). The server and settings app are 64-bit; the x86 redistributable is a separate package and does not substitute for it. If you cannot switch to the IME, the server keeps exiting, or the settings window closes immediately, install that first.
What it does
- Chinese input: full pinyin, double pinyin (Xiaohe / Ziranma / Shoudao / Microsoft), Wubi 86
- Japanese input: romaji, with hiragana, katakana and dictionary candidates; also available as a temporary mode from Chinese
- Helpcode (形码) filtering on pinyin schemes: five tables, single- and double-code
- Optional cloud candidates, and AI suggestions via DeepSeek / OpenAI / SiliconFlow / Groq
- English-Chinese glosses in the vertical candidate window
- Mixed Chinese-English input, emoji and kaomoji, a dedicated English candidate mode
- Voice input with streaming recognition and optional cleanup
- Handwriting, on-screen keyboard, floating toolbar, clipboard history
- User dictionary management, candidate frequency tuning, skins with light and dark variants
Privacy
An input method sees every keystroke, so the boundaries are stated explicitly in PRIVACY.md: which features reach the network, what each one sends, what the defaults are, and how to turn each off.
Two things worth knowing up front. Cloud candidates are on by default — the composition spelling goes to Google's input-tools service, and it is the only network feature that works without you supplying a credential. API tokens are stored in plain text in config.toml, unlike macOS and Linux which use the Keychain and Secret Service.
There is no telemetry, analytics or crash reporting of any kind.
Building and contributing
CONTRIBUTING.md has the environment, the build order and what to run before opening a pull request. Contributions do not have to be code — dictionary entries, documentation, icons and compatibility testing all count, and the recruiting page lists them by area.
Note that most issues, documentation and code comments are in Chinese. English pull requests and issues are welcome.
Licence
GPL-3.0. See LICENSE and THIRD_PARTY_NOTICES.txt.