!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 変換することにした. {{ref text.c}}