Insira os dois caracteres se uma combinação de teclas não for reconhecida (por exemplo, 'a → á,' b → 'b)

8

Quando eu uso qualquer variação do inglês, o US international (com chaves inativas, altGr dead keys ou alternativa) na minha máquina Linux Mint eu sempre encontro esse comportamento.
Quando eu pressionar uma destas teclas: ' " e depois segui-las com um caractere' não-acentuável 'como um [ ou um b nenhuma saída sai de todo.

Considerando que no Windows US-International ele imprime [ ou b . Se eu quisesse digitar isso, eu teria que escapar de cada tecla morta com um espaço em vez de com qualquer caractere "não-acentuável". Isso é chato quando a programação (não realmente, mas eu treinei com o Windows 'Qwerty International' em typing.io e alternando entre os sistemas é irritante).

Existe alguma maneira de mudar isso para funcionar no Windows?

    
por Jamie Holsten 06.08.2015 / 11:16

5 respostas

4

No Ubuntu 14.04 eu fiz o seguinte:

1) Instalado uim usando o Gerenciador de software, outros pacotes como uim-xim , uim-gtk2 , uim-gtk3 e uim-qt são instalados automaticamente. Consulte o link .

2) Definiu as variáveis ambientais adicionando as próximas linhas a ~/.profile , dessa forma, as seqüências de teclas personalizadas compostas só se aplicam ao usuário atual:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"

3) Para imitar os teclados Window US International salvei um dos seguintes arquivos em ~/.XCompose :

Isso funcionou para mim depois de 1) reiniciar o Ubuntu ou 2) apenas o X-server, digitando o seguinte comando em um terminal:

$ sudo restart lightdm

NB: Reiniciar só parece necessário após alterar o arquivo ~/.profile , alterações para ~/.XCompose terão efeito na próxima vez que um aplicativo (Terminal, Gedit, etc.) for iniciado.

Para verificar se as variáveis ambientais estão ajustadas corretamente, digite o seguinte comando no seu terminal:

$ printenv | grep IM_MODULE

Muito obrigado a:

Sobre sequências de teclas de composição personalizadas:

Sobre o mapeamento de teclado personalizado:

por 18.08.2015 / 21:22
8

Eu encontrei uma maneira de fazer isso funcionar no OpenSUSE, e espero que não seja muito diferente no Mint. Talvez seus arquivos estejam em locais ligeiramente diferentes, mas não deve ser muito difícil encontrar os locais certos.

O OpenSUSE usa ibus por padrão (ou, pelo menos, a versão do Gnome), mas eu me livrei dele e usei xim . Não sei se o Mint também usa ibus , mas, em todo caso, estou postando as instruções completas. Pule / adapte as etapas conforme necessário.

  1. Desinstale ibus . No OpenSUSE, isso é sudo zypper rm ibus . Faça logout e faça login novamente para matar os daemons zumbis.

  2. Instale gtk3-immodule-xim . No OpenSUSE, é sudo zypper in gtk3-immodule-xim .

  3. Edite /etc/X11/xim.d/none . Defina XMODIFIERS para @im=none . Defina GTK_IM_MODULE e QT_IM_MODULE para xim .

  4. cp /usr/share/X11/locale/en_US.UTF-8/Compose ~/.XCompose . Se houver um arquivo .XCompose em seu diretório inicial, o X11 o utilizará. Agora podemos editar esse arquivo para personalizar as chaves inativas.

  5. Agora, a parte chata. Edite o arquivo .XCompose e crie regras para cada combinação de chaves inativas, gerando a string desejada. Por exemplo:

    <dead_acute> <b> : "'b"
    <dead_acute> <r> : "'r"
    ...
    

    Lembre-se também de criar regras para letras maiúsculas (e pontuação e qualquer coisa que você precise).

  6. Se, como eu, você também quiser obter cedilla ( ç ) em vez de c ( ć ) ao usar <dead_acute> <c> , simplesmente encontre e edite essas linhas também.

E você tem isso. Faça o logout e faça o login novamente, e todos os aplicativos devem manipular a entrada corretamente!

EDIT: Eu estou ciente de que xim é antigo e com bugs (isso é dito no arquivo de configuração), mas o acima foi a única maneira de fazer tudo funcionar. Talvez uim também faça o trabalho.

    
por 07.08.2015 / 05:01
2

Ter 'a e 'b se comportar de maneira diferente parece irritante. Eu recomendo que você use uma maneira diferente de inserir caracteres com diacríticos. Em vez de criar ' e essas chaves mortas, use uma chave de composição . Para inserir 'a' , você digita ' a ' normalmente. Para inserir á , você digita Compor ' a .

Eu não estou familiarizado com a interface de configuração de layout de teclado do Mint, mas ele deve ter uma opção para ativar a tecla Compose em algum lugar. A escolha usual é usar a tecla “menu” localizada à esquerda da tecla direita Ctrl (mas isso nem sempre é conveniente em um laptop).

Para manter as coisas uniformes, você pode ativar uma tecla Compose no Windows com Wincompose .

    
por 07.08.2015 / 10:42
0

Eu não consegui fazer tudo isso funcionar ainda (não consegui descobrir como fazer algumas coisas ainda como ^ e & [provavelmente valores octais]), mas é bom o suficiente para mim por agora. Quando eu terminá-lo para o primeiro / segundo nível, eu reenviei o arquivo .XCompose para xim. Obrigado novamente por cksk pela ajuda.

link

    
por 17.08.2015 / 15:20
0

Para preencher as respostas de @lmeurs e @ Luciano acima, aqui está um arquivo ~/.XCompose que funciona em junho de 2018 no Linux Mint 18.3, usando xim como método de entrada:

include "%L" # or include "/usr/share/X11/locale/en_US.UTF-8/Compose"

<dead_acute> <b> : "'b"
<dead_acute> <c> : "ç"   ccedilla
<dead_acute> <d> : "'d"
<dead_acute> <f> : "'f"
<dead_acute> <g> : "'g"
<dead_acute> <h> : "'h"
<dead_acute> <j> : "'j"
<dead_acute> <k> : "'k"
<dead_acute> <l> : "'l"
<dead_acute> <m> : "'m"

<dead_acute> <n> : "'n"
<dead_acute> <p> : "'p"
<dead_acute> <q> : "'q"
<dead_acute> <r> : "'r"
<dead_acute> <s> : "'s"
<dead_acute> <t> : "'t"
<dead_acute> <v> : "'v"
<dead_acute> <w> : "'w"

<dead_acute> <x> : "'x"
<dead_acute> <y> : "'y"
<dead_acute> <z> : "'z"
<dead_acute> <B> : "'B"
<dead_acute> <C> : "Ç"   Ccedilla
<dead_acute> <D> : "'D"
<dead_acute> <F> : "'F"
<dead_acute> <G> : "'G"
<dead_acute> <H> : "'H"
<dead_acute> <J> : "'J"

<dead_acute> <K> : "'K"
<dead_acute> <L> : "'L"
<dead_acute> <M> : "'M"
<dead_acute> <N> : "'N"
<dead_acute> <P> : "'P"
<dead_acute> <Q> : "'Q"
<dead_acute> <R> : "'R"
<dead_acute> <S> : "'S"
<dead_acute> <T> : "'T"
<dead_acute> <V> : "'V"

<dead_acute> <W> : "'W"
<dead_acute> <X> : "'X"
<dead_acute> <Y> : "'Y"
<dead_acute> <Z> : "'Z"


<dead_acute> <dead_acute> : "''"
<dead_acute> <1> : "'1"
<dead_acute> <2> : "'2"
<dead_acute> <3> : "'3"
<dead_acute> <4> : "'4"
<dead_acute> <5> : "'5"
<dead_acute> <6> : "'6"
<dead_acute> <7> : "'7"
<dead_acute> <8> : "'8"
<dead_acute> <9> : "'9"
<dead_acute> <0> : "'0"
<dead_acute> <minus> : "'-"'
<dead_acute> <equal> : "'="
<dead_acute> <slash> : "'/"
<dead_acute> <bracketleft> : "'["
<dead_acute> <bracketright> : "']"
<dead_acute> <semicolon> : "';"
<dead_acute> <apostrophe> : "''"
<dead_acute> <comma> : "',"
<dead_acute> <period> : "'."
<dead_acute> <backslash> : "'\"



<dead_acute> <dead_tilde> : "'~"
<dead_acute> <exclam> : "'!"
<dead_acute> <at> : "'@"
<dead_acute> <numbersign> : "'#"
<dead_acute> <dollar> : "'$"
<dead_acute> <percent> : "'%"
<dead_acute> <dead_circumflex> : "'^"
<dead_acute> <ampersand> : "'&"
<dead_acute> <asterisk> : "'*"
<dead_acute> <parenleft> : "'("
<dead_acute> <parenright> : "')"


<dead_acute> <underscore> : "'_"

<dead_acute> <plus> : "'+"
<dead_acute> <braceleft> : "'{"
<dead_acute> <braceright> : "'}"
<dead_acute> <colon> : "':"
<dead_acute> <quotedbl> : "'""
<dead_acute> <leftarrow> : "'<"
<dead_acute> <leftarrow> : "'>"
<dead_acute> <question> : "'?"


<dead_diaeresis> <dead_diaeresis> : "\"\""
<dead_diaeresis> <b> : "b"
<dead_diaeresis> <c> : "c"
<dead_diaeresis> <d> : "d"
<dead_diaeresis> <f> : "f"
<dead_diaeresis> <g> : "g"
<dead_diaeresis> <h> : "h"
<dead_diaeresis> <j> : "j"
<dead_diaeresis> <k> : "k"
<dead_diaeresis> <l> : "l"
<dead_diaeresis> <m> : "m"

<dead_diaeresis> <n> : "n"
<dead_diaeresis> <p> : "p"
<dead_diaeresis> <q> : "q"
<dead_diaeresis> <r> : "r"
<dead_diaeresis> <s> : "s"
<dead_diaeresis> <t> : "t"
<dead_diaeresis> <v> : "v"
<dead_diaeresis> <w> : "w"

<dead_diaeresis> <x> : "x"
<dead_diaeresis> <y> : "y"
<dead_diaeresis> <z> : "z"
<dead_diaeresis> <B> : "B"
<dead_diaeresis> <C> : "C"
<dead_diaeresis> <D> : "D"
<dead_diaeresis> <F> : "F"
<dead_diaeresis> <G> : "G"
<dead_diaeresis> <H> : "H"
<dead_diaeresis> <J> : "J"

<dead_diaeresis> <K> : "K"
<dead_diaeresis> <L> : "L"
<dead_diaeresis> <M> : "M"
<dead_diaeresis> <N> : "N"
<dead_diaeresis> <P> : "P"
<dead_diaeresis> <Q> : "Q"
<dead_diaeresis> <R> : "R"
<dead_diaeresis> <S> : "S"
<dead_diaeresis> <T> : "T"
<dead_diaeresis> <V> : "V"

<dead_diaeresis> <W> : "W"
<dead_diaeresis> <X> : "X"
<dead_diaeresis> <Y> : "Y"
<dead_diaeresis> <Z> : "Z"



<dead_diaeresis> <dead_acute> : "'"
<dead_diaeresis> <1> : "1"
<dead_diaeresis> <2> : "2"
<dead_diaeresis> <3> : "3"
<dead_diaeresis> <4> : "4"
<dead_diaeresis> <5> : "5"
<dead_diaeresis> <6> : "6"
<dead_diaeresis> <7> : "7"
<dead_diaeresis> <8> : "8"
<dead_diaeresis> <9> : "9"
<dead_diaeresis> <0> : "0"
<dead_diaeresis> <minus> : "-"
<dead_diaeresis> <equal> : "="
<dead_diaeresis> <slash> : "/"
<dead_diaeresis> <bracketleft> : "["
<dead_diaeresis> <bracketright> : "]"
<dead_diaeresis> <semicolon> : ";"
<dead_diaeresis> <comma> : ","
<dead_diaeresis> <period> : "."
<dead_diaeresis> <backslash> : "\"


<dead_diaeresis> <dead_tilde> : "~"
<dead_diaeresis> <exclam> : "!"

<dead_diaeresis> <at> : "@"
<dead_diaeresis> <numbersign> : "#"
<dead_diaeresis> <dollar> : "$"
<dead_diaeresis> <percent> : ""
<dead_diaeresis> <dead_circumflex> : "^"
<dead_diaeresis> <ampersand> : "&"
<dead_diaeresis> <asterisk> : "*"
<dead_diaeresis> <parenleft> : "("
<dead_diaeresis> <parenright> : ")"

<dead_diaeresis> <underscore> : "_"

<dead_diaeresis> <plus> : "+"
<dead_diaeresis> <braceleft> : "{"
<dead_diaeresis> <braceright> : "}"
<dead_diaeresis> <colon> : ":"
<dead_diaeresis> <quotedbl> : ""
<dead_diaeresis> <leftarrow> : "<"
<dead_diaeresis> <leftarrow> : ">"
<dead_diaeresis> <question> : "?"



<dead_grave> <b> : "'b"
<dead_grave> <c> : "'c"
<dead_grave> <d> : "'d"
<dead_grave> <f> : "'f"
<dead_grave> <g> : "'g"
<dead_grave> <h> : "'h"
<dead_grave> <j> : "'j"
<dead_grave> <k> : "'k"
<dead_grave> <l> : "'l"
<dead_grave> <m> : "'m"

<dead_grave> <n> : "'n"
<dead_grave> <p> : "'p"
<dead_grave> <q> : "'q"
<dead_grave> <r> : "'r"
<dead_grave> <s> : "'s"
<dead_grave> <t> : "'t"
<dead_grave> <v> : "'v"
<dead_grave> <w> : "'w"

<dead_grave> <x> : "'x"
<dead_grave> <y> : "'y"
<dead_grave> <z> : "'z"
<dead_grave> <B> : "'B"
<dead_grave> <C> : "'C"
<dead_grave> <D> : "'D"
<dead_grave> <F> : "'F"
<dead_grave> <G> : "'G"
<dead_grave> <H> : "'H"
<dead_grave> <J> : "'J"

<dead_grave> <K> : "'K"
<dead_grave> <L> : "'L"
<dead_grave> <M> : "'M"
<dead_grave> <N> : "'N"
<dead_grave> <P> : "'P"
<dead_grave> <Q> : "'Q"
<dead_grave> <R> : "'R"
<dead_grave> <S> : "'S"
<dead_grave> <T> : "'T"
<dead_grave> <V> : "'V"

<dead_grave> <W> : "'W"
<dead_grave> <X> : "'X"
<dead_grave> <Y> : "'Y"
<dead_grave> <Z> : "'Z"


<dead_grave> <dead_acute> : "''"
<dead_grave> <1> : "'1"
<dead_grave> <2> : "'2"
<dead_grave> <3> : "'3"
<dead_grave> <4> : "'4"
<dead_grave> <5> : "'5"
<dead_grave> <6> : "'6"
<dead_grave> <7> : "'7"
<dead_grave> <8> : "'8"
<dead_grave> <9> : "'9"
<dead_grave> <0> : "'0"
<dead_grave> <minus> : "'-"
<dead_grave> <equal> : "'="
<dead_grave> <slash> : "'/"
<dead_grave> <bracketleft> : "'["
<dead_grave> <bracketright> : "']"
<dead_grave> <semicolon> : "';"
<dead_grave> <dead_grave> : "''"
<dead_grave> <comma> : "',"
<dead_grave> <period> : "'."
<dead_grave> <backslash> : "'\"


<dead_grave> <dead_tilde> : "'~"
<dead_grave> <exclam> : "'!"
<dead_grave> <at> : "'@"
<dead_grave> <numbersign> : "'#"
<dead_grave> <dollar> : "'$"
<dead_grave> <percent> : "'%"
<dead_grave> <dead_circumflex> : "'^"
<dead_grave> <ampersand> : "'&"
<dead_grave> <asterisk> : "'*"
<dead_grave> <parenleft> : "'("
<dead_grave> <parenright> : "')"
<dead_grave> <underscore> : "'_"
<dead_grave> <plus> : "'+"
<dead_grave> <braceleft> : "'{"
<dead_grave> <braceright> : "'}"
<dead_grave> <colon> : "':"
<dead_grave> <quotedbl> : "''"
<dead_grave> <leftarrow> : "',"
<dead_grave> <leftarrow> : "'."
<dead_grave> <question> : "'?"


<dead_tilde> <b> : "~b"
<dead_tilde> <c> : "~c"
<dead_tilde> <d> : "~d"
<dead_tilde> <f> : "~f"
<dead_tilde> <g> : "~g"
<dead_tilde> <h> : "~h"
<dead_tilde> <j> : "~j"
<dead_tilde> <k> : "~k"
<dead_tilde> <l> : "~l"
<dead_tilde> <m> : "~m"

<dead_tilde> <n> : "~n"
<dead_tilde> <p> : "~p"
<dead_tilde> <q> : "~q"
<dead_tilde> <r> : "~r"
<dead_tilde> <s> : "~s"
<dead_tilde> <t> : "~t"
<dead_tilde> <v> : "~v"
<dead_tilde> <w> : "~w"

<dead_tilde> <x> : "~x"
<dead_tilde> <y> : "~y"
<dead_tilde> <z> : "~z"
<dead_tilde> <B> : "~B"
<dead_tilde> <C> : "~C"
<dead_tilde> <D> : "~D"
<dead_tilde> <F> : "~F"
<dead_tilde> <G> : "~G"
<dead_tilde> <H> : "~H"
<dead_tilde> <J> : "~J"

<dead_tilde> <K> : "~K"
<dead_tilde> <L> : "~L"
<dead_tilde> <M> : "~M"
<dead_tilde> <N> : "~N"
<dead_tilde> <P> : "~P"
<dead_tilde> <Q> : "~Q"
<dead_tilde> <R> : "~R"
<dead_tilde> <S> : "~S"
<dead_tilde> <T> : "~T"
<dead_tilde> <V> : "~V"

<dead_tilde> <W> : "~W"
<dead_tilde> <X> : "~X"
<dead_tilde> <Y> : "~Y"
<dead_tilde> <Z> : "~Z"


<dead_tilde> <dead_acute> : "~'"
<dead_tilde> <1> : "~1"
<dead_tilde> <2> : "~2"
<dead_tilde> <3> : "~3"
<dead_tilde> <4> : "~4"
<dead_tilde> <5> : "~5"
<dead_tilde> <6> : "~6"
<dead_tilde> <7> : "~7"
<dead_tilde> <8> : "~8"
<dead_tilde> <9> : "~9"
<dead_tilde> <0> : "~0"
<dead_tilde> <minus> : "~-"
<dead_tilde> <equal> : "~="
<dead_tilde> <slash> : "~/"
<dead_tilde> <bracketleft> : "~["
<dead_tilde> <bracketright> : "~]"
<dead_tilde> <semicolon> : "~;"
<dead_tilde> <comma> : "~,"
<dead_tilde> <period> : "~."
<dead_tilde> <backslash> : "~\"


<dead_tilde> <dead_tilde> : "~~"
<dead_tilde> <exclam> : "~!"
<dead_tilde> <at> : "~@"
<dead_tilde> <numbersign> : "~#"
<dead_tilde> <dollar> : "~$"
<dead_tilde> <percent> : "~%"
<dead_tilde> <dead_circumflex> : "~^"
<dead_tilde> <ampersand> : "~&"
<dead_tilde> <asterisk> : "~*"
<dead_tilde> <parenleft> : "~("
<dead_tilde> <parenright> : "~)"

<dead_tilde> <underscore> : "~_"

<dead_tilde> <plus> : "~+"
<dead_tilde> <braceleft> : "~{"
<dead_tilde> <braceright> : "~}"
<dead_tilde> <colon> : "~:"
<dead_tilde> <quotedbl> : "~""
<dead_tilde> <leftarrow> : "~<"
<dead_tilde> <leftarrow> : ">"
<dead_tilde> <question> : "~?"

Meu /etc/environment contém:

GTK_IM_MODULE=xim
QT_IM_MODULE=xim

e eu adicionei a seguinte linha a ~/.profile :

export XCOMPOSEFILE=/home/my-user-name/.XCompose

e, claro, eu uso o layout 'Inglês (EUA, internacional com chaves mortas)':

$ setxkbmap -query
rules:      evdev
model:      pc105
layout:     us
variant:    intl
options:    terminate:ctrl_alt_bksp

A única coisa que não funciona perfeitamente (ainda?) é que dentro dos aplicativos do Qt apenas um caractere pode ser produzido por vez ... assim, por exemplo, se você pressionar + qualquer outra chave, somente o apóstrofo será inserido .

    
por 17.06.2018 / 07:12