web-dev-qa-db-ja.com

2つのアイコンセットをマージするにはどうすればよいですか?

標準のUbuntu MonoアイコンセットとFaenzaアイコンセットをマージします。パネルに標準のUbuntuアイコン(Dropbox、ファイル転送などのアイコンを含む)を保持し、他のすべてのアプリケーションアイコンをFaenzaバージョンに置き換えたいと思います。

これについてどうすればいいですか?

14
richzilla

お気に入りのテキストエディタでこのファイルを編集してください

/usr/share/icons/ubuntu-mono-(which mono set you want)/index.theme

そして、Faenzaをinherits行の先頭に置きます。

2
Vallery

アイコンセットをマージする最良の方法は、軽量アイコンセットと呼ばれるものを作成することだと思います。このアイコンセットはホームディレクトリに存在するため、システムの更新によって上書きされることはありませんが、システムアイコンセットにリンクしているため、それらと共に更新されます。これらのテーマは、システム上の他のユーザーは利用できません。

軽量アイコンセット

Ubuntuのテーママネージャーは、アイコンセットの~/.iconsおよび/usr/share/iconsを検索します。 ~/.iconsのすべてが/usr/share/icons.をオーバーライドするため、アイコンをシステムディレクトリからホームディレクトリにコピーしてアイコンをカスタマイズし、変更したい部分だけを含めることができます。

一般的に、システムのアイコンセットを使用する独自のアイコンセットを作成するのが最善だと思います。これを行うには、アイコンセット、index.themeファイルを作成し、いくつかのアイコンを追加します。ただし、異なるアイコンセットを組み合わせる場合は、Inherits属性をオーバーライドして、独自の優先順位を設定できるようにする必要があります。

テーマをマージするアイコンセットを作成する

スーパーモノのアイコンセットを作成しましょう:

# Create a new icon set
mkdir -p ~/.icons/super-mono

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza-Darkest/index.theme      ~/.icons/super-mono/.
sed -ie "s/Name=Faenza-Darkest/Name=super-mono/"    ~/.icons/super-mono/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme
sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

これで、Faenza-Darkestとまったく同じ外観の新しいアイコンが設定されました。

2つのテーマをマージするために、ubuntu-mono-darkからFaenzaを継承するようにスーパーモノテーマを変更します。

sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza/" ~/.icons/super-mono/index.theme

Richzillaにはこれで十分です。外観でスーパーモノを選択するだけです。

カスタムアイコンの追加

このアイコンセットに個々のアイコンを追加することもできます。

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/super-mono/actions/22/.

そして今、私たちのスーパーモノテーマは、ubuntu-mono-darkとFaenzaを組み合わせていますが、Faenza-Darkestからのアイコンを1つ使用しているだけです。いくつかのアイコン以上のものを使用するには、後のセクションを参照してください。

Index.themeをFaenza-Darkestからコピーし、Faenza-Darkestのアイコンを使用したことを確認することが重要です。 index.themeファイルには、アイコンの場所が示されています。異なるアイコンセットから個々のアイコンを取得する場合は、index.themeファイルをマージする必要があります。ファイルを見ると、アイコンを含むすべてのフォルダーをリストするディレクトリというフィールドが表示されます。次に、これらのフォルダーを説明する他のフィールドが表示されます。これらのフィールドで説明されていないアイコンを追加すると、そのアイコンは無視されます。詳細は index.theme spec で見つけることができます。

高度:3つのアイコンセットを選択的に組み合わせる

また、ubuntu-monoアイコンも大好きです。私はFaenzaのアプリアイコンが大好きですbutFaenzaのモノアイコン(インジケーターとボタン)は好きではありません。エレメンタリーのアイコンも好きです。そこで、これら3つのアイコンセットを組み合わせたいと思います。私の知る限り、これを行う最良の方法は、好きなアイコンを分離することです。

  1. Ubuntu-mono-darkを使用
  2. Faenzaのアプリアイコンを使用する
  3. そうでなければ、小学校のアイコンを使用する

これを行うには、ubuntu-mono-darkに何も継承しないように指示する必要があります(したがって、Faenzaとエレメンタリーを使用することもできます)。

# First, ubuntu-mono-dark
# Create a shadow of the system icon set
mkdir -p ~/.icons/ubuntu-mono-dark

# Copy an existing icon config and modify it for our shadow icon set
cp /usr/share/icons/ubuntu-mono-dark/index.theme   ~/.icons/ubuntu-mono-dark/.
sed -ie "s/Comment=.*$/Comment=A shadow to prevent inherits/" ~/.icons/ubuntu-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/ubuntu-mono-dark/index.theme

Ubuntu-mono-darkアイコンセットが壊れていることがわかります。 Humanity-Darkが提供するアイコンと、それが継承する他のアイコンセットが欠落します。この変更はユーザーにのみ影響します。

これで、Faenzaのアプリアイコンを使用する新しいアイコンセットを作成できます。

# Create a new icon set
mkdir -p ~/.icons/Faenza-apps

# Copy the existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme             ~/.icons/Faenza-apps/.
sed -ie "s/Name=Faenza/Name=Faenza-apps/"          ~/.icons/Faenza-apps/index.theme
sed -ie "s/Comment=.*$/Comment=Just Faenza app icons/" ~/.icons/Faenza-apps/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/Faenza-apps/index.theme

# Use Faenza's app icons
ln -s /usr/share/icons/Faenza/apps/ ~/.icons/Faenza-apps/.

このFaenza-appsアイコンセットも壊れています。アプリのアイコンのみがあります。継承を削除したため、他のすべてのアイコンはありません。

次に、使用するアイコンセットを作成します。アイコンセットにはアイコンが含まれず、他のアイコンセットを接続するだけです。

# Create a new icon set
mkdir -p ~/.icons/merge-mono-dark

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme                 ~/.icons/merge-mono-dark/.
sed -ie "s/Name=Faenza/Name=merge-mono-dark/"          ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/"    ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza-apps,elementary-mono-dark/" ~/.icons/merge-mono-dark/index.theme

これで、Appearanceでmerge-mono-darkを選択できるようになり、美しい新しいアイコンセットができました! (注:異なるアイコンセットのアイコンをmerge-mono-darkに追加しないため、index.themeファイルをマージする必要はありません。代わりに、Inheritsを使用してアイコンセットを自動的にマージします。)


いくつかのコマンドの説明

この答えを単純化するために多くのターミナルコマンドを使用しますが、それらの機能の説明を次に示します。

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/Faenza-Alan/actions/22/.

これにより、アイコンセットにシステムアイコンセットのgtk-pasteアイコンへのポインタが作成されます。これにより、追加のハードディスク領域は使用されず、アイコンセットがシステムのアイコンセットとともに更新されます。そうしたくない場合は、ln -scp -rに置き換えてください。

sed -ie "s/dark/light/" ~/file

〜/ file内のすべてのdarklightに置き換えることを意味します。

sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme

.*$は、テキスト(。*)を行末($)に一致させることを意味します。

sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

ここでは、Inherits=を探し、それをInherits=ubuntu-mono-dark,に置き換えているため、継承リストの前にubuntu-mono-darkを挿入しています。

sedを使用する場所であればどこでも、ファイルを編集して、代わりに手動で編集を適用できます。

12
idbrii