mercoledì 18 agosto 2010

Un layout di tastiera migliore

Normalmente i post "tecnici" li faccio in inglese, ma visto che questo interessa fondamentalmente le italiche genti, mi è sembrato giusto scriverlo in italiano.

Quante volte vi è capitato, usando Microsoft Windows, di voler scrivere un "simbolo" non presente sulla tastiera? A me abbastanza spesso. Un po' perché mi capita di voler scrivere in lingue (europee) che usano caratteri non "italiani", penso all'islandese per esempio, un po' perché programmando ho necessità di alcuni simboli che effettivamente non si possono fare con il layout di default per l'italiano.


Naturalmente sono abituato a ben altri sistemi (GNU/Linux e il glorioso Amiga) nei quali il default per l'italiano consente anche l'inserimento di molti altri simboli, tipicamente quelli nel set Latin-1 o Latin-15, anche noti come ISO-8859-1 e ISO-8859-15, codifiche adatte per molte lingue europee e per alcuni simboli "interessanti", come per esempio le guillemot ovvero « e » per aprire e chiudere un discorso indiritto, o robe simili.

Non solo il default prevede già questa possibilità, intelligentemente, ma l'aggiunta di nuove possibilità o la modifica di quelle correnti vuol dire modificare un file di testo in un caso, e nel secondo (Amiga) è un po' più complicato, ma comunque il software che permette di farlo non raggiunge i 100 kbytes (ora non posso controllare, ma potrei dire con relativa tranquillità che, come molti software Amiga, è ben al di sotto dei 100 kbytes).

Le soluzioni tipiche su Microsoft Windows per inserire tali simboli sono oscene. Si va dal copia-incolla, all'uso di Inserisci Simbolo (spesso si fa riferimento a quello incorporato in un software gigantesco come un word processor), alla commutazione "al volo" del layout di tastiera tra quelli disponibili e che offrono maggiori possibilità, fino all'interessante (come possibilità alternativa ma non unica) Alt+KeypadNum, cioè pressione del tasto Alt seguito dalla digitazione di un codice numerico usando i numeri del tastierino numerico (sui portatili ciò implica la pressione di un altro tasto di solito).

Questa ultima possibilità è interessante, come detto; ma essendo l'unica, è frustrante. Sia perché la digitazione non è rapida, sia perché è necessario ricordarsi il codice del simbolo che si vuole! Dunque se si volesse ottenere il backtick con questa tecnica, bisognerebbe ricordarsi che questo ha "codice" 96; se si vuole la tilde, bisogna ricordarsi che questa ha codice 126... e così via.

A questo punto nasce la domanda: possibile che non sia possibile modificare il layout italiano in modo che faccia qualcosa di simile a quello che fa su GNU/Linux, ovvero che AltGr permetta di accedere ad altri simboli? Bisogna tenere presente che i file che "descrivono" il layout sono delle DLL, delle librerie. Dunque la risposta è sì, se si è in grado di "generare" queste DLL.

Cercando di capire come... no, non si può a mano, è quasi impossibile (niente è impossibile, ma diciamo che è altamente difficile, dunque impossibile per scopi pratici)... cercando di capire come, si trova facilmente il programma MSKLC che si scarica dal sito della Microsoft (anche se pare che la "firma digitale" non sia la loro, è un software di terze parti).

Prima botta: l'installer è di 10 Mbyte; subito vengo colto da stupore: 10 Mbyte per fare una roba così semplice? Sì... peccato che sono 10Mbyte di installer, e l'occupazione complessiva dell'installazione è intorno ai 45 Mbyte. Il che fa sorgere spontanea la domanda: ma che cazzo serve per fare un layout di tastiera?

La risposta è già data prima: bisogna essere in grado di generare una DLL. Andando a spulciare tra i file del programma, scopro che in pratica questo si porta dietro compilatore, linker, file di inclusione e quanto altro per poter compilare un programma e generare una libreria!! Poiché non si può supporre che un sistema Microsoft Windows qualunque abbia già installato compilatore ed SDK (né si può dire all'utente utonto installati questo e quello prima di usare MSKLC), è necessario portarsi diligentemente dietro queste robe. Che ovviamente diventano dei duplicati su un sistema che è usato anche per programmare e dunque avrebbe già tutto il necessario.

Il programmino permette poi di fare quello che dice. Genera diversi "installer" per diverse piattaforme (x86, x64 e un'altra che non ricordo), permette di salvare il codice sorgente che porta alla generazione della DLL, e naturalmente consenti di associare combinazioni di tasti a "nuovi" simboli, di aggiungere deadkey e via dicendo.

Bisogna ammettere che è un po' noioso, ma è una cosa che va fatta!

Il mio layout "Italiano - ExtraKeys" non è ancora completo come lo vorrei, ma già mi rende la vita più facile; attualmente mi permette, premendo AltGr con diversi tasti, di inserire i simboli ²³°`~ å©®þø§ æßð «»çñµ·×. Poi, la combinazione AltGr+, è un deadkey per mettere accenti acuti sulle vocali, per cui posso scrivere þú pigiando AltGr+t AltGr+, u...

Mancano la versione maiuscola di þøðæ, altre combinazioni possibili dell'accento acuto con altre lettere e molto altro ancora, ma per ora sono contento di essermi tolto il peso di dover usare Alt+KeyPad Num. Finalmente anche quando sono su Microsoft Windows potrò usare il backtick su `StackOverflow`, e programmando in C non dovrò sbattere la testa al muro per fare un semplice ~not.

Quando il layout sarà completo, lo renderò scaricabile da qualche parte per chiunque voglia avvantaggiarsi del lavoro. Io me lo metterò su una pennetta e andrò ad installarlo su tutti i sistemi Microsoft Windows che mi capiterà forzatamente di usare!

(P.S. non so se ci sono altre soluzioni migliori, o se il problema è stato risolto su Windows Seven).

1 commento:

  1. Non ho ancora avuto tempo per completarlo e del resto non avrei rivisto MS Windows per un bel po' (fuori dall'ambito lavorativo), se non fosse successo che l'acer con su installato una distro GNU/Linux (Ubuntu 10.10) mi ha abbandonato...

    RispondiElimina

Sii educato, costruisci con cura le frasi, rifletti prima di pubblicare, evita parolacce e offese dirette, non uscire dal tema, cerca di non omettere la punteggiatura, evita errori ortografici, rileggi quel che hai scritto.