Abilitare ultime due shortcut FN

6 risposte [Ultimo contenuto]
Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 75

Salve, non so se la sezione "Driver" sia più indicata, in ogni caso, sul mio notebook Asus con Debian 9 ed XFCE sono riuscito ad abilitare tutti i tasti FN tranne quelli con f7 e f9, ossia spegnimento schermo e disabilitazione/abilitazione touchpad rispettivamente.
Ho cercato ovunque nel tentativo di risolvere ma non sono arrivato a nulla, spero qualcuno abbia qualche dritta da darmi o nella peggiore delle ipotesi, che possa aiutarmi ad aggirare il problema con qualche scorciatoia da tastiera che comunque preveda l'utilizzo del tasto fn come se stessi usando la sua effettiva funzione.

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2899

Usa il comando xev per vedere se i due tasti scatenano qualche evento.

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 75

Con f7 per lo spegnimento schermo non ottengo nulla, con f9 per la disabilitazione del touchpad che è la cosa che mi preme maggiormente ottengo questo output:

MappingNotify event, serial 45, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248
 
KeyPress event, serial 45, synthetic NO, window 0x2c00001,
    root 0xde, subw 0x0, time 334229, (-119,123), root:(861,408),
    state 0x0, keycode 199 (keysym 0x1008ffa9, XF86TouchpadToggle), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False
 
KeyRelease event, serial 45, synthetic NO, window 0x2c00001,
    root 0xde, subw 0x0, time 334229, (-119,123), root:(861,408),
    state 0x0, keycode 199 (keysym 0x1008ffa9, XF86TouchpadToggle), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
 
EnterNotify event, serial 46, synthetic NO, window 0x2c00001,
    root 0xde, subw 0x0, time 348358, (0,93), root:(980,378),
    mode NotifyNormal, detail NotifyNonlinear, same_screen YES,
    focus YES, state 0

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2899

La combinazione Fn+F9 simula la pressione di un tasto virtuale chiamato "XF86TouchpadToggle". Il problema è che Xfce quando lo riceve lo ignora, perché non è programmato per fare alcunché. Credo che Xfce volutamente non offra l'intera gamma di caratteristiche di altri ambienti desktop più completi come GNOME e lasci all'utente l'onere di implementare esternamente gli automatismi desiderati. Nel tuo caso potresti scrivere uno script come quello abbozzato da ymihc nel forum di Xfce e poi associarlo al tasto incriminato.

L'altra combinazione di tasti invece sembra non produrre alcun evento, ma non saprei dirti perché. Prova a loggarti in una console, quindi senza interfaccia grafica, lancia il comando showkey e poi premi la combinazione, per vedere se genera un "keycode" noto...

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 75

Salve, scusa l'assenza ma sono stato parecchi giorni lontano dal computer.

Riguardo fn+f9 ho letto il post che mi hai linkato, mi sembra di aver capito che i3 sia l'equivalente del nostro X window per ArchLinux, dallo script non mi sembra che ci debbano essere problemi ad eseguirlo su Debian, è così o c'è qualcosa che dipende dal Window Manager? Dato che hai detto che dovrei modificarlo al mio caso.
Comunque non capisco bene cosa intende in questa sezione

You can call the toggle in your i3 config via a simple combination like
 
bindsym $mod+t exec ~/Scripts/touchpad_toggle.sh
or via your XF86* touchpad button. You can get the exact name of your touchpad button with several methods: https://wiki.archlinux.org/index.php/ex … board_keys
 
Most likely it will be XF86TouchpadToggle, so you could execute the script with
 
bindsym XF86TouchpadToggle exec ~/Scripts/touchpad_toggle.sh
Please adjust the path to the script accordingly and make sure to restart i3.

Nello specifico una volta che ho creato questo script e l'ho reso eseguibile, dove dovrei inserirlo e cosa dovrei fare per far sì che venga eseguito dalla combinazione di tasti?

Riguardo all'altra combinazione ho fatto come mi hai detto e mi restituisce il codice tasto "431", differente dal singolo tasto f7 che ha codice "65".

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2899

Non proprio: i3 è un window manager, quindi l'equivalente di Xfce. Entrambi girano sopra X.

Xfce dovrebbe avere un meccanismo per definire scorciatoie da tastiera. Cerca in impostazioni → tastiera. Altrimenti si può aggiungere via riga di comando, ma prendilo con le pinze perché, non avendo Xfce, non ho potuto provarlo:

xfconf-query --create --channel xfce4-keyboard-shortcuts --property /commands/custom/XF86TouchpadToggle --type string --set '/home/ale/Scripts/touchpad_toggle.sh'
(ho dato per scontato che l'utente si chiami ale e che lo script sia Scripts/touchpad_toggle.sh nella tua home.

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 75

Ah ok sì, effettivamente fare la shortcut da tastiera era la cosa più ovvia, non ci avevo pensato.

Due domande:
- Aggirare il problema non mi rende completamente psicologicamente soddisfatto Laughing non ti viene proprio in mente niente per fargli riconoscere la combinazione senza usare uno script? Tipo qualche file di configurazione della tastiera con la mappatura dei tasti.. Anche volendo usare la scorciatoia da tastiera ho provato a fare una cosa un po' più elegante modificando lo script in modo da poterlo scrivere su una sola riga, funziona, ma inserendolo come comando della scorciatoia non riesce ad eseguire l'"if", in ogni caso non sarebbe il top perché mi piacerebbe fosse integrato nel sistema come gli altri tasti funzione facendomi vedere anche un'immagine nella notifica.
- Per quanto riguarda l'altra combinazione hai idee? Quella non me la fa nemmeno inserire come combinazione per il comando "xset dpms force standby" che aggirerebbe il problema. Anche solo per capire, c'è una qualche spiegazione per la quale non dovrebbe letteralmente vedermi quella combinazione a differenza delle altre? Potrebbe essere un problema della tastiera? Ma non penso dato che da console virtuale un codice me lo restituisce.