Onikey:Rustで実装されたコアを持つ、Linux用のベトナム語入力システム

Onikey:Rustで実装されたコアを持つ、Linux用のベトナム語入力システム

概要、IBusおよびFcitx5でのインストール方法、おすすめの機能、およびよくあるトラブルの対処法について。

Linuxでのベトナム語入力は、これまでいくつかの定番の選択肢に限定されてきましたが、それぞれに独自の課題があります。例えば、高速入力時にアクセント記号が失われたり、ブラウザのアドレスバーに煩わしい下線が表示されたり、あるいは入力ツールがクラッシュしてセッション全体が中断されたりといった問題です。

Onikeyは、まさにそうした課題を解決するオープンソースのベトナム語入力システムです。BambooEngineの入力方式を継承しつつ、コア部分をRustで書き直しており、IBus(GNOME、Ubuntu)とFcitx5(KDE)の両方をサポートし、GPLv3ライセンスの下で公開されています。

Onikey — bộ gõ tiếng Việt cho Linux
Onikeyは、Telex方式のキー入力をアクセント付きベトナム語に変換します。画像はプロジェクトのアーカイブから引用したものです。

UbuntuおよびDebianへのインストール

最も手っ取り早い方法は、ソフトウェアリポジトリを追加することです。そうすれば、 apt upgrade 他のパッケージと同様に配信されるようになります:

curl -fsSL https://crust92.github.io/Onikey/onikey-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/onikey-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/onikey-archive-keyring.gpg] https://crust92.github.io/Onikey stable main" \
  | sudo tee /etc/apt/sources.list.d/onikey.list

sudo apt update
sudo apt install onikey          # cho IBus (GNOME)
sudo apt install fcitx5-onikey   # cho Fcitx5 (KDE)

インストールが完了したら、Super + Space キーを押せばすぐに文字入力が可能です。このパッケージは IBus を自動的に起動し、入力ソースを自動的に追加するため、ログアウトしたりシステム設定を開いたりする必要はありません。

ソースコードからインストールする

sudo apt install -y golang cargo gcc make pkg-config \
     libgtk-3-dev libxtst-dev libx11-dev
git clone https://github.com/Crust92/Onikey.git
cd Onikey && make && sudo make install PREFIX=/usr && ibus restart

その後、[設定] → [キーボード] → [入力ソース] → [+] → [ベトナム語] → [Onikey] の順に進みます。削除するには sudo make uninstall。Fedoraでは、さらに以下の設定が必要です LIBEXECDIR=/usr/libexec/onikey.

注目すべき機能

入力方式と文字コード。Telex、Telex 2、Telex W、VNI、VIQR、およびいくつかの組み合わせが用意されており、デフォルトはTelex 2です。文字コードについては、Unicodeに加え、古い文書を扱う必要があるユーザーのために、TCVN3、VNI Windows、VISCIIなどの旧来のコードセットも維持されています。

2つの表示モードがあります。デフォルトは「pre-edit」モードです。入力中の単語には下線が引かれ、スペースキーを押すと確定されます。どのような状況でも信頼性があります。 下線なしモードでは、文字がそのままアプリケーションに送信されるため、より自然に見えます。対応していないアプリケーションの場合、エンジンはキー入力を無視することなく、自動的に「pre-edit」モードに戻ります。

ブラウザ専用の下線を削除しました。これは、毎日使ってみるとその価値がわかる細かい点です。アドレスバーには下線が表示されないため、URLの候補が正常に機能し、その他の入力欄は引き続きプレエディット状態が維持されます。

外国語からの復元。次のような単語を入力してください passwordexpression といった単語をベトナム語の文中に、アクセント記号が正しく付かない状態で入力した場合——その文字列がもはや有効なベトナム語の語句ではない場合、エンジンは実際に押されたキーの文字列をそのまま返します。

省略形。 ~/.config/onikey/onikey.macro.text 形式で khoá:văn bảnで宣言します。自動大文字化を有効にすると、キー入力に応じて拡張され、 vn 「Việt Nam」、 VN 「VIỆT NAM」となります。

毎日使う

システムトレイのアイコンメニューには、 vi には、コードページ、入力モード、ショートカット、スペルチェック、およびショートカットキーを割り当てるための設定ダイアログなど、すべての機能が含まれています。変更は再起動を必要とせず即座に反映されます。設定ファイルを手動で編集しても、エンジンは自動的に再読み込みされます。

Vị trí bộ gõ trong ngăn xếp nhập liệu
入力システムは、サーバー表示 → デスクトップ環境 → IBus → DBus → エンジンという一連のプロセスの末端に位置しています。この図は、リポジトリのdocsディレクトリから取得したものです。

特筆すべき技術的なポイント

  • このコアは、12万6千件以上のテストケースを用いてBambooEngineの動作検証が行われており、最終結果だけでなく、各キー入力後の結果の連鎖を照合しています
  • 下線解除モードでは、エンジンはアプリケーションが削除完了を確認するまで書き込みを待機します。これは、高速入力時に文字が入れ替わる現象を根本的に解決する処理方法です
  • 設定ダイアログは独立したプロセスとして実行されるため、インターフェースのエラーが発生してもエンジンがダウンすることはありません

不具合が発生した際

ibus-daemon によって起動された Engine は、画面に表示されません。何が起きているかを確認するために、ログを有効にしてください:

touch ~/.config/onikey/onikey-debug && ibus restart

ログには ~/.config/onikey/onikey-rust-debug.log、読み込み可能な設定と、各キーに対してエンジンが選択したアクションが含まれます。フラグファイルを削除してIBusを再起動すれば、無効になります。

GNOME Wayland では、入力システムではなくプラットフォームに起因する 2 つの制限があります。それは、フォーカスされているアプリケーションを認識できないことと、X11 のように仮想キーを送信できないことです。KDE で Fcitx5 を使用している場合、あるアプリケーションでは入力できるのに別のアプリケーションでは入力できないという場合は、 ShareInputState=All Fcitx5の詳細設定で試してみてください。

Chia sẻ

Thảo luận