Google Chrome został niedawno zaktualizowany do wersji 35.0.1916.114 w mojej instalacji Ubuntu 14.04.
Od tego czasu ikona powiadomień zaczęła pojawiać się na pasku zadań. Wygląda jednak na to, że używa ikony niskiej rozdzielczości - wygląda na zniekształconą:
Jak mogę to naprawić / wymienić?
google-chrome
icons
notification
fabiomaia
źródło
źródło
/usr/share/icons
, jeśli to pomaga/opt
? To tam są zainstalowane pliki binarne Google.catfish
na przykład, lub innym metodom umożliwiającym przeszukiwanie całego dysku.Odpowiedzi:
Edycja: patrz poniżej, aby zaktualizować informacje o zastępowaniu ikony powiadomienia
Jeśli jesteś chrome, pliki binarne są zainstalowane w typowej lokalizacji, znajdziesz je w
/opt/google/chrome
. W tym folderze powinieneś znaleźć plikchrome_100_percent.pak
zawierający ikonę powiadomienia. Oto kroki, które użyłem, aby go wyodrębnić, używając informacji z tego pytania o przepełnienie stosu :Pobierz kod do projektu grit-i18n za pomocą
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
To da ci folder w twojej CWD o nazwie
grit-i18n-read-only
. CD do tego folderucd grit-i18n-read-only
Skopiuj moduł python data_pack do tego folderu
cp grit/format/data_pack.py .
Edytuj
data_pack.py
w preferowanym edytorze. Po początkowym imporcie dodaj następujący wiersz:sys.path.append(os.getcwd())
Pod koniec pliku w
main
funkcji, usuń linięprint '%s: %s' % (resource_id, text)
(odpowiedź Przepełnienie stosu stwierdza, że dzieje się to w wierszu 160, z mojego doświadczenia wynika, że obecna wersja ma to w wierszu 201)
W jego miejsce wstaw odpowiednio następujące wcięcia (3 razy):
file = open(str(resource_id), "wb")
file.write(text)
Uruchom
data_pack.py
narzędzie na pliku chrome pak (grit-i18n-read-only
najpierw skopiowałem go do folderu):./data_pack.py ../chrome_100_percent.pak
Spowoduje to powstanie wielu nowych plików w bieżącym katalogu, wszystkie nazwane liczbami bez rozszerzenia. Twoja przeglądarka plików (np. Nautilus) powinna być w stanie określić typy plików i wyświetlać miniatury obrazów. Znalazłem ikony powiadomień o nazwach 6866 i 6867.
Edytować
Chociaż poniżej znajdują się prostsze odpowiedzi, udało mi się zhakować trochę kodu, aby ponownie spakować zasoby, które możesz spróbować po edycji ikon. Spowoduje to utworzenie nowego
.pak
pliku, którego sam nie próbowałem użyć, więc nie mogę powiedzieć z całą pewnością, że z powodzeniem pojawią się nowe ikony powiadomień.W głównej funkcji in
data_pack.py
skomentowałem cały kod welse
bloku i dodałem następujące wiersze:Więc po prostu biegnij
./data_pack.py
. Zakłada się, żechrome_100_percent.pak
znajduje się w bieżącym katalogu i powinien dać ci nowychrome_100_percent_new.pak
plik, który możesz spróbować skopiować/opt/google/chrome/chrome_100_percent.pak
.Uważam, że niektóre dodatkowe ikony w pakiecie zasobów związane z ikoną powiadomienia zostały zidentyfikowane; edycja powyższych elementów w celu włączenia ich powinna być dość prosta.
Ostateczna edycja
Teraz, gdy wróciłem do domu i miałem okazję popracować nad tym, udało mi się z powodzeniem zastąpić ikonę powiadomienia Chrome. Jak zauważył @Glutanimate, utknąłeś w rozdzielczości 16x16, więc nie jestem pewien, ile ulepszeń możesz faktycznie osiągnąć, ale przypuszczam, że to subiektywne.
Po prostu otworzyłem wyżej wymienione ikony (6864 - 6867) w GIMP, które wykryły je jako PNG w skali szarości. Wkleiłem nową ikonę do tego samego pliku w GIMP, próbując w ten sposób zachować te same właściwości obrazu (np. Skalę szarości). Następnie wyeksportowałem je jako pliki PNG, odznaczając WSZYSTKIE opcje oferowane przez GIMP, ale utrzymując poziom kompresji równy 9. Pliki wynikowe miały rozszerzenia .png, więc usunąłem je i zastąpiłem oryginały. Następnie uruchomiłem ponownie
data_pack.py
, po wprowadzeniu modyfikacji wyszczególnionych powyżej.Zachowałem kopię zapasową oryginalnego pakietu
mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
i przeniosłem na nią mój zmodyfikowany plik .pak. Upewniam się, że podczas tego procesu Chrome jest zamknięty, i dwukrotnie sprawdź, czy procesy Chrome nie są uruchomione, i uważam, że chrome ma nowe ustawienie, które zezwala na procesy w tle, nawet gdy przeglądarka jest teraz domyślnie zamknięta.Oto moje ikony powiadomień w Unity odzwierciedlają moje zmiany.
Edycja na koniec: OK, skłamałem - próbowałem PNG 32x32 i wygląda na to, że zadziałało dobrze. A więc proszę bardzo. Oto kilka zrzutów ekranu wyników.
(Źródło: Ikony partii od Adama Whitcrofta)
źródło
Edytować:
Wygląda na to, że problem dotyczył
node-chrome-pak
. Zmodyfikowany rocketman10404data_pack.py
działa dobrze, nawet z ikonami 32px:Zamiast tego skorzystaj z jego instrukcji .
Oryginalna odpowiedź :
Doskonała odpowiedź @ rocketman10404 zaprowadziła mnie do node-chrome-pak , skryptu node.js, który może pakować, rozpakowywać i zamieniać określone zasoby w
.pak
plikach Chrome / ium .Mimo że udało mi się zastąpić ikony powiadomień
chrome_100_percent.pak
tym narzędziem, muszę zgłosić, że nie byłem w stanie pokazać zmian. Nadal uważam, że warto starać się nakreślić kroki, które podjąłem, aby uzyskać ten punkt. Mam nadzieję, że ktoś inny to podejmie i znajdzie sposób, aby faktycznie to zadziałało.Instalowanie node.js
node-chrome-pak
będzie wymagał uruchomienia node.js. Możesz zainstalować najnowszą wersję, dodając nodejs PPA Chrisa Lei:Pobranie skryptu i rozpakowanie zasobów Chrome
Pobierz skrypt:
Skopiuj lokalny
chrome_100_percent.pak
przez:Rozpakuj
.pak
plik:Identyfikacja i modyfikacja ikon powiadomień
Ostatnia akcja utworzy nowy folder o nazwie
./extracted
. W nim znajdziesz wszystkie zasoby zawarte w pliku pak. Są one nazwane na podstawie identyfikatora zasobu. Będziesz chciał zachować tę nazwę, ponieważ jest to ważne przy ponownym pakowaniu plików.Trudna część polega teraz na zidentyfikowaniu właściwych ikon. Jeśli się nie mylę, następujące pliki powinny być tymi używanymi w zasobniku systemowym:
Po zidentyfikowaniu ikon, których szukasz, możesz przystąpić do ich modyfikacji i wymiany. Jeśli chcesz, możesz użyć ikon, które stworzyłem w tym celu:
Pliki źródłowe i wyeksportowane
.png
w różnych rozdzielczościach są hostowane w GitHub .Oto pierwsze ograniczenie, które znalazłem: jeśli zastąpisz ikony obrazem w dowolnej rozdzielczości wyższej niż oryginalny Google Chrome, zostanie uszkodzony i przestanie działać poprawnie . W przypadku tego konkretnego projektu będziesz musiał zachować rozdzielczość 16x16. W efekcie oznacza to, że nie byłbyś w stanie znacząco poprawić obecnych ikon paska zadań, nawet gdybyś uruchomił tę metodę.
Oczywiście istnieje możliwość, że to ograniczenie zostało wprowadzone przy okazji
node-chrome-pak
zostało zaprojektowane. Może być możliwe zastąpienie ikon większymi ikonami, jeśli utworzysz niestandardowy skrypt Pythona na podstawie odpowiedzi @ rocketman10404.Przepakowywanie zasobów i zastępowanie istniejących
Po zmodyfikowaniu / zastąpieniu istniejących ikon musisz utworzyć zaktualizowany
pak
plik ...... i użyj go, aby zastąpić istniejący:
Istota tej metody
Podczas moich prób nie udało mi się wyświetlić Chrome zaktualizowanych ikon. Nawet jeśli upewniłem się, że wszystkie ikony zostały poprawnie zamienione i faktycznie znajdują się w zmodyfikowanym
pak
pliku (przez rozpakowanie go ponownie), nadal nie byłem w stanie zastąpić rzeczywistej ikony na pasku zadań.Niestety nie mam pojęcia, dlaczego tak jest.
źródło