将 Caps Lock 和 Windows 键重新映射为单独的修饰符

将 Caps Lock 和 Windows 键重新映射为单独的修饰符

我想在 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。

答案1

这里的问题是你基本上删除了Windows 键从修饰符列表中使用 clear mod4.为了有大写锁定可以作为附加修饰符使用,而不是作为窗户钥匙,您必须将其设置为不同的修饰符。您可以使用修饰符,Mod1通过Mod5except ControlShiftMode_switchwithi3

首先检查您正在使用的布局中是否未使用任何修饰符(不应用您的.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 数字锁定 (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_Rbecause Hyper_Lis已经绑定到mod4. 66 是关键代码大写锁定。这在您的机器上可能有所不同。

现在您可以将此修改器与您的i3键绑定。如果您想$mod在配置中继续使用该变量,只需将其设置为Mod3Mod4取决于您是否想使用大写锁定或者Windows 键为了那个原因。但并没有真正需要实际使用它(主要是方便在选择之间时简化首次设置)替代Mod1) 和Windows 键( Mod4)。

使用新的修饰符非常简单:

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

相关内容