Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Tastiera portatile e framebuffer
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Wed Sep 30, 2009 3:20 pm    Post subject: Tastiera portatile e framebuffer Reply with quote

L'ultimo portatile che ho acquistato non ha una tastiera "standard": alcuni dei tasti che solitamente compaiono sulle normali tastiere, come PagUp e PagDown, non sono presenti. Questo è dovuto dal fatto che questa tastiera ha il tastierino numerico, solitamente presente sui desktop.
Fin qui poco male, in X questi tasti vengono riconosciuti correttamente e, a parte il fatto di trovarsi in una posizione inusuale, svolgono il loro compito in maniera egregia.
Il problema, invece, sorge nel momento in cui si vuole utilizzare il framebuffer: la mappatura della tastiera viene caricata all'interno del kernel, ed è lui stesso a gestire gli eventi e la mappatura italiana, presente nel pacchetto sys-apps/kbd, che utilizza i tasti PagUp e PagDown standard per effettuare lo scroll del framebuffer. I tasti del tastierino numerico PagUp(9) e PagDown(3) consentono la corretta ricerca nella history (funzione gestita da bash e non a livello del kernel e configurabile, comunque tramite il file /etc/inputrc), ma non lo scroll.

Sorge quindi il problema di modificare tale mappatura di default. Vediamo come :wink:
Prendiamo la mappatura della tastiera che più si avvicina ad una mappatura corretta per il nostro computer. Nel mio caso la mappatura di default ( it ) è quasi perfetta.
il file che contiene la configurazione è /usr/share/keymaps/i386/qwerty/it.map.gz
il suo contenuto non è di facile intuizione, almeno non inizialmente.
Code:
keymaps 0-2,4,6,8-9,12
include "linux-with-alt-and-altgr"
strings as usual

keycode   1 = Escape           Escape
   alt     keycode   1 = Meta_Escape
keycode   2 = one              exclam
   alt     keycode   2 = Meta_one
   shift alt keycode 2 = Meta_exclam
keycode   3 = two              quotedbl
   control keycode   3 = nul
   alt     keycode   3 = Meta_two
   control alt keycode 3 = Meta_nul
... continua, ma il senso è questo.

Si capisce che ogni keycode ha delle funzioni associate e che viene incluso un file chiamato "linux-with-alt-and-altgr"

tale file si trova in /usr/share/keymaps/i386/include/linux-with-alt-and-altgr.inc
il contenuto:
Code:
include "linux-keys-bare"

keycode 100 = AltGr
alt keycode 100 = Compose

altgr keycode 70 = Show_Registers
alt keycode 70 = Scroll_Lock

control altgr keycode 83 = Boot
control altgr keycode 111 = Boot

# Hex keypad keys (for giving a Unicode value in 4 hex digits)
# Follow lt.map and assign Hex_A .. Hex_F to keypad border.
altgr keycode  55 = Hex_C
altgr keycode  69 = Hex_A
...

che a sua volta ne include un altro: "linux-keys-bare".
A questo punto possiamo intuire che "linux-keys-bare.inc" è il file di default, alcune aggiunte vengono fatte tramite il file "linux-with-alt-and-altgr.inc" e viene completata la configurazione tramite il file /usr/share/keymaps/i386/qwerty/it.map.gz ora non resta che capire cosa modificare.

utilizzando il comando /usr/bin/showkey (pacchetto sys-apps/kbd) su un computer "sano" (nel senso che non ha subito l'amputazione dei tasti PagUp e PagDown) ho scoperto che i keycode dei due tasti sono 104 e 109
nel file /usr/share/keymaps/i386/include/linux-keys-bare.inc ci sono due simpatiche righe:
Code:
shift keycode 104 = Scroll_Backward
shift keycode 109 = Scroll_Forward

che sembrano fare al caso nostro.
andiamo quindi a scoprire (sempre con showkey) quali sono i keycode dei tasti del tastierino numerico.
nel mio caso: 73 9(PageUp) e 79 3(PageDown)

andiamo ad aggiungerli al file it.map.gz
Code:
zcat /usr/share/keymaps/i386/qwerty/it.map.gz > ~/keymap
nano ~/keymap
#aggiungiamo in fondo al file le righe:
shift    keycode   73 = Scroll_Backward
shift    keycode   79 = Scroll_Forward

a questo punto ricreiamo il file compresso, lo copiamo e carichiamo la nuova mappatura.
Code:
cat ~/keymap | gzip -f > it-laptop.map.gz
cp it-laptop.map.gz /usr/share/keymaps/i386/qwerty/
loadkeys it-laptop


se tutto funziona, abbiamo finito.

Grazie a MajinJoko per avermi supportato durante la risoluzione di questo piccolissimo problema che mi aveva fatto diventare un grande fan di less.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum