web-dev-qa-db-ja.com

ファイルのアイコンをプログラムで変更するにはどうすればよいですか?

Nautilusでアイコンを選択し、[プロパティ]を選択すると、そこに表示されているアイコンをクリックできます。これにより、新しいアイコン画像を選択するためのファイル選択ダイアログが表示されます。

同じアイコンを一度に多くのファイルに割り当てることができるように、何らかのスクリプトを使用してこれを行いたいと思います。または、アイコンのリストとファイルのリストを取得して、それらを相互に割り当てます。

これを達成する方法はありますか? bashまたはPythonで何かが素晴らしいと思いますが、手に入れることができるものを取ります。

ご注意ください:

  • ファイルの種類のアイコンを変更する方法を尋ねていません。
  • ランチャーのアイコンを変更する方法を尋ねているのではありません。

enter image description here

15
Kris Harper


コマンドラインからこれらのアイコンを変更するには、次のコマンドを使用できます。

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

必要に応じて、bashスクリプトでこのコマンドを使用できます。

コマンドを実行してもアイコンがすぐに変更されない場合は、xautomationパッケージをインストールできます:

Sudo apt-get install xautomation

最後に、コマンド "xte"を使用して、 "F5"更新します。
小さな例を次に示します。

#!/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"  

これがあなたのお役に立てば幸いです。

24
Roman Raguet

ローマンの答えは理想的です。別のエレガントな方法があります。システムの残りの部分でアイコンがどこにあるかはわかりませんが、デスクトップにあるアイコンは$ HOME/Desktopにある小さなプレーンテキストファイルです。通常、それらは.desktopの拡張子を持ちます(ただし、そうする必要はありません)。これらのファイルのフィールドの1つはIcon = ....です。プログラムを使用して、そのフィールドが選択した値に設定されているものを変更できます。 (これを行った後、Romanが示唆しているように、リフレッシュする必要があるかもしれません。)

他のシステムや他のシステムでアイコンを使用する場合、これらの.desktopファイルを調べて、使用中のアイコンの名前を確認することがあります。

これらのファイルの仕様は次の場所にあります。 http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec

ジョー

2
Joe