Você está na página 1de 7

Caracteres especiais no teclado Linux: como adaptar s necessidades do escritor [Arti...

Page 1 of 7

Introduo Artigo disponvel tambm no site slackbr. A configurao e uso do teclado no X em GNU/Linux aparentemente simples, para o usurio que no conhea a norma padro da lngua, seja ela qual for. Para os que escrevem mais do que "e a, blz!", o teclado pode se tornar um quebra-cabea. Sinais indicativos de numerao ordinal (, ), travesso, meia-risca e outros podem ser to difceis de encontrar que inviabilizem o uso do Linux para escrever livros, monografias, teses de psgraduao ou qualquer texto corretamente. Ainda quando sabidas, as combinaes padro so desnecessariamente estranhas e ou complexas. Exemplos (layout us intl): sinal feminino de ordinal (), feito por Win direita (padro Multi_key, compose) Shift + underscore (_) a; travesso Altgr (Alt direita, ISO_Level3_Shift) hfen hfen hfen; enquanto Altgr + y produz (udiaeresis) em vez de y com alguma coisa ou pelo menos o smbolo yen, que vem pelo Altgr + underscore; Altgr + q resulta em ; Altgr + p d . Absolutamente sem critrio mnemnico. Elas esto em /usr/share/X11/locale/seu-locale/Compose. E muitos caracteres especiais no esto determinados em um ou outro layout (que pode ser o seu), caso em que os cdigos tm de ser inseridos ou no se obtero os caracteres. O layout abnt2 tambm no escapa aos defeitos, troca-os. Qual Compose ser usado determinado pela configurao de "export LANG=" em /etc/profile.d/lang.sh, de /etc/X11/xorg.conf e outros critrios que desconheo. As solues apresentadas em textos na internet invariavelmente passavam pela criao ou alterao de ~/.Xmodmap, arquivos de ambiente do usurio, ou instalao de programas como o Lineak. O que absolutamente contrrio ao que penso deva ser feito. Para somente atribuir teclas a funes do sistema ou mesmo comandos de programas, o KDE e XFCE fazem isso em modo grfico pelos respectivos centros de controle. Como exemplo, para desligar meu computador s preciso apertar a tecla Power. KDE Control center - Regional & Keyboard Shortcuts - Global - Desktop - Halt without confirmation - Shortcut for selected action. O KDE permite alterar de forma global as teclas de atalhos em seus aplicativos e outros que tenham essa possibilidade atravs de comandos. No XFCE pode ser feito dando permisso adequada (dica do Xerxeslins pelo VOL): # chmod 4755 /sbin/halt # ln -s /sbin/halt /bin/poweroff Depois ir configurao de teclado, criar um perfil, acrescentar o comando poweroff e associ-lo Power. E assim com outras aes desejadas. Outros gerenciadores de janelas fazem-nas por arquivos de configurao. Mas no disso que trata este artigo.

Objetivo e abordagem do problema

Objetivo
Adaptar o layout de teclados para o ambiente X com o mnimo aumento na quantidade de arquivos,

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8719

03/02/2013

Caracteres especiais no teclado Linux: como adaptar s necessidades do escritor [Arti...

Page 2 of 7

cdigos e programas no sistema, seguindo a filosofia KISS GNU/Linux, de forma a obter digitao mais confortvel, distribuda entre as duas mos e maior amplitude de caracteres que permitam o pleno uso da lngua escrita. A filosofia KISS no implica necessariamente em facilidade para o usurio atravs de ferramentas grficas, mas antes na simplicidade do sistema sem perda de eficincia. O que indiretamente o beneficiar, pela diminuio do consumo de recursos do hardware e da margem de erros dos programas.

Abordagem geral do problema


A Wikipdia explica muito bem o uso do hfen, travesso e meia-risca em lngua portuguesa. Em ingls e alemo praticamente a mesma coisa. "Num texto literrio, um travesso indica que no o narrador quem est a falar, mas uma das personagens. Vrios travesses indicam a mudana de interlocutor entre as vrias personagens. ... No meio de uma frase de uma personagem os travesses indicam uma curta interveno do narrador para, por exemplo, esclarecer qual a personagem que fala." --- Deve haver um jeito --- pensei --- de escrever corretamente no Slackware. "... pode isolar e reforar a parte final de um enunciado... palavras ou frases..." Como dois pontos ou parntesis."... no o mesmo que um hfen nem que uma meia-risca (ou "trao de ligao", ou risca de meio-quadratim). "A meia-risca, menor, serve para ligar elementos em srie (ex.: 1997--2006 ou A--Z)."O hfen, ainda menor, serve para unir palavras compostas (ex.: couve-flor) e fazer a translineao (diviso de uma palavra no final de linha)." No MS Windows esses sinais so fceis de ser feitos: Alt+0151; hfen; Alt+0150. Desde os primrdios. No Linux, se constarem no layout escolhido: --- Travesso: Compose hfen hfen hfen (pressiona e solta cada tecla); -- Meia-Risca: Compose hfen hfen ponto. Observado que a tecla de composio padro do ambiente X (rwin, Winkey direita) pode ser alterada no /etc/X11/xorg.conf. Outras dificuldades tambm se apresentam para descobrir como obter caracteres fora dos comuns pelo teclado. Por exemplo, as letras latinas ( etc.). O Mapa de Caracteres permite copiar e collos; mas essa soluo lentifica a escrita, inadequando-a ao profissional, e, se no constarem na codificao do arquivo, h uma grande chance de terem se transformado num ponto de interrogao ou algum outro cdigo quando o texto for reaberto.

Material e mtodo Nada sei de programao. Assim, o que escrevo baseado exclusivamente no que leio nos

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8719

03/02/2013

Caracteres especiais no teclado Linux: como adaptar s necessidades do escritor [Arti...

Page 3 of 7

arquivos prontos e concluo por analogia. O meu, e sobre o qual foi escrito este artigo, um teclado PS/2 internacional acrescido das teclas Wake, Sleep e Power --- um Pc104 + acpi. Layout formado pelos arquivos: pc + us(intl) + inet (acpi) + Compose. As regras para se modificar o mapa de teclado so as mesmas sejam quais forem os layouts. Sistema Slackware 12.0 com X11 7.1, KDE 3.5.7, XFCE 4.4.1. Como programas de teste usei os editores do KDE e o Seamonkey-Composer 1.1.2, por serem uns escritos em Qt e o ltimo em Gtk. Essas duas bibliotecas podem comportar-se diferentemente no que respeita ao teclado. A digitao feita em nveis. Nvel 1 o pressionamento simples; nvel 2 com uso do Shift; nvel 3 usa Altgr (ISO_Level3_Shift , Alt direita) + tecla; e nvel 4 Altgr + Shift + tecla. Para descobrir os principais sinais e o layout de teclado que est configurado podem ser usados os comandos: $ xkbprint -ll 1 :0.0 -o shift_level_1.ps && xkbprint -ll 3 :0.0 -o shift_level_3.ps Sero criados dois arquivos .ps, que so imagens dos nveis do layout determinado em /etc/X11/xorg.conf. Quando os comandos xkbprint no mostrarem todas as teclas, para descobrir os keycodes o modo mais fcil usar. $ xev Para cada tecla pressionada informado o keycode, keysym e qual o sinal mostrado na tela (se houver) ou nome. Minhas Wake, Sleep e Power, que no apareceram pelo xkbprint, foram descobertas por ele. Para saber os nomes dados pela Xorg s teclas referentes aos keycodes (nmero fornecido pelo xkbprint ou xev) e o que elas fazem, ver /etc/X11/xkb/keycodes/xfree86 e /etc/X11/xkb/symbols/pc. O keysym e nome das teclas especiais mapeadas esto em /usr/share/X11/XkeysymDB (o local pode variar nas distribuies), sabendo um pode-se encontrar o outro. Se nem xev fornecer os keycodes, o que pode acontecer em teclados cheios de novidades, os mtodos mais complexos descritos em HOWTO_Use_Multimedia_Keys e por "Piter Punk" (Mapeando teclas "inexistentes". Slackwarezine 14.5, nov./2006) podero ser usados. Trecho do meu /etc/X11/xorg.conf: Section "InputDevice" ... Option "XkbModel" "acpi" Option "XkbLayout" "us" Option "XkbVariant" "intl" Option "XkbOptions" "compose:lwin " # compose (Multi_key) na Winkey esquerda para aliviar a mo direita. Configurao do meu /etc/profile.d/lang.sh:

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8719

03/02/2013

Caracteres especiais no teclado Linux: como adaptar s necessidades do escritor [Arti...

Page 4 of 7

export LANG=pt_BR Se mudar para LANG=en_US.ISO8859-1 o Seamonkey-Composer (UTF-8) no pega mais travesso, apesar dele constar em /usr/share/X11/locale/en_US.UTF-8/Compose e ... /pt_BR.UTF8/Compose. Por isso no sei qual o Compose usado pelo Seamonkey. As configuraes acima determinam o que o sistema responder a cada tecla pressionada, de acordo com /etc/X11/xbb/symbols/us e /usr/share/X11/locale/iso8859-1/Compose. Estes sero modificados para atender o objetivo do autor.

Resultados e discusso /etc/X11/xbb/symbols/us: Para comentar linhas nesse tipo de arquivo em C usam-se duas barras inclinadas (//). prefervel comentar as linhas originais do que s mud-las, facilita correo em caso de erro. O smbolo referente ao nome entre colchetes ser produzido conforme o nvel de digitao. Ex.: [ a, A, aacute, Aacute ] Tecla a = a; Shift + a = A; Altgr + a = ; Altgr + Shift + a = . Comea-se a mudar de baixo para cima, porque a numerao das linhas ser alterada. Pode usar o nome dado pela Xorg ou unicode mostrado pelo Mapa de Caracteres. No qual ordinal feminino () U00AA; masculino () U00BA; travesso U2015 ou U2014; meia-risca U2013 ou U2012. /////////////////////////////////// partial alphanumeric_keys xkb_symbols "intl" { name[Group1]= "U.S. English - International (with dead keys)"; include "us(basic)" // Linha 103 acrescentada: key <AC01> { [ a, A, U00AA, ae ] }; // Linha 104, antiga 103: // key <AC01> { [ a, A, aacute, Aacute ] }; Com isso, Altgr + a produzir e no ; Altgr + Shift + a retornar . Afinal, em datilografia sempre se acentuou com tecla de acento e vogal. // Linha 98 acrescentada key <AD09> { [ o, O, U00BA, U0153 ] }; // Linha 99, antiga 98 // key <AD09> { [ o, O, oacute, Oacute ] }; Altgr + o = ; Altgr + Shift + o = oe (letra no consta na iso8859-1, por isso dar errado se em vez do unicode for inserido o nome oe). // Linha 96 ficou key <AD06> { [ y, Y, yen, Udiaeresis ] };

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8719

03/02/2013

Caracteres especiais no teclado Linux: como adaptar s necessidades do escritor [Arti...

Page 5 of 7

// Linha 97, antiga 96 comentada // key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] }; Altgr + y = . muito estranho pensar em na tecla y. // Linha 87 acrescentada (adaptada do layout francs) key <AE11> { [ minus, underscore, emdash, endash ] }; ou key <AE11> { [ minus, underscore, U2015, U2012 ] }; // Linha 88, antiga 87 comentada // key <AE11> { [ minus, underscore, yen, dead_belowdot ] }; Altgr + hfen = travesso (Em Dash); Altgr + Shift + underscore = meia-risca (En Dash). No h ligao mnemnica entre o Iene e a tecla hfen. Outras mudanas no mesmo arquivo, teclas numricas acima das alfabticas. Adaptei para minha necessidade, e ficou: key <AE02> { [ 2, at, twosuperior, onehalf ] }; // key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] }; key <AE03> { [ 3, numbersign, threesuperior, onethird ] }; // key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] }; key <AE04> { [ 4, dollar, foursuperior, sterling ] }; // key <AE04> { [ 4, dollar, currency, sterling ] }; key <AE05> { [ 5, percent, fivesuperior, EuroSign ] }; // key <AE05> { [ 5, percent, EuroSign ] }; key <AE06> { [ 6, dead_circumflex, sixsuperior, asciicircum ] }; // key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] }; key <AE07> { [ 7, ampersand, sevensuperior, dead_horn ] }; // key <AE07> { [ 7, ampersand, onehalf, dead_horn ] }; key <AE08> { [ 8, asterisk, eightsuperior, dead_ogonek ] }; // key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] }; key <AE09> { [ 9, parenleft, ninesuperior, dead_breve ] }; // key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; key <AE10> { [ 0, parenright, zerosuperior, dead_abovering ] }; // key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; Os algarismos sobrescritos foram aqui padronizados para Altgr + tecla, so de uso freqente ao fazer referenciaes. A frao , aparentemente perdida, j estava definida no Compose (Multi_key 1 4), bem como outras. Especialmente o zero superior muito importante porque substitui facilmente o smbolo de grau, feito com Altgr + Shift + ponto-e-vrgula ou Altgr + Shift + 00, alm da dificuldade por todas elas estarem no lado direito. Deve-se levar em conta que eu, como o leitor, tenho outras coisas a decorar alm de combinaes

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8719

03/02/2013

Caracteres especiais no teclado Linux: como adaptar s necessidades do escritor [Arti...

Page 6 of 7

esdrxulas de teclas. Alterei tambm /usr/share/X11/locale/iso8859-1/Compose. usado pelos aplicativos KDE. Inseri logo aps "# Special Character" as seguintes linhas: # Dashes - SESSO INSERIDA POR MIM <Multi_key> <minus> <minus> <period> : "" U2012 # meia-risca (dash, ou U2013 en dash) # <Multi_key> <minus> <minus> <minus> : "" U2014 # EM DASH <Multi_key> <minus> <minus> <minus> : "&#8221;" U2015 # Travesso (em dash) <Multi_key> <o> <e> : "&#8220;" U0153 # U0153 LATI SMALL LIGATURE oe <Multi_key> <O> <E> : "&#8217;" U0152 # U0152 LATIN CAPITAL LIGATURE OE Os caracteres entre aspas aparecem diferentes em outros formatos de arquivo, NO COPIE DAQUI, faa-o diretamente de /usr/share/X11/locale/en_US.UTF-8/Compose ou outro que tenha dash ou oe Se o caracter no constar na codificao, no ser exibido. No Compose, quando os caracteres entre aspas so dos que no suportam representao nesse arquivo (devido codificao), o unicode logo a seguir determina o que ser impresso. Esses tipos funcionaro em alguns editores e no em outros.

Concluses e sugestes As modificaes servem a todos os usurios da mquina. As combinaes de teclas devem ser configuradas sopesando, nesta ordem, a freqncia e facilidade do uso e memorizao, junto com a distribuio de tarefas entre as duas mos. Por isso este autor ainda est avaliando as alteraes feitas nas teclas numricas e pensando quais outras so necessrias. Travesso (em dash) pode ser feito com Altgr + hfen ou Multi_key hfen hfen hfen. Meia-risca (en dash) com Altgr + Shift + underscore ou Multi_key hfen hfen ponto (period). com Altgr + y; smbolos feminino e masculino de ordinal so feitos com Altgr + a ou o; embora ainda possam ser usados os padres da Xorg (Altgr + underscore; Multi_key Shift + underscore a ou o) pouco memorizveis e complexos. As regras e mtodo descritos aqui servem para alterar outras composies (se o caracter constar na codificao) e mapas, ou simplesmente descobrir as funes e nomes de cada tecla. As combinaes usando Multi_key (/usr/share/X11/locale/seu-locale/Compose) necessitam ser melhoradas e criadas outras. Por desconhecer ainda quais as regras e cdigos exatos desse arquivo, ficar para outra oportunidade. Outras melhorias, esclarecimentos, ensinos e correes so bem vindos e o autor de antemo agradece a quem os enviar. Sugere-se que os programadores de aplicativos para Linux no criem suas prprias convenes de caracteres, muito menos programas para isso, mas melhorem as da Xorg; os que escrevem mapas de teclado faam um estudo mais aprofundado das lnguas para as quais so dirigidos, bem como das convenes simblicas de edio internacional, ampliem o leque de caracteres lingusticos (feito facilmente usando Unicode), distribuam melhor a digitao para ambas as mos e usem combinaes mais memorizveis; de forma que num futuro prximo no tenhamos textos alterados

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8719

03/02/2013

Caracteres especiais no teclado Linux: como adaptar s necessidades do escritor [Arti...

Page 7 of 7

ao mudar de uma para outra distribuio, ou mesmo editor, e nem que identifiquemos um texto escrito em Linux s porque ele tem dois ou trs hifens no lugar do travesso.

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8719

03/02/2013

Você também pode gostar