Caps Lockキーを再度有効にするには?

Caps Lockキーを再度有効にするには?

現在、デフォルトのキーボードレイアウトを次のように設定しています。

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Caps Lock キーを無効にし、他の多数のオプションと一緒に追加の Ctrl キーを作成します。

キーボードレイアウトを切り替えるには:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

しかし、私が知っている限り、Caps Lockキーは再び有効になりません。左側のコントロールキーと Caps Lock キーは両方ともコントロールキーのままです。

完全なオプションのリストを消去できることはわかっていますが、メンテナンスのためにオプションをコピーして貼り付けないことをお勧めします。 Caps Lockを再度有効にするにはどうすればよいですか?

修正する: xev(1)を使用したキーストロークを見ると、ctrl:nocapsは両方のキーにControl_Laを提供しますが、ctrl:swapcapsはCaps Lockキー(キーを押して提供されますCaps_Lock)を「復元」するようです。ただし、Caps Lock LEDは点灯せず、実際には動作しません。

X.orgソースのドキュメントを見ると、xkeyboard-config/symbols/ctrl問題に関するヒントがあります。

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

後者のオプションには何をしても modifier_map 行はありません。

答え1

次のコマンドが機能するはずです。

xmodmap -e 'keycode 0x42 = Caps_Lock'

または

setxkbmap -option

上記のコマンドはデフォルトの動作を復元するのにうまく機能し、幸いにもほとんど必要ありません。

私は通常、次のコマンドを使用してCaps LockをControlに再マップします(幸い、VI / VIMはESCの代わりにCTRL-Cをサポートしています)。

setxkbmap -option ctrl:nocaps -layout gb

答え2

努力するsetxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

マンページから:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

皮肉なことに、ここ-option ctrl:swapcapsに実際に適用される内容があります-option ctrl:nocaps。行動が変わると思います。

編集する:OPが言ったように、彼は欲しかった避けるオプションを消去します(上記のように実行)。

/usr/share/X11/xkb/rules/xorg.lstctrl:aa_ctrlオプション(左下のコントロール)を表示し、nocapsここでCaps Lockをリセットするようです。

試してみる価値があると思います。この方法がうまくいかない場合に備えて、リスト(grep ctrl\:)を見て、他の方法で動作するかどうかを確認することもできます。

このオプションがなければ、Caps LockをCaps Lockキーに再接続して現在のキーマップをハッキングすることが解決策のようです(ただし、1行でこれを行うことができるツールがあると信じる以外にこれには経験がありません)。 )。

答え3

Caps Lockを有効にするには、「caps:capslock」オプション(xkb_symbolsに「+capslock(capslock)」を追加するようにマップされています)があります。

しかし、オプションが追加されました(おそらくすべて大文字:xxxxx?)今後既存のctrl:xxxxx; ctrl:swapcapsはcapslockキーをオーバーライドするため、このオプションは効果がありません。

したがって、すべてのオプションを削除し、実際に必要なオプションを入れる必要があります。オプションは、前のオプションの操作をキャンセルできない方法で存在し、競合するオプションがあります(たとえば、2つ以上のオプションをリセットするなど)。同じキー)順序を定義することはできません。

関連情報