我已经从 ubuntu 12.04 vm 设置了 x11 转发到我的 (windows) 笔记本电脑。它可以工作,但是当我输入转发的应用程序时,它使用 qwerty 布局,我希望它使用 colemak。
由于我没有在虚拟机中安装 GUI,所以我想要一个命令行解决方案。
我尝试过setxkbmap -v us -variant colemak
,但是出现“加载新键盘描述错误”的情况:
$ setxkbmap -v us -variant colemak
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Warning! Multiple definitions of layout variant
Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes: xfree86+aliases(qwerty)
types: complete
compat: complete
symbols: pc+us(colemak)
geometry: pc(pc101)
Error loading new keyboard description
我也尝试过setxkbmap -v us -variant dvorak
,似乎确实有效。
哪里出了问题?Colemak 是随 ubuntu 一起提供的,我可以在 中看到它的一个部分/usr/share/X11/xkb/symbols/us
,我猜想布局就是在这里定义的。
答案1
我的错误是假设重要的键盘布局是 vm (/usr/share/X11/xkb/symbols/) 中的键盘布局。
实际上,使用 x-forwarding 时,我的 x 服务器 xming(C:\Program Files (x86)\Xming\xkb\symbols)中定义的键盘布局很重要,而默认情况下 xming 不包含 colemak。我只需下载 colemak 定义并将其放入 xming 符号文件夹中即可;然后它就可以按预期工作。
答案2
很奇怪,我可以colemak
用你的命令正确切换到:
#> setxkbmap -v us -variant colemak
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Warning! Multiple definitions of layout variant
Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete
symbols: pc+us(colemak)+inet(evdev)
geometry: pc(pc105)
但如果我尝试保留我的意大利语变体则无法做到:
#> setxkbmap -v it -variant colemak
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Warning! Multiple definitions of layout variant
Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete
symbols: pc+it(colemak)+inet(evdev)
geometry: pc(pc105)
Error loading new keyboard description
我建议你本文,但鉴于您没有安装任何桌面管理器,它将毫无用处。
然而,动机应该是这样的:
#> grep colemak /usr/share/X11/xkb/symbols/*
/usr/share/X11/xkb/symbols/gb:xkb_symbols "colemak" {
/usr/share/X11/xkb/symbols/gb: include "us(colemak)"
/usr/share/X11/xkb/symbols/lv:// http://colemak.com/
/usr/share/X11/xkb/symbols/lv:xkb_symbols "colemak" {
/usr/share/X11/xkb/symbols/lv:xkb_symbols "apostrophecolemak" {
/usr/share/X11/xkb/symbols/lv: include "lv(colemak)"
/usr/share/X11/xkb/symbols/ph:// http://colemak.com
/usr/share/X11/xkb/symbols/ph:xkb_symbols "colemak" {
/usr/share/X11/xkb/symbols/ph:xkb_symbols "colemak-bay" {
/usr/share/X11/xkb/symbols/us:// 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.
/usr/share/X11/xkb/symbols/us:xkb_symbols "colemak" {
我只能在 、 和语言中colemak
选择布局。您应该会遇到类似的问题。gb
lv
ph
us
在故事的最后,您可以做两件事:选择colemak
一种接近us
您已安装的语言(例如uk
或gb
),或者尝试通过命令行安装colemak
对语言的支持us
(我真的不知道如何,抱歉)。