使用setkbmap

使用setkbmap

Caps Lockをコントロールキーとして使用し、次のコマンドで設定します(Gnomeを実行しています)。

gsettings set org.gnome.desktop.input-sources xkb-options \
  "['caps:ctrl_modifier']"

時にはControlで変更されたキーを押すと、そのキーが自動的に繰り返されます。たとえば、Ctrl-w と入力すると、突然 w キーを押したかのように繰り返され始めます。キーアップイベントがありません。別のキーを押すまで、繰り返しは無制限に続行されます。

また、Controlが変更するキーを押すと、「間違ったキーを押した」ようにまったく機能しないことがあります。もう一度試してみましたが、うまくいきましたが、同じ根本的な問題の別の症状のようです。

この問題をどのようにデバッグ/修正できますか?どのキーボードイベントがいつ送信されるかを確認したいと思います。


修正する

私はまだこの問題に対する解決策を見つけることができませんでした(以下の答えは有用な情報ですが、私の問題を解決できないので、どうすればいいのかわかりません)。私はxinputを使う関連するキーボードイベントを監視します。

press Capspress 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

  1. キーボードレイアウトを入手してください。

    setxkbmap -query
    

    ラベル付きのセクションを見つけますlayoutgb英語のレイアウトに似ています。あなたの状況は異なる場合があります。

  2. 上記の#2で使用したものと同じレイアウトを使用して、キーボードレイアウトオプションを変更します。

    setxkbmap -layout gb -option ctrl:nocaps
    

    ここのオプションは、ctrl:nocapsCaps Lockを制御するための追加のキーを提供します。この変更を永続的に適用するには、.xinitrcターミナルを使用するか、ターミナルでXを実行するときにファイルに追加します。そうでなければstartxxinitこの回答をご覧ください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権限が必要です。これはフラッグハブの必須事項関連修正といくつかの説明が行われた。

おすすめ記事