有一些不稳定/有风险的方式,例如线程如何在Ubuntu 16.04的Dvorak中获得带有点的A?获得该功能,但我无法在许多环境中运行它。德语需要他们自己的(带点的 a/e/u/o),如下所示这里,而北欧(芬兰、瑞典、挪威、丹麦……)人们需要类似的键(a/o 带点)。我认为一级键盘方法比二级键盘方法更好。选项
- 如果能在 Debian 中默认获得这样的键盘布局就太好了。
- 如果能拿到这样的键盘的包装
apt
就好了。 - 也许还有另一种方式...
- 由于不同环境中的风险,像在第一个线程中那样手动进行这些更改不是一种选择。
OS X International Dvorak 默认具有这样的功能,可以用作基准,但也可以像第一个线程答案中那样手动方法。 Chromium 开发中针对线程中的此类功能打开了一张票国际德沃夏克带死键以 Chromebook 为目标。
在 Debian 中测试 Clearkimura 的答案
输出
masi@masi:~/Downloads$ sudo cp dvorak_intl /usr/share/X11/xkb/symbols/dvorak_intl masi@masi:~/Downloads$ setxkbmap -verbose dvorak_intl masi@masi:~/Downloads$ setxkbmap -I ~/.xkb dvorak_intl -print | xkbcomp -I$HOME/.xkb - $DISPLAY Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols Ignoring extra symbols Warning: Key <OUTP> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <KITG> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <KIDN> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <KIUP> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <RO> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I192> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I193> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I194> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I195> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I196> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I255> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: No symbols defined for <AB11> (keycode 97) Warning: No symbols defined for <JPCM> (keycode 103) Warning: No symbols defined for <I120> (keycode 120) Warning: No symbols defined for <AE13> (keycode 132) Warning: No symbols defined for <I149> (keycode 149) Warning: No symbols defined for <I154> (keycode 154) Warning: No symbols defined for <I168> (keycode 168) Warning: No symbols defined for <I178> (keycode 178) Warning: No symbols defined for <I183> (keycode 183) Warning: No symbols defined for <I184> (keycode 184) Warning: No symbols defined for <FK19> (keycode 197) Warning: No symbols defined for <FK24> (keycode 202) Warning: No symbols defined for <I217> (keycode 217) Warning: No symbols defined for <I219> (keycode 219) Warning: No symbols defined for <I221> (keycode 221) Warning: No symbols defined for <I222> (keycode 222) Warning: No symbols defined for <I230> (keycode 230) Warning: No symbols defined for <I247> (keycode 247) Warning: No symbols defined for <I248> (keycode 248) Warning: No symbols defined for <I249> (keycode 249) Warning: No symbols defined for <I250> (keycode 250) Warning: No symbols defined for <I251> (keycode 251) Warning: No symbols defined for <I252> (keycode 252) Warning: No symbols defined for <I253> (keycode 253)
重新开始
- 输出:键盘布局不再处于活动状态
- 转到
Region & Language
> 选择 > 搜索 Dvorak > 选择带有死键的 Dvorak,如图 1 所示 - 输出:预期的键盘布局现在处于活动状态并且可以在顶栏中选择
- 在Regien & Language 中,将您的主要键盘布局放在图2 的顶部,即删除顶部的先前键盘布局。这样,您可以将德沃夏克国际带死键作为您的主键盘,重新启动后也会保留在那里。
图1 更改后的区域&语言设置,图2 更改后的区域&语言设置德沃夏克国际带死键作为主要键盘布局
操作系统:Debian 8.7
硬件:Asus Zenbook UX303UB、HP 2002 笔记本电脑
窗口管理器:Gnome 3.14
答案1
这个答案将解释如何安装德沃夏克国际扩展键盘布局发现于这篇文章作者:Arjen van Kol。使用 XKB 的安装和设置相当简单。
安装新布局
dvorak_intl
从链接的文章下载布局文件。然后,以超级用户身份将文件复制到/usr/share/X11/xkb/symbols/
具有相同的文件名。
sudo cp dvorak_intl /usr/share/X11/xkb/symbols/dvorak_intl
无需进一步更改权限。对于好奇的用户,可以使用stat
命令来检查权限。该权限是644
默认的。
$ ls -l /usr/share/X11/xkb/symbols/dvorak_intl
-rw-r--r-- 1 root root 2989 May 14 17:32 /usr/share/X11/xkb/symbols/dvorak_intl
$ stat -c '%a %n' /usr/share/X11/xkb/symbols/dvorak_intl
644 /usr/share/X11/xkb/symbols/dvorak_intl
应用新布局
在进行更改之前,请运行setxkbmap -query
检查当前布局,以防我们稍后想要恢复更改。布局是us
默认的。
$ setxkbmap -query
rules: evdev
model: pc105
layout: us <-- current layout
现在,运行setxkbmap
命令来设置新的键盘布局。添加该-verbose
选项是为了查看输出,否则将不会显示任何内容。
$ setxkbmap -verbose dvorak_intl
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete
symbols: pc+dvorak_intl+inet(evdev)
geometry: pc(pc105)
用户可以再次运行setxkbmap -query
以验证已进行的更改现在显示在布局列中。
$ setxkbmap -query
rules: evdev
model: pc105
layout: dvorak_intl <-- new layout
测试新布局
变更将立即生效;根本不需要注销或重新加载 X 服务器。打开文本编辑器,然后按键盘上四行的每个键以查看输出。
第一级和第二级键(不带和带Shift):
`1234567890[]
~!@#$%^&*(){}
´,.pyfgcrl/=\
¨<>PYFGCRL?+|
aoeuidhtns-
AOEUIDHTNS_
;qjkxbmwvz
:QJKXBMWVZ
第三级和第四级键(带有AltGr和Shift+ AltGr):
¡ ♯
[]{}
´¸… č
«»¶ ¿
å°əŭ ß—
Å Ŭ ¯
ĸ×
不确定键盘布局的第三级和第四级是否缺少任何键dvorak_intl
,因为我不习惯在这些级别打字。
使布局持久化
该setxkbmap
命令本身仅对当前会话有效。但是,可以将以下命令添加到相应桌面环境中的启动应用程序中。
setxkbmap LAYOUTNAME
这样,LAYOUTNAME
每次用户登录系统并启动桌面会话时都会进行设置。注销并再次登录,然后打开终端并运行setxkbmap -query
以验证新的键盘布局是否已应用于每个会话。
针对非 Debian 系统进行配置
如果系统升级覆盖 中的配置文件/usr/share/X11/xkb/symbols
,则用户可以将布局配置文件重新定位到其他位置(可能是主目录),并从系统目录中删除以确保。
$ mkdir -p ~/.xkb/symbols
$ cp /usr/share/X11/xkb/symbols/dvorak_intl ~/.xkb/symbols
$ sudo rm -i /usr/share/X11/xkb/symbols/dvorak_intl
然后使用带有选项的命令从那里加载布局配置-I
。其工作原理类似。
$ setxkbmap -I ~/.xkb dvorak_intl
$ setxkbmap -query
rules: evdev
model: pc105
layout: dvorak_intl
因此setxkbmap LAYOUTNAME
,不要添加setxkbmap -I ~/.xkb LAYOUTNAME
到相应桌面环境中的启动应用程序,以加载每个会话的键盘配置。
Debian 中的差异
如果该命令返回“加载新键盘描述时出错”消息(如Unix.SE 上的这篇旧帖子),然后改用以下命令。
$ setxkbmap -I ~/.xkb dvorak_intl -print | xkbcomp -I$HOME/.xkb - $DISPLAY
Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
Ignoring extra symbols
Warning: Key <OUTP> not found in evdev+aliases(qwerty) keycodes
Symbols ignored
...
Warning: No symbols defined for <I253> (keycode 253)
奇怪的是,最后一个命令返回了许多可能与我的外国键盘型号(日语 OADG 109A 键盘布局变体)有关的警告消息。此外,更改不会反映在中,setxkbmap -query
但在键入时会按预期工作。
在 Xubuntu 14.04 (Xfce 4.10)、Debian Xfce 8 (Xfce 4.10) 和 Debian 8.7 Gnome 3.14 中使用 setxkbmap 1.3.0 进行测试。
免责声明:这个答案旨在展示如何使用XKB安装和设置新的键盘布局。原始指令是从Workman/xorg 存储库,其中提到了旧路径和当前路径(当时的 Ubuntu 10.04、GNOME 2.30)。然而,该指令已经过测试,对于非 GNOME 环境(即 Xfce)也有效。
文件中提供的过时说明dvorak_intl
很可能适用于旧版本的 GNOME,并且不再适用于我们今天使用的现代发行版。旧路径位于 处/etc/X11/xkb/symbols/
,而当前路径位于 处/usr/share/X11/xkb/symbols/
。
键AltGr指的是撰写键。默认情况下(至少在 Xfce 中)或通常没有分配右键Alt,具体取决于所使用的 Linux 发行版。虽然我启用了撰写键来演示第三级和第四级键,但撰写键的设置是不是如上所示。
答案2
我很久以前就尝试过为自定义键盘布局制作包。这是我当时可以找到的选项:
修改原始布局(例如
/usr/share/X11/xkb/symbols/us
:)问题:
- 它在更新时被覆盖
xkb-data
。软件包名称可能因发行版而异。 - 创建一个覆盖另一个包文件的 debian 包是个坏主意。
- 它在更新时被覆盖
添加具有不同名称的新布局,
xy
例如这个帖子问题:
- 与之前的方法有相同的问题,但布局声明文件:
/usr/share/X11/xkb/rules/evdev.xml
需要修改。 AFAIK,Xorg 服务器不支持新布局的动态加载。
- 与之前的方法有相同的问题,但布局声明文件:
上述方法依赖于遗留系统 XIM(标准 X 输入法)。我建议使用支持插件(模块化设计)的现代输入法,例如 IBus 或 SCIM。
我没有尝试过,但我希望ibus-table
这是最简单的方法,如中解释的那样这个帖子。添加的文件可以像大多数 IBus 引擎和布局一样单独打包和安装,IBus 会小心加载它们。
更新:
出色地,这个答案AskUbuntu 上提到了一种修改上游包的更简洁的方法。以下是重建软件包的最低限度说明
- 启用存储库的源代码
下载构建依赖项
sudo apt build-dep xkb-data
下载源码
mkdir sandbox cd sandbox apt source xkb-data
创建新的被子补丁如下Ubuntu 打包指南
cd xkeyboard-config*/ quilt new username_custom_layout.diff quilt add symbols/us
symbols/us
然后进行您需要的修改quilt refresh
构建未签名的源代码和二进制包
debuild -us -uc
答案3
名为的自定义 Dvorak 键盘布局示例Dvorak International Extended
,具有此处请求的功能并针对 Windows 和 Linux 完成(代码这里) 在文中Dvorak 国际扩展键盘布局 - 添加对 Dvorak 简化键盘的国际支持。
图1 Dvorak International Extended 键盘布局设计,图2Dvorak
更改Section 后在Debian 键盘设置中搜索Debian 8.7 中的安装尝试,图3 搜索extended
...
Debian 8.7 中的安装尝试
我设法按照安装说明完成了前两个步骤,但未能看到在那里添加键盘布局的效果
[完成] 将此文件复制到您的
/etc/X11/xkb/symbols/pc
目录。您可能需要 root 权限才能执行此操作。sudo mkdir -p /etc/X11/xkb/symbols/pc sudo cp dvorak_int /etc/X11/xkb/symbols/pc/
将以下行添加到
/etc/X11/xkb/rules/xfree86.lst
:dvorak_intl Dvorak international extended
sudo touch /etc/X11/xkb/rules/xfree86.lst sudo echo `dvorak_intl Dvorak international extended` >> /etc/X11/xkb/rules/xfree86.lst
但是,我无法完成第三步
// In order to make the keyboard layout available in GNOME, // you should also modify /etc/X11/xkb/rules/xfree86.xml // accordingly (this is an XML file and the format is mostly // self-explanatory).
该命令
apt search XF86Config
没有返回任何内容,因为我的系统没有该文件/etc/X11/xkb/rules/xfree86.xml
。说明中有错字(谢谢,clearkimura)!搜索文件名并使用以下内容进行编辑,但我仍然不确定要准确填写什么 - 文件的文件名或dvorak-intl-extended
(我的自定义名称)masi@masi:~$ dpkg --search xfree86.xml xkb-data: /usr/share/X11/xkb/rules/xfree86.xml masi@masi:~$ sudo vim /usr/share/X11/xkb/rules/xfree86.xml
添加于
/usr/share/X11/xkb/rules/xfree86.xml
<variant> <configItem> <name>dvorak-intl-extended</name> <description>English (Dvorak, international extended with dead keys)</description> </configItem> </variant> <variant>
我重新启动系统,但在图 2 和图 3 的语言键盘菜单中输出不成功。
可能是我的权限有问题
masi@masi:~$ sudo ls -la /etc/X11/xkb/symbols/pc/ total 12 drwxr-xr-x 2 root root 4096 May 13 20:35 . drwxr-xr-x 3 root root 4096 May 12 16:25 .. -rw-r--r-- 1 root root 2989 May 12 16:26 dvorak_intl
目录权限应该没问题
masi@masi:~$ ls -la /etc/ | grep X11 drwxr-xr-x 10 root root 4096 Sep 8 2016 X11 masi@masi:~$ ls -la /etc/X11/ | grep xkb drwxr-xr-x 4 root root 4096 May 12 16:25 xkb masi@masi:~$ ls -la /etc/X11/xkb/ | grep symbols drwxr-xr-x 3 root root 4096 May 12 16:25 symbols masi@masi:~$ ls -la /etc/X11/xkb/symbols/ | grep pc drwxr-xr-x 2 root root 4096 May 13 20:35 pc
新键盘布局的权限应该是什么?
操作系统:Debian 8.7