如何解除 Super 或 Logo 键的绑定以便应用程序可以使用它?

tak*_*tek 9 shortcut-keys kubuntu 17.04

我在 Lubuntu 17.04 上运行 kubuntu-desktop。我想在应用程序中使用 Super 键,但它目前会激活桌面应用程序菜单。

我看了看

系统设置 -> 工作区 -> 快捷方式 -> 全局快捷方式 -> Plasma。

但它只显示Alt+F1绑定。替代字段为空。

在此处输入图片说明

ear*_*Lon 0

有趣的w。xmodmap

当您按下键盘上的按键时,有几个地方定义了会发生什么。键盘本身、内核、X 或其他显示管理器。为了您的目标,我们可以教 X 以不同的方式对待超级键。

Super 键通常映射到 Mod4。因此,当您按 Mod4+Tab 时,您可能希望能够在不同的窗口之间进行切换。并非总是如此,但很多时候应用程序会忽略此修饰符,或者不接收它。

您可以选择调整超级键的处理方式。如果您这样做,您很可能想用不同的密钥替换该功能。这是为了确保您可以继续执行诸如前面的 Mod4+Tab 示例或其他常见组合之类的操作。

如果您想查看 X 如何使用当前修饰符,您可以使用以下命令打印它们xmodmap

$ xmodmap
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)
Run Code Online (Sandbox Code Playgroud)

在这里,我们可以看到所有的 Super 键和 Hyper 键都映射到 Mod4。如果您的键盘有左超级键和右超级键,您甚至可以仅调整打开或另一个。例如,您可以将 Super Left 从 Mod4 中取出,同时保留 Super Right 作为普通的超级按钮。

您应该花一些时间研究多年来其他人如何使用修饰键来熟悉这个想法以及人们学会如何充分利用的方式。这个想法是清除修饰符,然后添加回它。您可以设置诸如~/.xmodmaprc然后运行之类的东西xmodmap ~/.xmodmaprc

# .xmodmaprc
clear mod4
clear control

add mod4 = Super_R
add control = Super_L
add control = Control_L
add control = Control_R 
Run Code Online (Sandbox Code Playgroud)

为什么不直接使用 Control 键开始呢?很可能您的 Super 键旁边有一个 Control 键,因此您需要找到另一个修饰键(例如 Mod3)并使用它。其他人以非常聪明的方式使用 Mod2 或 Mod5 来增加可用修饰符的数量。

一旦您按照您想要的方式获得了所有内容,您就可以在每次登录时通过将以下行添加到xmodmap文件中来使用 X 和您的用户激活这些设置~/.xinitrc

xmodmap ~/.xmodmaprc
Run Code Online (Sandbox Code Playgroud)

将 Super_L 键重新映射为不是 Mod4 的一部分,而是另一个修改器组的一部分后,全局键盘快捷键应该会选择您的组合键。

可能相关的问题

虽然实际上是一个 Gnome 错误(?),但这个问题或类似问题会发生在您身上吗?您更有可能需要这个 Plasma 配置解决方法,标题为“如何阻止 Meta 打开 KDE Plasma 的启动器?”:

正如此处所暗示的,编辑~/.config/kwinrc,将以下行添加到底部。  

[ModifierOnlyShortcuts]
Meta=
Run Code Online (Sandbox Code Playgroud)

 

然后使用 重新启动 kwin kwin_x11 --replace & disown