scriptfacili

Uno dei difetti principali di tutte le distribuzioni basate su Ubuntu (tra cui Mint) è che non hanno repository aggiornati frequentemente, quindi spesso alcuni software risultano non aggiornati. Questo è un problema quando tali software devono essere costantemente aggiornati per poter funzionare, come accade per youtube-dl, il noto software per scaricare video e audio da Youtube.

Per mantenerlo costantemente aggiornato, è sufficiente programmare l'esecuzione automatica del comando curl per download dell'eseguibile dal sito ufficiale tramite cron.

Da un terminale, apriamo la schedulazione di cron. Lanciandolo con sudo iniziale fa si che venga eseguito come root e quindi non abbia problemi di permessi e autorizzazioni e venga eseguito anche se l'utente non ha fatto il login.

sudo crontab -e

e aggiungiamo la riga seguente.

35 9 * * 1 curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

I numeri iniziali rappresentano quando eseguire l'attività. Potete ottenere la schedulazione che preferite tramite questo sito Crontab Guru Nel mio caso: 35 minuti 9 ore * qualsiasi giorno del mese * qualsiasi mese 1 ogni lunedì

quindi la mia schedulazione prevede il download dell'eseguibile officiale ogni lunedì alle 9.35. Ovviamente modificate i parametri come più vi fa comodo e in base agli orari di utilizzo del PC.

Qualora youtube-dl vi desse errore perché non trova python (mi è capitato su Mint) vi basterà creare un link simbolico per risolvere il problema:

sudo ln -s /usr/bin/python3 /usr/local/bin/python

Alcune volte potreste voler disabilitare la tastiera integrata del PC, ad esempio perchè è rotta e alcuni tasti risultano costantemtente premuti.

Questa semplice linea di comando vi permette di farlo automaticamente con un solo comando o, se preferite, potete inserirla in uno script .sh per l'esecuzione automatica.

Il codice

xinput float $(xinput list | grep AT | cut -d'=' -f 2 | cut -c 1-2)

Come funziona

xinput list permette di vedere tutti i dispositivi di input collegati xinput float permette di rimuovere virtualmente un dispositivo

Esempio del risultato del comando xinput list: Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ MLK Trust Deskset 16593 id=12 [slave pointer (2)] ⎜ ↳ Logitech M570 id=13 [slave pointer (2)]

Per scollegare il Logitech M570 è necessario dare xinput float 13 dove 13 è l'ID del mouse M570 nel mio sistema (viene mostrato dal comando xinput list)

Dato che la tastiera integrata viene spesso mostrata come “AT Translated Set 2 keyboard”, il comando sopra estrae l'id mostrato per il dispositivo “AT Translated Set 2 keyboard”.

  • xinput float scollega il dispositivo identificato dai seguenti comandi
    • xinput list elenca i dispositivi
    • grep AT mantiene solo la riga con AT nel nome (AT Translated Set 2 keyboard nel mio caso)
    • cut -d'=' -f 2 tiene solo i caratteri dopo il = che è usato da xinput per mostrare l'id del dispositivo
    • cut -c 1-2 mantiene solo i due caratteri dell'ID del dispositivo

Il comando cut -d'=' -f 2 serve già a selezionare due caratteri e dovrebb essere sufficiente senza il comando cut successivo, ma non funziona e non capisco perchè. Ho quindi dovuto usare il secondo cut per ottenere il risultato.

Nota importante

Questo codice funziona se l'id della tastiera è >9 (composto quindi da 2 caratteri). Se il vostro dispositivo ha un id <=9 dovrebbe essere sufficiente cambiare cut -c 1-2 con cut -c 1-1

Come automatizzarlo

Dipende molto dalla distro e dal desktop environment che usate. Potete eseguirlo manualmente nel terminale, ma secondo me è meglio inserirlo in uno script .sh da eseguire all'avvio * Apri un blocco note, inserisci la riga di codice e salvalo con estensione .sh. * Esegui poi chmod +x NameOfTheScript.sh per renderlo eseguibile

Ora puoi eseguirlo ad ogni avvio facendo doppio clic su di esso o impostandolo come applicazione di avvio del sistema. Se non sai come fare, fai una ricerca online e troverai indicazioni dettagliate per qualsiasi distro o ambiente desktop.