我是一名开发人员,我需要经常使用快捷键。我不知道 kde 在哪里以及如何使用键盘,但有些地方出了问题。在多种不同桌面版本上运行的东西似乎在这里有问题。
我将描述 2 个用例,[b]我的问题是[/b],是否有可能以某种方式切换到 kde 处理键盘输入的不同子系统,这可能会表现得更好。我不需要使用两部分快捷键(实际上如何禁用它?),我需要正确的功能。
用例 1:如果我使用默认的美国布局并启动 xev,则按 alt 会产生 alt,按 enter 会产生 enter。但是,只有在 KDE 中,如果我启动 idea 并尝试按下 alt-enter 组合键,则什么也不会发生。如果我尝试重新分配此组合键,java 进程会检测到 meta+alt+enter。但是没有按下 META。为什么它会传递到 java 进程中?
用例 2:我们将在这里使用自定义布局(同样,在多个平台上工作了 10 多年)
我的键盘布局使用: 包括“level3(ralt_alt)”//右 alt 实际上是右 alt 包括“level3(win_switch)”//两个窗口键都是 level3 键 包括“level3(menu_switch)”//菜单键也是 level3 键
以及这个关键定义:
key <AB03> { [ c, C, Escape, NoSymbol ] };
而这件事情却产生了令人惊讶的东西。在 isolevel3 上的字符 c 上,定义了 escape。它可以工作,但如果我按下 ctrl-c,什么也不会发生!为什么?不知道,但是有一个全局快捷键 ctrl-escape 会导致冲突。如果我删除 ctrl-escape 全局快捷键,ctrl-c 将再次工作。但是!我没有(出于上帝的旨意)按 ctrl-escape,我按了 ctrl-c(那个 xev 家伙看到了,他会证实的)。如果我按下 ctrl+iso3+c,我会理解这种行为,但不是这个,所以我真的不知道,为什么 ctrl-escape 全局快捷键会起作用。另一个例子。假设我将 Esc 定义为全局快捷键,比如离开办公室时的系统关闭快捷键。如果我现在按 c,什么也不会发生!为什么?同样,因为理论上如果按下 level3-c(但事实并非如此)可以产生 escape,并且我们有它的全局快捷键,所以出于某种原因,字母 c“不能”工作。对于我来说,这是一个‘礼仪’问题!
我们可以以某种方式修复这个问题吗?切换到不同的键盘处理程序策略或...?
答案1
我完全不确定,但我试图删除~/.config/kwinrc
:
[ModifierOnlyShortcuts]
Meta=
按照建议添加KDE:禁用 super_L(Windows 键)快捷键作为菜单启动器。此删除似乎“修复”了 Java 进程的问题。全局快捷方式的内容不受此影响。