Script Python per leggere e caricare la disposizione a video dei programmi preferiti

Pubblicato da Nicola Rainiero il 06-08-2018

Sei stanco di dover ogni volta caricare, posizionare e ridimensionare i programmi che usi abitualmente? Vorresti avere un semplice programma che lo fa per te in automatico? Magari potendo passare da una serie di programmi orientata a diversi utilizzi (office, internet, multimedia, CAD e 3D)? Nell'articolo propongo tutto questo presentando uno script in Python di facile utilizzo per Ubuntu e derivate.

Script Python per leggere e caricare la disposizione a video dei programmi preferiti

 

A cosa serve?

Si occupa di salvare in un file di testo la disposizione delle poprie applicazioni preferite e caricarle ogni volta che se ne ha bisogno, per esempio all'avvio del PC o quando si passa da un utilizzo a un altro.

Come mostro nel seguente video:

Lo script in questione si chiama recall_windows ed è scritto in Python, l'ho trovato tempo fa su askubuntu in questo thread Is there a way to store the current desktop layout?.
Ci ho aggiunto due comode funzioni per:

  • leggere e disporre le finestre nello spazio di lavoro prestabilito;
  • aggiungere la possibilità di salvare e caricare il tutto da un altro file di testo che torna utile per passare da un posizionamento a un altro.

Come funziona: Lettura

Una volta caricate, posizionate e dimensionate le finestre nei vari spazi di lavoro basta lanciare il seguente comando:

recall_windows -read
(salverà il tutto in un file chiamato .windowlist nella propria cartella $HOME)

oppure:

recall_windows -read nomefile
(se si vuole salvare il tutto in un file chiamato .nomefile nella propria cartella $HOME)

Consiglio sempre di dare un occhiata al file generato e sistemarlo perché non sempre legge correttamente il nome delle applicazioni e la loro disposizione, ogni riga rappresenta un'applicazione e contiene 7 colonne delimitate da uno spazio che si possono così descrivere:

  1. nome dell'eseguibile del programma
  2. numero dello spazio di lavoro
  3. ID del programma
  4. posizione orizzontale in pixel da sinistra a destra
  5. posizione verticale in pixel dall'alto in basso
  6. dimensione orizzontale in pixel
  7. dimensione verticale in pixel

Nel mio caso mi ha creato questo file:

xfce4-terminal 2 26387 652 74 577 357
Thunar 1 1405 2 73 954 1023
corebird 2 26424 -26 2 699 598
opera 2 26443 655 327 1236 868
chrome 0 26624 0 25 1920 1055
gnome-system-mo 2 26809 1222 74 700 523
Telegram 2 2405 3 596 647 500

Che ho dovuto correggere in questo modo:

xfce4-terminal 2 12284 650 26 577 357
Thunar 1 11905 0 25 954 1023
corebird 2 12318 -26 2 699 598
opera 2 12337 653 279 1236 868
chrome 0 12798 0 25 1920 1055
gnome-system-monitor 2 13034 1220 26 700 523
/home/nicola/Programmi/Telegram/Telegram 2 13041 2 572 647 500

Come funziona: Posizionamento

Per caricare le finestre in automatico basta lanciare il seguente comando:

nohup ./recall_windows -run
(carica il file chiamato .windowlist all'interno della propria cartella $HOME)

oppure:

nohup ./recall_windows -run nomefile
(carica il file chiamato .nomefile all'interno della propria cartella $HOME)

nohup si occupa di continuare ad eseguire lo script anche quando viene chiuso il terminale da dove è stato lanciato.

Ovviamente si può avviare il tutto in automatico creando uno script bash come questo:

#! /bin/bash
sleep 5
wmctrl -s 0
$HOME/Script/recall_windows -run
exit 0

Download

Si può scaricare da GitHub al seguente indirizzo:



Potrebbero interessarti anche:

Nicola Rainiero

Ingegnere civile specializzato in geotecnica con l'ambizione di facilitare la propria attività lavorativa usando e creando software libero per un sapere condiviso e collettivo. Mi occupo anche di energie rinnovabili ed in particolare di geotermia a bassa entalpia. Sono da sempre appassionato di web design e modellazione 3D.

Aggiungi un commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.

Plain text

  • Nessun tag HTML consentito.
  • Indirizzi web ed indirizzi e-mail diventano automaticamente dei link.
  • Linee e paragrafi vanno a capo automaticamente.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.