Na wykopie 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

Tekst powstał na podstawie przestudiowania wielu wpisów blogowych programistów, którzy się tym problemem zajmują. Tak więc wpis może mieć błędy

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 tray icon właśnie


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

Podsumowanie? Burdel.

Xembed

Linux oczywiście musiał się rozwijać, chociaż 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 (chyba Gnome to zrobiło). Standard, 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). Prawdopodobnie zakładamy jak by to wyglądało z 5 czy 6 krotnym zoomem.

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). Stary system często wymagał stosowania prawego przycisku myszy do menu kontekstowego, a lewego np. do wyświetlenia aplikacji.

Indicator i AppIndicator

Jeśli się nie mylę to za stan Gnome odpowiada Canonical wprowadzając w Ubuntu 10.04 Indicatory. Ogólnie idea była taka, by indykator przejmowały funkcje tray icon na zasadzie Gnome. 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ż).


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

KStatusNotifierItem

KDE przyjęło metodę Appindicatorów ze swoim standardem. Po prostu unowocześnili tray icony i stworzyli nowe standardy w wyświetlaniu menu.

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). Ale dodali opcję dodania 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ę. Jednakże wiele aplikacji nie będzie nigdy go wspierać, chociażby Wine, które musi ogarniać środowisko powstałe w czasach Windowsa 95, które zarazem jest sprzeczne z tą ideą.

Strzelam, że Gnome (i Enlightenment, ale głównie Gnome) postanowiło zagrać swoją kartą popularności by wymusić na programistach do przejścia 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".

Trudna sprawa ;)