Unity – powłoka systemowa dla GNOME tworzona przez Canonical Ltd. dla Ubuntu. Pojawiła się po raz pierwszy w Ubuntu Netbook Edition 10.10. Celem Unity jest efektywne wykorzystanie ograniczonego miejsca na ekranie netbooków, między innymi przez pionowy przełącznik programów[3]. W przeciwieństwie do GNOME, KDE czy Xfce, nie jest zbiorem programów, ale zostało zaprojektowane do użycia z istniejącymi programami GTK+[4].
Unity jest częścią projektu Ayatana, inicjatywy mającej na celu poprawę użyteczności Ubuntu. Oprócz Unity, do tego projektu należą aplety programów, MeMenu i system powiadomień NotifyOSD.
Historia i rozwój
Ubuntu używało tradycyjnie środowiska graficznego GNOME, jednakże Mark Shuttleworth, założyciel projektu Ubuntu, wyjaśnił zespołowi do spraw GNOME, dlaczego Unity będzie domyślnym interfejsem graficznym zamiast GNOME Shell rozpoczynając od kwietnia 2011, wraz z wydaniem Ubuntu 11.04[4].
W listopadzie 2010 menedżer społeczności Ubuntu, Jono Bacon wyjaśnił, że wsparcie dla środowiska GNOME nadal będzie zapewniane. Jedyną różnicą będzie według niego to, że Unity jest inną powłoką GNOME[5].
Canonical poinformowało, że wydało wersję Unity dla komputerów stacjonarnych i będzie ono domyślnym interfejsem graficznym Ubuntu 11.04[6].
GNOME Shell nie zostało dołączone do Ubuntu 11.04, ponieważ nie zostało ukończone przed datą końcową dla wprowadzania zmian do tej wersji, ale jest dostępne przez PPA[7] i przewidziano jego włączenie do Ubuntu 11.10[8].
W listopadzie 2010 Mark Shuttleworth poinformował, że rozważa przystosowanie Unity do działania z Wayland zamiast obecnie używanego X Window System
W grudniu 2010 niektórzy użytkownicy zaproponowali, aby menu programów Unity (dock) miał możliwość bycia przenoszonym z lewej strony ekranu na inne, ale Mark Shuttleworth stwierdził, iż obawia się, że to nie będzie zgodne z dalszymi celami projektowymi, dlatego taka możliwość nie zostanie wprowadzona. Za to dock będzie zwijany do przycisku Ubuntu[9].
14 stycznia 2011 Canonical wydało wstępną wersję Unity 2D opartą na Qt i napisaną w QML[10]. Unity 2D nie zostało dołączone do Ubuntu 11.04; zastępczym trybem uruchomienia było GNOME 2.32 na sprzęcie, na którym Unity nie może działać[11][12].
W marcu 2011 pojawiły się spory między Canonical i twórcami GNOME. W ramach rozwoju Unity, włączono kod API jako zewnętrzną zależność GNOME. Według Davida Neary, zewnętrzną zależnością jest moduł niezależny od GNOME, który jest zależnością pakietu w zawartego w zestawie modułów GNOME oraz powody, dlaczego libappindicator nie została przyjęta jako zewnętrzną zależność, bo „nie pasuje do tej definicji”, ponieważ „powiela funkcjonalność libnotify” (obecnie GNOME Shell) oraz jej CLA nie spełnia obecnej polityki GNOME[13].
W kwietniu 2011 Mark Shuttleworth ogłosił, że Ubuntu 11.10 nie będzie zawierało klasycznego pulpitu GNOME w przeciwieństwie do Ubuntu 11.04[14] jako interfejsu zastępczego dla Unity. W Ubuntu 11.10 interfejsem zastępczym, dla użytkowników, którzy nie mają technicznych możliwości do uruchomienia Unity, będzie Unity 2D[15][16]. Jednakże GNOME będzie dostępne w repozytoriach jako interfejs zastępczy w Ubuntu 11.10[17].
Mark Shuttleworth odpowiedział, że „to jest kluczowy moment dla kierownictwa GNOME. Mówi wyraźnie, że liczne grono życzliwych twórców GNOME jest zawiedzione z powodu procesu podejmowania decyzji, który zmniejsza dynamikę rozwoju samego GNOME. Pomysły, które nie zrodziły się »u podstaw«, muszą niezwykle zaciekle i niepotrzebnie walczyć o dostęp do tlenu… Znajdowanie czasu na pomysły do rozważenia nie powinno przypominać ataku na froncie z karabinem maszynowym. Nie ma żadnego pomysłu na prowadzenie projektu. To jest przepis na projekt, który traci wspaniałych ludzi tworzących środowiska bardziej otwarte na inne spojrzenie na świat… Zapewnienie nieskrępowanego rozwoju innym pomysłom to jedyny sposób na podtrzymanie innowacyjności wprowadzanej do tej marki. Inaczej jest się skazanym na patrzenie na ich innowacyjność i wskutek tego podtrzymywanie własnych wysiłków, obmawianie ich w tym procesie. Zaczęliśmy mocnym postanowieniem: Unity jest powłoką GNOME. Przewodniczący projektu GNOME powinni zdecydować się, czy włączyć do swojego projektu efekty konkurencji czy też nie”[18][19][20].
Interfejs Unity jest obecnie wtyczką Compiz Fusion[21], który według zdania Canonical, jest szybszy niż menedżer okien Mutter[22], dla którego GNOME Shell jest wtyczką.
Dostępność
Najnowsze wersje Unity ukazują się w pierwszej kolejności na Ubuntu, dla którego są tworzone projekty Ayatana. Poza Ubuntu, do niektórych dystrybucji próbowano dołączyć Unity z różnym powodzeniem. Części Ayatana wymagają modyfikacji innych programów, co utrudnia przystosowywanie do współdziałania innych dystrybucji z Unity.
Arch Linux zawiera wiele elementów Ayatana, w tym Unity i Unity 2D, ale nie jest wspierane przez developerów (pakiety są w repozytorium nieoficjalnym)[23].
Fedora - twórcy Fedory zainteresowali się włączeniem Unity do dystrybucji[24], ale prace zostały zawieszone do czasu wydania Fedory 15[25].
Frugalware włączyły Ayatana, w tym Unity i Unity 2D do swojej gałęzi rozwojowej nadchodzącego wydania[26].
openSUSE zawiera wiele części Ayatana dla GNOME[27]. Wprowadzenie samego Unity zostało zawieszone z powodu problemów z Compizem[28].
Unity a Unity 2D
Canonical rozwija dwie odrębne wersje Unity, które wyglądają podobnie, ale są różne pod względem technicznym.
Unity zostało napisane jako wtyczka Compiza[21] w C++ i Vala oraz używa rzadko używany toolkit OpenGL o nazwie Nux.
Taka budowa zapewnia przyspieszenie sprzętowe grafiki na zgodnych systemach.
Unity 2D jest zbiorem programów[29], które są napisane w QML, języku wykorzystywanym w Qt do tworzenia interfejsów[10]. Domyślnie Unity 2D używa Metacity jako menedżera okien[29], ale może używać również innych menedżerów okien, takich jak KWin czy Compiz. W Ubuntu 11.10 Unity 2D używa menedżera kompozycji opartego na XRender w celu uzyskania efektów przezroczystości. W Ubuntu 11.10 Unity 2D jest interfejsem zastępczym, dla użytkowników, którzy nie mają technicznych możliwości do uruchomienia Unity[14].
↑I am an Ubuntu Unity Developer, AMA. [dostęp 2011-01-12]. Cytat: GNOME Shell requires certain changes to the underlying GNOME system that are slated to land too late in our cycle to integrate into 11.04. GNOME Shell will therefor be installable only from a PPA until 11.10 when the underlying libraries have stabilized.
↑ abfluteflute: Is unity just a plugin of compiz. 2010-11-13. Cytat: The version of Unity that will be released in 11.04 is definitely implemented as plugin(s) in Compiz.