私はコンソール設定を使用してXとコンソールの両方で動作する方法を探しています(xkboptionsやX関連の方法などはありませんxmodmap
)。 XKBoptionsを使用すると、組み合わせは目的の効果を得るctrl:swapcaps
ことができませんcaps:swapescape
。つまり、Caps Lock(良好)に制御権を付与し、Control キーと Esc キーに Caps Lock を適用します。
気になる人や混乱している人にとっては、より一般的に使用されている機能に簡単にアクセスできるキーに配置してキーボードレイアウトを最適化することが合理的です。
私はCaps Lockをまったく使用していないので、ControlをCapsLockに置き、EscapeをControlに置き、Escapeキーはそのままにするソリューションを選択します(CapsLock機能はありません)。
答え1
カスタムXKBOptionの追加
Debian は Xorg とコンソールの両方に XKB システムを使用するので、1 つのアプローチはカスタム XKBOption を追加することです。 Debianの関連ファイルは/usr/share/X11/xkb
ファイルの下にあります。もし頼るxkb-data
パック。
作る
symbols/custom
// rotate the caps lock, left control, and escape keys so left control is on // the caps lock key partial modifier_keys xkb_symbols "rotatectrlcapsescape" { replace key <CAPS> { [ Control_L ] }; replace key <LCTL> { [ Escape ] }; replace key <ESC> { [ Caps_Lock ] }; };
編集
rules/xorg
:このセクションを見つけて! option = symbols
追加してください。custom:rotatectrlcapsescape = +custom(rotatectrlcapsescape)
(オプション)アップデート
rules/xorg.lst
とrules/xorg.xml
(読者の練習用に残しました)。
これでcustom:rotatectrlcapsescape
カスタムXKBOptionを使用できます。 Debianの指示によると、/etc/default/keyboard
基本的にXKBOPTIONS="custom:rotatectrlcapsescape"
。
rules/evdev*
Ubuntu/ Gnomeはrules/xorg*
。
欠点
- 以下のストレージパッケージファイルを変更することはお
/usr/
勧めできません。変更されたファイルは、xkb-data
次に含まれるパッケージ()が更新されると破損する可能性があります。
答え2
コンソールキーボード入力とXWindowの共通点は、どちらの場合もカーネルのUSBキーボードドライバがUSBキーボードと通信してスキャンコードを生成することです。システムのこのコンポーネントを変更すると、すべてのキーボード入力に影響します。
カーネルツリーのソースファイルの静的テーブルとusb_kbd_keycode
関連コードを参照してください。drivers/hid/usbhid/usbkbd.c