33 lines
3.4 KiB
Markdown
33 lines
3.4 KiB
Markdown
# 実IME・XKBの補助GUI試験
|
||
|
||
Ubuntu 24.04のIBus/Mozcを通して、本番QML・Controllerの検索欄とコマンド欄を検査する。`QInputMethodEvent`を手作業で送らず、X11では専用XvfbへXTestのキー入力を送る。US pc105とJP jp106の配列を明示し、`:`・`/`・`+`・`-`はキー番号から入力する。WaylandではXWaylandを無効にした専用Swayへwtypeの仮想キーを送り、Qt Wayland+IBusのD-Bus接続で検査する。
|
||
|
||
必要なUbuntuパッケージは`ibus ibus-mozc xdotool x11-xkb-utils libxtst6 xvfb dbus-x11 sway wtype`。既存のDocView Releaseビルド、Qt 6.11.2 SDK、通常の開発依存を用意する。専用VMでは追加パッケージを導入したが、ホストのIME・ユーザー設定は変更していない。
|
||
|
||
```sh
|
||
export PATH=/opt/docview-deps/bin:/opt/docview-qt/6.11.2/gcc_64/bin:$PATH
|
||
export LD_LIBRARY_PATH=/opt/docview-deps/lib:/opt/docview-qt/6.11.2/gcc_64/lib
|
||
export PKG_CONFIG_PATH=/opt/docview-deps/lib/pkgconfig
|
||
cmake -S docview-source/tests/ime -B docview-ime-build -G Ninja \
|
||
-DCMAKE_BUILD_TYPE=Release \
|
||
-DDOCVIEW_CANONICAL_BUILD=/home/docview/docview-build \
|
||
'-DCMAKE_PREFIX_PATH=/opt/docview-qt/6.11.2/gcc_64;/opt/docview-deps'
|
||
cmake --build docview-ime-build --parallel 4
|
||
python3 docview-source/tests/ime/run.py \
|
||
--binary docview-ime-build/test_ime --canonical-build docview-build \
|
||
--platform xcb --output validation/ime/new-x11-run
|
||
python3 docview-source/tests/ime/run.py \
|
||
--binary docview-ime-build/test_ime --canonical-build docview-build \
|
||
--platform wayland --output validation/ime/new-wayland-run
|
||
```
|
||
|
||
出力先は毎回新規にする。runnerはprivate D-Bus、選択したXvfb/Sway、IBusとMozc、専用のXDGディレクトリを作り、起動した子だけを識別して回収する。内部sandboxは有効。通常のCTest 22群には追加せず、既存core/common/font brokerと実ワーカーを使う別実行ファイルとして検証する。
|
||
|
||
「日本語」の変換確定Enterが検索を実行せず、次のEnterで検索すること、「確認」の変換確定がコマンドを実行しないことを確認する。`jikan123`の編集中・変換候補取消・未確定入力取消でも位置200を維持し、通常モードへ戻った後のj/kで200→248→200へ移動する。最初から上下移動できる表示寸法を要求する。
|
||
|
||
IBus 1.5.29のCLIは、エンジン切替後にlayoutが`default`だと終了コード1を返す。そのため`SetGlobalEngine`をD-Busで呼び、`ibus engine`で選択結果を照合する。[使用版の実装](https://github.com/ibus/ibus/blob/1.5.29/tools/main.vala#L222-L297)。IME開始はトグルではなく`Hiragana`を使用し、前ケースの入力モードに依存させない。
|
||
|
||
Waylandの仮想キーはwtypeが独自のキー配列を持つため、US/JP配列の試験として扱わない。Swayには試験中だけ仮想キーボードを常設し、短い入力ツールの終了で唯一のキーボードが抜けてQtの焦点を失うことを防ぐ。起動後のデバイス一覧を記録し、全子プロセスを回収する。
|
||
|
||
[実行結果](../results/ime/README.md)。物理キーボード、候補ウィンドウの外観、コンポジターのtext-inputプロトコル経由のIME連携、WindowsのIMEはこの試験の対象外。本番コンポーネントを使うが、製品のmain関数はこの補助試験から実行しない。
|