試した環境 Ubuntu20.04
キーボード配置 英語
fcitx, mozc
やりたいこと
- 「CapsLock」を「全角半角」に(本来英語キーボードにはない)
- 英数のときは小文字であること
- 日本語のときも小文字であること(F10押すと小文字になること)
- CapsLockは使えない状態にする
X11のファイルを設定する
/usr/share/X11/xkb/symbols/capslock を見ると、どういう書き方になるかを確認できます。
/usr/share/X11/xkb/rules/evdev の中にコマンド群があって、caps: ... という項目が並んでいるので
caps:mycaps = +mysetting(mycaps)
を適当な場所に追加します。(caps:mycaps という設定をmysettingファイルのmycaps から読む、という意味)
次に、設定ファイルを作ります。/usr/share/X11/xkb/symbols/mysetting に以下を書き込んで保存します。(mycapsを呼び出すと、CAPSをZenkaku_Hankakuにする、という意味)
hidden partial modifier_keys
xkb_symbols "mycaps" {
key <CAPS> { [ Zenkaku_Hankaku ] };
};
ここまで設定して、
$ setxkbmap -option caps:mycaps
とすると、CapsLockがZenkaku_Hankakuに変更できます。
設定ショートカットを作る
頻繁に設定がリセットされてしまうので、ショートカットを設定します。リセット自体は防げないようです。
mozc_reset.sh という名前(任意)でファイルを作ります。
このシェルスクリプトでは、fcitxを上書きしてからsetxkbmapを実行しています。
#!/bin/bash
# if Caps Lock is on, turn off
check=$(xset q | grep -q 'Caps Lock: off'; echo $?)
if [ $check -eq 1 ] ; then
xdotool key Caps_Lock
fi
# reset fcitx-mozc
fcitx -r 1>/dev/null 2>&1
sleep 1s
setxkbmap -option caps:mycaps
パーミッションを変えておきます。
$ chmod 755 mozc_reset.sh
実行確認します。
$ bash mozc_reset.sh
ショートカットとして追加
Setting->Keyboard Shortcuts + を押して追加ウィンドウ
Name: (任意)
command: bash mozc_reset.sh
Shortcut: (任意)
とりあえず使えています。たまに2回ショートカットを動作させないと正しく動かないときがありますが・・・。
参考
https://askubuntu.com/questions/968806/remap-caps-lock-to-ctrl-b
0 件のコメント:
コメントを投稿