Debian 12 (x86)にATOK for Linux (atokx2)をインストールする
大昔にジャストシステムから発売されたATOK for Linux (atokx2等とも呼ばれている)をDebian 12にインストールします。
この手順でインストールしたATOKは、少なくとも環境設定が開けないという重大な問題がある。 解決策が見つかり次第、追記する。
トライアンドエラーを繰り返しまくった為、 もしかしたら必要の無い手順が入っているかもしれない。
また、DebianのIIIMFをインストールすれば改善するかもしれないが、 今回は付属のHTTとXIMで動かす。
環境及び検証内容
下記の環境をセットアップしています。
基本的にはDebianのインストーラで最小構成 + System Utilityをインストールした後、
xinitとopenboxをインストールした形です。
- Debian 12.9 i386
openbox 3.6.1-10xinit 1.4.0-1- 日本語設定
LANG=ja_JP.UTF-8XKBMODEL=pc105XKBLAYOUT=jpfonts-noto-cjk
下記のソフトウェアにて日本語入力を検証しました。
vim-gtk3 2:9.0.1378-2+deb12u2(成功)xterm 379-1(成功)
既知の問題
現状、下記の問題が起きており、解決方法は不明です。
- 環境設定等の一部ウィンドウが開かない
- 開こうとするとXごとフリーズする
- パレットや変換候補ウィンドウ、辞書ツール等は出る
- 文字パレットは問題無く出る
BasicAux,DicUTAux,PropertyAuxが動かないでよさそう
- (アップデート後) 上記ウィンドウを開いた後、しばらくするとXがフリーズする
- 素早く設定して
killall xinitするしかなさそう - 検証が甘いので、別の原因がある気もする
- 素早く設定して
- 入力時に極端に不安定な挙動を取ることがある
- 日本語入力仕様と思ったらフリーズするような挙動も
- アプデで改善せず。
公式tgzパッケージの展開
doc/ATOK/readme_for_tar.htmlの通りに、下記のファイルを展開し、/にコピーする。
今回は、GTK2.4を利用する。
/bin/IIIMF/iiimf-client-lib-trunk_r2059-js1.i386.tar.gz
/bin/IIIMF/iiimf-csconv-trunk_r2059-js1.i386.tar.gz
/bin/IIIMF/iiimf-protocol-lib-trunk_r2059-js1.i386.tar.gz
/bin/IIIMF/iiimf-rc-trunk_r2059-js1.i386.tar.gz
/bin/IIIMF/iiimf-server-trunk_r2059-js1.i386.tar.gz
/bin/IIIMF/iiimf-x-trunk_r2059-js1.i386.tar.gz
/bin/IIIMF/iiimf-gtk24-trunk_r2059-js1.i386.tar.gz
/bin/ATOK/atokx-17.0-2.0.i386.tar.gz
アップデートの適用
上記のトラブルの元になる可能性があるため、必要に応じて入れる形を推奨。
公式からATOK for Linux アップデートモジュールをダウンロードし、
tar.gz内の下記のファイルを展開し、/に上書きコピーする。
bin/ATOK/atokx-17.0-2.1.i386.patch.tar.gz
iiimf-gtk24-trunk_r2059-js2.i386.tar.gz
前提パッケージのインストール
aptに存在するパッケージを入れる。
apt install libstdc++5 libgtk2.0-0
libpangox-1.0のインストール
aptに存在しなくなってしまったlibpangoxをインストールする。
Bullseye版のdebファイルをダウンロードするか、
Debian Snapshotから適当なバージョンなりソースをダウンロードする。
Systemdサービスの定義
今回はinitスクリプトは使わず、完全にSystemdから取り扱う。
/etc/systemd/system/atokx2.serviceは下記の通り。
[Unit]
Description=ATOK X2 Daemon
After=network.target
[Service]
ExecStart=/opt/atokx2/sbin/atokx2mngdaemon
Type=forking
Restart=on-failure
[Install]
WantedBy=multi-user.target
/etc/systemd/system/iiim.serviceは下記の通り。
atokx2を前提条件にしている。
[Unit]
Description=iiim (htt)
After=network.target atokx2.service
Wants=network.target atokx2.service
[Service]
ExecStart=/usr/lib/im/htt
Type=simple
Restart=on-failure
[Install]
WantedBy=multi-user.target
最期に自動起動を有効にし、同時に初回起動もしてしまう。
systemctl daemon-reload
systemctl enable --now atokx2 iiim
xinitrcを書く
~/.xinitrcに下記の内容を記述する。
#!/bin/bash
export XMODIFIERS=@im=htt
export XIM="htt"
export XIM_PROGRAM=/bin/true
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
. /opt/atokx2/bin/atokx2_client.sh
exec /etc/X11/xinit/xinitrc
これで次にstartxした際にATOKが立ち上がる。