Xorg

設置帶有世界語抑揚符的 xorg

  • January 15, 2020

我正在嘗試將我的鍵盤設置為普通的德沃夏克鍵盤,並將世界語的抑揚符添加到有意義的鍵上。這意味著 ŝ 作為 s 鍵上的修飾符,ĉ 作為 c 上的修飾符,等等。

但是,在我看來設置正確的情況下,當我按下相關的組合鍵時,我卻沒有得到任何響應。

X11/xkb/symbols/epo列出部分鍵映射,根據基本鍵盤是 querty、dvorak 還是 colemak 應用抑揚符。例如,這裡有一些來自 qwerty 部分的內容:

partial
xkb_symbols "qwerty" {
   key <AB03> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
   key <AC05> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
   key <AC06> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };

當我查看evdev.lst或 時base.lst,我發現這部分稱為esperanto, esperanto:qwertyesperanto:dvorak我認為應該應用上述部分之一,這意味著它AltGr-c會生成一個帶有抑揚符的小寫 c。

我鍵盤上的 right-alt 鍵生成掃描碼 108,網際網路上有些地方說傳統上是AltGrISO_Level3_Shift. 但是 xev 很清楚這是Alt_R

KeyPress event, serial 34, synthetic NO, window 0x2400001,
   root 0x6c0, subw 0x0, time 28019153, (69,719), root:(1033,739),
   state 0x0, keycode 108 (keysym 0xffea, Alt_R), same_screen YES,
   XLookupString gives 0 bytes: 
   XmbLookupString gives 0 bytes: 
   XFilterEvent returns: False

最後,這是我要設置的 xorg 配置。我會注意到這兩個鍵盤都不會生成修改後的字元,即使 xev 表示按 right-alt 並c生成Alt_Rand c

     Section "InputClass"
       Identifier "built-in keyboard"
       MatchProduct "AT Translated Set 2 keyboard"
       Option "XkbLayout" "dvorak"
       Option "XkbOptions" "esperanto:dvorak"
     EndSection

     Section "InputClass"
       Identifier "ErgoDox EZ"
       MatchVendor "ZSA"
       MatchProduct "ZSA Ergodox EZ"
       Option "XkbLayout" "us"
       Option "XkbOptions" "esperanto:qwerty"
     EndSection

就目前而言,我不知道問題是我的鍵盤沒有生成 AltGr 掃描程式碼,還是 AltGr 現在意味著完全不同的東西,或者我的鍵盤選項不正確。我希望能幫助我完成這項工作,或者至少了解它為什麼不起作用。

嗯,找到了。

經過大量研究,我了解到我實際上相當接近。問題是美式鍵盤佈局實際上並沒有預設啟用 3 級。

我偶然發現了這個頁面,我lv3:ralt_switch在該部分中清楚地看到了XkbOptions

所以,我現在修改了我的 Xorg 配置部分,如下所示:

     Section "InputClass"
       Identifier "built-in keyboard"
       MatchProduct "AT Translated Set 2 keyboard"
       Option "XkbLayout" "us"
       Option "XkbVariant" "dvorak"
       Option "XkbOptions" "esperanto:dvorak,lv3:ralt_switch"
     EndSection

     Section "InputClass"
       Identifier "ErgoDox EZ"
       MatchVendor "ZSA"
       MatchProduct "ZSA Ergodox EZ"
       Option "XkbLayout" "us"
       Option "XkbOptions" "esperanto:qwerty,lv3:ralt_switch"
     EndSection

請注意,兩個鍵盤都設置為美國佈局,內部鍵盤設置為 dvorak 變體(因為,再次,外部鍵盤是 Ergodox 並且我已經將佈局快閃記憶體到硬體)。添加lv3:ralt_switch在我的右 alt 上啟用 AltGr。在相關部分中esperanto:dvorakesperanto:qwerty我現在的兩個鍵盤都可以按照我在問題開頭所描述的那樣工作。

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