X11

如何將左 Alt 與右 Alt 交換

  • May 7, 2021

如何交換鍵並讓 Left也Alt一樣AltGr?我嘗試xmodmap了以下方法:

clear mod1
clear mod5
keycode 108 = Alt_L Meta_L
keycode 64 = Alt_R Meta_R
add mod1 = ISO_Level3_Shift
add mod5 = Alt_L Meta_L

但它不起作用。xev我左擊時的輸出Alt

KeyRelease event, serial 38, synthetic NO, window 0xb000001,
   root 0x1e0, subw 0x0, time 70149128, (43,110), root:(3464,565),
   state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,

正確Alt的是

KeyPress event, serial 38, synthetic NO, window 0xb000001,
   root 0x1e0, subw 0x0, time 70149484, (43,110), root:(3464,565),
   state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,

我看到人們嘗試使用ISO_Level3_Shift有沒有辦法使用 setxkbmap 將 AltGr 鍵重新映射到 Ctrl?xmodmaphttps ://askubuntu.com/questions/93624/how-do-i-swap-left-ctrl-with-left-alt-on-my-keyboard但這還不夠。文件xmodmap很爛。

man xkeyboard-config,鍵選擇第 3 級, 列出了幾個選項來修改對第 3 級的訪問。

lv3:alt_switch             Any Alt
lv3:lalt_switch            Left Alt
lv3:ralt_switch            Right Alt
lv3:ralt_switch_multikey   Right Alt; Shift+Right Alt as Compose
lv3:ralt_alt               Right Alt never chooses 3rd level

因此

setxkbmap -option lv3:lalt_switch -option lv3:ralt_alt

使左 Alt 訪問第 3 級,右 Alt 成為普通 Alt。

將命令放在啟動腳本中以使其持久化,或者在基於 Debian 的系統中包含以下選項/etc/default/keyboard

XKBOPTIONS="lv3:lalt_switch,lvl3:ralt_alt"

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