当 Dvorak 布局处于活动状态时,有什么方法可以使用 QWERTY 的键盘快捷键位置吗?

Tha*_*Phú 7 keyboard-layout shortcut-keys shortcuts dvorak

我是 Dvorak 布局用户,我对切换感到满意。

我避免撤消/剪切/复制/粘贴快捷方式的缺点(对zcxv相距甚远的Dvorak布局)在Windows上使用微软的键盘布局创建者可以控制组合键映射到原来的QWERTY同行,但它的窃听我,我可以不要在 Ubuntu/Linux 上做同样的事情,即使它有一个更高级的输入框架。

dvorak-querty应该可以做到这一点,但对我不起作用。

先前类似问题所提及的错误的评论并没有为此提供任何可行的解决方法。

那么除了等待(多年)修复错误之外,我还能做些什么,比如编写自定义键盘布局或 ibus 插件?

澄清(提出我的问题的另一种方式)

当 Dvorak 布局处于活动状态时,有什么方法可以使用 QWERTY 的键盘快捷键位置吗?

例如,要“复制”,我必须按Ctrl+ i(QWERTY 上“I”的位置是 Dvorak 上的“C”,这是一个尴尬的延伸),然后对于“粘贴”,我必须按Ctrl+ .(另一个尴尬的位置)。我想按Ctrl+cCtrl+ v

目前我正在使用我从 DOS 时代学到的旧式快捷方式,Shift-Del用于剪切和Ctrl+Insert用于复制......

pco*_*ley 3

我的第一次尝试是让控制键同时充当 Control 和第三级选择器,然后在第 1 级和第 2 级使用 Dvorak 定义键盘布局,在第 3 级和第 4 级使用 Qwerty。这在 XKB 中似乎不可能, 然而。此外,您链接的 dvorak-qwerty 程序源中的注释指出

尽管可以定义实现 Dvorak-Qwerty 的 XKB 布局,但这样做会暴露 X 应用程序中大量的错误。由于每个 X 应用程序都有责任自行解释键盘布局,而不是让 X 服务器来完成这项工作,因此不同的 GUI 框架实际上在使用这种布局时往往会出现不同的错误。解决所有这些问题是不可行的。

你最好的选择可能是让dvorak-qwerty hack 发挥作用。我要写的大部分内容你可能都知道。来源说编译它

gcc xdq.c -o xdq -std=c99 -O2 -lX11
Run Code Online (Sandbox Code Playgroud)

然后运行它

./xdq
Run Code Online (Sandbox Code Playgroud)

或者给出绝对路径,以便您可以将其放入启动项中。

当我运行该程序时,它给了我以下警告:

无法获取 35 个组合键。这可能是因为系统已经获取了某些热键。不幸的是,这些系统范围的热键无法通过此工具自动重新映射。但是,您通常可以手动配置它们。

不过,我用^W^Q^C^X和对其进行了测试^V,并且它按预期工作。如果您希望它获取系统已用于其他用途的其他修饰符(ALt+Ctrl和)组合,请将(而不是如源代码所述)添加到编译命令中。Super-DXQD_GREEDY -DXDQ_GREEDY

如果编译失败并出现错误

xdq.c:87:22:致命错误:X11/Xlib.h:没有此类文件或目录编译终止。

那么你应该安装该libx11-dev软件包

sudo apt-get install libx11-dev
Run Code Online (Sandbox Code Playgroud)

如果这不能让程序正常运行,请告诉我,我们可以尝试解决这个问题。


小智 2

太长了;博士

您需要关闭 NumLock。

解释

dvorak-querty 的工作原理是从其他程序中“抓取”(更像是“窃取”)键盘组合。包含某些修饰符(ControlControl+ShiftAlt+ )Alt的组合Shift会被窃取、“qwerty'd”并返回到原始程序。

问题是,只有这些修饰符组合被盗。其他修饰键,例如 CapsLock 和 NumLock,不会被窃取。

因此,如果您激活了 NumLock 并按下Ctrl+ C,dvorak-qwery 将“感知” NumLock+ Ctrl+ C,因此不会窃取它。

因此,请关闭您在键盘上看到的任何其他隐式修饰符。

替代解决方案

如果您想同时运行 dvorak-qwerty 并启用 NumLock,您可能想尝试我的代码版本(查看Arguments

:)