:::color:gray 書いた時は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として認識してくれるのが唯一の救いか。