Keyboard-Shortcuts

將 Caps Lock 和 Windows 鍵重新映射為單獨的修飾符

  • August 14, 2015

我想在 i3wm 配置中同時使用我的Caps Lock密鑰和密鑰。Windows特別是,我想在配置中Caps Lock代替 ,$mod並且我還希望能夠引用Windows. bindsym我該怎麼做?

目前,我可以使用我的Caps Lock密鑰,$mod但我Windows現在也想使用我的密鑰,作為不同的修飾符。

.Xmodmap目前是

clear Lock 
clear mod4

keycode 66 = Hyper_L
add mod4 = Hyper_L

我的Caps Lock鑰匙的​​密碼是 133。

這裡的問題是,您實際上是在使用 .從修飾符列表中 刪除Windows 鍵clear mod4。為了將Caps Lock用作附加修飾符而不是替換Window 鍵,您必須將其設置為不同的修飾符。除了,和i3之外,您還可以Mod1使用修飾符。Mod5``Control``Shift``Mode_switch

首先檢查您正在使用的佈局中是否未使用任何修飾符(不應用您的.Xmodmap)。您可以使用 獲取修改器設置列表xmodmap -pm。對於us佈局,這將返回(在我的機器上):

xmodmap:每個修飾符最多 4 個鍵,(括號中的鍵碼):

移位 Shift_L (0x32)、Shift_R (0x3e)
鎖定 Caps_Lock (0x42)
控制 Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
模組3 
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

如您所見mod3,目前未使用。為了使用它,您只需將以下內容放入您的.Xmodmap

清鎖
鍵碼 66 = Hyper_R
添加 mod3 = Hyper_R

**注意:**在這種情況下,我使用了Hyper_R因為Hyper_L已經綁定到mod4. 而 66 是Caps Lock的鍵碼。這在您的機器上可能會有所不同。

現在您可以將此修飾符與您的i3鍵綁定一起使用。如果您想在$mod您的配置中繼續使用該變數,只需將其設置為Mod3或者Mod4取決於您是否要使用Caps LockWindows 鍵但實際上並沒有真正需要使用它(主要是為了方便在Alt ( Mod1) 和Windows 鍵( )之間進行選擇時簡化首次設置Mod4

使用新的修飾符很簡單:

bindsym Mod3+s exec something
binysym Mod3+Mod4+s exec something_else

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