Caps Lock キーを Ctrl に設定したときのまとめ (Ubuntu 20.04, 22.04)
ネット検索すると、/etc/default/keyboard というファイルの XKBOPTIONS の行を
XKBOPTIONS="ctrl:nocaps"
と書き換えればいいことがわかりました。( sudo nano /etc/default/keyboard ってやる、エディタを使う方法。)
何度も Ubuntu 日本語 Remix をインストールしなおすはめになって、上記の設定を自動化したいと思いました。
sed を使って
sed -e s/XKBOPTIONS=".*"/XKBOPTIONS="ctrl:nocaps"/ /etc/default/keyboard
とやると、標準出力に結果が表示されて変更がうまくできていました。
あとは結果をリダイレクトしてファイルにできれば目標達成です。
実際の変更は sudo ( root 権限)で行う必要があります。
ですが
sudo sed -e s/XKBOPTIONS=".*"/XKBOPTIONS="ctrl:nocaps"/ > /etc/default/keyboard.new
とやるとファイルが作成できなくて失敗しました。
sudo は前半の sed~には効くけれど、リダイレクトから先は効いていないようです。
(子プロセスがふたつ作られてパイプがつながれ、ひとつめが sudo sed~、ふたつめは自分の権限でファイルオープンかと思います。)
そこでまず、次のように実行したいことをテキストファイルにまとめました。
KEYCONF=/etc/default/keyboard
SFX=old
cp -f ${KEYCONF} ${KEYCONF}.${SFX}
rm -f ${KEYCONF}
sed -e s/XKBOPTIONS=".*"/XKBOPTIONS="ctrl:nocaps"/ ${KEYCONF}.${SFX} > ${KEYCONF}
そして
sudo bash コマンドを記述したファイル名
としたらうまくいきました。
込み入ったコマンド、一連のコマンドを sudo で実行したいときは、この方法が有効なようです。