†Linuxなんて大キライ†
作成開始日 2019.11.20
最終更新日 2020.12.15
【注意】以下の記事は、AutoKeyの存在を知らない段階で書いたもの。故に、相当に的外れな部分がある。ただし、CapsLockをmode switchに変更して、擬似ダイヤモンドカーソルを実現する手法自体は、けっこう興味深いものだと思う。(2021.06.21)
Linuxにはまともなテキスト・エディタがない。 ここで言う「まとも」とは《キーカスタマイズ》が可能で《Shift-JIS》が扱えるエディタのこと。 或は、ハナからWordStar準拠のキーバインドのエディタでも良いのだが… そのようなLinux用エディタは(知る限りで)皆無である。 それが、私がLinuxに全面移行できない最大の障害になっている。
私にとって、WordStar/WordMaster準拠のエディタは必須で、これなしのPCは有り得ない。 少なくとも、Ctrl+MでReturn、Ctrl+HでBackSpaceは基本中の基本、絶対必須である。 ところが、なぜか(各OS共通だが)コマンドラインでは、このキーバインドを採用しながら、 GUIアプリでは一切サポートしてない(ごく希な例外は存在するが)。 そこまで否定するなら、何でコマンドラインで残しておくのかワケがわからん。
他の環境では、まずはCtrlとCapsLockの位置を交換し、 キーバインドを自由に変更できるテキストエディタを使って、WordStar準拠環境を構築していた。 DOSでもWinでもOS/2でも、キーバインドがフルカスタマイズ可能なエディタは必ず存在した。 Linuxの場合、Ctrlキーの位置変更は簡単だが、意外なことにキーカスタマイズが自由なエディタがない。 Shift-JIS対応が条件となると、コマンドライン版が除外されるので尚更である。 UTF-8のみで良ければ、nanoがかなり使えそうだが…
GeanyはShift-JISも扱えるし、キーカスタマイズ機能も付いているので期待したが、 DOSテキストは化けるし、Ctrl+HにBackSpaceを割り付けることもできないしで、役に立たなかった。 10本以上のエディタをチェックしたが、大同小異と言うか…むしろGeanyはそれでもまともな部類だった。 そこで、アプリレベルでの対応は諦め、OSレベルでキーマップを変更してしまおうと考えた。
その後、いろいろ試してみたが、一番実用的なのは、VirtualBox/VMWareをインストールして、WinMeのテキスト・エディタ(例えばApsaly)を使用する方法。Linuxは「環境」と割り切って、テキストベースの作業は仮想化環境上のWindowsやOS/2で行う方が現実的だと思う。
それ以前の問題として、上記の強制割当にはCtrlキーをmode switchキーに設定する必要があり、 CtrlキーがCtrlのkeysymを吐かなくなる;つまり本来のCtrl+の機能は全て無効化されてしまう。 Ctrl+C/X/Vによるコピペなども不可能になる。流石にこれは拙い。
で、思い付いたのが、CtrlとCapsLockの位置は交換せずに、CapsLockをmode switchとする方法。 つまり、通常のCtrlキーの機能は、本来のCtrlキーの位置(左下隅)で実行し、 WordStarライクなキー操作するときのみ、CapsLockを擬似Ctrlキーとして使用する。 これだと操作の一貫性が崩れるが、すべての機能が使用可能になる。
keycode 66 = Mode_switch keycode 43 = h H BackSpace BackSpace keycode 58 = m M Return Return keycode 65 = space space Zenkaku_Hankaku Zenkaku_Hankaku keycode 39 = s S Left Left keycode 40 = d D Right Right keycode 26 = e E Up Up keycode 53 = x X Down Down keycode 27 = r R Prior Prior keycode 54 = c C Next Next keycode 38 = a A Home keycode 41 = f F Endキー設定を標準状態に戻した上で(CtrlとCapsLockが交換された状態では不可)、 上記設定を任意のテキストファイル(ここではdiamond.key)に書き込んで、「xmodmap diamond.key」を実行する。 これで、BackSpace/Enter、ダイヤモンドカーソル、PageUp/PageDown、Home/Endが「CapsLock+英字」で実現できる。 また、CapsLock +sapceでIMEのON/OFFができるように、全角/半角キーの機能を割り当てている。
この変更を加える前に、元に戻す方法を確保しておくこと;
なお、キー設定を弄り回していると、変更が効かなくなってしまうことがある。その場合は、一度デスクトップやXを再起動してみるとよい。
で、しばらく使ってみたが、使用感は微妙なところ。 確かにテキストエディタの操作性は圧倒的に改善された。LeafpadがWordStarになった!…は言い過ぎだが。 ブラウザなどの文字入力でもCtrl+H/Mが効くのは物凄く有り難い。 ただし、無意識的にCtrk+KS(保存)とかCtrl+QS(行頭)とか操作してしまっている事がある。 中途半端にWordStar準拠なのが、逆に混乱を招いている感じだ。
また、ブラウザではCtrl+クリック(別タブでリンクを開く)、Ctrl+W(タブを閉じる)などを多用するが、 やはり、ついつい本来のCtrlキーではなく、CapsLockの方を押してしまう。 この辺りは身体に染み付いている操作なので、何とも言えないところだ…
それに、そもそもCtrlが左下隅って、Win標準の操作系でも物凄く使いにくくないか? Altよりも多用するんだから、最下段だとしても、もっと内側に配置すべきだろう。 無変換とか要らないキーを置いておくのは無駄だよな… この操作系に全面移行するのは、やはり相当に抵抗がある。
てんで、CtrlとWinキーを交換して、ついでに[無変換]もCtrlキーにしてみた;
remove mod4 = Super_L remove control = Control_L keycode 115 = Control_L keycode 131 = Control_L keycode 37 = Super_L add control = Control_L add mod4 = Super_LCtrlとAltを交換するときは(やっぱり[無変換]はCtrl);
remove control = Control_L remove mod1 = Alt_L keycode 37 = Alt_L keycode 64 = Control_L keycode 131 = Control_L add control = Control_L add mod1 = Alt_Lこれとて、根本解決には程遠いが、まあ、何とか我慢できるレベルになった。