Script tasto Fn per regolare luminosità schermo su eeepc

Ciao a tutti,
da poco ho installato F17 su un eeepc asus 1015cx e, purtroppo, non tutti i tasti funzione sono riconosciuti a dovere. In particolare, non funzionano quelli dedicati al controllo della luminosità dello schermo.
Per ovviare al problema ho creato un piccolo script bash (ispirato ad un utilissimo post trovato proprio su questo forum -) che, sfruttando l’interfaccia offerta da zenity, mi permette di regolare la luminosità con uno slider.
Per completezza, però, mi chiedevo se fosse possibile mappare i tasti funzione “mancanti” - in particolare: Fn + F5 per ridurre la luminosità, Fn + F6 per aumentarla e Fn + F7 per spegnere/accendere la retroilluminazione.

Cercando un po’ in rete, ho trovato che sulla riga di comando è possibile determinare la sequenza di caratteri generata alla pressione di ogni tasto semplicemente premendo Ctrl + v seguito dal/dai tasto/i di interesse (ad esempio, F5 corrisponde a *[15~[/i]). Non riesco, però, a mappare il tasto Fn… come mai?

Un altro problema che mi sono posto (ammesso che mi accontenti di “aggirare” quello relativo al tasto Fn sostituendo Fn stesso con Ctrl o Alt) riguarda il comportamento dello schermo allo spegnimento della retroilluminazione: come si potrebbe implementare (per ora, diciamo in bash script) uno pseudo codice del tipo

if (premo Fn + F7 la prima volta) then { lo schermo si spegne }
if (premo Fn + F7 una seconda volta) then { lo schermo si riaccende }

Di seguito lo script ‘ispirato’ dal forum:

[code]#! /bin/bash

TITOLO=“Luminosità dello schermo”

LUM=zenity --scale --title="$TITOLO" --text="Livello" --min-value=10 --max-value=100 --value=70 --step=10 --timeout=60

case $LUM in
[10]* ) beesu “setpci -s 00:02.0 f4.b=20”;;
[20]* ) beesu “setpci -s 00:02.0 f4.b=40”;;
[30]* ) beesu “setpci -s 00:02.0 f4.b=60”;;
[40]* ) beesu “setpci -s 00:02.0 f4.b=70”;;
[50]* ) beesu “setpci -s 00:02.0 f4.b=80”;;
[60]* ) beesu “setpci -s 00:02.0 f4.b=A9”;;
[70]* ) beesu “setpci -s 00:02.0 f4.b=C0”;;
[80]* ) beesu “setpci -s 00:02.0 f4.b=D0”;;
[90]* ) beesu “setpci -s 00:02.0 f4.b=E0”;;
[100]* ) beesu “setpci -s 00:02.0 f4.b=FF”;;
esac

zenity --notification --text=“Luminosità impostata al $LUM %” --timeout=10
[/code]

mau.

ps. lo script non è ottimizzato perché sto imparando bash script leggendo il forum :reddy:*

se dai il comando

$ xev

ti fornirà in output il codice relativo ai tasti premuti.

ciao virus,
innanzi tutto grazie per la rapidissima risposta :slight_smile:

xev non lo conoscevo… difficoltà di interpretazione a parte, alla pressione del solo tasto Fn non vedo nulla (o meglio, il contenuto della shell non si aggiorna) così come non mi visualizza niente se premo Fn + F5/6/7.

Il primo caso (Fn singolo) non so come spiegarlo, il secondo credo dipenda dal fatto che il sistema non riconosce affatto quelle combinazioni di tasti - ad esempio, Fn + F10 = mute è riconosciuto da fedora (l’audio si [dis]attiva) quindi xev aggiorna l’output con i relativi dati.

il tasto Fn da solo non ha codice.
in combinazione con altri cambia il codice dell’altro tasto.