在 WSLg 中运行 Obsidian 并使用雾凇拼音输入中文

在 WSL 原生 ext4 Vault 上运行 Linux Obsidian,并配置 Fcitx 5 + fcitx5-rime + 雾凇拼音中文输入。

#type / howto #status / growing #discipline / obsidian #resource / obsidian #resource / wsl #platform / linux #platform / windows

[!info] related notes

在 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 的职责是:

  1. 检查并修复 WSLg 图形通道;
  2. 保证 Fcitx5 常驻;
  3. 注入输入法环境;
  4. 启动 /opt/Obsidian/obsidian
  5. 用 URI 打开 /home/baker/projects/thought-forest
  6. 必要时让 Windows 前置 WSLg 窗口。

使用与验证

在 Obsidian 编辑区按:

Ctrl+Space

激活 Fcitx / Rime,然后输入:

nihao

应出现“你好”等候选词。雾凇默认还支持用左 Shift 在 Rime 会话内切换中英文;方案选单通常可用 F4Ctrl+` 打开。

基础检查:

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。

参考

创建于 2026/8/18 更新于 2026/8/18