it-swarm.com.de

Wie kann ich das Symbol einer Datei programmgesteuert ändern?

Wenn ich in Nautilus ein Symbol auswähle und Eigenschaften auswähle, kann ich auf das dort angezeigte Symbol klicken. Dadurch erhalte ich einen Dateiauswahldialog, in dem ich ein neues Symbolbild auswählen kann.

Ich möchte dies über ein Skript tun, damit ich vielen Dateien gleichzeitig dasselbe Symbol zuweisen kann. Oder nehmen Sie eine Liste von Symbolen und eine Liste von Dateien und weisen Sie sie einander zu.

Kann ich das auf irgendeine Weise erreichen? Etwas in bash oder Python wäre toll, aber ich werde nehmen, was ich bekommen kann.

Bitte beachten Sie:

  • Ich frage nicht, wie ich das Symbol für einen Dateityp ändern soll.
  • Ich frage nicht, wie ich ein Symbol im Launcher ändern soll.

enter image description here

15
Kris Harper


Um diese Symbole über die Befehlszeile zu ändern, können Sie den folgenden Befehl verwenden:

gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png

Sie können diesen Befehl in einem Bash-Skript entsprechend Ihren Anforderungen verwenden.

Wenn Sie den Befehl ausführen und sich das Symbol nicht sofort ändert, können Sie das Paket xautomation mit installieren :

Sudo apt-get install xautomation

Und schließlich verwenden Sie den Befehl "xte" , um "sendkey" in bash wie "F5" zum Aktualisieren.
Ein kleines Beispiel wäre:

#!/bin/bash
gvfs-set-attribute -t string /home/hermes/testicon metadata::custom-icon file:///home/hermes/Desktop/applet_blank.png
sleep 3
xte "key F5"  

Ich hoffe das ist nützlich für dich.

24
Roman Raguet

Römers Antwort sieht ideal aus. Es gibt noch einen weniger eleganten Weg. Ich bin nicht sicher, wo sich Symbole im Rest des Systems befinden, aber Symbole auf Ihrem Desktop sind nur kleine Textdateien in $ HOME/Desktop. Sie haben normalerweise (müssen aber nicht) die Erweiterung .desktop. Eines der Felder in diesen Dateien ist Icon = .... Sie können ein Programm verwenden, um das Feld auf den Wert Ihrer Wahl zu setzen. (Möglicherweise müssen Sie eine Aktualisierung durchführen, nachdem Sie dies getan haben, wie es Roman vorschlägt.)

Wenn ich ein Symbol für etwas anderes oder auf einem anderen System verwenden möchte, schaue ich manchmal in diesen .desktop-Dateien nach, um herauszufinden, wie das verwendete Symbol heißt.

Die Spezifikationen für diese Dateien finden Sie unter: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec

Joe

2
Joe