Se anche allungando il tempo di attesa nello sleep (ad esempio a 3 o 5 secondi) il comportamento non cambia, significa che il problema non è legato al tempo di caricamento del pannello, ma a un conflitto più profondo su come l'applet di MATE e il server grafico X11 gestiscono i modificatori della tastiera.
Quando si preme il tasto e la prima pressione "va a vuoto" sul LED ma non sul testo, l'applet sta letteralmente ignorando l'evento di input hardware perché è rimasta bloccata in uno stato logico differente.
Per risolvere definitivamente senza dover fare affidamento sul "trucco" della sequenza di tasti, si possono tentare due strade alternative che agiscono direttamente sulla configurazione del server grafico e di MATE.
1° Alternativa: Ripristinare la gestione nativa tramite "dconf" (senza numlockx)
A volte "numlockx" e il gestore delle impostazioni di MATE entrano in conflitto su chi deve decidere lo stato iniziale.
Proviamo a lasciare il controllo esclusivo a MATE, ma configurandolo in modo pulito.
Rimuovere lo script di avvio precedente:
.1 Aprire Applicazioni d'avvio e rimuovere o disattivare la voce creata in precedenza con numlockx.
.2 Configurare "dconf" da terminale:
Aprire un terminale e forzare MATE a ricordare lo stato della tastiera all'avvio con questo comando
Codice: Seleziona tutto
dconf write /org/mate/desktop/peripherals/keyboard/remember-numlock-state true
.3 Forzare l'attivazione nativa:
Subito dopo, impostare la direttiva di accensione immediata:
Codice: Seleziona tutto
dconf write /org/mate/desktop/peripherals/keyboard/numlock-state "'on'"
Nota: Se hai errori, probabile che dovrai cambiare "/" (slash) con il "." (punto)
Dopo aver eseguito questi comandi, riavviare la sessione (logout e login) per verificare se l'applet nativa si allinea subito.
2° Alternativa: Forzare lo stato tramite "xdotool" (Simulazione Hardware)
Se il problema persiste, significa che l'applet reagisce solo a un vero evento di pressione della tastiera e ignora i comandi logici di numlockx. È possibile aggirare questo limite usando "xdotool", uno strumento che simula la pressione fisica del tasto, ingannando l'applet fin dal primo istante.
Cosa fa questo comando: Aspetta due secondi che il desktop sia pronto, poi simula la pressione fisica del tasto "
Bloc Num" due volte (lo spegne e lo riaccende). Poiché "xdotool" invia un evento identico a quello della tastiera fisica, l'applet del pannello è costretta ad aggiornare la grafica del LED rosso immediatamente, allineandosi al primo colpo.
.1 Installare xdotool: Aprire il terminale e installare il simulatore di input:
.2 Tornare in
Applicazioni d'avvio, modificare la voce creata in precedenza (o crearne una nuova) e sostituire il comando precedente con questo:
Codice: Seleziona tutto
sh -c "sleep 2 && xdotool key Num_Lock && xdotool key Num_Lock"