Cambio mappatura tastiera -> xcompose, esperanto in Linux, circonflessi

11 risposte [Ultimo messaggio]
Ritratto di cicciolinuks
cicciolinuks
(Geek)
Offline
Geek
Iscritto: 12/06/2010
Messaggi: 198

Salve a tutti,
finora tutto funziona bene, sto imparando ad orientarmi, ho installato skype (per ora solo per scrivere ma non [video]chiamare... ma spero di far funzionare tutto).
Una cosa che vorrei fare, è quella di personalizzare la mappatura della tastiera. L'idea è quella di mantenere la tastiera italiana di base, ma aggiungere delle lettere, ad esempio le lettere italiane mancanti (la E maiuscola accentata non mi piace scriverla E', ed anche le altre maiuscole accentate).
Inoltre vorrei poter aggiungere anche altre lettere per poter scrivere l'esperanto. Su questo sito ho trovato varie soluzioni, tra le quali mi sembra interessante SCIM.
Qualcuno lo ha mai usato?

In pratica vorrei creare un tasto morto, ad esempio se io premo prima il tasto ' \ ' e poi la ' E ' ho come risultato ' È ', se premo \ e poi C ho come risultato Ĉ ecc.

In questo modo potrei usare più lingue contemporaneamente (la localizzazione esperanto per linux sostituisce le lettere non usate dall'esperanto, come la W, con lettere esperantiste. Ma poi come faccio a scrivere WWW per cercare un sito??).

Spero di aver chiarito il problema, ovviamente se ci sono altre vie oltre a SCIM sono tutt'orecchie...

Ritratto di enziosavio
enziosavio (non verificato)
()

Per la e con l' accento
Blocco maiuscole ÈÈÈÈÈÈÈÈÈÈÈÈ oppure ÉÉÉÉÉÉÉÉÉÉÉÉ

Ritratto di cicciolinuks
cicciolinuks
(Geek)
Offline
Geek
Iscritto: 12/06/2010
Messaggi: 198

Enzio sei grande, ho risolto il 40% dei miei problemi:
ÈÈÉÉÒÒÒÙÙÌÌÌÀÀ

In windows dovevo fare ALT+0200 ogni volta.

Aspetto speranzoso che qualcuno conosca SCIM o robe simili per il restante 60% Smile

PS.
(Intanto ho impostato anche il microfono, selezionando "internal mic" dal mixer e attivando tutto ciò che mostrava un microfono o simili)

Ritratto di cicciolinuks
cicciolinuks
(Geek)
Offline
Geek
Iscritto: 12/06/2010
Messaggi: 198

ho provato xkeycaps: una schifezza, non mi riconosceva la tastiera e quando gli ho detto di ripristinare le impostazioni predefinite mi ha messo la tastiera statunitense. Adesso ho rimesso la tastiera italiana ma non mi funziona il tasto Su e non so cosa altro.

Lo sconsiglio vivamente. Sembra che c'è un comando (xmodmap) che permetta di fare questo lavoro senza interfacce grafiche (l'interfaccia è buona, ma se funziona, non come xkeycaps!!).

Ritratto di bagarozzo85
bagarozzo85
(Guru)
Offline
Guru
Iscritto: 16/06/2006
Messaggi: 1050

Per cambiare temporaneamente la mappatura della tastiera è disponibile il comando loadkeys.

Nel caso specifico, per passare temporaneamente alla mappatura per l'Esperanto, dovrebbe essere sufficiente impartire il seguente comando da console di root:
loadkeys eo.UTF-8

e per ripristinare quella italiana:
loadkeys it

Così puoi scegliere quando usare quella italiana e quando quella per l'Esperanto. Può andar bene così?

Ritratto di enziosavio
deckard (non verificato)
()

scim - Smart Chinese/Common Input Method platform

SCIM is a developing platform to significantly reduce the difficulty of input method development.

Se è questo che cerchi, basta che guardi nel gestore del software.

Ritratto di cicciolinuks
cicciolinuks
(Geek)
Offline
Geek
Iscritto: 12/06/2010
Messaggi: 198

Veramente ho sentito dire che la tastiera esperantista in linux è orribile perché al posto di lettere che in esperanto non ci sono (es. Q, W, Y, ò, X) appaiono le lettere dell'esperanto (ognuno dei tasti precedenti sarà sostituito con uno tra ĉ, ĝ, ĥ, ĵ, ŝ, ŭ).
In questo modo per scrivere in italiano o digitare www ho bisogno di cambiare tastiera. Quello che vorrei è la possibilità di personalizzare la tastiera aggiungendo combinazioni o tasti morti come ho descritto sopra affinché mi sia possibile scrivere in esperanto ed in italiano senza dover cambiare tastiera o impostazioni.. In windows mi sono trovato bene con Microsoft Keyboard Layout Creator e vorrei qualcosa del genere anche qui.

xmodmap sembra essere la risposta, ma è una cosa da studiarsi prima di usarla.
SCIM mi incute un po' di timore perché sembra una cosa di cinese e perché ha 30 lingue ma non so se lo puoi personalizzare e come, quindi se qualcuno lo ha usato e mi facesse sapere...

Ritratto di cicciolinuks
cicciolinuks
(Geek)
Offline
Geek
Iscritto: 12/06/2010
Messaggi: 198

Da questo intervento ho creato un articolo sul mio blog.

Grazie a vari consigli, al sito [2], Santa Pazienza e diverse pagine, ho risolto il problema.
Dettagli:

PASSO 1
Ho scelto il tasto che volevo usare come "tasto morto". Ho deciso di usare il tasto Windows di DESTRA che su linux non serve. Quello di sinistra ormai è usato anche in linux, evitare assolutamente la combinazione con S perché fa Win+S sparire il desktop e per farlo riapparire bisogna premere Win+Q e scegliere di far riapparire le icone. Il tutto senza chiedere conferma e lasciando l'utente disorientato a cercare su internet come risolvere il problema.
Mi serve il codice, che può cambiare da computer a computer. Il comando per trovare i codici è il seguente:

xev

dopo questo comando il computer scrive ogni evento, (da tastiera o mouse). Ci interessa cosa succede premendo il tasto Win di sinistra, cioè:

KeyPress event, serial 40, synthetic NO, window 0x6200001,
root 0x7f, subw 0x0, time 14864875, (631,-136), root:(685,486),
state 0x0, keycode 135 (keysym 0xfe51, dead_acute), same_screen YES,
.....

Quello che ho evidenziato in grassetto è il codice che mi serve: 135.
Per uscire da xev, cliccare fuori dalla finestra di comando e poi, ricliccandoci dentro, premere CTRL-C. Oppure chiudere la finestrella che si apre (e che serve per provare l'input del mouse).

PASSO 2
Premesse "banali". Per chi non lo sapesse, con Home indico la cartella home dell'utente: /home/nomeutente/ che si può abbreviare con il segno di tilde (esempio classico: cd ~). In questa cartella creeremo i file necessari.
La tilde ~ si scrive premendo AltGr+ì.
Da interfaccia grafica invece, basta cercare e cliccare la cartella Home.
I file che iniziano con un punto (esempio: .bashrc, .XModmap) sono nascosti, quindi bisogna far sì che nelle opzioni i file nascosti siano visibili per poterli aprire (in dolphin: Visualizza -> file nascosti; per elencarli da riga di comando, digitare "ls -a" quando si entra nella cartella che li contiene).

Ho creato in Home un file .Xmodmap con questa riga:
keycode 135 = dead_circumflex dead_breve

dove 135 è il codice scoperto al passo 1; dead_circumflex e dead_breve indicano il tipo di tasto morto che diventerà Win rispettivamente premendolo da solo o con la maiuscola. In altre parole:
«Metti i circonflessi ^ sulle lettere premute dopo il tasto Windows; metti i segni di breve ˘ sulle lettere premute dopo Maiuscola+Windows».
Non aggiungere commenti con # a questo file: non funzionerà.

Così facendo ho impostato il circonflesso su molte lettere (ma a me interessano solo ĈĜĤĴŜ), premendo Windows minuscolo, e posso fare ŭ premendo Win+Maiusc. Posso ritenermi soddisfatto. Per attivare le modifiche, digito:

xmodmap ~/.Xmodmap

e la tastiera è impostata per questa sessione.
Se scrivo quest'ultimo comando nel file .bashrc presente in Home: la tastiera così dovrebbe rimanere al prossimo riavvio. Se invece voglio eliminare gli effetti del file, oltre a cancellare il file e il comando in .bashrc devo riavviare.

FINE

...O no?!
Premere Maiuscola+Win potrebbe essere scomodo per qualcuno; in seguito descrivo il modo per evitarsi questa scomodità, ma devo purtroppo annunciare che nelle ultime versioni di Linux questo potrebbe non funzionare perché il tasto .XCompose, che andremo a creare, viene ignorato. Qualcuno sui forum dice di aver capito come farlo funzionare, ma io non ho pazienza per seguire lunghe discussioni magari di utenti di altre distro.

L'ideale: invece di Û io vorrei il segno di breve Ŭ premendo normalmente il tasto Win senza maiuscola, cioè il tasto si comporterà diversamente solo per la U. Creo un altro file in Home chiamato .XCompose (X e C maiuscole!), copiandoci dentro ciò che suggerisce il sito di Bertilo [2]:

include "%L"
<dead_circumflex> <u> : "ŭ" U016D
<dead_circumflex> <U> : "Ŭ" U016C

<dead_circumflex> <v> : "û" U00FB
<dead_circumflex> <V> : "Û" U00DB

<dead_circumflex> <C> : "Ĉ" U0108
<dead_circumflex> <c> : "ĉ" U0109
<dead_circumflex> <G> : "Ĝ" U011C
<dead_circumflex> <g> : "ĝ" U011D
<dead_circumflex> <H> : "Ĥ" U0124
<dead_circumflex> <h> : "ĥ" U0125
<dead_circumflex> <J> : "Ĵ" U0134
<dead_circumflex> <j> : "ĵ" U0135
<dead_circumflex> <S> : "Ŝ" U015C
<dead_circumflex> <s> : "ŝ" U015D

Significato:
- prima riga: boh... serve e basta
- 2 righe successive: sulla U non mettere il cappellino ma il segno di breve: Ŭŭ
- altre 2 righe: scrivi Ûû con la lettera V (se proprio vuoi la û...)
- le successive in teoria sono inutili dato che sovrascrivono il comportamento già stabilito in .Xmodmap.
Attenzione, se invece di Win vorresti usare un carattere scrivibile come tasto morto, ad esempio il tasto \, dovresti sfruttare questo file per creare una combinazione per scrivere proprio il carattere "\" che altrimenti, se trasformato in tasto morto, non sarà più scrivibile...

Come ho anticipato il file .XCompose potrebbe essere ignorato nelle ultime versioni di Linux. Alcune fonti, come[1] suggeriscono che bisogna apportare delle modifiche al file Compose della tastiera in uso.

UTENTE AVVISATO...

  1. a. Se non sei esperto, accontentati di ciò che hai e non andare a toccare quei file! Se danneggi la tastiera potresti ritrovarti un computer ingestibile. Puoi creare una copia del file, ma non puoi salvarla nella stessa cartella, da quanto ho letto nei forum.
  2. b. Io ci ho provato senza successo (file Compose ignorato, anche dopo il riavvio).
In /usr/share/X11/locale/ troviamo alcune decine di cartelle, per lingue asiatiche, greco... quella italiana è inclusa in quella en_US. Il file è il seguente:
/usr/share/X11/locale/en_US.UTF-8/Compose

Dovrebbe essere lo stesso posto per ogni versione, ma se non riesci localizzare il file, puoi lanciare una ricerca. Da riga di comando:
find / -name Compose

Ogni modifica in questa cartella o file va fatta da root.

Quindi in Compose cercherai le seguenti righe:

<dead_circumflex> <u>                   : "û"   ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
<dead_circumflex> <U>                   : "Û"   Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX

che (giustamente) dicono: se la U segue il tasto morto per i circonflessi (nel nostro caso il tasto Windows), aggiungile il circonflesso.
Ma noi vogliamo che dopo tale tasto sia aggiunto il segno di breve. Modifichiamo così:
<dead_circumflex> <u>                   : "ŭ"   U016D # LATIN SMALL LETTER U WITH BREVE
<dead_circumflex> <U>                   : "Ŭ"   U016C # LATIN CAPITAL LETTER U WITH BREVE

Rilanciamo quindi il comando per aggiornare la tastiera con le ultime modifiche:
xmodmap ~/.Xmodmap

La sintassi di Compose può cambiare un po' a seconda della distribuzione linux (vedi [1]).

Sitografia:
[1] http://www.cinquantini.it/tag/lettere-col-circonflesso/
altro:
[2] http://bertilow.com/komputo/linukso.html (esperanto)

I seguenti non funzionano più:
[3] http://a2.pluto.it/a2287.htm (italiano, generale su xmodmap)
[4] http://www.columbia.edu/~djv/docs/keyremap.html
[5] http://it.ekopedia.org/Esperanto

Ritratto di Sargon6
Sargon6
(Guru)
Offline
Guru
Iscritto: 13/11/2008
Messaggi: 723

Interessante questa discussione!
La linko dal mio blog.
http://www.suseitalia.org/blog/sargon6/2009/12/19/come-inserire-caratteri-speciali-quando-si-usa-linux

Nel mio blog, ho scritto delle cose che forse ti interessano.
http://www.suseitalia.org/blog/9923

Ritratto di cicciolinuks
cicciolinuks
(Geek)
Offline
Geek
Iscritto: 12/06/2010
Messaggi: 198

Come dici nel tuo blog, è buono per scrivere una parola straniera, ma soprattutto se impari un'altra lingua e la usi spesso assieme all'italiano. Inoltre, se scrivi senza guardarecome me, non vuoi che la mappatura venga sfasata ogni volta che cambi tastiera (dovresti reimparare a memoria i tasti!). Quindi puoi apporre delle modifiche a quella italiana, ed aggiungere lettere o simboli. Non solo per l'esperanto, ma anche per spagnolo, francese, tedesco, cinese scritto coi caratteri latini...
In ufficio ho un tasto che mi aggiunge gli accenti alle vocali, così ho la possibilità di scrivere 2 lingue oltre l'italiano (al momento sono all'estero).

Ritratto di cicciolinuks
cicciolinuks
(Geek)
Offline
Geek
Iscritto: 12/06/2010
Messaggi: 198

PS. Per evitarsi di fare tutti i cambiamenti elencati sopra (ma solo per chi vuole scrivere in esperanto, non so per le altre lingue).
La tastiera italiana ha già le lettere dell'esperanto in linux senza fare nulla!

il cappellino si ottiene premendo Alt gr + Maiusc. + il tasto con la ì -- e dopo aver rilasciato i tasti precedenti, si premerà il tasto che deve ricevere il cappellino, ad esempio:
[Alt gr + Maiusc. + il tasto con la ì] premuti insieme, e dopo averli rilasciati si preme s = ŝ
(infatti maiuscola + ì = ^)
per il segno sulla u che è diverso, basta fare
[Alt gr + Maiusc. + il tasto con §] seguiti dalla u, ad esempio
[Alt gr + Maiusc. + il tasto con §] seguiti da u = ŭ, [Alt gr + Maiusc. + il tasto con §] seguito da U = Ŭ.

Non sarà comodissimo ma non bisogna installare niente... offre Linux Wink