Por que o layout do teclado internacional dos EUA no Debian é diferente?

12

Editar : Eu percebi que o "problema" não estava apenas no Ubuntu, mas no próprio Debian e o Ubuntu apenas o herdou, então eu tive isso migrado do Ask Ubuntu

Eu uso o Linux de vez em quando por 10 anos e, mais recentemente, passei mais tempo com o OSX.

Mas ainda lembro que no começo eu escolheria o layout de teclado internacional dos EUA e teria exatamente a mesma saída que o layout de teclado do Windows (e, mais recentemente, o layout internacional OSX dos EUA).

No entanto, alguns anos atrás, quando eu instalei o Ubuntu, notei que o cedilha não era mais impresso (ç ou Ç). Esta é uma combinação das seguintes chaves: '+ c. Em vez disso, o que eu recebo é a letra ć.

Quando isso começou a acontecer e por que a diferença para o comportamento nos outros sistemas operacionais? O que mais me intriga é que há até mesmo um layout de teclado "alternativo internacional dos EUA", que imprime exatamente as mesmas chaves! Então, qual é a alternativa?

Isso foi relatado como um bug de volta à Canonical (não consegue encontrar o link agora), mas o layout do teclado nunca mudou de volta para o que eu esperava. Conheço as soluções para consertar o que preciso, mas gostaria de saber por que / quando se tornou diferente.

    
por Pablo 08.02.2011 / 21:22

4 respostas

16

Resumo

  1. Se você estiver usando o Ubuntu, ele provavelmente mudou por volta de 2005, quando o conjunto de caracteres padrão mudou de ISO 8859-1 para UTF-8.
  2. A US Alternative International adiciona algumas chaves mortas.

As configurações da chave inativa dependem da sua localidade e conjunto de caracteres.

Por exemplo:

  • en_US.UTF-8 é definido em /usr/share/X11/locale/en_US.UTF-8/Compose
  • ISO 8859-1 está definido em /usr/share/X11/locale/iso8859-1/Compose

Se você olhar neles usando grep , verá que há uma diferença:

$ grep '<dead_acute> <c>' /usr/share/X11/locale/en_US.UTF-8/Compose 
<dead_acute> <c>                    : "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE

$ grep '<dead_acute> <c>' /usr/share/X11/locale/iso8859-1/Compose
<dead_acute> <c>            : "7"    ccedilla

Ou seja:

  • Codificação Latin1: ', c = ç
  • Codificação UTF-8: ', c = ć

Os registros git (( en_US. UTF-8 ) ( iso8859-1 ) mostram que tem sido assim desde pelo menos 2004.

A diferença entre US International e US Alternative International é definida em /usr/share/X11/xkb/symbols/us .

Ou seja, o layout da US Alternative International adiciona essas teclas extras do AltGr:

  • dead_macron: no AltGr-minus
  • dead_breve: no AltGr-parenleft
  • dead_abovedot: no período de AltGr
  • dead_abovering: no AltGr-0
  • dead_doubleacute: no AltGr-equal (como o quotedbl já é usado)
  • dead_caron: no AltGr-less (AltGr-shift-comma)
  • dead_cedilla: no AltGr-comma
  • dead_ogonek: no AltGr-semicolon
  • dead_belowdot: no AltGr-sublinhado (AltGr-shift-minus)
  • dead_hook: em AltGr-question
  • dead_horn: no AltGr-plus (AltGr-shift-equal)
  • dead_diaeresis: em AltGr-cólon (Alt-shift-ponto-e-vírgula)

Por exemplo:

  • Internacional dos EUA: AltGr + - = ¥
  • Alternativa Internacional dos EUA: AltGr + - , a = ā

O UTF-8 tornou-se a codificação padrão:

por 20.02.2011 / 00:32
4

Complementando a resposta de Vítor Souza

Usando um layout de teclado internacional dos EUA com o idioma do sistema operacional em inglês e tendo um belo cedilla .

Para que o idioma Inglês com ç/Ç funcionando lindamente ( ' c - > cedilla) não seja necessário para alterar os arquivos de composição. O que é preciso fazer é definir o LC_CTYPE com uma localidade que contenha essa definição:

<dead_acute> <c>            : "7"    ccedilla.

Como pt_BR.UTF-8 (Português do Brasil / Português Brasileiro).

Mapa do teclado X:

# setxkbmap -layout us -variant intl

/etc/locale.conf

# nano /etc/locale.conf
LANG=en_US.UTF-8
LANGUAGE="en_US"
LC_CTYPE=pt_BR.UTF-8

Atualizar localidade

# source /etc/profile

E para tty:

Defina o mapa de teclado, a fonte e o mapa de fontes corretos, por exemplo,

# nano /etc/vconsole.conf
KEYMAP=us-acentos
FONT=ter-114n
FONT_MAP=8859-1
    
por 13.09.2013 / 04:41
2

De link e link :

Problema com o cedilla:

Um cara legal decidiu que um c acentuado ("ć") é mais importante que o c com um cedilla ("ç"), então o comportamento padrão para pressionar '+ c em teclados internacionais com teclas de atalho é agora' ć ' . Desde que eu sou brasileiro e não romeno ou algo assim, isso definitivamente me incomoda. ‘+ C costumava produzir“ ç ”uma vez.

Para corrigir isso, edite como root o arquivo /usr/lib/gtk-2.0/2.10.0/gtk.immodules , encontre esta linha:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"

E adicione: en depois: wa, então parece com isso:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

Edite para o Ubuntu 12.10 ( source ):

o arquivo gtk.immodules a ser editado está localizado em:

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules ou /usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

Editar para o Debian Wheezy (e provavelmente outras coisas do gtk 3)

O arquivo que precisa ser editado agora é

/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache

O gtk20 nas linhas agora é gtk30 , mas adicionar :en no final é o mesmo.

Para corrigir também para aplicativos que não são GTK, edite como root o arquivo /usr/share/X11/locale/en_US.UTF-8/Compose e altere todas as ocorrências de ć com ç, e todas as instâncias de Ć com Ç.

Pode ser necessário repetir uma ou ambas as operações de tempos em tempos, quando você atualiza seu sistema e leva os arquivos de configuração de volta ao seu conteúdo original.

    
por 08.02.2011 / 22:20
0

Isso vem como complemento da resposta do Vítor Souza .

No Xfce Quantal (Xubuntu 12.10, Mint 14 Xfce) não foi possível resolver isso pelos métodos já mencionados (veja abaixo). O que funcionou foi instalar ibus package e suas dependências.

( Source - mais exatamente here .

A solução mais antiga não funcionou para mim: no Ubuntu 12.10, o arquivo gtk.immodules tem um local diferente:

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

ou

/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

(Minha fonte para este aqui .)

    
por 15.04.2013 / 15:36