Answers:
我认为合并图标集的最佳方法是创建所谓的轻量级图标集。该图标集位于您的主目录中,因此不会被系统更新所破坏,但它链接到系统图标集,因此将与它们一起更新。这些主题将对系统上的其他用户不可用。
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一样。
为了合并我们的两个主题,我们将超级单声道主题更改为继承自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中的一个图标。请参阅后面的部分,以使用多个图标。
重要的是要看到我复制了Faenza-Darkest的index.theme,然后使用了Faenza-Darkest的图标。index.theme文件说明图标可能在哪里。如果要从不同的图标集中提取单个图标,则需要合并它们的index.theme文件。您可以查看文件,然后会看到一个名为目录的字段,该字段列出了所有包含图标的文件夹。然后,您将看到描述这些文件夹的其他字段。如果您添加的图标没有被这些字段描述,那么该图标将被忽略。您可以在index.theme规范中找到更多信息。
我也喜欢ubuntu-mono图标。我喜欢Faenza的应用程序图标,但我不喜欢Faenza的单声道图标(指示器和按钮)。我也喜欢基本的图标。所以我想结合这三个图标集。据我所知,最好的方法是隔离您喜欢的图标。
为此,我们需要告诉ubuntu-mono-dark不要继承任何东西(因此我们也可以使用Faenza和Elementary)。
# 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图标集也已损坏。它只有用于应用程序的图标。所有其他图标都丢失了,因为我们删除了Inherits。
现在我们创建将要使用的图标集。我们的图标集将不包含任何图标,只连接其他图标集。
# 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
现在,我们应该可以在外观中选择merge-mono-dark,我们将设置一个漂亮的新图标!(注意:我们不需要合并index.theme文件,因为我们没有将来自不同图标集的图标添加到merge-mono-dark中。相反,我们使用继承来自动合并图标集。)
我使用了很多终端命令来简化此答案,但以下是它们的功能说明。
ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/Faenza-Alan/actions/22/.
这将在您的图标集中创建一个指向系统图标集的gtk-paste图标的指针。这样,就不会使用额外的硬盘空间,并且图标集会与系统的图标集一起更新。如果您不想这样做,请替换ln -s
为cp -r
。
sed -ie "s/dark/light/" ~/file
手段代替所有dark
与light
在〜/文件。
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
在这里,我们要在“继承”列表的前面插入ubuntu-mono-dark,因为我们正在寻找Inherits=
并将其替换为Inherits=ubuntu-mono-dark,
在我使用的任何地方sed
,您都可以编辑文件并手动应用编辑。