Czemu nie mam ikon notyfikacji w Gnome?!

Na Dobreprogramy pojawił się wpis o tuningowaniu systemu ElementaryOS, który bazuje na Ubuntu i Gnome właśnie (nie bezpośrednio, ale zmodyfikowanym interfejsie Gnome). Jednym z zarzutów w tekście i komentarzach był brak "tray icon" w obszarze powiadomień (czy jak to nazwać). Skąd w ogóle taka decyzja? O tym postaram się dzisiaj powiedzieć parę słów.

Przeznaczenie wykute na początku

Na początku był Windows i to nie byle jaki, bo 95 (w sumie byle jaki,
bo to Microsoft :P). Windows ten wprowadził szereg rewolucji w
interfejsie użytkownika, pasek z menu Start, pulpit (jako tako) czy system tray
icon właśnie.


Zdjęcie Windowsa 98 (:P) z Wikipedii. Tray icony to te "ikonki koło zegarka".

Idea tych ikon chociaż rewolucyjna - miała swoją mroczną stronę, którą obrazuje ten screen:


Grafika z Howtogeek (https://www.howtogeek.com/wp-content/uploads/2016/10/img_580ab50544559.png)

Widzimy tutaj duży nieporządek :) Dziesiątki ikon.

Xembed

Linux oczywiście rozwijając się, część "błędów konstrukcyjnych" Windowsa wyeliminował (np. zamiast tworzenia hierarchii menu w postaci katalogów, postanowił dodawać ikony do kategorii, przez co jakiś ład i porządek w miarę funkcjonuje), to nikt nie pomyślał jaki wpływ Tray Icony będą miały na systemy i zaimplementowali swój standard Xembed bardzo podobny do tego co zrobił Microsoft.

Standard Xembed, który w sumie spisywał się nieźle w swoich czasach, to miał niestety swoje wady. Po pierwsze ograniczeniem sporym był rozmiar ikon do 22 na 22 piksele. Dla przykładu powiększyłem bardzo panel Xfce4

I jak widzimy - ikony nie zeskalowały się (w sensie tak zachował się plugin, ale powinny być albo mocno rozpikselowane, albo właśnie tak problem ktoś obszedł).

Dodatkowo (jak dobrze rozumiem) to nie tyle ikony co osadzone małe programy na bazie hacków dla Xorga. Dla przykładu mam 2 programy i źle ustawione skórki GTK2 / GTK3 (tego komputera nie powinienem używać, ale dysk padł w laptopie :P)

Widzimy, że programy chociaż z tego samego kręgu - inaczej się wyświetlają, bo są w innych bibliotekach napisane.

Pamiętajmy też, że ten system bazuje na Xorgu, nie można go przenieść do Wayland jako tako, a przecież wiemy, że Linux tam chce zmierzać. Jest więc innego rodzaju motywacja to wprowadzania nowych standardów.

I na koniec - stary system oparty na trayach w Windowsie i Linuksie jest zbudowany dla komputerów, a jakby nie patrzeć - widzę trend, który będzie łączył systemy komputerowe i mobilne (przykładem niech będzie Librem 5, czyli smartfon z Gnome, może Chromebooki). Stary system często wymagał stosowania prawego przycisku myszy do menu kontekstowego, a lewego np. do wyświetlenia aplikacji, który niewygodnie się używa na ekranach dotykowych.

Indicator i AppIndicator

Za stan nowych ikonek w Gnome odpowiada Canonical wprowadzając w Ubuntu 10.04 Indicatory. Ogólnie idea była taka, by indykator przejmowały funkcje wielu innych tray icon. Dla przykładu indykator dźwięku przejmował funkcje nie tylko miksera, ale też odtwarzaczy audio / wideo. Tak więc mamy jedno miejsce do zarządzania konkretną grupą aplikacji. Podobnie indykator wiadomości przejmował zarządzanie komunikatorami i klientami poczty (możliwe, że RSS też).


Zdjęcie z dokumentacji Ubuntu (https://wiki.ubuntu.com/Sound)

Idea bardzo fajna, chociaż kompromisem były Appindicator, czyli w sumie Tray icony, ale dostosowane do nowych standardów.


KStatusNotifierItem

KDE przyjęło metodę Appindicatorów ze swoim standardem. Po prostu
unowocześnili tray icony i stworzyli nowe standardy np. w standaryzacji
menu (zależą one od środowiska, a nie aplikacji).

Czy Gnome dobrze zrobiło wymuszając stosowanie Indykatorów


Najpierw wtrącę coś o Enlightenment, czyli takim fajnym środowisku :P Tam twórcy domyślnie nie wspierają żadnego formatu, wprowadzając dodatki, które po części imitują część indykatorów (indykatory nie działają z każdym środowiskiem, tutaj jest też spora wada), chociaż dodali opcję instalacji dodatku, który daje ikony SNI / Appindicator (ale bez Xembed).

Xembed powinien być martwy, ale nie jest. Bardzo wiele programów napisanymi w starych bibliotekach (np. Pidgin, ale jest plugin, który inicjuje Appindicator) nie działa poprawnie ani na Gnome ani Enlightenment (KDE napisało dodatek, który "emuluje" środowisko dla Xembed).

Najlepszą drogą byłoby przejście na jakiś otwarty (na każde środowisko) standard Indicatorów, bo są krokiem w dobrą stronę (nowoczesnym podejściem do tej idei). Jednakże wiele aplikacji nie będzie nigdy go wspierać, chociażby Wine musi być kompatybilne z projektem powstałym na Windowsa 95, który jest bardzo przestarzały w porównaniu do Indicatorów.

Strzelam, że Gnome (i Enlightenment, ale głównie Gnome) postanowiło zagrać swoją kartą popularności by wymusić na programistach przejście na nowy system, ale to będzie długa walka, bo idea Indicatorów ciągnie się od wielu lat (10?) i jak widać - nie każdy to "ogarnia" - a szkoda.