如何通过 setxkbmap 映射组合键以插入?

如何通过 setxkbmap 映射组合键以插入?

我正在使用美国(非国际)布局。输入 üäöß 的一种方法是通过以下方式设置撰写键: 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 而不将键盘布局更改为国际?

答案1

使用xmodmap(答案13

setxkbmap us -option是针对具有非常具体行为的预定义选项。我不认为你能在这里找到你想要的东西,除非你想做一些与很多人类似的事情。

你可以做什么来代替使用xmodmap

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

第二行是Compose(也称为Multi_keyInsert键(答案1),
第三行是AltGr(也称为ISO_Level3_Shift……请注意,也有一个ISO_Level5_Shift但很少有人使用它),在右边的Alt键(答案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个或更多的键应该做什么?

如果你想要这样的东西……这是一个更高级的功能。
使用一些机械键盘可以真正做到这一点,例如麦尔多克斯,或其他支持者QMK(看Dual-function key),但不确定是否有办法使用setxkbmap.

相关内容