Diary/2024-1-3
Tgif で日本語入力
生活環境は,fcitx-mozcなUbuntu 22.04.
これにaptでインストールしているTgifではIMでの日本語入力ができてないどころか,
コピペしようとしても文字化けしてペーストできなかった.
というわけで,
- https://ayapin-film.sakura.ne.jp/Tgif/utf8.html
- https://qiita.com/qiitamatumoto/items/bf142b88056fba0d1d94
を参考に,先人の日本語パッチあててTgifをビルド.
% wget --no-check-certificate https://bourbon.usc.edu/tgif/ftp/tgif/tgif-QPL-4.2.5.tar.gz % mkdir tgif-patches; pushd tgif-patches % wget --no-check-certificate https://bourbon.usc.edu/tgif/ftp/tgif/patches/tgif-QPL-4.2-patch5a.gz % wget --no-check-certificate https://bourbon.usc.edu/tgif/ftp/tgif/patches/tgif-QPL-4.2-patch5b.gz % wget https://ayapin-film.sakura.ne.jp/Tgif/Srcs/tgif-utf8conv2euc.patch % wget https://ayapin-film.sakura.ne.jp/Tgif/Srcs/tgif-textcursor-a-urasim.patch % popd % tar xvf tgif-QPL-4.2.5.tar.gz % cd tgif-QPL-4.2.5 % patch -b -p0 < ../tgif-patches/tgif-QPL-4.2-patch5a % patch -b -p0 < ../tgif-patches/tgif-QPL-4.2-patch5b % patch -b -p0 < ../tgif-patches/tgif-utf8conv2euc.patch % patch -b -p0 < ../tgif-patches/tgif-textcursor-a-urasim.patch
で,Makefile.inに,-D_HAS_STREAMS_SUPPORT -DENABLE_NLS を追加して
% ./configure --prefix=/usr/local/ % make
としてビルド.
locale.hがないとかstropts.hが邪魔とかに起因するコンパイルエラーがでるので適宜修正してビルド.
終わったら,
% sudo make install
でインストールして,$HOME/.Xresources に
Tgif.Lang: ja_JP.eucJP Tgif.Modifiers: false Tgif.ConvSelection: _JAPANESE_CONVERSION Tgif.DoubleByteInputMethod: xim Tgif.*IMProtocol: fxitx Tgif.DefaultSingleByteFont: Helvetica Tgif.DefaultColorIndex: 0 Tgif.UseNKF: true Tgif.CopyAndPasteJIS: true Tgif.PreeditType: overthespot Tgif.HKUShowFontChar: \244\244 Tgif.GBShowFontChar: \271\372 Tgif.RyuminShowFontChar: \244\242 Tgif.GothicBBBShowFontChar: \244\316
とか書いたものをxrdbで読み込んで,
% XMODIFIERS=@im=fcitx LANGUAGE=ja_JP LANG=ja_JP.EUC-JP LC_ALL=ja_JP.EUC-JP LC_CTYPE=ja_JP.EUC-JP /usr/local/bin/tgif
として実行.
これで,日本語入力モードを有効にできるようになった.
...が,入力してもテキストボックスに入らない.
コード眺めてみると,そもそも,text.c の,DrawText関数の時点で入力した文字列を取得できていない模様.
とりあえず,ペーストでだけでも日本語入ればいいや,と割り切ることにして,
text.cでペーストのハンドリングしてる箇所で無理矢理 UTF-8 → EUC-JP 変換することにした.
text.c(51)