Questão Erro ao definir o layout do kb com o `setxkbmap`


Eu tenho x11-forwarding configurado a partir de um ubuntu 12.04 vm para o meu laptop (windows). Ele funciona, mas quando eu digito os aplicativos encaminhados, ele está usando o layout qwerty e eu gostaria que ele usasse o colemak.

Eu gostaria de uma solução de linha de comando, pois não tenho a GUI instalada na vm.

eu tentei setxkbmap -v us -variant colemak, mas eu recebo "Erro ao carregar a nova descrição do teclado":

$ 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

Eu também tentei setxkbmap -v us -variant dvorak, que parecia funcionar.

O que está errado? Colemak vem com o Ubuntu, e eu posso ver uma seção para ele em /usr/share/X11/xkb/symbols/us, que é onde o layout é definido, eu assumo.


4
2017-09-24 22:26


origem




Respostas:


Meu erro foi assumir que os layouts de teclado que eram importantes eram os da vm (/ usr / share / X11 / xkb / symbols /).

Na verdade, ao usar o x-forwarding, são os layouts de teclado definidos no meu servidor x, xming (C: \ Arquivos de Programas (x86) \ Xming \ xkb \ symbols) que são importantes, e o colemak não é incluído no xming por padrão. Consegui apenas baixar a definição de colemak e soltá-la na pasta xming symbols; então funciona como esperado.


3
2017-10-09 17:30



... alguns anos depois: Que definição você baixou, se ainda se lembra? :) - ezuk
O layout está disponível em colemak.com/Unix - Gabe Moothart
Obrigado Gabe! Eu já encontrei. Na verdade, peguei o tema do grande fórum de truques da DreymaR, já que isso me deu o diretório completo e o colocou em funcionamento. - ezuk


É estranho, posso mudar corretamente para colemak com seu comando:

#> 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)

mas eu não posso, se eu tentar manter minha variante italiana:

#> 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

Eu sugeriria para você Este artigo, mas dado que você não tem nenhum gerenciador de desktop instalado, será bem inútil.

No entanto, a motivação deve ser esta:

#> 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" {

Posso escolher o colemak layout entre gb, lv, ph e us somente idiomas. Você deve ter um problema semelhante.

No final da história, você pode fazer duas coisas: selecione colemak para um idioma próximo a us que você instalou (por exemplo, uk ou gb), ou tente instalar colemak suporte para us linguagem via linha de comando (eu realmente não sei como, desculpe).


1
2017-10-05 16:54



Obrigado. Isso não resolveu meu problema, mas me apontou na direção certa. Parece que é o meu servidor X (xming) que precisa de colemak instalado, e não o vm. - Gabe Moothart
Quando você diz que "você só pode usar colemak com algum idioma / localidade", ocorre-me que as configurações de variante e idioma são encontradas em /usr/share/X11/xkb/rules/, dentro base.lst e base.xml. Lá você pode encontrar toda a lista de variantes de idiomas, talvez você possa personalizar qual idioma pode usar colemak. Apenas um palpite, mas muito possível. - WesternGun
Na verdade, acho que xkb_symbols é o nome da variante de algum layout de teclado em algum idioma. Se você examinar algum arquivo, como es sob /usr/share/X11/xkb/symbols, você pode ver que o primeiro é a base, com default na primeira linha, xkb_symbols é sempre basice outros não terão default na definição, e xkb_symbols terá nomes distintos. Então, eu acho que você pode carregar um mapa de teclado com setxkbmap xxx -variant colemak. Antes disso, assegure-se de que o arquivo keymap us tem uma seção de xkb_symbols "colemak" realmente presente. - WesternGun