Xorg
根據輸入事件在鍵盤佈局之間切換
我的電腦上有一個法式和美式鍵盤。我正在使用很棒的 wm 並設置了所有內容,以便我可以輕鬆地在鍵盤佈局之間切換。但我還是得自己做。
理論上,電腦應該可以理解輸入事件來自哪個鍵盤,並使用與鍵盤相關的佈局。我查了一下,但沒有找到好的答案。有可能這樣做嗎?
我在想我可以編寫一個簡短的程式碼來分析鍵盤事件並進行切換,但是:
- 它將與事件處理程序並行執行,因此可能存在並發問題(類似這樣);
- 這看起來像是一種骯髒的方式,我更喜歡乾淨的解決方案。
謝謝你的幫助
您可以通過單獨配置鍵盤來做到這一點。例如,我在我的筆記型電腦鍵盤上使用美式英語佈局,並有一個帶有德語佈局的 Sun Type 6 USB 鍵盤,我的鍵盤中有以下內容
/etc/X11/xorg.conf.d/10-evdev.conf
:# Default configuration for all keyboards not handled explicitly Section "InputClass" Identifier "evdev keyboard catchall" MatchIsKeyboard "on" MatchDevicePath "/dev/input/event*" Driver "evdev" Option "XkbRules" "evdev" Option "XkbModel" "pc105" Option "XkbLayout" "us(altgr-intl),de,ru" Option "XkbOptions" "lv3:menu_switch,caps:hyper,compose:ralt,grp:rctrl_rshift_toggle,terminate:ctrl_alt_bksp" EndSection # Match the external keyboard by USB ID Section "InputClass" Identifier "Sun Type 6" MatchIsKeyboard "on" MatchUSBID "0430:0005" Driver "evdev" Option "XkbRules" "evdev" Option "XkbModel" "sun(type6)" Option "XkbLayout" "de" Option "XkbOptions" "caps:hyper,compose:menu,terminalte:ctrl_alt_bksp" EndSection