Wie setze ich Embleme in Thunar ohne die GUI?

9

Ich möchte einer Datei in Thunar mithilfe eines Skripts Embleme hinzufügen, kann jedoch keine Dokumentation dazu finden.

Ist das möglich? Und wenn ja, wie?

Die gleiche Frage wurde hier gestellt , aber sie erwähnen eine ~/.cache/Thunar/metafile.tdbDatei, die auf meinem System nicht existiert. Ich denke, diese Frage und die Antwort sind veraltet.

Remco Haszing
quelle
Bist du sicher, dass es nicht existiert? ~/.cacheist eine versteckte Datei, die Sie kennen ..
Seth
~/.cache/Thunar/existiert nicht einmal. Nicht einmal nach dem Hinzufügen eines Emblems zu einer Datei in Thunar. Ich habe Thunar Version 1.6.3 installiert.
Remco Haszing

Antworten:

13

Thunar verwendet seit Version 1.6 den Daemon gvfs-metadata zum Speichern von Metadaten. Die Metadaten werden in gespeichert ~/.local/share/gvfs-metadata, Sie können sie jedoch nicht aus den Dateien lesen (sie sind in einem Binärformat gespeichert, glaube ich). Um Metadaten zu lesen, verwenden Sie den folgenden gvfs-infoBefehl:

gvfs-info -a metadata:: /some/location  

Welches wird die Metadaten von ausdrucken /some/location.

Wenn Sie Metadaten ändern möchten, können Sie den folgenden gvfs-set-attributeBefehl verwenden:

gvfs-set-attribute /some/location -t stringv metadata::mdtype value  

/some/locationist der Speicherort der Datei / des Ordners, dessen Metadaten Sie bearbeiten möchten, -t stringvweist den Befehl an, eine Zeichenfolgeneingabe zu erwarten, mdtypelegt den Typ der Metadaten fest, die Sie ändern möchten (z. B. emblems), und new valuelegt valuedie Metadaten für fest mdtype. Zum Beispiel:

gvfs-set-attribute Downloads -t stringv metadata::emblems emblem-default  

Gibt dem DownloadsOrdner das defaultEmblem.

Stellen Sie den Wert auf ein none, um Embleme zu entfernen. Sie müssen den Dateimanager neu starten, um die Änderungen zu sehen.


Ich habe ein kleines Skript geschrieben, mit dem Sie das Emblem von mehr als einem Ordner / einer Datei gleichzeitig ändern können:

run() {    
cd # make sure we're in the home directory
echo 'What emblem do you want to apply?'
read emblem

if ! [ -z $emblem ]; then
    for i in $@
    do
        echo 'Changing stuff...'
        $(gvfs-set-attribute $i -t stringv metadata::emblems $emblem)
    done
    echo 'Done!'
else
    echo 'Emblem must be specified! Exiting...'
    exit  
fi
}

init() {

if [[ -z $@  ]]; then
    echo "No arguments provided"
else   
    run $@
fi
}

init $@  

Quellen:

Seth
quelle
@RemcoHaszing Bitte überprüfen Sie meine bearbeitete Antwort, ich habe einen Fehler gemacht und habe ihn jetzt korrigiert.
Seth
Ich wollte es wissen, weil ich ein Skript schreiben wollte, das die Embleme festlegt, um den Status meiner Dropbox-Ordner anzuzeigen. Ich habe herausgefunden, dass ich Thunar neu starten muss, um die neu hinzugefügten Embleme zu sehen und dies anschließend in Ihrer aktualisierten Antwort zu lesen. Wissen Sie, ob Thunar diese Änderungen beim Laufen irgendwie aufnehmen kann?
Remco Haszing
@ RemcoHaszing Nein, das ist AFAIK wirklich nicht möglich. Thunar müsste ständig nach Änderungen suchen, und das würde eine Menge Ressourcen in Anspruch nehmen. Ich könnte das Skript bearbeiten, um alle laufenden Instanzen von Thunar zu schließen und eine neue Instanz in Ihren Dropbox-Ordnern zu öffnen, je nachdem, was genau Sie versuchen.
Seth
Sehr schönes Skript und Befehl. Dies funktioniert perfekt bei Dateien und Verzeichnissen. Mein Dropbox-Ordner ist jedoch eine eigene Partition / dev / sda2, wird jedoch bei ~ / Dropbox bereitgestellt. Ich habe versucht, das Emblem für ~ / Dropbox festzulegen, aber es hat nicht funktioniert. Irgendwelche Ideen? Vielen Dank
jbrock
@jbrock Haben Sie den Dateimanager neu gestartet? Die Änderungen werden erst nach einem Neustart wirksam. Wenn das das nicht löst, dann weiß ich es leider nicht. Sie könnten versuchen, eine neue Frage zu stellen. Ich würde gerne helfen, aber mir fehlen derzeit die Ressourcen, um dieses spezielle Problem zu testen. Es tut uns leid!
Seth