Jak scalić dwa zestawy ikon?

14

Chcę połączyć standardowy zestaw ikon Ubuntu Mono i zestaw ikon Faenza. Chciałbym zachować standardowe ikony Ubuntu w panelu (w tym ikony Dropbox, transfery plików itp.) I zastąpić wszystkie inne ikony aplikacji wersjami Faenza.

Jak miałbym to zrobić?

Richzilla
źródło

Odpowiedzi:

3

Edytuj ten plik poniżej za pomocą swojego ulubionego edytora tekstu

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

i umieść Faenza na początku linii dziedziczenia.

Galeria
źródło
2
Należy unikać modyfikowania plików systemowych. Aktualizacja Ubuntu-Mono przywróci zmianę.
idbrii
12

Myślę, że najlepszym sposobem na scalenie zestawów ikon jest stworzenie czegoś, co nazywam lekkim zestawem ikon. Ten zestaw ikon znajduje się w twoim katalogu domowym, więc nie będzie blokowany przez aktualizacje systemu, ale łączy się z zestawami ikon systemu, więc będzie aktualizowany wraz z nimi. Te motywy nie będą dostępne dla innych użytkowników w twoim systemie.

Lekkie zestawy ikon

Menedżer motywów Ubuntu będzie szukał ~/.iconsi /usr/share/iconszestawów ikon. Coś w ~/.iconsprzesłonięciach /usr/share/icons.Możesz więc skopiować zestaw ikon z katalogu systemowego do katalogu domowego, aby dostosować ikonę, i uwzględnisz tylko te części, które chcesz zmienić!

Ogólnie rzecz biorąc, myślę, że najlepiej jest tworzyć własne zestawy ikon, które korzystają z zestawów systemowych. Możesz to zrobić, tworząc zestaw ikon, plik index.theme i dodając niektóre ikony. Jednak w przypadku łączenia różnych zestawów ikon należy zastąpić ich Inheritsatrybut, aby można było ustawić własną kolejność pierwszeństwa.

Tworzenie zestawu ikon do scalania tematów

Stwórzmy zestaw ikon super-mono:

# 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

Teraz mamy nową ikonę ustawioną w wyglądzie, która jest dokładnie taka jak Faenza-Darkest.

Aby połączyć nasze dwa motywy, zmieniamy motyw super-mono, aby odziedziczyć po ubuntu-mono-dark, a następnie Faenza.

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

To powinno wystarczyć dla Richzilli, wystarczy wybrać super-mono w wyglądzie.

Dodawanie niestandardowych ikon

Możemy również dodać pojedyncze ikony do tego zestawu ikon:

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

A teraz nasz motyw super-mono łączy ubuntu-mono-dark i Faenza, z tym wyjątkiem, że używa jednej ikony z Faenza-Darkest. Zobacz kolejne sekcje, aby użyć więcej niż tylko kilku ikon.

Ważne jest, aby zobaczyć, że skopiowałem index.theme z Faenza-Darkest, a następnie użyłem ikon z Faenza-Darkest. Plik index.theme mówi, gdzie mogą znajdować się ikony. Jeśli chcesz pobrać pojedyncze ikony z różnych zestawów ikon, musisz scalić ich pliki index.theme. Możesz spojrzeć na pliki, a zobaczysz pole o nazwie Katalogi zawierające listę wszystkich folderów zawierających ikony. Następnie zobaczysz inne pola opisujące te foldery. Jeśli dodasz ikonę, która nie jest opisana w tych polach, ikona ta zostanie zignorowana. Więcej informacji można znaleźć w specyfikacji index.theme .

Zaawansowane: selektywne łączenie trzech zestawów ikon

Uwielbiam także ikony ubuntu-mono. Uwielbiam ikony aplikacji Faenzy, ale nie lubię ikon mono Faenzy (wskaźników i przycisków). Lubię też ikony elementarne. Chcę więc połączyć te trzy zestawy ikon. O ile mi wiadomo, najlepszym sposobem na to jest izolowanie ikon, które lubisz.

  1. Użyj ubuntu-mono-dark
  2. Użyj ikon aplikacji Faenza
  3. W przeciwnym razie użyj ikon elementarnych

Aby to zrobić, musimy powiedzieć ubuntu-mono-dark, aby niczego nie dziedziczył (abyśmy mogli także używać Faenza i elementarnych).

# 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

Zauważysz, że zestaw ikon ubuntu-mono-dark jest teraz zepsuty. Brakuje ikon dostarczonych przez Humanity-Dark i innych zestawów ikon, które dziedziczy. Ta zmiana wpłynie tylko na użytkownika.

Teraz możemy stworzyć nowy zestaw ikon, który będzie korzystał z ikon aplikacji 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/.

Ten zestaw ikon aplikacji Faenza jest również uszkodzony. Ma tylko ikony aplikacji. Brakuje wszystkich innych ikon, ponieważ usunęliśmy Dziedziczenia.

Teraz tworzymy zestaw ikon, którego będziemy używać. Nasz zestaw ikon nie będzie zawierał żadnych ikon, po prostu połączy nasze inne zestawy ikon.

# 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

Teraz powinniśmy być w stanie wybrać Merge-mono-dark w wyglądzie, a my będziemy mieć piękny nowy zestaw ikon! (Uwaga: nie powinniśmy scalać plików index.theme, ponieważ nie dodajemy ikon z różnych zestawów ikon do scalania mono-ciemności. Zamiast tego używamy dziedziczenia do automatycznego scalania zestawów ikon.)


Objaśnienie niektórych poleceń

Używam wielu poleceń terminalu, aby uprościć tę odpowiedź, ale oto opis ich działania.

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

Spowoduje to utworzenie wskaźnika w zestawie ikon do ikony systemowego zestawu ikon GTK-wklej. W ten sposób nie jest używane dodatkowe miejsce na dysku twardym, a zestaw ikon jest aktualizowany wraz z zestawem ikon systemu. Jeśli nie chcemy, a następnie zastąpić ln -sz cp -r.

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

Środki do zastąpienia wszystko darkze lightw ~ / pliku.

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

Sposób .*$dopasowania dowolnego tekstu (. *) Do końca wiersza ($).

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

Tutaj wstawiamy ubuntu-mono-dark przed listą Dziedziczenia, ponieważ szukamy Inherits=i zastępujemy jąInherits=ubuntu-mono-dark,

Gdziekolwiek używam sed, możesz edytować plik i zastosować zmiany ręcznie.

idbrii
źródło
1
<sarkazm> Nie jestem pewien, czy ten post jest wystarczająco szczegółowy pydave </sarkazm> z całą powagą, świetna odpowiedź. Miałem podobny problem z ikoną Clementines, że to rozwiązuje.
zookalicious