Page 1 of 1

[NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 24 Feb 2009, 13:35
by voria
Per abilitare tutti i tasti FN sul nostro NC10 basta installare un kernel aggiornato e modificare un file di HAL (Questo è l'howto).

Tuttavia, anche se i tasti sono tutti abilitati, in Ubuntu 8.10 alcuni non sono comunque mappati di default. Vediamo quindi come configurarli.

Mosterò solo come mappare i tasti FN-F5 e FN-F8, in modo da replicare le stesse funzionalità che hanno sotto windows xp. Per tutti gli altri tasti funziona allo stesso modo, basta adattare i comandi che seguono alle proprie necessità. Potrete mappare qualsiasi tasto (non solo quelli FN) a qualsiasi programma o script che volete. :)

Cominciamo col tasto FN-F5, che abilita/disabilita la retroilluminazione dello schermo (notare che se si usa il mio repository è già mappato, lascio comunque qui le istruzioni come esempio per gli altri tasti).

Prima di tutto, dobbiamo installare il pacchetto xbacklight dal gestore pacchetti perchè è necessario per il corretto funzionamento dello script che useremo.
Una volta installato, scarichiamo lo script, lo rendiamo eseguibile e lo mettiamo in /usr/local/bin.

Ora, lo mappiamo al tasto FN-F5 con i seguenti comandi:

Code: Select all

gconftool-2 -s --type string /apps/metacity/keybinding_commands/command_1 '/usr/local/bin/lcdonoff.sh'
gconftool-2 -s --type string /apps/metacity/global_keybindings/run_command_1 XF86Launch1
Il primo specifica il comando /usr/local/bin/lcdonoff.sh nella posizione command_1, il secondo abilita il tasto XF86Launch1 (cioè FN-F8) a lanciare il comando 'command_1' quando premuto.

Fatto. Niente di difficile, eh? :D

Ora il tasto FN-F8, che cambierà il governor della CPU (ondemand, performance o powersave). Come i nomi già suggeriscono, ondemand è quello di default e permette al processore di modificare la frequenza di lavoro quando necessario, performance forza il processore a restare sempre sulla frequenza massima, powersave forza il processore sempre alla frequenza minima.

Scarichiamo lo script, lo rendiamo eseguibile e lo mettiamo in /usr/local/bin (come al solito).

Per funzionare avrà bisogno del pacchetto libnotify-bin, quindi assicuriamoci che sia installato. Inoltre, avrà bisogno dei diritti di amministrazione, quindi useremo sudo. Dato che non vogliamo che ci venga richiesta la password ogni volta che vogliamo modificare il governor della CPU, dobbiamo creare una regola per sudo che ci permetta di avviare lo script senza che ci venga richiesta alcuna password (esattamente come abbiamo già fatto per la scheda wireless qui).

In un terminale, lanciamo il comando

Code: Select all

sudo visudo
per aprire il file di configurazione di sudo.

Andiamo alla linea

Code: Select all

# Cmnd alias specification
e subito sotto aggiungiamo questa linea:

Code: Select all

Cmnd_Alias      CPUSCALING=/usr/local/bin/cpuscaling.sh
Ora andiamo alla fine del file e aggiungiamo questa linea:

Code: Select all

%admin ALL=(ALL) NOPASSWD: CPUSCALING
Usciamo (CTRL+x) e salviamo il file.
Grazie a questa nuova regola, tutti gli utenti che appartengono al gruppo admin possono avviare il comando CPUSCALING (e SOLO questo) con diritti amministrativi senza dover inserire la password.

Ora, mappiamo lo script al tasto FN-F8 con i seguenti comandi:

Code: Select all

gconftool-2 -s --type string /apps/metacity/keybinding_commands/command_3 'sudo /usr/local/bin/cpuscaling.sh'
gconftool-2 -s --type string /apps/metacity/global_keybindings/run_command_3 XF86Launch3
E abbiamo finito.
Se si preme il tasto FN-F8 una volta, appare un popup che mostra il governor attualmente in uso. Se si continua a premere il tasto, il governor viene cambiato.

Una piccola nota: lo script mostra i popup in inglese. Per cambiare la lingua, basta modificare le prima linee dello script con i messaggi in italiano.

Allo stesso modo è possibile mappare qualsiasi tasto a qualsiasi programma/script. Ad esempio, sul mio NC10 il tasto FN-F3 apre un terminale, FN-F7 avvia eclipse e FN-F8 avvia devhelp (personalmente non ho alcuna necessità di gestire i governor della CPU, lascio sempre quello ondemand. Ho preferito quindi usare il tasto per qualcos'altro :)).

Questo è tutto. Per qualsiasi problema o per qualsiasi domanda, come al solito basta chiedere. :)

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 17 Mar 2009, 14:44
by gabar82
ciao voria

grazie ancora per tutto

volevo chiederi come posso spostare la mappatura del governor della cpu dal tasto shift+ctrl+alt+g che mi ha mappato in automatico usando il tuo reposity http://www.linuxonmysamsung.com/showthread.php?tid=66 in fn+f8

se mi spieghi la procedura faccio le solite cose anche per il tasto fn+f7 a cui vorrei metterci l'attivazione del blutette

ciao e grazie

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 17 Mar 2009, 18:20
by voria
Apri un terminale e dai il comando

Code: Select all

gconf-editor
Nella finestra che si apre vai in '/apps/metacity/global_keybindings/' e modifica le combinazioni assegnate per le voci 'run_command_*' che ti interessano (nel tuo caso, 'run_command_5' per il governor della cpu deve diventare 'XF86Launch3' (FN-F8) e 'run_command_3' per il bluetooth deve diventare 'XF86Launch2' (FN-F7)).

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 17 Mar 2009, 18:46
by gabar82
le ho cambiate, ma continuano a funzionare con i vecchi tasti e cioè shift,alt,ctrl + g e b

grazie ancora, e scusa se ti stresso

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 17 Mar 2009, 19:06
by voria
Riavvia la sessione dell'utente :P

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 17 Mar 2009, 19:33
by gabar82
ho riavviato pure il pc ma niente...continuano a fare quelli vecchi, ma dal binding vedo i tasti configurati con fn...bho

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 19 Mar 2009, 19:33
by voria
Strano... giusto per curiosità, riesci invece a creare hotkey nuovi?

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 20 Mar 2009, 13:17
by gabar82
se mi dici come fare :-)

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 20 Mar 2009, 14:44
by voria
Apri un terminale e avvia l'editor di configurazione con il comando

Code: Select all

gconf-editor
spostati in '/apps/metacity/keybinding_commands', scegli una posizione 'command_*' libera e mettici il comando che vuoi debba essere eseguito.
Poi spostati in '/apps/metacity/global_keybindings', e nella posizione 'run_command_*' (con * lo stesso numero scelto prima) metti il tasto (o la combinazione di tasti) che vuoi usare.

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 21 Mar 2009, 09:29
by gabar82
rispippolandoci un po ho scoperto che mia veva rimesso di nuovo shift+alt ecc

adesso ho rimappato i tasti con XF86Launch2 e 3 riavviato, e ora funzionano bene.

bho che strano, non so che dire, ho fatto i soliti passaggi di 2 giorni fa

sorry e grazie ancora

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 25 Mar 2009, 21:30
by voria
Beh l'importante è che alla fine hai risolto :P

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 26 Mar 2009, 00:52
by gabar82
'voRia' pid='547' dateline='1238013057' wrote: Beh l'importante è che alla fine hai risolto :P

e si, meno male :-)

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 24 Apr 2009, 12:25
by Cimi
lanciando i comandi col superutente non partono con il demone notify-osd (probabilmente perchè essendo in uso l'utente root non trova il demone notify-osd) ma usano la modalità classica di notification-daemon... qualche idea per sistemare il problema?

in ogni caso ci sono modi migliori per vedere se l'utente è root o meno, in genere si controlla L'UID invece di fare whoami e poi vedere se la stringa è diversa da root :D

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 24 Apr 2009, 12:57
by voria
'Cimi' pid='798' dateline='1240572310' wrote: lanciando i comandi col superutente non partono con il demone notify-osd (probabilmente perchè essendo in uso l'utente root non trova il demone notify-osd) ma usano la modalità classica di notification-daemon... qualche idea per sistemare il problema?

in ogni caso ci sono modi migliori per vedere se l'utente è root o meno, in genere si controlla L'UID invece di fare whoami e poi vedere se la stringa è diversa da root :D
Gli script sono tutt'altro che perfetti, andrebbero riscritti. Ogni modifica e/o riscrittura è ovviamente ben accetta ;)

Per quanto riguarda notify-osd, forse si può usare dbus per inviare messaggi al demone, ma non ne sono sicuro. Appena ho un attimo vedo che si può fare.

RE: [NC10] Mappare i restanti tasti FN non ancora funzionanti

Posted: 25 Apr 2009, 14:27
by voria
'Cimi' pid='798' dateline='1240572310' wrote: lanciando i comandi col superutente non partono con il demone notify-osd (probabilmente perchè essendo in uso l'utente root non trova il demone notify-osd) ma usano la modalità classica di notification-daemon... qualche idea per sistemare il problema?
Problema risolto. ;)
I comandi 'notify-send' negli script vengono ora avviati con l'utente che ha invocato il sudo.
'Cimi' pid='798' dateline='1240572310' wrote: in ogni caso ci sono modi migliori per vedere se l'utente è root o meno, in genere si controlla L'UID invece di fare whoami e poi vedere se la stringa è diversa da root :D
Ho controllato e dash non dichiara la variabile UID (non fa parte dello standard posix, ma è una estensione di bash). Invece ho visto che dichiara la variabile stringa USER, che può essere utilizzata quindi per controllare se si è root. Meglio che usare whoami comunque. :)