Layout custom xkb no qual uma chave cria dois pontos de código unicode

11

Estou escrevendo um novo layout de teclado personalizado para o Xorg, mas há um glifo em particular que não existe no Unicode. No entanto, é fácil criá-lo usando uma letra padrão e uma marca diacrítica combinada.

Por exemplo, se eu quiser a letra v com um macron abaixo, a seqüência U0073+U0331 cria o caractere que eu quero.

Na minha definição de layout xkb, posso especificar um único ponto Unicode (aqui altgr+d está vinculado a ḏ e altgr+shift+d a Ḏ):

key <AC03>  { [         d,          D,        U1E0F,        U1E0E ] }; // d with macron below

Mas parece que não consigo especificar um glifo Unicode 'combinado' para uma única chave:

key <AB04>  { [         v,          V,  U0076+U0331,  U0056+U0331 ] }; // v with macron below

É possível criar uma definição de xkb para todo o sistema como essa?

    
por SigueSigueBen 14.07.2012 / 21:55

2 respostas

9

EDITAR:

Ainda tentando ...

O teste mostra que o mapa de teclado SÓ leva uma única tecla em cada posição.

MAS, se você usar um keysym raro / nunca usado na definição de mapa de teclado, então um Xmodmap global para fazer THAT keysy produzir os vários caracteres unicode que você precisa, isso funcionará.

No mapa de teclado:

key <AB04>  { [ v, V, XF86LaunchA, XF86LaunchB ] };

Em um Xmodmap global: (talvez carregado de /etc/profile.d?)

keysym XF86LaunchA = U0056 U0331
keysym XF86LaunchB = U0076 U0331

Existem alguns teclados não utilizados / de uso especial, eu escolhi o LaunchA / B como um exemplo.

    
por 14.07.2012 / 23:24
4

Por outro lado, você pode anexar a uma determinada tecla o caractere diaticity combinando unicode, e então você pode digitá-lo depois de qualquer outro caractere. De fato, é assim que os caracteres unicode combinados são colocados para funcionar.

No X11 existem chaves mortas, chaves mortas funcionam do outro jeito: primeiro a chave morta, depois a letra base. Existe um <dead_belowmacron> , você pode anexá-lo a alguma chave.

Depois, você precisa editar o arquivo Compose da sua localidade (se alguém souber como anexar definições ao Compose do arquivo de um local definido pelo usuário eu apreciaria) e adicionar linhas como:

# when the output is a single unicode char, you put also the corresponding
# X11 symbol name
# <symbol> <symbol> : "one-char-string" <symbol>
<dead_belowmacron> <d> : "ḏ" U1E0F
<dead_tilde> <n> : "ñ" <ntilde>
# when the output is a multicharacter string, you put just the string
# <symbol> <symbol> : "string"
<dead_belowmacron> <v> : "v̱"

o arquivo Compose a usar é definido por locale no arquivo /usr/share/X11/locale/compose.dir (o caminho pode variar).

    
por 20.02.2013 / 17:32