Keyboard-Layout

如何映射組合鍵以通過 setxkbmap 插入?

  • March 23, 2021

我正在使用美國(非國際)佈局。鍵入 üäöß 的一種方法是通過以下方式設置組合鍵: setxkbmap -layout us -option compose:ralt

不幸的是,這會從右 alt 中刪除正常的“alt”功能。

1-我認為insertkey 在現代編輯器中是無用的。如何將撰寫鍵映射到它?可用選項列表僅包括幾個鍵:

grep "compose:" /usr/share/X11/xkb/rules/base.lst

 compose:lwin         Left Win
 compose:lwin-altgr   3rd level of Left Win
 compose:rwin         Right Win
 compose:rwin-altgr   3rd level of Right Win
 compose:menu         Menu
 compose:menu-altgr   3rd level of Menu
 compose:lctrl        Left Ctrl
 compose:lctrl-altgr  3rd level of Left Ctrl
 compose:rctrl        Right Ctrl
 compose:rctrl-altgr  3rd level of Right Ctrl
 compose:caps         Caps Lock
 compose:caps-altgr   3rd level of Caps Lock
 compose:102          <Less/Greater>
 compose:102-altgr    3rd level of <Less/Greater>
 compose:paus         Pause
 compose:prsc         PrtSc
 compose:sclk         Scroll Lock

2-有沒有辦法在映射到組合時保留“alt”功能?

3-有沒有辦法在不將鍵盤佈局更改為國際化的情況下將 right_alt 設置為 AltGr?

使用xmodmap(答案13

setxkbmap us -option用於具有非常特定行為的預定義選項。我不認為你可以在這裡找到你想要的東西,直到你想做一些和很多人相似的事情。

你可以做什麼,而不是使用xmodmap

   setxkbmap us
   xmodmap -e "keycode 118 = Multi_key"
   xmodmap -e "keycode 133 = ISO_Level3_Shift"

第 2 行是 for Compose(also named Multi_key) on Insertkey (answer 1),

第 3 行是 for AltGr(also named ISO_Level3_Shift… 請注意,也有一個ISO_Level5_Shift但很少有人使用它),在正確的Alt鍵 (answer 3) 上。

如果您只想要3,請嘗試使用setxkbmap us -option lv3:ralt_switch

重新映射時保留alt(答案2

您的grep命令為您提供了一些選項,但不是全部。

您可以man 7 xkeyboard-config改為搜尋,

您會看到至少還有一個主要但不完全是您想要的功能:

   lv3:ralt_switch_multikey   Right Alt; Shift+Right Alt as Compose

實際上,我不確定我是否完全理解了您的問題,我認為它類似於:

press Compose, press Foo, release Foo, release Compose應該做Alt-Foo

press Compose, release Compose應該做Multi_key(撰寫),

但是如果您這樣做,您希望它做什麼,比如說

press Compose, press Foo, release Compose, release Foo ?

或者如果你按3個或更多鍵應該怎麼辦?

如果你想要這樣的東西……這是一個更高級的功能。使用Ergodox 之類的機械鍵盤或其他支持QMK(查看)

的機械鍵盤可以真正做到這一點,但不確定是否有.Dual-function key``setxkbmap

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