Note
書いた時はCapsはCtrlにしてたけど、Escに変更して普段からCapsでVimのモード切り替えに使うようにしたらかいい感じだったのでEscに書き換えた(2016-07-25)
CapsLockと半角全角キーをEscにする
dconfでやるばあい
$ dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape', 'japan:hztg_escape']"
リセットは、
$ dconf reset /org/gnome/desktop/input-sources/xkb-options
その他の使いそうなキーオプションは/usr/share/X11/xkb/rules/base.lst
の中にいろいろ定義してある。caps
で検索かけるとcaps:nocaps
でCapsLockをCtrlにしたりとかいろいろ出てくる。
Ubuntu Unityだとdconf
コマンドとかdconfエディタを使わないといけないが、MATEとcinnamonはデスクトップの設定画面からこの辺りのことは一通りできる。それ以外、つまりGnomeとかは使ったことないので分からない。ネームスペースを変えれば同じようにできるんじゃないかな?(適当)
xmodmapでやるばあい
~/.Xmodmap
というファイルを作ってそこに
clear Lock
keysym Caps_Lock = Escape
keysym Zenkaku_Hankaku = Escape
みたいに書いて
$ xmodmap ~/.Xmodmap
で読みこむだけ。~/.Xmodmap
って名前ならログイン時に自動で読み込んでくれるっぽい。keycode
で番号を直接指定して機能を割り当ててもいいけどdotfilesで管理するなら配列が変わると動かなくなる可能性があるので keysym
でやるのが無難かも。キーコードから直接していたいばあいは $ xev
で起動するウィンドウがアクティブな状態でキーを入力すると入力したキーのキーコードが標準出力に得られるのでそれを参照する。
リセットは
$ setxkbmap
でできる。
既存のキーマップは
$ xmodmap -pke
で確認できる。peco
にパイプするとかなり見やすかった。
その他の設定や記法については$ man xmodmap
を読むべし。
ずっとdconfで設定してたんだけどShift + Caps Lock
を押すとやっぱりCaps Lockが有効になっちゃって間違って一緒に押した時すごい鬱陶しかったんだけど、Xmodmapだとそのへんも無効化できたりとか自由度が高いのでdconfよりオススメ。
無変換で英数入力、変換でかな入力に切換
要はMacと同じ指の動きで入力切換を行うようにする
fcitx
「入力メソッド」の上に「キーボード - 日本語」(英語配列なら英語で)、下に「Mozc」を指定
「拡張オプションを表示」ってのにチェックを入れて「入力メソッドをオンに」に変換キー、「入力メソッドオフに」に無変換キーを割り当てる。「入力メソッドのオンオフ」は使わないので空にしておく
uim
あとで書く
mozc
dconfの設定で半角全角キーの入力はEscとして認識されるものの、依然としてmozc側でも入力切換としても認識されてしまっている。 なので「Mozcの設定画面」→「キー設定の選択」から好みの入力メソッドをデフォルトとしてインポートした上で「Hankaku/zenkaku」に割り当てられているものを全て削除
使ってるキーボードのEscキーのチャタリングがひどくなってきたのがきっかけだったんだけど、入力切替方法の変更はタイピングの快適度が10%くらい向上した感じがあり、もっと早くにやっておけばよかったな、という感じ。あと最近Vimをメインのエディタとして使っているんだがCaps LockをEscapeとして使うと小指が忙しくなくて左手に優しい。
唯一残念なところは、Steamのゲーム(自分がやるのはCS:GOとTF2)だと本物のEscしかEscとして認識してくれないので相変わらず相変わらずチャタリングの影響を受けまくる(一回押すだけで二回押したと認識されてメニューが開いた瞬間閉じたりする)というところかな。Wineで動かしてるosu!はちゃんとCapsLockも全角半角もEscとして認識してくれるのが唯一の救いか。