Old:Ordinare le icone sul desktop Xfce
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 6 "squeeze" |
Lavori in corso Guida in fase di elaborazione |
Introduzione
Questa mini-guida nasce dall'esigenza di ordinare gli elementi (icone di cartelle, file, ecc.) presenti sulla Scrivania in DE Xfce, dato che su Xfce, almeno per quanto riguarda la versione 4.6 installata con Debian 6.0, sembra non essere stata implementa questa funzionalità. Ma per quel che mi risulta, effettuando varie ricerche sul web, sembra essere una funzionalità piuttosto rara, in particolare nei nuovi DE, che siano essi open-source o money closed-source. Eppure credo sia una funzionalità quanto meno importante. Per fare ciò verrà utilizzato python, in genere installato con qualsiasi OS linux.
Prima parte
Il file in cui sono archiviati i nomi delle icone della Scrivania con le rispettive posizioni in riga (row) e colonna (col), ed il relativo percorso (in genere è questo) è il seguente:
/USER/.config/xfce4/desktop/icons.screen0.rc
Dove USER è il nome dell'utente, .config è la directory, che come si evince dal . è nascosta.
Per visualizzarla, aprire Thunar (Gestore dei file) andare su Visualizzazione e spuntare Mostra i file nascosti.
Quello che andremo a fare con python è riscrivere in maniera ordinata questo file.
Seconda parte
In questa stessa cartella andiamo a creare un file di testo, con il comando:
root@debian:/# ls -p /home/USER/Scrivania > /home/USER/.config/xfce4/desktop/file.txt
"ls" legge il contenuto della Scrivania, e anziché essere mostrato a video, viene scritto, generato il file "/home/USER/.config/xfce4/desktop/file.txt" attraverso il comando ">" ; "-p" marca con " / " i nomi dele cartelle, nomi che vengono scritti nel file.txt insieme ai nomi dei file presenti sulla Scrivania.
Prima di procedere salviamo una copia del file "icons.screen0.rc".
Terza parte
Il contenuto dei due file: "file.txt" e "icons.screen0.rc", andrà a costituire l'input dallo script python. Dal primo verranno estratti i nomi di file, cartelle, ecc., già in ordine alfabetico, dal secondo il valore maggiore di riga (row). Quest'ultimo "file.txt" durante l'elaborazione verrà riscritto dallo script (output dello script).
script python :
Apriamo l' idle di python, se non è installata, installatela con:
root@debian:/# apt-get install idle
Fatto ciò. Clicchiamo su new "menu > file > New window":
Nel file vuoto "Untitled", scriviamo quanto segue, sostituendo a USER il nome utente (4 sostituzioni):
# -*- coding: utf-8 -*- f= open("/home/USER/.config/xfce4/desktop/icons.screen0.rc", "r") ControllaSeVuoto=f.read() f.close() if ControllaSeVuoto != "" : f= open("/home/USER/.config/xfce4/desktop/icons.screen0.rc", "r") si=0 iRow=2 s=0 sid=0 listaChiaviconta=0 Diz={} ListaFile=[] ListaFileNome=[] ListaFileRow=[] ListaFileCartelle=[] ListaFileNomeFiles=[] while 1: a=f.readline() if a=="": break t=a[:-1] if len(t) != 0: si=si+1 Diz[si]=t ListaFile.append(t) f.close() #________________________________________________________________ fd= open("/home/USER/.config/xfce4/desktop/file.txt", "r") while 1: ad=fd.readline() if ad=="": break td=ad[:-1] if len(td) != 0: sid=sid+1 ListaFileNome.append(td) fd.close() #________________________________________________________________# while iRow < len(ListaFile): ListaFileRow.append(int(Diz[iRow][4:])) iRow=iRow+3 ListaFileRow.sort() ListaFileRow.reverse() element=0 ax=[list(range(element, element+(ListaFileRow[0]+1)))]*(int(len(ListaFileNome)/ListaFileRow[0])) tx=0 sx=0 ListaRC=[] while sx<len(ax): bx= "row="+ str(ax[sx][tx]) cx= "col="+str(sx) lis=[bx,cx] ListaRC.append([lis[0],lis[1]]) tx=tx+1 if tx==len(ax[0]): tx=0 sx=sx+1 #__________________________________________________________________# while s < len(ListaFileNome): if ListaFileNome[s][-1:]== "/": ListaFileCartelle.append(ListaFileNome[s][:-1]) elif ListaFileNome[s][-8:]==".desktop": ListaFileNomeFiles.append(ListaFileNome[s][:-8]) else: ListaFileNomeFiles.append(ListaFileNome[s]) s=s+1 ListFileOrd=ListaFileCartelle+ListaFileNomeFiles fil = open("/home/USER/.config/xfce4/desktop/icons.screen0.rc", "w") while listaChiaviconta <len(ListFileOrd): a="["+ListFileOrd[listaChiaviconta]+"]" b=str(ListaRC[listaChiaviconta][0]) c=str(ListaRC[listaChiaviconta][1]) fil.write(a+"\n") fil.write(b+"\n") fil.write(c+"\n\n") listaChiaviconta=listaChiaviconta+1 fil.close() print ListaRC print len(ListaRC) print ListFileOrd print len(ListFileOrd) print len(ListaFile) else: exit
Ovviamente chi conosce python può modificarlo o migliorarlo a proprio piacimento.
Dopodiché salviamo, "menu > salva con nome (o save as)" in "home", livello superiore a "USER", col nome riordinaDesktop.py.
Quarta parte
La parte principale del lavoro è stata fatta. Adesso vedremo come utilizzare lo script python appena creato. A tal scopo creeremo un semplice script bash (di shell):
Apriamo il terminale e digitiamo:
su -
per accedere come root, inseriamo la password di root, e spostiamoci nella cartella home/.
Scriviamo i secuenti comandi, ciascuno per riga:
touch riordinaDesktopAlfabetico.sh
nano riordinaDesktopAlfabetico.sh
Nell'editor di testo appena aperto, scriviamo, questi comandi:
#!/bin/bash
ls -p /home/USER/Scrivania > /home/USER/.config/xfce4/desktop/file.txt
python riordinaDesktop.py
xfdesktop --reload
in modo tale da avere:
Ovviamente il nome utente al posto di "USER".
Salviamo con "ctrl-o" e usciamo dall'editor con "ctrl-x".
Restando nella cartella "home/", diamo i permessi di eseguibile allo script appena creato:
chmod +x riordinaDesktopAlfabetico.sh
Quinta parte
A questo punto bisogna creare un avviatore sul pannello per lanciare riordinaDesktopAlfabetico.sh:
Lavori in corso Guida in fase di elaborazione |
Guida scritta da: Viveta 18:16, 26 gen 2013 (CET) | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |