ProHoster > блог > адміністраванне > Як уладкована графіка ў Linux: агляд розных асяроддзяў афармлення працоўнага стала
Як уладкована графіка ў Linux: агляд розных асяроддзяў афармлення працоўнага стала
Гэты артыкул аб тым, як уладкованая графіка ў Linux і з якіх кампанентаў яна складаецца. У ёй шмат скрыншотаў з рознымі рэалізацыямі асяроддзяў працоўных сталоў.
Калі вы не моцна адрозніваеце KDE і GNOME або адрозніваеце, але жадалі б пазнаць, якія яшчэ ёсць альтэрнатывы, то гэты артыкул для вас. Яна аглядная, і хоць у ёй шмат назоваў і трохі тэрмінаў, матэрыял будзе таксама карысны пачаткоўцам і толькі якія пазіраюць у бок Linux.
Тэма можа зацікавіць і прасунутых карыстальнікаў пры наладзе выдаленага доступу і пры рэалізацыі тонкага кліента. Часта сустракаю суцэль мацёрых лінуксойдаў са сцвярджэннямі «на серверы толькі камандны радок, і графіку падрабязней вывучаць не планую, бо гэта ўсё трэба для простых карыстачоў». Але нават знаўцы Linux з вялікім здзіўленнем і радасцю адчыняюць для сябе опцыю "-X" у каманды ssh (а для гэтага карысна разумець працу і функцыі X-сервера).
Крыніца
Я амаль 15 гадоў навучаю на курсах Linux уСеткавай Акадэміі шчокі» і ўпэўнены, што многія з тых больш за пяць тысяч чалавек, якіх навучыў, чытаюць і напэўна пішуць артыкулы на Хабр. Курсы заўсёды вельмі насычаныя (сярэдняя працягласць курса - пяць дзён), трэба распавесці тэмы, на паўнавартаснае знаёмства з якімі патрабуецца мінімум дзён дзесяць. І заўсёды падчас курсу ў залежнасці ад аўдыторыі (навічкі сабраліся ці мацёрыя адміністратары), а таксама ад «пытанняў з залы» я раблю выбар, што данесці падрабязней, а што — больш павярхоўна, каб прысвяціць больш часу ўтылітам каманднага радка і іх практычнаму прымяненню . Такіх тэм, якімі даводзіцца крыху ахвяраваць, дастаткова. Гэта «Гісторыя Linux», «Адрозненні ў дыстрыбутывах Linux», «Пра ліцэнзіі: GPL, BSD, …», «Пра графіку і асяроддзі працоўных сталоў» (тэма гэтага артыкула) і інш. Не тое, каб яны не важныя, але звычайна ёсць мноства больш актуальных «тут і цяпер» пытанняў і ўсяго нейкіх пяць дзён… Аднак для агульнага разумення асноў АС Linux, разумення даступнай разнастайнасці (каб нават карыстаючыся адным пэўным дыстрыбутывам Linux, усёткі мець шырэйшы погляд на ўвесь гэты велізарны і неабсяжны свет, што завецца "Linux") вывучаць гэтыя тэмы карысна і трэба.
Па ходзе артыкула па кожным кампаненце я паказваю спасылкі для тых, каму захочацца глыбей пагрузіцца ў тэму, напрыклад, на артыкулы ў Вікіпедыі (пры гэтым паказваю на больш поўную/карысную версію пры наяўнасці англамоўнай і рускамоўнай артыкулаў).
Для асноўных прыкладаў і скрыншотаў я выкарыстоўваў дыстрыбутыў openSUSE. Можна было выкарыстоўваць любы іншы дыстрыбутыў, які распрацоўваецца супольнасцю, з наяўнасцю вялікай колькасці пакетаў у рэпазітары. Складана, але магчыма, прадэманстраваць разнастайнасць афармлення працоўнага стала на камерцыйным дыстрыбутыве, бо часта ў іх выкарыстоўваюцца толькі адна ці дзве найболей вядомых асяроддзяў працоўнага стала. Так распрацоўшчыкі звужаюць сабе задачу выпуску стабільнай адладжанай АС. На дадзеную ж сістэму я ўсталяваў усе DM/DE/WM (тлумачэнне гэтых тэрмінаў ніжэй), якія знайшоў у рэпазітары.
Скрыншоты з «сінімі рамкамі» як раз і зроблены на openSUSE.
Скрыншоты з «белымі рамкамі» рабіў на іншых дыстрыбутывах, яны пазначаны на скрыншоце.
Скрыншоты з "шэрымі рамкамі" былі ўзятыя з інтэрнэту, у якасці прыкладаў афармленняў працоўнага стала з мінулых гадоў.
Такім чынам, пачнем.
Асноўныя кампаненты, з якіх складаецца графіка
Вылучу тры асноўныя кампаненты і пералічу іх у парадку, як яны запускаюцца пры старце сістэмы:
DM (Display Manager);
Display Server;
DE (Desktop Environment).
Дадаткова ў якасці важных падпунктаў у Desktop Environment:
Apps Manager/Launcher/Switcher (кнопка "Пуск");
WM (Window Manager);
рознае ПЗ, якое пастаўляецца разам з асяроддзем працоўнага стала.
Больш падрабязна па кожным пункце.
DM (Display Manager)
Першае прыкладанне, якое запускаецца пры старце «графікі», – гэта DM (Display Manager), дысплейны менеджэр. Яго асноўныя задачы:
спытаць, якіх карыстальнікаў пусціць у сістэму, запытаць аўтэнтыфікацыйныя дадзеныя (пароль, адбітак пальца);
абраць, якое асяроддзе афармлення працоўнага стала запусціць.
На бягучы момант у розных дыстрыбутывах шырока выкарыстоўваюцца:
Таксама можна згадаць Fly-DM (выкарыстоўваны ў AstraLinux).
Спіс існуючых DM вядзецца ў актуальным стане ў Wiki-артыкул.
Варта адзначыць, што на наступных скрыншотах выкарыстоўваецца адзін і той жа дысплейны менеджэр LightDM, але ў розных дыстрыбутывах (назвы дыстрыбутываў пазначаны ў круглых дужках). Ацэніце, наколькі па-рознаму можа выглядаць гэты DM дзякуючы працы дызайнераў розных дыстрыбутываў.
Галоўнае ў гэтай разнастайнасці, каб было зразумела, што ёсць такое прыкладанне, якое адказвае за запуск графікі і допуск карыстальніка да гэтай графіцы, і ёсць розныя рэалізацыі гэтага прыкладання, якія адрозніваюцца знешнім выглядам і крыху функцыяналам (выбар асяроддзяў афармлення, выбар карыстальнікаў, версія для дрэнна якія бачаць карыстальнікаў, наяўнасць магчымасці выдаленага доступу па пратаколе XDMCP).
Display Server
Display Server – гэта нейкі падмурак графікі, асноўная задача якога – працаваць з відэакартай, маніторам і з рознымі прыладамі ўводу (клавіятура, мыш, тачпады). Гэта значыць з дадаткам (напрыклад, браўзэр або тэкставы рэдактар), якое адмалёўваецца ў «графіцы», не трэба ведаць, як наўпрост працаваць з прыладамі, не трэба ведаць пра драйверы. Гэта ўсё на сябе бярэ X Window.
Калі гаворыцца пра Display Server, то шмат гадоў у Linux, ды і ў Unix мелася на ўвазе прыкладанне X Аконная сістэма ці ў просты люд X (Іксы).
Цяпер у шматлікіх дыстрыбутывах на змену X укараняюць Wayland.
Х'ы пад АС Windows (патрэбныя для выдаленага запуску графічных прыкладанняў, напрыклад выкарыстоўваючы PuTTY).
Для пачатку запусцім X'ы і некалькі графічных прыкладанняў у іх.
Практыкум «запускаем Х і прыкладанні ў ім»
Выконваць усё буду ад свежастворанага карыстача webinaruser (прасцей, але не бяспечней было б усё выканаць ад root'а).
Так як Х'ам патрэбен доступ да прылад, даю доступ: Спіс прылад вызначыў паглядзеўшы памылкі пры запуску Х'аў у логу (/home/webinaruser/.local/share/xorg/Xorg.77.log)
Опцыі: * -retro - запускаюць з "шэрым" класічным фонам, а не з чорным як па змаўчанні; * :77 - задаю (можна любы ў разумным дыяпазоне, толькі :0 ужо хутчэй за ўсё заняты пад ужо запушчаную графіку) нумар экрана, фактычны нейкі ўнікальны ідэнтыфікатар, па якім можна будзе адрозніваць некалькі запушчаных X'ов; * vt8 - паказвае тэрмінал, тут /dev/tty8, на якім будуць адлюстроўвацца X'ы).
Запускаем графічны дадатак:
Для гэтага папярэдне задаём зменную, па якой прыкладанне будзе разумець, у якія з запушчаных у мяне X'ов адсылаць тое, што трэба намаляваць:
% export DISPLAY=":77"
Паглядзець спіс запушчаных X'аў можна так:
ps -fwwC X
Пасля таго, як задалі зменную, можна запускаць прыкладанні ў нашы X'ы - напрыклад, запускаю гадзіны:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
Асноўныя ідэі і высновы з гэтага фрагмента:
X'ам патрабуецца доступ да прылад: тэрміналу, відэакарце, прыладам уводу,
Самі X'ы ніякіх элементаў інтэрфейсу не адлюстроўваюць – гэта шэрае (калі з опцыяй "retro") або чорнае палатно вызначаных памераў (напрыклад, 1920×1080 або 1024×768), каб запускаць у ім графічныя прыкладанні.
Па руху «крыжыка» відаць, што X'ы адсочваюць становішчы мышы і перадаюць гэтую інфармацыю запушчаным у ім прыкладанням.
Таксама X'ы адлоўліваюць націскі клавіш на клавіятуры і перадаюць гэтую інфармацыю прыкладанням.
Пераменная DISPLAY паказвае графічным прыкладанням, у якім экране (кожныя X'ы пры запуску запускаюцца з унікальным нумарам экрана), а такім чынам і ў якія з запушчаных на маёй машыне, трэба будзе маляваць X'ы. (Таксама ёсць магчымасць у гэтай зменнай паказаць выдаленую машыну і адсылаць выснову на X'ы, запушчаныя на іншай машыне ў сетцы.) Бо X'ы запускалі без опцыі -auth, таму няма неабходнасці разбірацца з зменнай XAUTHORITY або з камандай xhost.
Графічныя прыкладанні (ці як іх завуць X-кліенты) адмалёўваюцца ў X'ах - пры гэтым без магчымасці іх перамяшчаць/зачыняць/змяніць «-g (Шырыня)x(Вышыня)+(ЗрухАдЛевагаКрая)+(ЗрухАдВехнягаКраю)». Са знакам "мінус" адпаведна ад правага і ад ніжняга краю.
Два тэрміны, якія варта агучыць: X-сервер (так завуць X'ы) і X-кліенты (так завуць любое графічнае прыкладанне, якое запускаецца ў X'ах). Ёсць невялікая блытаніна ў разуменні гэтай тэрміналогіі, шмат хто разумее яе ў дакладнасці да наадварот. У выпадку, калі я з "кліенцкай машыны" (у тэрміналогіі выдаленага доступу) падлучаюся да "серверу" (у тэрміналогіі выдаленага доступу), каб адлюстраваць на сваім маніторы графічнае прыкладанне з сервера, то X-сервер запускаецца на той машыне, дзе манітор ( гэта значыць на "кліенцкай машыне", а не на "серверы"), а X-кліенты запускаюцца і працуюць на "серверы", хоць і адлюстроўваюцца на маніторы "кліенцкай машыны".
Кампаненты DE
Далей разбяром кампаненты, з якіх звычайна складаецца працоўны стол.
Кампаненты DE: кнопка "Пуск" і "Панэль задач"
Пачнём з так званай кнопкі «Пуск». Часта гэта асобны аплет, які выкарыстоўваецца на «Панэлі задач». Таксама там звычайна маецца аплет для пераключэння паміж запушчанымі праграмамі.
Паглядзеўшы на розныя асяроддзі працоўных сталоў, я абагульніў бы падобныя прыкладанні пад агульнай назвай «Apps Manager (Launcher/Switcher)», гэта значыць прылада для кіравання прыкладаннямі (запуску і пераключэннем паміж запушчанымі), а таксама пакажу ўтыліты, якія з'яўляюцца прыкладам прыкладання дадзенага тыпу .
Бывае ў выглядзе кнопкі "Пуск" на класічнай (ва ўсю даўжыню аднаго з краёў экрана) "Панэлі задач":
Таксама можна асобна вылучыць "MacOS-вобразныя панэлі задач" (не на ўсю даўжыню краю экрана), хоць шматлікія панэлі задач могуць адлюстроўвацца ў абодвух варыянтах. Тут хутчэй галоўнае адрозненне чыста візуальнае - наяўнасць "эфекту павелічэння піктаграм пры навядзенні".
○ docky,
○ latte-dock,
○ cairo-dock,
○ plank.
І/Або службы, якая запускае прыкладанні пры націску «гарачых клавіш» (у шматлікіх асяроддзях працоўнага стала аналагічны кампанент абавязкова прысутнічае і дазваляе наладзіць свае ўласныя гарачыя клавішы):
○ sxhkd.
Таксама маюцца розныя меню-вобразныя «лаўнчары» (ад англ.: Launch (запускаць)):
Таксама пералічу "старыя WM з элементамі DE". Г.зн. акрамя аконнага мэнэджара ў іх маюцца элементы тыпу кнопкі "Пуск" і "Панэлі задач", больш уласцівыя паўнавартасным DE. Хаця якія яны «старыя», калі і IceWM, і WindowMaker ужо выпусцілі свае абноўленыя версіі ў 2020 годзе. Атрымліваецца, што карэктней не "старыя", а "старажылы":
Акрамя «класічных» («стэкавых аконных мэнэджараў») варта асобна адзначыць тайлавыя WM, якія дазваляе размяшчаць вокны «чарапіцай» па ўсім экране, а таксама для некаторых прыкладанняў асобны працоўны стол для кожнага запускаецца прыкладання на ўвесь экран. Гэта крыху не звыкла для людзей, якія раней іх не выкарыстоўвалі, але бо я сам досыць даўно выкарыстоўваю такі інтэрфейс, магу сказаць, што гэта цалкам зручна і хутка абвыкаеш да такога інтэрфейсу, пасля чаго ўжо «класічныя» аконныя менеджэры не здаюцца зручнымі.
Таксама варта асобна згадаць праект Compiz і такое паняцце, як "Кампазітны менеджэр вокнаў", які выкарыстоўвае магчымасці апаратнага паскарэння для адлюстравання празрыстасці, ценяў, розных трохмерных эфектаў. Каля 10 гадоў таму быў бум 3D-эфектаў на Linux-дэсктопах. Цяпер шматлікія з аконных мэнэджараў, убудаваных у DE, часткова выкарыстоўваюць кампазітныя магчымасці. Нядаўна з'явіўся Шляховы агонь - Прадукт з аналагічным Compiz функцыяналам пад Wayland.
Падрабязны спіс розных аконных менеджэраў таксама можна паглядзець у артыкуле-параўнанні.
Кампаненты DE: астатнія
Таксама варта адзначыць наступныя кампаненты працоўнага стала (тут выкарыстоўваю ангельскія ўстояныя тэрміны для апісання разнавіднасці прыкладання - гэта не назвы саміх прыкладанняў):
Applets(Аплеты):
ПА (Widget toolkit) - часта з асяроддзем пастаўляецца нейкі "мінімальны набор" ПА:
З пералічаных вышэй кампанентаў атрымліваецца так званая "Асяроддзе афармлення працоўнага стала". Часта ўсе яе кампаненты распрацоўваюцца з выкарыстаннем адных і тых жа графічных бібліятэк і з выкарыстаннем аднолькавых прынцыпаў афармлення. Тым самым, прынамсі, вытрымоўваецца агульны стыль для вонкавага выгляду прыкладанняў.
Тут можна вылучыць наступныя існуючыя на дадзены момант асяроддзя працоўнага стала:
Нават ёсць такія цікавыя прыклады ўжо з гісторыі: у 2003-2007 гадах для Linux было зроблена "3D-афармленне працоўнага стала" з назвай "Project Looking Glass" ад фірмы Sun. Я сам карыстаўся гэтым працоўным сталом, дакладней "гуляўся", бо карыстацца было цяжка. Гэта "3D-афармленне" было напісана на Java у часы, калі не было яшчэ відэакартай з падтрымкай 3D. Таму ўсе эфекты пералічваліся працэсарам, і кампутар павінен быў быць вельмі магутным, інакш усё працавала павольна. Але затое атрымлівалася прыгожа. Трохмерныя плашчакі прыкладанняў можна было паварочваць/разгортваць. Можна было паварочвацца ў цыліндры працоўнага стала са шпалерамі з панарамы ў 360 градусаў. Было некалькі сваіх прыгожых прыкладанняў: напрыклад, праслухоўванне музыкі ў выглядзе "змены CD-дыскаў" і г. д. Можна на youtube паглядзець відэа пра гэты праект, толькі якасць гэтых відэа хутчэй за ўсё будзе дрэннай, бо ў тыя гады не было магчымасці загрузіць відэа высокай якасці.
Лёгкаважкі працоўны стол. Існуе праект дастаткова даўно, з 1996 года. У апошнія гады досыць папулярны, у процівагу цяжэйшым KDE і GNOME, на шматлікіх дыстрыбутывах якім патрабуецца лёгкі і "класічны" інтэрфейс працоўнага стала. У ім маецца шмат налад і вялікая колькасць сваіх праграм: тэрмінал (xfce4-terminal), файлавы мэнэджар (thunar), прагляднік малюнкаў (ristretto), тэкставы рэдактар (mousepad).
Выкарыстоўваецца ў дыстрыбутыве "Elementary OS". Тут можна сказаць, што ёсць "працоўныя сталы", якія распрацоўваюцца і выкарыстоўваюцца ў рамках аднаго асобнага дыстрыбутыва і не моцна выкарыстоўваюцца (калі не сказаць "зусім не выкарыстоўваюцца") у іншых дыстрыбутывах. Прынамсі яны пакуль не набралі папулярнасць і не пераканалі большую частку аўдыторыі ў перавагах свайго падыходу. Pantheon ставіць перад сабой задачу пабудаваць інтэрфейс, падобны да macOS.
Моцны ўхіл у графічныя эфекты і фішкі (яшчэ з часоў, калі іншыя працоўныя асяроддзі не мелі фішкі на працоўным стале, напрыклад, каляндар/гадзіны). Выкарыстоўвае свае бібліятэкі. Маецца вялікі набор сваіх "прыгожых" прыкладанняў: тэрмінал (Terminology), відэаплэер (Rage), прагляд карцінак (Ephoto).
Першапачаткова "класічны" інтэрфейс працоўнага стала, створаны ў процівагу KDE, які быў напісаны на бібліятэцы QT, на той момант які распаўсюджваецца па ліцэнзіі, не вельмі зручнай для камерцыйных дыстрыбутываў.
З трэцяй версіі GNOME стаў пастаўляцца з абалонкай GNOME Shell, мелай «некласічны выгляд», што спадабалася не ўсім карыстачам (любыя рэзкія змены ў інтэрфейсах карыстачамі складана прымаюцца). Як следства з'яўленне форк-праектаў, якія працягваюць развіццё гэтага працоўнага стала ў класічным стылі: MATE і Cinnamon. Выкарыстоўваецца па змаўчанні ў многіх камерцыйных дыстрыбутывах. Мае вялікую колькасць налад і сваіх прыкладанняў.
З'явілася на аснове GNOME2 і працягвае развіццё гэтага асяроддзя афармлення. Мае вялікую колькасць налад і форкаў прыкладанняў, якія выкарыстоўваліся яшчэ ў GNOME2 (ужываюцца новыя імёны) для таго, каб не блытаць форкі з іх новай версіяй для GNOME3).
Форк GNOME у класічным стылі, які развіваўся ў рамках дыстрыбутыва Solus, але цяпер таксама пастаўляецца ў рамках самастойнага працоўнага стала на розных іншых дыстрыбутывах.
Асяроддзе працоўнага стала, якая развіваецца ў рамках праекту KDE.
Мае велізарную колькасць налад, даступных простаму карыстачу з графічнага інтэрфейсу і шмат графічных прыкладанняў, якія развіваюцца ў рамках гэтага працоўнага стала.
У 2008 году KDE выпусціла сваю новую рэалізацыю KDE Plasma (быў моцна перапісаны рухавічок працоўнага стала). Таксама, як і з GNOME/MATE, не ўсім фанатам KDE гэта спадабалася. У выніку з'явіўся форк праекту, які працягвае развіццё папярэдняй версіі, пад назвай TDE (Trinity Desktop Environment).
Адно з новых асяроддзяў працоўнага стала, напісаная з выкарыстаннем Qt (на якім напісаны KDE). Мае шмат налад і досыць прыгожы (хоць гэтае суб'ектыўнае паняцце) і прапрацаваны інтэрфейс. Распрацоўваецца ў рамках дыстрыбутыва Deepin Linux. Таксама ёсць пакеты пад іншыя дыстрыбутывы
Лётаць
Прыклад асяроддзя працоўнага стала, напісанай з выкарыстаннем Qt. Распрацоўваецца ў рамках дыстрыбутыва Astra Linux.
Лёгкаважкае асяроддзе працоўнага стала. Як і некалькі папярэдніх прыкладаў, напісана з выкарыстаннем Qt. Фактычна з'яўляецца працягам праекту LXDE і вынікам аб'яднання з праектам Razor-qt.
Як бачыце, працоўны стол у Linux можа выглядаць вельмі па-рознаму і на густ любога тут знойдзецца падыходны інтэрфейс: ад вельмі прыгожых і з 3D-эфектамі да мінімалістычных, ад "класічных" да незвычайных, ад актыўна выкарыстоўвалых рэсурсы сістэмы да легкаважных, ад вялікіх экранаў да планшэтаў/смартфонаў.
Ну і жадаецца спадзявацца, што ў мяне атрымалася даць уяўленне пра тое, з якіх асноўных кампанентаў складаецца графіка і працоўны стол у АС Linux.
Матэрыял для гэтага артыкула быў абкатаны ў ліпені 2020 гады на вэбінары. Яго можна паглядзець тут.
На гэтым усё. Спадзяюся, было карысна. Калі ёсць нейкія пытанні і каментары, пішыце. Буду рады адказаць. Ну і прыходзьце вучыцца ў «Сеткавую Акадэмію шчокі»!