Caps Lockをコントロールキーとして使用し、次のコマンドで設定します(Gnomeを実行しています)。
gsettings set org.gnome.desktop.input-sources xkb-options \
"['caps:ctrl_modifier']"
時にはControlで変更されたキーを押すと、そのキーが自動的に繰り返されます。たとえば、Ctrl-w と入力すると、突然 w キーを押したかのように繰り返され始めます。キーアップイベントがありません。別のキーを押すまで、繰り返しは無制限に続行されます。
また、Controlが変更するキーを押すと、「間違ったキーを押した」ようにまったく機能しないことがあります。もう一度試してみましたが、うまくいきましたが、同じ根本的な問題の別の症状のようです。
この問題をどのようにデバッグ/修正できますか?どのキーボードイベントがいつ送信されるかを確認したいと思います。
修正する
私はまだこの問題に対する解決策を見つけることができませんでした(以下の答えは有用な情報ですが、私の問題を解決できないので、どうすればいいのかわかりません)。私はxinputを使う関連するキーボードイベントを監視します。
press Caps
press W
、、、などrelease Caps
のキーシーケンスを使用してキー反復エラーのみを再現できるため、「ロールオーバー」と関連があるようですrelease W
(Capsをリリースする前にWをリリースする代わりに)。
また、仮想コンソールではなくXでのみエラーを再現できます。
xkb-options
設定で設定を消去し、gsettings
次に/etc/X11/xorg.conf.d/00-keyboard.conf
依存します。
Section "InputClass"
Identifier "Keyboard catchall"
MatchIsKeyboard "on"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "XkbOptions" "ctrl:nocaps"
Option "XkbVariant" ""
EndSection
仮想コンソールとXの両方で動作するため、caps:ctrl_modifier
切り替えました。ctrl:nocaps
それで、まだ解決策を探しているのですが、その過程で少なくとも何かを学んだような感じがします。
ベストアンサー1
GnomeではなくXserverでコントロールキーの動作を設定します(Xではなくウェイランドを使用しないと仮定)。
使用setkbmap
キーボードレイアウトを入手してください。
setxkbmap -query
ラベル付きのセクションを見つけます
layout
。gb
英語のレイアウトに似ています。あなたの状況は異なる場合があります。上記の#2で使用したものと同じレイアウトを使用して、キーボードレイアウトオプションを変更します。
setxkbmap -layout gb -option ctrl:nocaps
ここのオプションは、
ctrl:nocaps
Caps Lockを制御するための追加のキーを提供します。この変更を永続的に適用するには、.xinitrc
ターミナルを使用するか、ターミナルでXを実行するときにファイルに追加します。そうでなければstartx
xinit
この回答をご覧くださいGnomeにログインしている間にコマンドを実行する方法を学びます。
使用xmodmap
.Xmodmap
ホームディレクトリに次のファイルを作成します。
!
! Make Caps_Lock another Control_L
!
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
その後、起動時に次のコマンドを実行して、この変更をXセッションに適用できます。
xmodmap ~/.Xmodmap
好きなものがあれば、それをレパートリーに追加する.xinitrc
か、上記のリンクと同じ方法を使用して永久に作成できます。
より深く
カーネルレベルで制御するために大文字と小文字の変更を使用することもできますloadkeys
。
ここでの基本は、dumpkeys
既存のキーマッピングをファイルにダンプすることです。loadkeys
新しいキーマップをロードするために使用されるCaps Lockマッピングを変更します。
カーネルがキーボード入力を読み取る方法を変更するため、これらの変更にはroot権限が必要です。これはフラッグハブの必須事項関連修正といくつかの説明が行われた。