在 WSLg 中运行 Obsidian 并使用雾凇拼音输入中文
在 WSL 原生 ext4 Vault 上运行 Linux Obsidian,并配置 Fcitx 5 + fcitx5-rime + 雾凇拼音中文输入。
[!info] related notes
- 前置笔记:
- 相关 MOC: obsidian-moc
- 相关资源: obsidian、wsl、rime-weasel
在 WSLg 中运行 Obsidian 并使用雾凇拼音输入中文
目标
让 Obsidian 真正运行在 WSLg 中,并直接编辑 WSL 原生文件系统上的 Vault;中文输入使用 Fcitx 5 + fcitx5-rime + 雾凇拼音,不再依赖 Windows 版 Obsidian 或 D: 盘工作树。
当前这套环境的目标结构是:
Windows
└─ WSL2 Ubuntu-24.04
├─ WSLg
│ └─ Linux Obsidian
├─ Fcitx 5
│ └─ fcitx5-rime
│ └─ 雾凇拼音 rime_ice
└─ /home/baker/projects/thought-forest
├─ Git
├─ Obsidian
├─ Thought Forest KB MCP
└─ WSL Agent
关键原则:/home/baker/projects/thought-forest 是 Source of Truth。Windows 侧旧的 D:\home\thought-forest 只应作为迁移期副本,不应再和 WSL 工作树并行写入。
安装 Linux Obsidian
Ubuntu 24.04 的精简 WSL 环境可能缺 Electron 运行库。相比 AppImage,官方 amd64 .deb 更适合让 APT 自动补齐依赖。
安装后确认:
command -v obsidian
# /usr/bin/obsidian
dpkg-query -W -f='${Version}\n' obsidian
新版 Obsidian 中,裸执行 /usr/bin/obsidian 可能被解释为 CLI 调用并提示:
Command line interface is not enabled. Please turn it on in Settings > General > Advanced.
因此日常启动更适合使用用户级 wrapper,通过 URI 把打开 Vault 的请求直接交给 Linux Obsidian。
[!warning]
obsidian://...是系统级 URI scheme。把它粘到 Windows 浏览器,会调用 Windows 注册的 Obsidian,而不是 WSLg 中的 Linux Obsidian。URI 应留在 WSL 内部处理。
配置 Fcitx 5
安装输入法框架、中文语言包和 CJK 字体:
sudo apt install \
fcitx5 \
fcitx5-frontend-gtk3 \
fcitx5-frontend-gtk4 \
fcitx5-config-qt \
language-pack-zh-hans \
fonts-noto-cjk \
dbus-x11
无需把整个开发环境的 LANG 改成中文。保留终端原有 locale,只给 GUI 应用注入输入法环境即可。
使用 Rime 与雾凇拼音
“小狼毫”是 Rime 的 Windows 前端;Linux / WSLg 上更自然的组合是:
Fcitx 5 → fcitx5-rime → librime → 雾凇拼音
安装 Rime 前端和 Lua 插件:
sudo apt install \
fcitx5-rime \
librime-bin \
librime-plugin-lua \
unzip
Ubuntu 24.04 可提供 librime 1.10.x 和 Lua 插件,能够部署当前雾凇拼音配置。
Fcitx5-Rime 的用户数据目录:
~/.local/share/fcitx5/rime/
将雾凇拼音官方 full.zip 解压到该目录,再执行:
rime_deployer --build \
~/.local/share/fcitx5/rime \
/usr/share/rime-data \
~/.local/share/fcitx5/rime/build
部署成功后应看到:
build/rime_ice.schema.yaml
build/rime_ice.prism.bin
build/rime_ice.reverse.bin
build/rime_ice.table.bin
主词典二进制通常达到几十 MB,说明大词库已经实际编译,而不只是复制 YAML。
配置 Fcitx 输入法组
~/.config/fcitx5/profile 保留 US 键盘和 Rime:
[Groups/0]
Name=Default
Default Layout=us
DefaultIM=rime
[Groups/0/Items/0]
Name=keyboard-us
Layout=
[Groups/0/Items/1]
Name=rime
Layout=
[GroupOrder]
0=Default
修改 profile 时要注意顺序:先停旧 Fcitx,再写配置,再重新启动。否则旧进程退出时可能把内存里的旧 profile 写回磁盘。
在 WSLg 中启动时使用:
fcitx5 -d --keep
--keep 用于在图形连接重建时尽量保持 Fcitx 进程存活。
给 Obsidian 注入输入法环境
Electron/GTK/XIM 场景至少准备:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
这些变量必须在 Obsidian 进程创建前存在,因此应放在 Obsidian wrapper 中。
当前本机的辅助入口:
~/.local/bin/fcitx5-wslg
~/.local/bin/wslg-fix-copy-mode
~/.local/bin/obsidian
obsidian wrapper 的职责是:
- 检查并修复 WSLg 图形通道;
- 保证 Fcitx5 常驻;
- 注入输入法环境;
- 启动
/opt/Obsidian/obsidian; - 用 URI 打开
/home/baker/projects/thought-forest; - 必要时让 Windows 前置 WSLg 窗口。
使用与验证
在 Obsidian 编辑区按:
Ctrl+Space
激活 Fcitx / Rime,然后输入:
nihao
应出现“你好”等候选词。雾凇默认还支持用左 Shift 在 Rime 会话内切换中英文;方案选单通常可用 F4 或 Ctrl+` 打开。
基础检查:
fcitx5-remote --check
cat ~/.config/fcitx5/profile
fcitx5-diagnose | grep -A5 -B5 'Rime'
ls -lh ~/.local/share/fcitx5/rime/build/rime_ice.*
cd /home/baker/projects/thought-forest && git status --short
[!note] Rime、雾凇词库和 Fcitx5 已经在本机完成部署;Obsidian 内最终候选框与中文上屏仍应以实际手工输入测试作为最后验收。
常见问题
任务栏有企鹅,但 Obsidian 窗口是灰色空壳
如果标题带 [WARN:COPY MODE],且窗口无法正常渲染,优先检查 WSLg 的共享内存图形重定向。见 [[wslg-copy-mode-blank-window|WSLg [WARN:COPY MODE] 空白窗口排查]]。
启动命令只打印 URI
Processed URI obsidian://... 表示 URI 已被 Linux Obsidian 接收,不代表需要把它复制到浏览器。
Obsidian Git 启动后把仓库改脏
Linux 下 obsidian-git 可能需要把 obsidian_askpass.sh 设成可执行。如果 diff 只有:
old mode 100644
new mode 100755
这是 Linux 执行权限的合理变化,可以把该权限位正式纳入 Git。