#howto - Installazione ed uso di TagSH
Più volte mi son trovato nella situazione di avere più file nel mio sistema sparsi in varie cartelle, ma che in un determinato contesto necessitavo di tenere d’occhio sotto una stessa cartella. Alcuni casi d’esempio sono:
- Appunti universitari di una determinata cartella che trovavano poi praticità in alcuni progetti in un’altra cartella
- Immagini o documenti sparsi per diversi sistemi di Cloud Storage, da voler vedere sotto una stessa cartella
- Raggruppare vari eseguibili di programmi che dovevano essere eseguiti insieme
Di necessità si fa virtù, quindi mi son trovato a creare TagSH.
Introduzione di TagSH
TagSH è uno script bash che crea dei collegamenti nella home (sotto la cartella $HOME/.tag
) e rende visibile nei bookmark, segnalibri, dei nostri File Manager la cartella da noi salvata, così da facilitarne l’accesso. I collegamenti vengono categorizzati in cartelle che ne rappresentano le etichette.
Con questo software è possibile:
- creare tag ed associazioni, dando eventualmente anche dei nomi alle associazioni stesse
- rinominare i tag in un secondo momento o rinominare le associazioni
- eliminare i tag e le associazioni
- creare la lista di tag ed associazioni
Il programma, inoltre, predispone uno script di installazione e uno di disinstallazione, così come uno di test (da utilizzare se si vuole verificare la compatibilità col sistema).
Installazione
Per installare TagSH, scaricate il repository da Github e avviate lo script di installazione:
git clone https://github.com/PsykeDady/TagSH
./TagSH/install.sh
Verrà fatta pulizia eliminando la cartella di download del repo.
Nota: volendo è possibile eseguire dei test in fase di installazione, eseguendo lo script
./TagSH/test.sh
invece dell’install. Se tutto va bene, alla fine dei test verrà proposta l’installazione del software. Questi test son pensati più per la fase di sviluppo che per l’utente finale, quindi non sono necessari.
Installazione manuale
Per installare TagSH è anche possibile evitare di usare lo script di installazione. Ciò che bisognerà fare è semplicementer scaricare il repository e spostare a mano i file:
git clone https://github.com/PsykeDady/TagSH
cp TagSH /usr/share/TagSH
ln -sf /usr/share/TagSH/tag.sh /usr/bin/tagsh
Potete, in questo modo, anche personalizzare il percorso di installazione del software, o il nome dello script.
Disinstallazione
Se invece volete disinstallare il programma, sappiate che potete eseguire uno script di disinstallazione:
/usr/share/TagSH/uninstall.sh
ATTENZIONE: Se avete installato TagSH manualmente in un’altra cartella, non disinstallatelo con lo script!
Lo script di disinstallazione rimuove anche i bookmark eventualmente aggiunti e la cartella ~/.tag
Disinstallazione manuale
Parlando della disinstallazione manuale, si può semplicemente eseguire questi comandi:
rm /usr/bin/tagsh
rm -rf /usr/share/TagSH
rm -rf $HOME/.tag
Per eliminare i bookmark manualmente consiglio di aprire il vostro file manager e rimuoverli da lì, ma se proprio volete fare tutto da terminale potete eliminare a mano dai file di bookmark le righe che ha aggiunto TagSH.
Nota: I bookmark sono due, quello generico e quello di GNOME. Se usate un sistema con solo GNOME è molto probabile che non abbiate il bookmark generico, viceversa se ad esempio usate KDE Plasma. Ignorate semplicemente il file che non trovate.
Aprite il file $HOME/.local/share/user-places.xbel
, trovate e cancellate le righe:
<bookmark href="file:///home/yourname/.tag">
<title>TagSH</title>
<info>
<metadata>
<bookmark:icon name="tag-symbolic"/>
</metadata>
</info>
</bookmark>
Poi aprite il file $HOME/.config/gtk-3.0/bookmarks
e cancellate la seguente riga:
file:///home/yourname/.tag TagSH
Uso ed esempi di TagSH
Non vuoi leggere tutta la guida? Allora vai al capitolo TLDR. Salta tutto e vai ad una freddissima tabella riassuntiva!
Add
Usare TagSH
è semplicissimo, supponiamo di avere le cartelle:
$HOME/Dropbox/Immagini
$HOME/Mega/Immagini
$HOME/Immagini
/home/ImmaginiComuni
da voler raggruppare sotto un unico tag: “Immagini
”. Partiamo dall’ultimo elemento della lista ed iniziamo così ad aggiungere il nostro primo tag:
tagsh /home/ImmaginiComuni Immagini
Cosa ha fatto il nostro software?
- È stata prima creata la cartella
$HOME/.tag
- Sono stati creati i due bookmark
- Creata la cartella “Immagini” sotto la cartella di TagSH
- È stato creato il link simbolico di
/home/ImmaginiComuni
nella cartella$HOME/.tag/Immagini/
.
Possiamo controllare che tutto sia andato a buon fine aprendo il nostro f.m. e controllando l’esistenza di $HOME/.tag/Immagini/ImmaginiComuni
. Inoltre, il messaggio di output del comando dovrebbe essere questo:
La cartella non esiste, creazione di Tag
nuovo tag, creo la directory
tag associato!, controlla la directory
bookmark aggiunto bookmark GTK3 aggiunto
Se uno dei due bookmark dovesse dare errore, non ve ne preoccupate, potrebbe essere normale in alcuni sistemi non avere uno dei bookmark come già spiegato in precedenza. La presenza del bookmark verrà comunque controllata per ogni file aggiunto.
Continuiamo le nostre aggiunte:
tagsh $HOME/Immagini Immagini
Con l’output che, ora, dovrebbe essere:
tag associato!, controlla la directory
bookmark presente
bookmark GTK3 presente
Se adesso dovessimo dare il comando per aggiungere la cartella MEGA, ci sarebbe restituito un errore poiché esiste già un associazione Immagini sotto il tag Immagini. Come fare? basta dare un nome ai prossimi collegamenti:
tagsh $HOME/Dropbox/Immagini Immagini Dropbox
# Possiamo aggiungere collegamenti usando anche percorsi non assoluti
cd $HOME/MEGA
tagsh Immagini Immagini MEGA
List
Controlliamo il nostro operato tramite l’operazione list
:
tagsh -l
che dovrebbe restituirci:
I Tuoi Tag:
“Immagini”
Andiamo più nel profondo con il parametro -l:
tagsh -l Immagini
L’output sarà:
Immagini:
“Dropbox” “Immagini” “ImmaginiComuni” “MEGA”
Possiamo quindi assicurarci così che tutto sia stato aggiunto a dovere.
Rename
Rinominiamo il tag aggiunto da “Immagini” a “Foto”:
tagsh -n Immagini Foto
poi rinominiamo l’associazione ImmaginiComuni
in Comuni
:
tagsh -n Foto ImmaginiComuni Comuni
Possiamo usare il comando --list
(o -l
) per vedere se è stato rinominato tutto correttamente.
Remove
Rimuoviamo l’associazione Immagini dal tag Foto:
tagsh -r Foto Immagini
Oppure eliminiamo l’intero tag Foto
e tutte le sue associazioni:
tagsh -r Foto
Help
Non esiste un vero e proprio help in TagSH, ma l’usage viene stampato per ogni errore. Ad esempio senza scrivere nulla:
tagsh
Versione
Si può poi verificare la versione del software con:
tagsh -v
Debug
Infine esiste un’opzione speciale concatenabile a tutte le altre, ovvero quella di debug (-d
o --debug
). Ad esempio vediamo il debug dell’opzione version:
tagsh -v -d
Output d’esempio:
[DEBUG] numero parametri rimasti=1
[DEBUG] gestendo -d
[DEBUG] numero parametri rimasti=0
[DEBUG] debug mode on
[DEBUG] lista parametri:
[DEBUG] op=v
[DEBUG] percorso=
[DEBUG] tagname=
[DEBUG] linkname=
=============================
tagsh version=0.7
Per i prossimi sviluppi seguite il progetto su github: https://github.com/PsykeDady/TagSH
=============================
[DEBUG] valore di uscita=0
Prossimi sviluppi
La tabella di marcia di TagSH è ancora lunga, si prevede di aggiungere il supporto multilingua, l’autoupdate del software e dei servizi GUI da aggiungere ai file manager. Se siete interessati, seguite il progetto su GitHub!
TLDR
TagSH permette di etichettare dei file con dei tag e averli sotto la cartella $HOME/.tag
suddivisi in cartelle e raggiungibili con un bookmark tramite file manager.
Comando | Cosa fa |
---|---|
tagsh |
Stampa l’help |
tagsh percorso nomeTag |
Etichetta il percorso (assoluto o relativo) con il tag specificato |
tagsh percorso nomeTag nomeCollegamento |
Etichetta il percorso (assoluto o relativo) con il tag specificato con il nome specificato |
tagsh -l |
Fa la lista di tutti i tag |
tagsh -l nomeTag |
Fa la lista di tutti i collegamenti al tag |
tagsh -r nomeTag |
Elimina il tag e tutte le sue associazioni |
tagsh -r nomeTag nomeAssociazione |
Disassocia un file dal tag |
tagsh -n nomeTag nuovoNome |
Rinomina un tag con il nome indicato |
tagsh -n nomeTag nomeAssociazione nuovoNome |
Rinomina un associazione con il nome indicato |
tagsh -v |
Stampa la versione del programma |
tagsh -d altreOpzioni altriParametri |
Attiva la modalità debug ad uno qualsiasi dei comandi elencati sopra |