Xorg

根據輸入事件在鍵盤佈局之間切換

  • April 16, 2014

我的電腦上有一個法式和美式鍵盤。我正在使用很棒的 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

引用自:https://unix.stackexchange.com/questions/125021