root権限なしでコマンドラインツールを使用してCtrl-Alt-Backspaceの組み合わせを無効にしたいと思います。
私もsetxkbmap
使用できることを知っていますzh「クイックトランジション」オプションを使用できますterminate:ctrl_alt_bksp
。また、setxkbmap -option
[オプションなしで命名]は次のものを削除します。みんなオプション。 1つだけ選択解除する方法はありますか?
答え1
少し難しいです。-option
まず、空のパラメータを使用してすべてのオプションを削除してから、同じオプションを設定します。終了リストから除外:
setxkbmap -option -option $(setxkbmap -query |
sed -n 's/options:\s*\(terminate:[^:]*,\)\?\|,terminate:[^,]*//gp')
答え2
私の(制限された)経験によると、最も効果的な方法は次のものを使用することです。
setxkbmap -query
次に、現在の設定を印刷し(現在のキーボード設定を表示するのではなく)、setxkbmap -print
引数なしですべて削除オプションを使用します。-option
setxkbmap -option
次に、新しいオプションを一度に1つずつ再導入します。
setxkbmap -option key:key_replacement
答え3
簡単な方法:
setxkbmap -option
setxkbmap -option 'terminate:ctrl_alt_bksp'
答え4
以下は、許可された回答に基づくより一般的なスクリプトです。または、パターンを渡して元に戻してunsetxkbmap-option 'terminate:.*
結果-option ctrl:swapcaps
をプレビューすることもできます。unsetxkbmap-option -n '.*swap.*'
!/bin/sh -eu
DRY=
while test $# -gt 0; do case "$1" in
--dry-run|-n) shift; DRY=y ;;
--) shift; break ;;
-*) echo "Unknown: $1"; exit 1 ;;
*) break ;;
esac; done
opts=$(setxkbmap -query |
perl -wlnE 'if (/^options:\s*/gc) { ($& =~ /'^"$1"'$/ or print "-option $& ") while /[^,]+/g }'
)
printf '%s\n' "$opts"
test -z "$DRY" && setxkbmap -option $opts