どうやらキーボードの設定変更はxkbというのを用いるそうなので、
Happy my life | xkbでキーバインドを変更する
こちらのサイトを参考にして、まずxkbの設定ファイルとかを作る。
こぴぺ
まずベースとなる設定ファイル(mykbdファイル)を作成する。
$ mkdir -p ~/.xkb/keymap ~/.xkb/symbols
$ setxkbmap -print > ~/.xkb/keymap/mykbd
で、そのサイトではその後自分で設定ファイルとか作ってるんですが、よくわかりませんでした!()
けど、設定について勉強しようとおもって /usr/share/X11/xkb をみてたら /usr/share/X11/xkb/compat/japan とかいうファイルがあるんですよね。
これに「日本語環境ではCaps Lockは使わなくてEisuになってるよ」「Shift+Caps LockでCapsLockしてるよ」てきなことが書いてあって設定もしてあります。
要はこいつを読み込んじゃえばいいっぽいので、さっき作ったmykbdファイルをいじります。
mykbdファイルの中身はシステムによって異なるっぽいので、私の例です。
```:mykbd
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp+us:2+inet(evdev)" };
xkb_geometry { include "pc(pc104)" };
};
このxkb_compat
にjapanというファイルを追加で読み込ませます。+japan
を追記します。
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete+japan" };
xkb_symbols { include "pc+jp+us:2+inet(evdev)" };
xkb_geometry { include "pc(pc104)" };
};
これでTerminal開いて
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY 2> /dev/null
ってやればCaps Lock効かなくなります。Fcitxの設定、英数でMozc終了にしてたんですがやっとちゃんと効くようになりましたありがたい
あとは起動時に効くように、.bashrc に上のとおなじコマンドを突っ込んでおくだけです。
##追記
これだとシステム起動後にTerminal起動しないといけないですね。
というわけで
・/etc/X11/xkb 以下に同じ構造を作る
・/etc/profile.d 以下に実行ファイルを作る(起動時に読み込み)
します。
まずは /etc/X11/xkb に ~/.xkb の中身をコピーシます
次に /etc/profile.d 下に実行ファイルを作りました。
```sh:japanese_caps.sh
#!/bin/sh
xkbcomp -I/etc/X11/xkb /etc/X11/xkb/keymap/mykbd $DISPLAY 2> /dev/null
/etc/X11/xkb を使っても良いかわからなかったのですが特に問題ないのかな…?一応これで起動時からCaps Lockが無効にはなりました。
##追々記
これでも何故か自動的にCaps Lockが有効になっていたりするようです。なんでや!(怒)
というわけで、GUI的に対処しました。ずるい気がするけど。
まずDashで session と検索して「自動起動するアプリケーション」を起動
右メニューの 追加 で新しい自動実行を追加。名前は好きなものにして、コマンドのところに
bash /etc/profile.d/japanese_caps.sh
と記述(上でつけたファイル名)
これでログイン時にとりあえずCapsは無効化されます
次にログイン中にも有効化されるので、一定時間ごとにスクリプトを実行しましょう。
sudo apt-get install cron gnome-schedule
Dashで"Scheduled tasks"もしくは"gnome-schedule"と検索してScheduled tasksを実行
新規→「A Task That Launches Recurrently」→また同じようにコマンドのところにbash /etc/profile.d/japanese_caps.sh
であとは自由に。
これでEvery Hourとかにしとけばいいのかな。
とりあえずこれで様子見ます。