このテーマについてはうん10年試行錯誤していて永遠に完成しないバベルの塔だが現状の最適解.

毎年恒例のように2022もこのテーマを調べてハマって苦しみましたので定期的に書いておく. ここに書くことは数年後にはもう古くてダメかもしれないけど. もうわたしはローマ字入力をそもそも忘れてできないし,Linux以外のOSをつかうモチベが今のところはないので,これで生きていくしかない…

デスクトップは現在 Manjaro Linux(xfce4)を利用中, 定期的に変わりますがUbuntuだろうとArchLinuxだろうとLinuxならば取り組んでいることは変わりません.

ゲームチェンジャーoyainput + fcitx(fcitx5) + Mozcをつかう

EmacsといわずLinuxで親指シフトを入力するときの2022現在の最適な方法は Mozc+oyainput.

oyainput というゲームチェンジャーのツールによってAnthyだろうがMozcだろうが親指シフト対応が可能となっている.

そしてoyainputと連携してEmacsへmozc入力しようとしたとき,Emacs Lisp経由でEmacsの中からibus, fcitx, uimと通信して入力する方式ではoyainputと連携できず,mozcも使えない.

そのためibusなりfcitx, uimなりのIMを介してMozcを利用してそのIMから直接Emacsに入力する(uim.el, mozc.elは使わない. anthy.elは古くて動かなかった. fcitx.elは紛らわしいので後述) .

この3つの選択肢のなかでfcitxが現在開発が活発(主に中国界隈)なため,fcitxをつかうのがいい.(わたしはfcitx5を利用している).

ちなみに fcitx.el というElispはM-xやminibufferにカーソルが移動したときのみ fcitx-remoteのインタフェースを利用して一時的な有効/無効を切り替えるツールなので,このelispを経由して直接入力をしているのではないことは紛らわしいので注意. (わたしは fcitx.elはつかっている).

oyainput以前の従来の方法は,AnthyでNICOLA辞書を指定するのが最適解だった. (ibus-anthy or fcitx-anthy or uim-anthy) + oyainputの組み合わせでも問題ないが,anthy補間よりもmozc補間のほうが優秀.

FcitxでEmacs GUIの日本語入力ができないときの対処方法

そもそもLinuxでGUIのEmacsにFcitxで入力できなくてほとんどの人が激怒する気がする. 日本語情報がなくて苦戦したが中国語でも同じ課題があるだろうという観点で検索したら解決方法か見つかったので載せておく.

これについては環境変数でLC_CTYPE=zh_CN.UTF-8を設定して起動する.

link: https://fcitx-im.org/wiki/Input%5Fmethod%5Frelated%5Fenvironment%5Fvariables

LC_CTYPE=zh_CN.UTF-8 emacs

追記1: –with-xinput2

どうも数週間前(2021-12-25のクリスマス…)に手元でビルドしたときは問題なく入力できていたのに,年明けにビルドしたら入力ができなくなってしまった. AURからインストールしたものは動作したので,そこで指定されている引数を参考にしてなにが影響しているか何度もビルドして調べたら,–with-xinput2という引数をわたしたら問題なくビルドできた.これが一時的な不具合なのか,native comp特有の問題なのかは障害情報を漁ったわけではないのでわからない.

./configure –with-native-compilation –with-xinput2

この辺かも. 年末は動いて年明けはダメだったんだよな…

https://emba.gnu.org/emacs/emacs/-/commit/3b68662a8226805c397f2a9dbd427a7ce716273b https://emba.gnu.org/emacs/emacs/-/commit/978987f7ad58cd66fe51cefde53ba4771b189aeb

追記2: EXWMと組み合わせると入力できない

EXWMと組み合わせるとやっぱり入力できなくなったので追加の対応.

emacsとfcitx5の起動の前に環境変数を設定してあげないと正しく動作しない.

めんどくさいのでシステムのlocaleでLC_CTYPE=zh_CN.UTF-8に変更した. 不具合がでたら考えるか中国語を覚えよう.

ロケール - ArchWiki

そしてfcitx5はシステムで起動するのではなくて~/.xprofileにて直接起動.

export LC_CTYPE=zh_CN.UTF-8
fcitx5 &
oyainput &

ポエム,なぜ親指シフトをつかうのか?

親指シフトをつかうということは生産性の前にアイデンティティに関わるので効率が悪くても死ぬまで使うでしょう.

わたしが新卒で入った会社の50歳以上の社員の人たちはみんなOJTで親指シフトで洗脳され,今はローマの民に鞍替えしても心は親指シフターな人たちが周りにたくさんいたし,ゴミだらけの倉庫には親指シフトキーボードもゴミのように転がっていたのでわたしは普段用と待機用の2つの親指シフト専用キーボードを確保していた. 親指シフト専用キーボードは2022現在は生産中止したとか.しかしあれはダサいし大きすぎるのでそもそもエミュレータがあれば誰も買わないでしょう.

わたしは親指シフトでつかうキーボードはHHKBを利用している. HHKBを利用する理由もアイデンティティに関わる. 5年くらいPFUの優秀な方々と仕事をしてたいへんにお世話になった(迷惑をかけた?)ので, PFUリスペクトという精神.

戦歴