Eu gostaria de definir uma compose
chave no meu sistema (Debian Sid "Wheezy"). Não tenho Xorg (e não quero nenhum ambiente de desktop). Somente no terminal.
Gostaria de configurá-lo na minha Alt-Gr
chave (direita Alt
). Eu tentei por um tempo, mas não consigo descobrir como configurá-lo.
Estive investigando e encontrei algumas instruções:
$ showkey
fornece o código da minhaAlt-Gr
chave (nº 100)$ dumpkeys
e$ dumpkeys --compose-only
produz "o conteúdo atual do driver do teclado", no formato especificado porkeymaps
, de acordo com aman
página$ loadkeys
carregar uma tabela de tradução do teclado
Tenho certeza que não é tão difícil, mas sinto falta de como lidar com isso ...
console
keyboard-layout
cedbeu
fonte
fonte
Respostas:
Nos sistemas Debian e Ubuntu mais recentes, as configurações do teclado são colocadas
/etc/default/keyboard
e compartilhadas entre o X e o console. Apenas corrae selecione
Compose key:
Right Alt (AltGr)
na tela apropriada.Você também pode colocar
XKBOPTIONS=compose:ralt
em/etc/default/keyboard
e correrOs sistemas mais antigos têm uma chave de composição no console por padrão. No
us
layout, pressionar as duas Alt teclas juntas age como Compose. 1 1Por exemplo: Alt+ AltGr, ", A=> Ä
Se você preferir AltGrapenas ser Compose, precisa alterar
no seu mapa de teclado ativo para
A maneira mais fácil de fazer isso é fazer as alterações acima
/lib/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc
.Uma maneira melhor é criar um novo arquivo chamado
/lib/kbd/keymaps/i386/include/altgr-is-compose.inc
com a linha acima, criar um novo mapa de teclas que o inclua e defina-o como seu mapa de teclas padrão.fonte
dpkg-reconfigure
assistente realmente pergunta sobre uma chave de composição, mas diz que não funciona no "modo Unicode" (?). Além disso, quando não estiver nesse modo, ele diz que o período Control + funciona como uma chave de composição. Mas também não estou conseguindo que isso funcione.unicode_start
. Para mim, ainda funciona, desde que corrasetupcon
comodpkg-reconfigure
diz.setupcon
no meu terminal X (urxvt
), ele diz "Não estamos no console, o console fica desconfigurado". Além disso,showkey
reclama "Não foi possível obter um descritor de arquivo no console". Emtty
ambos os trabalhos, masshowkey
diz (a primeira coisa) que "o modo kb era UNICODE", talvez seja por isso que ele não esteja funcionando. Mas, o período Control + funciona emtty
. OK, faz sentido agora.X
? Você precisa executarsetupcon
no console virtual do Linux, por exemplo, Ctrl + Alt + F1.console-setup
que não suporta muitas seqüências de composição por padrão. Você pode correrdumpkeys --compose-only
para ver quais. Você deve poder modificar oconsole-setup
script init para adicionar regras de composição adicionais onde ele é executadoloadkeys
."compor" no console permite digitar dois caracteres, mas gerar um terceiro.
o problema é que as definições de composição usam bytes , tanto como as duas entradas (ou seja, você não pode definir composição em termos de chaves digitadas, mas apenas em termos de símbolos digitados) e na saída.
para fazê-lo funcionar em UTF-8, que é multibyte (1 a 4 bytes, pelo menos) exigiria grandes mudanças na maneira como a entrada do console é manipulada e substitui a matriz de caracteres simples atualmente usada por algo mais complexo. Parece que não há planos para fazê-lo (o consenso entre os devlopers do kernel é que o console deve permanecer um console, algo simples, usado apenas para o último recurso; se você realmente precisar de unicode, provavelmente também precisará de bidi, shaping etc.); é melhor executar um terminal gráfico (um xterm em tela cheia no X11; mas existem outras possibilidades).
Portanto, na verdade, ele não funciona e não funciona com caracteres multibyte no console. MAS, ainda funcionará se você restringir as definições de composição ao ASCII simples.
E também descobri que também funciona se a saída estiver em iso-8859-1 (que corresponde a valores unicode até 0x00ff); para isso você pode colocar em algum script de início uma linha:
e coloque nesse arquivo as definições de composição que você deseja (tenha o cuidado de salvar o arquivo na codificação ISO-8859-1; e use caracteres maiores que 0x7f como saída) a sintaxe de um arquivo desse tipo é muito simples, linhas como esta:
por exemplo:
o apóstrofo tem que ser escapado.
o efeito de chaves diacríticas mortas também é definido nesse arquivo; para dead_acute + a, você define uma linha como:
dead_grave usa backtick (`), dead_diaeresis usa aspas duplas ("), dead_circumflex usa circumflex (^) e dead_tilde usa til (~).
fonte
compose 'a' 'a' to 'å'
paracompose 'o' 'a' to U+00E5
, caso contrário,loadkeys
reclamou de um erro de sintaxe.iconv -f utf-8 -t utf-8 filename
se não houver erros, é em utf-8echo $?
pelo menos, e nenhuma saída parastderr
. Além disso,file
me diz que é UTF-8, então faz sentido.