Jak zmienić ikonę dla określonego typu pliku?

42

Próbuję zmienić ikonę application/x-hwpplików. Dodałem ikony do odpowiednich miejsc i sprawdziłem w assoGiate (po przeczytaniu tego wątku ). Pokazuje, że moja żądana ikona jest powiązana z typem pliku. Niemniej Nautilus wciąż pokazuje starą ikonę. Jak sprawić, by Nautilus wyświetlał prawidłową ikonę?

Scott Severance
źródło
@Rinzwind: Dzięki. Niestety ten link rozwiązuje inny problem. Polega na zmianie ikon poszczególnych plików. Chcę zmienić domyślną ikonę dla wszystkich plików danego typu.
Scott Severance
Czy używasz niestandardowego motywu ikony? Może to kolidować z ikoną, która ma się pojawić.
RBurgunda
Używam podstawowego motywu Ambiance. W każdym razie nie powinno to mieć znaczenia, ponieważ o ile wiem, żadne motywy ikon nie obejmują tego typu plików. Właśnie dostaję ikonę, która pojawia się domyślnie, gdy Nautilus nie wie, jaką inną ikonę wyświetlić. Ponadto motywy ikon są hierarchiczne, więc jeśli w bieżącym motywie nie można znaleźć odpowiedniej ikony, hierarchia zostanie przeszukana, co ostatecznie zakończy się motywem hicolor. Moje ikony są zainstalowane zarówno w motywach ubuntu0mono-dark, jak i hicolor.
Scott Severance,

Odpowiedzi:

22

Oto zestaw instrukcji, które powinny dać Ci niestandardową ikonę plików HWP.

Otwórz terminal:

  • Sprawdź, czy istnieje typ MIME: grep 'hwp' /etc/mime.types

    jeśli otrzymasz wynik przypominający, application/x-hwp hwppomiń następny krok.

  • Utwórz typ MIME sudo -H gedit /etc/mime.typesi dodaj linięapplication/x-hwp hwp

  • Dodaj ikonę (którą należy nazwać application-x-hwp.svg) :

    sudo cp PathToIcon/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes
    

    (nie zapomnij zastąpić PathToIcon)

Mam informacje stąd

Danjjl
źródło
Dzieki za sugestie. Nie miałem jeszcze okazji wypróbować go dokładnie (jak dotąd, bez powodzenia), ale nagradzam nagrodę, ponieważ inne sugestie nie zadziałały i nie będę miał okazji dalej nad tym pracować. nagroda wygasa.
Scott Severance
Być może powinieneś sprawdzić, czy Twój motyw ikon dziedziczy po gnome (większość motywów ikon robi). Znajdziesz te informacje w index.theme w katalogu twojego zestawu ikon
danjjl
Musisz także sprawdzić ~/.local. Na przykład ~/.local/share, który naśladuje folder /usr/local/share. Twoja lokalnie zainstalowana aplikacja (tj. Aplikacja tylko dla ciebie, a nie inne loginy), może mieć tam swoje właściwości. Edytuj podobne pliki, na przykład~/.local/share/icons/XXXX/XXXX
Robin Hsu,
@danjjl: Co masz na myśli (nie zapomnij zastąpić PathToIcon)?
JoKalliauer
1
@ JoKalliauer w poleceniu, aby skopiować ikonę /usr/share/... . Mam na myśli PathToIcon. Należy to zastąpić ścieżką do ikony na komputerze. (jeśli uważasz, że można to sformułować jaśniej, nie wahaj się zaproponować zmiany)
danjjl
14

Główną sztuczką jest prawidłowe ustalenie, gdzie znajdują się rzeczywiste ikony.
Aby to ustalić, przeanalizujmy ikony HTML. Konwencja nazewnictwa dla ikon jest taka sama jak dla typu MIME, tylko /jest zastąpiona -i nie są dozwolone duże litery. Tzn. Typ MIME, powiedzmy, text/x-changelogbędzie miał ikonę o nazwie text-x-changelog.svg(lub png). Typ MIME dla HTML to text/html. Jego ikoną będzie więc text-html.*Jeśli uruchomimy polecenie

find /usr/share/icons/ -type f | grep 'text-html\.'

otrzymamy kilka miejsc, w których umieszczone są te ikony:

/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/

Jeśli odwiedzimy każdą z nich za pomocą Nautilusa, zobaczymy, że Humanity/folder ten zawiera nasze aktualne ikony gnome/- niektóre starsze. HighContrast/nas nie interesuje. Aby zmienić jakąś ikonę, powinniśmy zastąpić ikony znajdujące się w Humanity/folderze.
Zauważ również, że text-html.svgikony, które są skalowalne i powinny były zostać umieszczone w scalablepodfolderze (co powinno być logiczne), są umieszczane w folderach dla różnych rozmiarów, w taki sam sposób, jak pliki rastrowe PNG.

Po zamianie ikon (we wszystkich podfolderach zgodnie z ich rozmiarami) na żądane ikony należy zaktualizować pamięć podręczną:

sudo gtk-update-icon-cache /usr/share/icons/Humanity

Otóż ​​to.

Istnieje inny sposób ustalenia pierwszeństwa schematów ikon - sprawdzenie ich index.themeplików. Jeśli zajrzymy do środka /usr/share/icons/Humanity/index.theme, zobaczymy:

Inherits=gnome,hicolor

Oznacza to, że ikony gnomei hicolorfoldery będą miały mniejszy priorytet niż te z Humanity. Wyjaśniono to tutaj .
O dziwo, Nautilus nie przestrzega tych zasad dziedziczenia. Kiedy dodany nowy typ MIME, próbowałem umieszczenie jego ikony w /usr/share/icons/gnome/, /usr/share/icons/hicolor, ~/.local/share/icons/hicolor, uaktualnianie bazy danych ikonę na każdym kroku - wszystko na próżno. Ikony te były poprawnie wyświetlane w assogiatepierwszej zakładce, ale nigdy w Nautilusie. Ale kiedy umieściłem je w Humanityfolderze i zaktualizowałem bazę danych ikon, pojawiły się od razu.

Uwaga: wszystko to dotyczy domyślnego motywu ikony. Jeśli używasz niestandardowego motywu ikony, sprawdź, gdzie znajdują się rzeczywiste ikony, i dodaj / zmień tam ikony. Również w nowszych dystrybucjach zasady dziedziczenia mogą ulec zmianie. Następnie należy zlokalizować nowy folder, w którym przechowywane są rzeczywiste ikony (jeśli Humanityjuż nie są ), jak wyjaśniono wcześniej.

whtyger
źródło
Musisz także sprawdzić ~/.local. Na przykład ~/.local/share, który naśladuje folder /usr/local/share. Twoja lokalnie zainstalowana aplikacja (tj. Aplikacja tylko dla ciebie, a nie inne loginy), może mieć tam swoje właściwości. Edytuj podobne pliki, na przykład~/.local/share/icons/XXXX/XXXX
Robin Hsu,
0

Mam nadzieję, że próbowałeś się wylogować i zalogować, aby odświeżyć pamięć podręczną ikon.

Sprawdź także, czy twoja ikona jest dostępna we właściwym rozmiarze (tym, którego używasz do wyświetlania typu pliku w nautilus).

Możesz także przegapić bieganie gtk-update-icon-cache.

Wypróbuj ten samouczek: http://swik.net/Ubuntu/Only+Ubuntu/How+To+Change+File-Type+(mimetype)+Icons+in+Ubuntu/chcrf

Spróbuj ręcznie utworzyć icon.theme, oto przykład, który mam z awn:

[Icon Theme]
Name=awn-theme

Directories=scalable

[scalable]
Size=48
MaxSize=256
Context=Apps
Type=Scalable

Podręcznik jest dostępny tutaj: http://live.gnome.org/GnomeArt/Tutorials/IconThemes

Chris Hasiński
źródło
Zainstalowałem ikonę 48x48 i ustawiłem Nautilus na 100%, która używa 48x48. Nie ma kości. Ponowne logowanie nie ma znaczenia. Bieganie gtk-update-icon-cachenie ma wpływu.
Scott Severance
Zaktualizowałem swoją odpowiedź, czy to pomogło?
Chris Hasiński
Nie utworzyłem ręcznie motywu ikony, ponieważ nie chcę nowego motywu. Chcę tylko, aby ikona przechodziła w motyw hicolor, ponieważ jest to podstawa wszystkich motywów ikon. Stworzenie nowego motywu pokona mój cel.
Scott Severance,
-2

1)

 sudo apt-get install assogiate

postępuj zgodnie z tym dobrym przewodnikiem z ładnymi zdjęciami

http://lordamit.blogspot.com/2010/07/change-file-type-icons-mime-type-icons.html


2)

Jeśli typ pliku nie został poprawnie wykryty lub pokazuje nieprawidłowy typ pliku, znajdź znaki identyfikujące typ pliku

EX: rar przejdź do http://filext.com/file-extension/rar

identyfikator „Hex: 52 61 72 21 1A 07 00, ASCII: Rar!”

otwórz plik w błogosławionym lub dowolnym edytorze szesnastkowym i znajdź identyfikator i przesunięcie (tam, gdzie zaczynają się słowa kluczowe)

w naszym przypadku jest to bit pierwszy, więc przesunięcie wynosi „0”.

Następnie przejdź do „Edytora typów plików”, edytuj lub stwórz nowy element, a następnie wybierz edytuj i pod zawartością pliku

z rozwijanej listy wybierz „string”, wpisz „Rar!” i ustawić przesunięcie „0”.

Gotowy

sodam
źródło
3
Jak zauważyłem w moim pierwotnym pytaniu, assogiate nie działa.
Scott Severance