Ovaj članak govori o tome kako je grafika organizirana u Linuxu i od kojih se komponenti sastoji. Sadrži mnogo snimaka zaslona s različitim implementacijama radnih okruženja.
Ako ne razlikujete mnogo između KDE i GNOME ili ih razlikujete, ali biste željeli saznati koje su druge alternative, ovaj članak je za vas. To je pregledni članak te iako sadrži mnogo naziva i malo termina, materijal će biti koristan i početnicima i onima koji se samo povremeno zanimaju za Linux.
Tema može zanimati i napredne korisnike pri postavljanju udaljenog pristupa i prilikom implementacije tankog klijenta. Često srećem prilično iskusne linuxaše s tvrdnjama "na serveru je samo naredbeni redak, a grafiku ne planiram detaljno proučavati, jer je to sve potrebno samo običnim korisnicima". No, čak i poznavatelji Linuxa sa velikim iznenađenjem i zadovoljstvom otkrivaju opciju "-X" u ssh komandi (a za to je korisno razumjeti rad i funkcije X-servera).

Već gotovo 15 godina podučavam na tečajevima Linuxa u "" i siguran sam da mnogi od više od pet tisuća ljudi koje sam podučavao čitaju i zasigurno pišu članke na Habr. Tečajevi su uvijek vrlo intenzivni (prosječno trajanje tečaja je pet dana), potrebno je obraditi teme za koje je potrebno najmanje deset dana za potpuno upoznavanje. I uvijek tijekom tečaja, ovisno o publici (je li riječ o novacima ili iskusnim administratorima), kao i o "pitanjima iz publike", odlučujem što detaljnije objasniti, a što obraditi površno, kako bih posvetio više vremena naredbenim alatima i njihovoj praktičnoj primjeni. Ima dovoljno tema kojima je potrebno malo žrtvovati vremena. To su "Povijest Linuxa", "Razlike u Linux distribucijama", "O licencama: GPL, BSD,...", "O grafici i radnim okruženjima" (tema ovog članka) i dr. Nije da nisu važne, ali obično postoje mnogi aktualniji "ovdje i sada" problemi i samo pet dana... Međutim, za opće razumijevanje osnova Linux OS-a, razumijevanje dostupne raznolikosti (da čak i pri korištenju jednog specifičnog Linux distribucije, ipak imate širi pogled na ovaj ogroman i neizmjeran svijet poznat kao "Linux") korisno je i potrebno proučavati te teme.
U članku ću uz svaki komponentu navesti linkove za one koji žele dublje zaroniti u temu, na primjer, na članke na Wikipediji (pri čemu ću navesti potpuniju/korisniju verziju ako postoji i engleska i hrvatska verzija).
Za glavne primjere i snimke zaslona koristio sam distribuciju openSUSE. Mogla se koristiti bilo koja druga distribucija razvijena od strane zajednice, koja ima veliku količinu paketa u repozitoriju. Teško, ali moguće, je pokazati raznolikost izvođenja radne površine na komercijalnoj distribuciji, jer se često koriste samo jedno ili dvije najpoznatije radne površine. Tako programeri sužavaju svoj zadatak izdavanja stabilnog operativnog sustava. Na ovaj sustav instalirao sam sve DM/DE/WM (objašnjenje tih pojmova je u nastavku) koje sam našao u repozitoriju.
Snimke zaslona s "plavim okvirom" su napravljene na openSUSE.
Snimke zaslona s "bijelim okvirom" rađene su na drugim distribucijama, one su navedene na snimci.
Snimke zaslona s "sivim okvirom" preuzete su s interneta kao primjeri izvođenja radne površine iz prošlih godina.
Dakle, krenimo.
Glavni komponenti od kojih se sastoji grafika
Istaknuti ću tri glavne komponente i navesti ih redoslijedom kako se pokreću prilikom pokretanja sustava:
- DM (Display Manager);
- Display Server;
- DE (Desktop Environment).
Dodatno, kao važne podtočke kod Desktop Environment:
- Apps Manager/Launcher/Switcher (gumb "Start");
- WM (Window Manager);
- raz različito softver koje dolazi s radnom površinom.
Detaljnije o svakoj stavci.
DM (Display Manager)
Prva aplikacija koja se pokreće prilikom pokretanja "grafike" je DM (Display Manager), upravljač zaslonom. Njegovi glavni zadaci su:
- pitati koje korisnike pustiti u sustav, zatražiti autentifikacijske podatke (lozinka, otisak prsta);
- odabrati koju radnu površinu pokrenuti.
Trenutno se u različitim distribucijama široko koriste:
- (zamijenio ),
- ,
- ,
- .
- Također se može spomenuti Fly-DM (koji se koristi u AstraLinux).
Popis postojećih DM-a održava se ažurnim u




Važno je napomenuti da se na sljedećim snimkama koristi isti grafički upravitelj LightDM, ali u različitim distribucijama (nazivi distribucija navedeni su u okruglim zagradama). Procijenite koliko različito ovaj DM može izgledati zahvaljujući radu dizajnera različitih distribucija.





Osnovno u toj raznolikosti je da se jasno vidi da postoji aplikacija koja je odgovorna za pokretanje grafičkog sadržaja i omogućavanje korisniku pristup toj grafici, a postoje različite implementacije te aplikacije, koje se razlikuju izgledom i pomalo funkcionalnošću (izbor okruženja, izbor korisnika, verzija za slabovidne korisnike, mogućnost udaljenog pristupa putem protokola ).
Display Server
Display Server je temelj grafike, čija je osnovna zadaća raditi s grafičkom karticom, monitorom i raznim ulaznim uređajima (tipkovnica, miš, touchpad). Drugim riječima, aplikaciji (npr. pregledniku ili uređivaču teksta) koja se prikazuje u 'grafici', nije potrebno znati kako izravno raditi s uređajima, niti je potrebno poznavanje drajvera. Sve to preuzima X Window.
Kada se govori o Display Serveru, dugi niz godina u Linuxu, a i u Unixu, podrazumijevalo se aplikaciju ili pojednostavljeno X (Iksevi).
Danas se u mnogim distribucijama umjesto X-a uvode .
Također možete pročitati:
- ,
- ,
- (potrebni za udaljeno pokretanje grafičkih aplikacija, na primjer koristeći PuTTY).
Za početak pokrenut ćemo X-ove i nekoliko grafičkih aplikacija u njima.
Praktikum 'pokretanje X-a i aplikacija u njemu'
Sve ću izvesti kao nedavno stvoreni korisnik webinaruser (lakše, ali ne sigurnije bi bilo sve izvršiti kao root).
- Budući da X-ima treba pristup uređajima, dajem pristup: Popis uređaja odredio sam gledajući greške prilikom pokretanja X-ova u logu (/home/webinaruser/.local/share/xorg/Xorg.77.log)
% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*
- Nakon toga pokrećem X-ove:
% X -retro :77 vt8 &
Opcije: * -retro — pokreće s "sivom" klasičnom pozadinom, a ne crnom kao po zadanju; * :77 — postavljam (može bilo koji u razumnom rasponu, samo :0 je već vjerojatno zauzet za već pokrenutu grafiku) broj ekrana, stvarni jedinstveni identifikator po kojem se mogu razlikovati nekoliko pokrenutih X’ova; * vt8 — označava terminal, ovdje /dev/tty8, na kojem će se prikazivati X’ovi).
- Pokrećemo grafičku aplikaciju:
Za to unaprijed postavljamo varijablu koja će aplikaciji omogućiti da razumije u koje od pokrenutih X’ova šalje ono što treba nacrtati:
% export DISPLAY=":77"
Popis pokrenutih X’ova možemo vidjeti ovako:
ps -fwwC X
Nakon što smo postavili varijablu, možemo pokretati aplikacije u naše X’ove — na primjer, pokrećem sat:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &

Glavne ideje i zaključci iz ovog fragmenta:
- X’ima je potreban pristup uređajima: terminalu, grafičkoj kartici, uređajima za unos,
- Sami X’ovi ne prikazuju nikakve elemente sučelja — to je siva (ako je s opcijom "—retro") ili crna površina određenih dimenzija (npr. 1920×1080 ili 1024×768) koja omogućava pokretanje grafičkih aplikacija.
- Po kretanju "kursor" vidljivo je da X’ovi prate položaje miša i proslijeđuju te informacije aplikacijama koje su pokrenute u njima.
- Također, X’ovi prate pritiske tipki na tipkovnici i proslijeđuju te informacije aplikacijama.
- Varijabla DISPLAY označava grafičkim aplikacijama u kojem ekranu (svaki X’ovi se prilikom pokretanja pokreću s jedinstvenim brojem ekrana), a time i u koje od pokrenutih na mojem računalu, treba nacrtati X’ove. (Također postoji mogućnost u ovoj varijabli navesti udaljeni stroj i slati prikaz na X’ove pokrenute na drugom stroju u mreži.) Budući da su X’ovi pokrenuti bez opcije -auth, nema potrebe za razmatranjem varijable XAUTHORITY ili za komandama xhost.
- Grafičke aplikacije (ili kako ih nazivaju X-klijenti) se prikazuju u X’ovima — pri čemu bez mogućnosti pomicanja/zatvaranja/ulaganja promjena „-g (Širina)x(Visina)+(PomakOdLijevogRuba)+(PomakOdGornjegRuba)”. Sa znakom „minus” odgovarajuće od desnog i donjeg ruba.
- Dva pojma koja treba spomenuti su X-server (tako nazivamo X-ove) i X-klijenti (tako nazivamo svaku grafičku aplikaciju koja se pokreće u X-ima). Postoji mala zbrka u razumijevanju ove terminologije, mnogi je shvaćaju točno obrnuto. Kada se s 'klijentskog računala' (u terminologiji daljinskog pristupa) povezujem na 'server' (u terminologiji daljinskog pristupa) kako bih prikazao grafičku aplikaciju sa servera na svom monitoru, tada se X-server pokreće na onom računalu gdje je monitor (odnosno na 'klijentskom računalu', a ne na 'serveru'), dok se X-klijenti pokreću i rade na 'serveru', iako se prikazuju na monitoru 'klijentskog računala'.

Komponente DE
Dalje ćemo razraditi komponente koje obično čine radnu površinu.
Komponente DE: tipka 'Start' i 'Traka zadataka'
Počet ćemo s takozvanom tipkom 'Start'. Često je to zasebni aplikativ koji se koristi na 'Traci zadataka'. Obično tu postoji i aplikacija za prebacivanje između otvorenih aplikacija.

Gledajući različita radna okruženja, sažeo bih slične aplikacije pod zajedničkim nazivom 'Apps Manager (Launcher/Switcher)', odnosno alat za upravljanje aplikacijama (pokretanje i prebacivanje između otvorenih), a također ću navesti alate koji su primjer aplikacije ovog tipa.
- Dolazi u obliku tipke 'Start' na klasičnoj 'Traci zadataka' (duž cijele jedne strane ekrana):
○ xfce4-panel,
○ mate-panel/gnome-panel,
○ vala-panel,
○ tint2. - Također se mogu posebno istaknuti 'MacOS-slične trake zadataka' (ne duž cijele strane ekrana), iako mnoge trake zadataka mogu prikazivati oba varijante. Ovdje je glavno razlikovanje čisto vizualno — prisutnost 'efekta povećanja ikona pri prelaženju mišem'.
○ docky,
○ latte-dock,
○ cairo-dock,
○ plank. - I/ili servisi koji pokreću aplikacije pritiskom na 'prečace' (u mnogim radnim okruženjima slična komponente obavezno postoji i omogućuje podešavanje vlastitih prečaca):
○ sxhkd.
- Također postoje različiti meni-slični 'laucher-i' (od eng. Launch (pokretati)):
○ dmenu-run,
○ rofi -show drun,
○ albert,
○ grun.

Komponente DE: WM (Upravitelj prozora)
WM (Upravitelj prozora) — aplikacija koja odgovara za upravljanje prozorima, dodaje mogućnost:
- premještanje prozora po radnoj površini (uključujući standardno držanje tipke Alt dok se povlači bilo koja dio prozora, a ne samo naslov);
- promjena veličine prozora, na primjer, povlačenjem za 'okvir prozora';
- dodaje 'naslov (title)' i gumbe za minimiziranje/maximiziranje/zatvaranje aplikacije u sučelje prozora;
- pojma koji se odnosi na to koja aplikacija je 'u fokusu'.

Navest ću najpoznatije (u zagradama navodim koji DE se koristi po defaultu):
- (GNOME3),
- (Mate),
- (GNOME2),
- (Cinnamon),
- (KDE),
- (XFCE),
- .

Također ću navesti 'stare WM s elementima DE'. Odnosno, osim upravitelja prozora, sadrže elemente poput gumba 'Start' i 'Taskbar', koji su više karakteristični za cjelovite DE. Iako, kakvi su to 'stari', kad su i IceWM i WindowMaker već objavili svoje ažurirane verzije 2020. godine. Stoga bi bilo ispravnije reći 'stariji', a ne 'stari':
- ,
- ,
- , , , ,
- …





Osim 'klasičnih' ('steka upravitelja prozora'), vrijedi posebno istaknuti , koji omogućuje raspoređivanje prozora 'krovovima' po cijelom ekranu, kao i za neke aplikacije zaseban radni prostor za svaku pokrenutu aplikaciju na cijelom ekranu. To je malo neobično za ljude koji to ranije nisu koristili, ali s obzirom na to da ja osobno koristim takvo sučelje već dugo, mogu reći da je to prilično praktično i brzo se naviknete na takvo sučelje, nakon čega 'klasični' upravitelji prozora ne izgledaju kao udobni.
- ,
- ,
- ,
- ,
- ,
- qtile,
- bspwm,
- herbstluftwm,
- …
- twin,
- .

Također se vrijedi posebno spomenuti projekt i pojam 'kompozitni upravitelj prozora', koji koristi mogućnosti hardverskog ubrzanja za prikaz transparentnosti, sjena i raznih trodimenzionalnih efekata. Prije otprilike 10 godina bio je bum 3D efekata na Linux desktopima. Sada mnogi od upravitelja prozora koji su ugrađeni u DE djelomično koriste kompozitne mogućnosti. Nedavno je pojavio — proizvod s sličnom funkcionalnosti Compiza pod Wayland.

Detaljan popis različitih upravitelja prozora također se može vidjeti u .
Komponente DE: ostale
Također vrijedi spomenuti sljedeće komponente radne površine (ovdje koristim engleske ustaljene termine za opis varijante aplikacije — to nisu nazivi samih aplikacija):
- Applet (Aplet):
- PO (Widget toolkit) — često se zajedno s okruženjem isporučuje neki "minimalni set" softvera:
DE (Desktop Environment)
Od navedenih komponenti dobiva se takozvano "Okruženje za radnu površinu". Često se svi njezini sastavni dijelovi razvijaju koristeći iste grafičke biblioteke i koristeći iste principe dizajna. Time se, barem, očuva zajednički stil u izgledu aplikacija.
Ovdje se mogu izdvojiti sljedeća postojeća okruženja radne površine:
Najčešće korišteni su GNOME i KDE, a s njima se približava i XFCE.

Usporedbu prema raznim parametrima u obliku tablice možete pogledati u odgovarajućem .
Raznolikost DE

Postoje čak i zanimljivi primjeri iz povijesti: od 2003. do 2007. godine za Linux je razvijeno "3D-uređenje radne površine" pod nazivom "Project Looking Glass" od tvrtke Sun. Osobno sam koristio ovu radnu površinu, točnije "igrao se", jer je bilo teško koristiti je. To "3D-uređenje" pisano je u Javi u vrijeme kada nije bilo grafičkih kartica koje podržavaju 3D. Stoga su svi efekti preračunavani procesorom, i računalo je moralo biti vrlo snažno, inače bi sve radilo sporo. No izgledalo je lijepo. Trokutasti paneli aplikacija mogli su se okretati/raspoređivati. Moglo se vrtjeti u cilindru radne površine s pozadinom iz panorame od 360 stupnjeva. Imalo je nekoliko lijepih aplikacija: na primjer, slušanje glazbe u obliku "mijenjanja CD-a" itd. O tome projektu možete pogledati na YouTubeu, samo je kvaliteta tih videa vjerojatno loša, jer u to vrijeme nije bilo mogućnosti učitati video visoke kvalitete. Lagana radna površina. Postoji projekt već dugo, od 1996. godine. U posljednjim godinama stekao je veliku popularnost, u suprotnosti s težim KDE i GNOME, koja zahtijevaju 'lagano' i 'klasično' sučelje radne površine. Ima mnogo opcija i veliki broj vlastitih programa: terminal (xfce4-terminal), upravitelj datoteka (thunar), preglednik slika (ristretto), i uređivač teksta (mousepad).

Pantheon

Koristi se u distribuciji „Elementary OS“. Može se reći da postoje „radne površine“ koje se razvijaju i koriste unutar jednog specifičnog distribucije i zapravo se ne koriste (ako ne kažemo „uopće se ne koriste“) u drugim distribucijama. U svakom slučaju, još nisu stekle popularnost i nisu uvjerile širu javnost u prednosti svog pristupa. Pantheon ima za cilj izgraditi sučelje koje nalikuje macOS-u.

Varijanta s dock-panelom:

Snažan naglasak na grafičke efekte i widgete (još od vremena kada druge radne sredine nisu imale widgete na radnoj površini, na primjer, kalendar/sat). Koristi svoje biblioteke. Ima veliki skup vlastitih „lijepih“ aplikacija: terminal (Terminology), video igrač (Rage), preglednik slika (Ephoto).

To je fork Enlightenment17, koji se koristi u distribuciji BodhiLinux.

Izvorno „klasično“ sučelje radne površine, stvoreno kao kontrast KDE-u, koji je napisan na QT biblioteci, u to vrijeme distribuira se pod licencom koja nije bila previše pogodna za komercijalne distribucije.

Od treće verzije GNOME dolazi s GNOME Shell okolinom, koja ima „neklasičan izgled“, što se nije svidjelo svim korisnicima (svakakva iznenada velika promjena u sučeljima korisnici teško prihvaćaju). Kao posljedica toga pojavili su se fork projekti koji nastavljaju razvoj ovog radnog stola u „klasičnom“ stilu: MATE i Cinnamon. Koristi se kao zadano u mnogim komercijalnim distribucijama. Ima veliku količinu postavki i vlastitih aplikacija.

Pojavila se na osnovu GNOME2 i nastavlja razvoj ovog okruženja. Ima veliku količinu postavki i fork aplikacija koje su se koristile još u GNOME2 (koriste se nova imena) kako bi se izbjegla zabuna između forka i njihovih novih verzija za GNOME3).

Fork GNOME Shell, koji korisnicima nudi sučelje u „klasičnom“ stilu (kao što je to bilo u GNOME2).
Ima veliku količinu postavki i iste aplikacije kao i za GNOME Shell.

Fork GNOME u „klasičnom“ stilu, koji se razvijao unutar distribucije Solus, ali se sada također isporučuje kao samostalna radna površina u raznim drugim distribucijama.

(ili, kako ga često nazivaju, jednostavno KDE)
Okruženje radne površine, koje se razvija unutar KDE projekta.
Ima ogroman broj postavki dostupnih običnom korisniku iz grafičkog sučelja i mnogo grafičkih aplikacija razvijenih u okviru ovog radnog stola.

Godine 2008. KDE je izdao svoju novu implementaciju KDE Plasma (snažno je prepisan motor radnog stola). Kao i kod GNOME/MATE, to se nije svidjelo svim obožavateljima KDE-a. Kao rezultat toga, nastao je fork projekta koji nastavlja razvoj prethodne verzije pod nazivom TDE (Trinity Desktop Environment).

Jedno od novih radnih okruženja, napisano koristeći Qt (na kojem je napisan KDE). Ima mnogo postavki i dovoljno je lijepo (iako je to subjektivna stvar) i dobro razrađeno sučelje. Razvijeno je u okviru distribucije Deepin Linux. Također postoje paketi za druge distribucije.

Fly
Primjer radnog okruženja koje je napisano koristeći Qt. Razvija se u okviru distribucije Astra Linux.

Lagano radno okruženje. Kao i nekoliko prethodnih primjera, napisano je koristeći Qt. U srži je nastavak projekta LXDE i rezultat spajanja s projektom Razor-qt.
Kao što vidite, radna površina u Linuxu može izgledati vrlo različito i postoji sučelje koje odgovara svakom ukusu: od vrlo lijepih s 3D efektima do minimalističkih, od 'klasičnih' do neobičnih, od onih koji aktivno koriste resurse sustava do laganih, od velikih ekrana do tableta/smartfona.
Nadam se da sam uspio dati dojam o tome od kojih osnovnih komponenti se sastoji grafika i radna površina u Linux OS-u.
Materijal za ovaj članak testiran je u srpnju 2020. na webinaru. Možete ga pogledati. .
Na tome je sve. Nadam se da je bilo korisno. Ako imate pitanja ili komentare, pišite. Bit ću sretan da odgovorim. I dođite učiti u !
Izvor: habr.com
