Всичко за Enlightenment WM
Реших да направя един гайд за любимия ми Enlightenment WM, понеже много малко хора са чували за него, а може да бъде достоен конкурент на известните DE и WM като KDE, Gnome, XFCE и компания (не на последно място и защото go_fire ми напомни че съм му обещал статия за него
). Надявам се че ще ви хареса и ще ви погъделичка да го пробвате и да видите от първа ръка дали си заслужава.
0. Съдържание- Що е то Enlightenment
- Малко история
- Размерът има значение
- Инсталация
- Описание на модули и джаджи
- Настройки и донастройки
- Краен резултат
- Още информация
1. Що е то Enlightenment, яде ли се, и има ли почва у насEnlightenment, също така познат като Е17/Е18 и т.н. в зависимост от версията, или просто E, е композиращ и стакващ мениджър на прозорци (window manager). Някои го определят само като мениджър на прозорци, други като пълна графична среда (desktop environment), но в случая разликата е доста тънка. Ето какво казват за него разработчиците:
Enlightenment 0.19 (0.17+) (a.k.a E17) е ново поколение графична десктоп обвивка от проектът Enlightenment. Той представлява традиционен UNIX/X11 десктоп, понеже Е се опитва да бъде и е такъв, НО с известно количество камбанки, свирки и иновации, които не съществуват в X11 десктопите. Също така философията за изграждане е коренно различна. Изглежда че има доста голяма мания по дебатите за мениджъри на прозорци (window manager) срещу десктоп среди (desktop environments). Няма голямо значение как го наричате. Той менажира и композира прозорци. Занимава се със файлове. Стартира приложение. Променя настройките на графичния интерфейс и системата.
Казано на по-човешки език, можем да го определим просто като графична среда, алтернатива на популярните KDE, Gnome, XFCE, MATE и компания.
2. Малко история (писана от победителите) и още информация
(с любезното съдействие на генерален спонсор
go_fire)
Вероятно ще се изненадате, но Enlightenment далеч не е млад - даже напротив. Първата версия излиза в началото на 1997, благодарение на Carsten Haitzler (The Rasterman), което го прави съвсем малко по-млад от KDE. Той е първият window manager който позволява слагането на теми. Основната идея е да бъде едновременно мощен и достъпен за конфигуриране, но в същото време и красив и радващ окото - което е и основната му сила.
Трябва да се отбележи че Enlightenment всъщност стъпва върху колекция от библиотеки (Enlightenment Foundation Libraries, или EFL), които са отделни от window manager-a и могат да се ползват и за други цели. Тяхната разработка е спонсорирана от Samsung, ProFUSION и Free.fr, които ги използват в собствените си проекти (например Tizen OS на Samsung)
Еnlightenment произлиза от Fuck Virtual Window Manager. Връзката е много силна и дори, ако не знаете, че Растермaн е бил част от FVWM, то безкрайните паралели веднага се набиват на очи. Е е по-модерният FVWM. Всичко като концепции е наследил от там. FVWM е уникален с това, че е може би единственият проект за прозоръчен управител, оригинален за нашият свят, всичко останало в по-голяма или малка степен е заимствало от някъде.
Може би ще възразите, че това право трябва да бъде дадено на UDE. Не е така, uwm e продължител/надграждане на подразбиращият за XWindow tom's wm. Най-характерната му черта пчелната пита е реплика на pie menu от NeWS, проектирано от големият Дон Хопкинс. Днес е преизползвано за трети път, като влезе и в последната версия на Блендер. Чак е смешно, че написаха описание как се ползва.
Е13-15 набра огромна популярност, защото беше един от управилите на Гном 1. Най-яркият от тях. Донякъде бе засенчен от по-оригиналният Sawfish (от там модата на рибешки имена в Гном), но неизмеримо по-красив и лесен за новаци.
С Е16 настъпи пълна стабилност на кода и общността. Лека, красива, с безкрайни настройки, това беше нейното мото. И точно тогава стана нещо странно. Растермaн реши да започне всичко отначало. Разработката се проточи толкова дълго, че едва ли някой вече помни колко. За първи път започва да споменава за това още '99, а на следващата са вече първите опити по Евас.
През годините има множество прекроявания на основните библиотеки. Едни идват други си отиват. Например edb ще си иде (ще видим защо), ще ни напусне (и той не знае защо ☺) може би най-известната библиотека на проекта — imlib, световен шампион по обработка на jpeg. Поради това, че проекта е писан на C, който е доста скромен и пестелив език, ще се наложи създаването на Eina. През 2006 год. ще се появи Edje. Най-видното отлюспване ще е през 2009-та, когато настъпва зима за проекта и отпадат ЕТК и EWL, двете джаджни библиотеки към проекта. Премахването на ETK (наподобяваща организацията на gimp tool kit) се прие като трагедия. Всичко това беше заради близо едногодишни пламенни проблясъци на тема договори за разпространение, Растерман държи да е в стила на BSD, чиято неангажираност не допада на други участници в проекта. Две години след тези събития Растерман ще вземе в свой ръце проблема с джаджните библиотеки и ще създаде спартанската Elementary.
Както сте забелязали, повечето библиотеки от проекта започват с буквата „е“. Към днешна дата всички библиотеки и почти всички програми свързани с проекта започват с тази буква.
Е има голямо влияние върху свободните среди, въпреки че до неотдавна не бе много известен за по-широката публика. Например по подобие на перлата в короната Evas, Гном правят своят Cairo, а Гимп правят своят митичен The Generic Graphics Library (GEGL), в Гимп всичко е с пълен член
Концепцията на Е (fvwm) цялата среда да е един голям gkrellm е взаимствана от КДЕ в четвъртото му издание, претворена като Плазма/Фотон. ESD пък е причина за aRts и предтеча на pulsaudio, като дълго време е подразбиращ за Гном. Да не се бърка с Джак, в различен клас са.
Е създава и концепцията за обвивката (shell), което не е пълен desktop manager, но не е и само windows manager, най-малко притежава още файлов управител (правещо го пълно подобие на Microsoft Windows 1-3), концепция подета от Гном в третото му прераждане, което пък може да се приеме и като възвръщане към корените му наопаки, вече основата е една, но обвивките много.
Има и влияния в обратна посока, макар по-малко. Например glib става вдъхновение за Eo, което да компенсира още от недостатъците на C, този път като абстракция и обектни разширения.
В днешно време всички оцелели библиотеки от проекта са обединени в един общ пакет, който се казва EFL (библиотеките от просвещенческата фондация), което често създава грешката да се бъркат с elf, с който изпълним формат нямат нищо общо (освен, че не са a.out
). Те са плътно обвързани една с друга и много напомнят в това основата на КДЕ до четвърта версия, когато започва разкачването им, завършило в пет.
Може би сте забелязали, че те са два вида, едните компенсират недостатъците на езика, другите изграждат графичната основа. Evas, както се поизясни по-горе е растерна, графична библиотека тип платно, тя е създадена с цел да е по-добрият Xlib (и неговият наследник XCB, който днес е основа на Xlib, да в X.org всичко е сбъркано). Edje пък както вече се сетихте е по-добрата версия на Xt.
Но Edje съвсем не свършва там, макар точно това да му е целта. В себе си той използва езика за програмиране Pawn (по-познат с предишното си име small). Да това е онзи същият диалект на Ц за вградени системи. Обаче тук целта му е друга. Той трябва да изолира дизайнерите от програмистите и изпълнява задачи традиционно поемани от формати/езици като swf, css, js и psd (или xcf от нашият свят). Той се осигурява от една друга библиотека наречена embrio.
За да е оптимално това e намесен eet, който да го пакетира. Това пакетиране се прави чрез опростени версии на компресията zip и berkeley db. Вече разбирате защо отпада edb. Някъде около 2007 год. всички настройки на E се поемат от нея. Да противно на всеобщата практика, настройките на Е са в двоичен формат.
Може би разказвайки ви за библиотеките от проекта вече видяхте една ясна тенденция. Всичко в проекта се оптимизира за бързина. При всички решения приоритет винаги има производителност. Тя не се жертва на никаква цена. Ако се направи нещо, което да я уврежда, то следващите редакции се правят само и единствено с цел оптимизация, така, че производителността да се върне на старите нива.
Манията по скорост е впечатляваща. Още сега може да видите поразяващите сравнения между EFL и QML или JSON и Eet. Но това никак не е от днес. Мога да ви уверя, че в личният си дневник Растерман с години, години и пак години пише непрестанно подобни сравнения и безспирно прави изпитания.
От всички приказки за растерна графика вече сте разбрали и от къде идва прозвището Растермен. Карстен едва ли не цял живот не говори за нищо друго освен растерна графика, скорост, потребление на памет. Най-вероятно в речника му няма други думи освен тези.
Тези качества на EFL му носят определени успехи. Например първият умнофон (производство на FIC) с ГНУ/Линукс е с нея, по-късно заменена от Qt.
През годините EFL има множество сподвижници сред компаниите. Първият им спонсор е Мандрейк. От там и до днес голямата френска общност зад проекта. Подпомагани са и от бивши величия като недостижимите Xig. Голямо отражение върху проекта има още влизането в него на бразилският внедрител на решения за вградени системи Pro Fusion (днес Интел). Не е сигурно дали, ако не се бяха появили те, проекта щеше да оцелее след голямата поредица лицензионни войни. Те внасят свежа кръв в проекта и изцяло на техният натиск дължим, че света видя е17, е18, е19, скоро и е20, макар може би да не могат да бъдат наречени завършени. Карстен никак не бързаше да издава, но след като дори duke nukem forever се появи, бразилците сметнаха липсата на официална версия за вредно за бизнеса.
Нещо важно се случи и със самият Карстен. Той отиде да работи за Самсунг, което пък насочи проекта към джаджите. Най-популярната джаджа беше с една ОС позната единствено в източна Азия, казваше се Bada, наследството ѝ щеше да бъде приобщено към Tizen. Няколко години това беше единственият (д)ефект за проекта от работата на Карстен. Но за щастие на съдбата наскоро Самсунг влезе в открита конкуренция с Гугъл и отвори широко портфейла за отворени проекти, от което намаза и Е.
Другото им влияние дойде, след като замениха Нокия в многострадалният проект последно преименуван Tizen. Най-вероятно този проект е накарал другият партньор в него Intel да закупи Про Фюжън, пък и вече имат опит в купуването на други звена и производни на Мандрива в Бразилия, сиреч бившата Конектива, която стана техният отдел по водачи на графични ускорители. Отделно, че Интел изостава на вградените системи от електроуреди, през умнофони до автомобили и отчаяно се опитва да навакса изоставането.
3. Размерът има значениеНикъде няма да намерите друг WM или DE които да ви дава такава свобода на конфигуриране - можете да го настроите както ви душа и сърце иска. Ако предпочитате опростен и класически интерфейс, най-вероятно Enlightenment не е за вас, въпреки че може да бъде настроен и така.
Но иначе Enlightenment е малък и бърз. Наистина. Ако не вярвате, позволете ми да ви убедя със следващия тест от 2012 година.
На машина с Ubuntu 12.04, процесор i7 3500 и 16GB Ram са сравнени следните WM и DEs:
KDE Plasma (4.8.5)
GNOME Shell (3.4.1)
XFCE (4.8.0.3)
Unity (5.16.0)
Unity 2D (5.12.0)
Enlightenment E17
Ето и самата процедура:
1. Логване в графичната среда с напълно чиста конфигурация (т.е. първо пускане)
2. Минаване през настройките при влизане за пръв път (ако има такива)
3. Избираме най-бързият начин да стартираме терминала на съответната графична среда
4. Рестартираме
5. Логваме се отново в графичната среда
6. Отваряме терминал
7. Показваме uptime
8. Показваме статусът на паметта
9. Снимаме екрана
А ето и резултатите:
KDE Plasma: 57.76s, 1390 MB
Unity: 56.98s, 1091 MB
GNOME Shell: 52.71s, 955 MB
XFCE4: 50.42s, 929 MB
Gnome Classic: 50.34s, 940 MB
Unity 2D: 50.22s, 1086 MB
E17: 48.13s, 936 MB
Gnome Classic (без ефекти): 44.79s, 911 MB
E17 (профил на разработчика): 44.36s, 875 MB
TWM: 29.70s, 711 MB
Пълният тест можете да видите тук:
https://e17releasemanager.wordpress.com/2012/10/09/2012-desktop-shootout/4. ИнсталацияВ зависимост от дистрибуцията която използвате, има различни начини за инсталиране. Има и няколко дистрибуции, които идват по default с него (като например Bodhi Linux), Също така зависи коя версия искате да сложите - в момента последната е 0.19.1. Аз ще ви покажа как се слага на Slackware 14.1.
- ще имате нужда от sbopkg за да се дръпнат някои зависимости, така че бъдете сигурни че го имате
- сваляте сорса и го пускате да се компилира (като root)
# git clone https://github.com/ryanpcmcquen/slackENLIGHTENMENT.git
# cd slackENLIGHTENMENT
# sh enlighten-me.sh
- пускате xwmconfig и избирате xinitrc.enlightenment19
- ако вече имате друг WM или DE, излезте от него и напишете startx в конзолата. След няколко секунди ще излезе първият екран за настройване.
- тук избирате език на който да върви Enlightenment. Изберете този който ползвате и цъкнете Next
- по същия начин избирате език на клавиатурата и цъквате върху Next
- тук избирате профил за Enlightenment. Изберете Computer (Standart Enlightenment) и цъкнете Next
- на този екран избирате нивото на скалиране. Ако стандартната настройка от 1.0 изглежда добре, оставете я и цъкнете Next
- тук избирате как да се фокусират прозорците. Най-общо казано, фокус означава кой е активният прозорец, към който отиват сигналите от мишката или клавиатурата. Първият вариант фокусира чрез кликване, вторият при посочване с мишката (аз лично предпочитам втория). Изберете който ви харесва повече и цъкнете Next.
- на този екран на настройките на композитора. Препоръчвам ви да оставите първите две включени и третото изключено.
- тук избирате дали искате да ви мрънка когато излезе нова версия. Мен лично това ме дразни, затова го оставям изключено.
- тук избирате дали искате Taskbar или не. Аз я намирам за полезна, така че я оставям включена.
Това е. Добре дошли в Enlightenment
5. Ами сега?!На пръв поглед Enlightenment изглежда малко грозничко, а нещата в дока в долната част на екрана могат да са доста объркващи. Нека видим за какво иде реч:
- Desktop Icons - няма човек който да не е чувал за тях и да не знае как се използват
Винаги можете да добавяте нови и да ги подреждате както ви хареса
- Shelf (или рафт) - това е един от основните градивни елементи на Enlightenment. Рафтът представлява контейнер, който държи различните джаджи (widgets). Можете да имате колкото си искате рафтове и да слагате колкото си искате джаджи вътре, разбира се.
- Start - подобно на Start менюто на Windows, това отваря главното меню на Enlightenment. Същото можете да постигнете като кликнете където и да е по десктопа.
- Pager - тук виждате списъка с виртуалните десктопи. По подразбиране Enlightenment идва с 4 такива. Можете да минавате от един в друг по много начини, но основните 2 са чрез кликване върху съответния виртуален десктоп в Pager-a. Другият, който лично за мен е много по-удобен, е просто да преместите мишката си до някоя от рамките на екрана. Пример - по подразбиране се намирате в най-левия виртуален десктоп. Ако докоснете с мишката друга рамка освен дясната, няма да стане нищо, понеже в тази посока няма друг виртуален десктоп. Ако докоснете дясната, след съвсем малко ще се прехвърлите в съседния, като можете да се върнете пак по същия начин. Ако това ви дразни и предпочитате да го махнете, можете да го направите по следния начин:
Start->Settings->Settings Panel->Input->Edge Bindings->Delete All
Естествено, оттам можете да ги променяте, да си добавяте нови, и т.н. - пълният списък е доста голям. Но за това после.
- iBox - това е малка джаджа, която държи минимизираните приложения. Аз лично предпочитам да ползвам Taskbar-a за това, понеже показва приложенията винаги, а не само когато са минимизирани, но това е въпрос на вкус.
- iBar - подобно на Cairo-dock, тук седят най-често използваните приложения, които можете да стартирате веднага.
- Temperature - малка иконка показваща температурата на процесора. Хитрото тук е че можете да нагласяте границите на топло и студено според термометъра.
- Cpufreq - от тук контролирате скоростта на процесора и начина за превключване на режими
- Clock - часовник. Надявам се че не се нуждаете от обяснение как се използва
- Mixer - от тук контролирате силата на звука за различните звукови карти и каналите
- Connman - това е мениджър за мрежата. За да го използвате от Enlightenment, ще ви трябва EConnMan, който можете да намерите
тук (за Slackware) - Keyboard - джаджа за клавиатурните подредби. По-надолу ще видите как се добавят и други езици
6. Дотук добре, а сега накъде?Пълният списък с настройки, които можете да променяте е огромен, и е извън възможностите на този гайд. Ще ви покажа обаче как можете да направите един комфортен и приятен профил за използване.
- добавяне на кирилица - Menu->Settings->SettingsPanel->Input->Keyboard. Цъквате на Add бутона и от менюто избирате Българси. След това преди да затворите менюто отивате на панела и избирате phonetic, ако предпочитате да пишете на фонетика. Цъквате на ОК, и докато сте в Keyboard Settings менюто, от панела Options можете да изберете с коя комбинация да превключвате между езиците.
- поведение на фокусиране - аз предпочитам да фокусирам прозорци само с посочване на мишката, но те да изскачат отгоре върху другите само при кликане. Така например мога да стартирам терминал, да изпълня нещо в него и да го затворя, докато гледам в друг прозорец. Ето как се постига това:
1. Settings->Settings Panel->Windows->Window Focus. Цъквате на бутона Advanced.
2. Focus Policy - Sloppy
3. New Window Focus - All windows
4. Минавате на панела Stacking и махате отметката от Raise windows on mouse over
5. Панел Pointer - слагате отметка на Prevent all forms of pointer warping (това се прави за да не скача курсора насам-натам по екрана например когато сменяте програми с Alt+Tab)
6. Панел Miscellaneous - слагате отметка на Click raises the window
- добавяне на програми към iBar - с десен клик където и да е върху iBar-a избирате iBar->Contents. Оттам можете да добавяте, премахвате и сортирате различните приложения за дока.
- подреждане на джаджите в рафтовете - отново, с десен клик където и да е върху рафта, избирате Begin moving gadgets. Оттук нататък всичко е въпрос на вкус и цвет
Като приключите, отново с десен клик избирате Stop moving gadgets
- виртуални десктопи - аз предпочитам ако съм с един монитор да държа два виртуални десктопа, а с два монитора - 4 (2х2). Настройката става отново с десен бутон върху Pager, избиране на Virtual Desktop settings, и с двата слайдера настройвате бройката и разположението. Всъщност настройките за всяка джаджа обикновено можете да достъпите чрез десен бутон и търсене в контекстното меню.
- тема и цветове - какво би бил Enlightenment без теми? Най-доброто място за теми е
http://e17-stuff.org/. Имайте предвид обаче че темите за версии 0.17 и 0.18 не работят на 0.19, така че ако ви хареса някоя от старите теми, трябва да сложите или предишната версия на Enlightenment, или да изчакате докато разработчиците ги портнат. Аз харесвам стандартната и не съм я сменял засега.
7. Краен резултат8. Харесва ми. Къде мога да намеря още информация?Най-доброто място е
http://Bodhi's Guide to Enlightenment. Почти всичко от което имате нужда ще намерите вътре
източници:
http://en.wikipedia.org/wiki/Enlightenment_(software)https://wiki.archlinux.org/index.php/Enlightenmenthttp://enlightenment.org/p.php?p=about/e17&l=enhttps://e17releasemanager.wordpress.com/2012/10/09/2012-desktop-shootout/https://phab.enlightenment.org/w/http://www.bodhilinux.com/e17guide/e17guideEN/http://e17-stuff.org/