总结

总结

我是一个 Dvorak 布局用户,对于这次切换我感到很满意。

我使用微软的键盘布局创建器将控制键组合映射回 QWERTY 对应键,从而避免了 Windows 上撤消/剪切/复制/粘贴快捷键的缺点(在 Dvorak 布局中, 和z相距c甚远),但令我烦恼的是,我无法在 Ubuntu/Linux 上执行相同操作,即使它具有更高级的输入框架。xv

德沃夏克查询应该可以实现这一点,但对我来说不起作用。

错误提及以前类似的问题没有提供任何可行的解决方法。

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

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

当 Dvorak 布局处于活动状态时,有没有办法使用 QWERTY 的键盘快捷键位置?

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

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

答案1

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

尽管可以定义一个实现 Dvorak-Qwerty 的 XKB 布局,但这样做会暴露 X 应用程序中大量令人沮丧的错误。由于每个 X 应用程序都负责解释键盘布局本身,而不是让 X 服务器完成这项工作,因此不同的 GUI 框架在使用此类布局时实际上往往会出现不同的错误。修复所有错误是不可行的。

你最好的选择可能是德沃夏克键盘hack 工作。我接下来要写的大部分内容你可能已经知道了。源代码说要用

gcc xdq.c -o xdq -std=c99 -O2 -lX11

然后运行

./xdq

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

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

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

^W但是,我用、^Q、、 和进行了测试^C,结果如预期一样。如果您希望它获取系统已用于其他事物的其他修饰符(和)组合,请添加(^X^VALt+CtrlSuper-DXQD_GREEDY不是 -DXDQ_GREEDY正如来源所说)到编译命令。

如果编译失败并出现错误

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

那么你应该libx11-dev使用

sudo apt-get install libx11-dev

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

答案2

总结

您需要关闭 NumLock。

解释

dvorak-querty 的工作原理是从其他程序“抓取”(更像是“窃取”)键盘组合。包含某些修饰符(ControlControl+ShiftAlt+ )的组合被窃取,然后“qwerty 化”并返回到原始程序。AltShift

问题在于,只有这些修饰键组合被盗用。其他修饰键(例如 CapsLock 和 NumLock)并未被盗用。

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

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

替代解决方案

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

:)

答案3

多年后我仍然使用自动键在 X11 上,有单独的键映射。很遗憾。

答案4

对于那些 7 年后甚至更久以后还在思考这个问题的人来说,以下是对我有用的方法(无需编码!):

  • 下载https://github.com/ZeptByteS/dvorak-qwerty/tree/develop压缩文件
  • 解压缩
  • 运行 sudo ./install.sh
  • (Ubuntu)转到“设置”/“区域和语言”/“输入源”
  • 按加号按钮
  • 选择英语(美国)
  • 选择任何一种英语(Dvorak-Qwerty)布局,您喜欢的风格
  • 现在将键盘布局切换为新添加的布局

此处提供图片以及如何在其他主要操作系统上应用 Dvorak Qwerty

相关内容