EDE, a light desktop environmnent
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 90 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/40279 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 201361 / 90
2
5
8
10
12
13
14
15
17
19
21
24
25
28
29
31
32
34
36
39
40
43
44
46
50
51
52
54
55
57
58
62
65
66
67
78
79
87
88
00:00
Integrated development environmentThermodynamisches SystemComputer animation
00:11
ComputerObject-oriented programmingLecture/Conference
00:37
Source codeComputer animation
00:48
Standard deviationSoftware developerStandard deviationSoftware maintenanceBlogSoftware developerProjective planeComputer fontComputer animation
01:32
Thermodynamisches SystemWindowData managementEngineering drawingProgram flowchart
01:46
Read-only memoryGraphical user interfaceOffice suiteNP-hardComputer hardwarePortable communications deviceLibrary (computing)MiniDiscMiniDiscSemiconductor memoryCartesian coordinate systemGodLibrary (computing)Compilation albumWindowGame theoryInformationSource codeLatent heatThermodynamisches SystemProgramming paradigmComputerConstraint (mathematics)Pairwise comparisonComputer hardwareDemo (music)Software developerIntegrated development environmentMultiplication signContext awarenessFluidComputer animation
06:12
Integrated development environmentThermodynamisches System
06:38
Standard deviationComputer iconComputerOnline chatType theoryPairwise comparisonDemonCodePreprocessorGraphical user interfaceMenu (computing)Bus (computing)Sturm's theoremInclusion mapSystem callDemo (music)InterprozesskommunikationWeb browserMenu (computing)Computer iconCodeNumbering schemeImplementationInformationWeb 2.0Drop (liquid)Analytic continuationKeyboard shortcutDemo (music)Compilation albumLibrary (computing)Medical imagingSemiconductor memoryRun time (program lifecycle phase)Computer fileMultiplication signLink (knot theory)Web browserINTEGRALData managementPlug-in (computing)Standard deviationBitWindowTemplate (C++)Point (geometry)CoprocessorFunctional (mathematics)Projective planeBinary fileFormal languageCross-platformException handlingSystem callPlanningPower (physics)Computing platformConvex hullThread (computing)WritingDefault (computer science)Computer animation
13:17
Lecture/Conference
Transcript: English(auto-generated)
00:00
Okay, thank you all for coming here. My name is Anar Zukan and today I will talk to you about EDE, Allied Desktop Environment. Just checking, okay. This is quick, oh, oops.
00:23
Things happening with this computer.
00:49
Okay, just check. Okay, it's working. Okay, this is a quick outline what are we going to talk about.
01:00
I will give you a short introduction about EDE, why we need another desktop environment, standards EDE supports, some background things we are using and what we are planning for the future. Who am I? I'm EDE maintainer and developer since 2005.
01:21
I was FLTK developer. Some of you probably know about FLTK project and I'm hacking things in here and there and this is the place of my blog where you can check things I'm working on. Well, this is a screenshot of currently most popular environments and you will recognize some of them.
01:42
Probably you already use some of it. Maybe you switch to plain window manager and things like that but let me see why we need another desktop environment, light one. First of all, I will talk here in context on two quite popular, the big one, desktop environments.
02:02
First, they are actually quite hard to install and compile. Have you ever tried to compile KDA from source code and you know the problems you will have. Actually, I never managed to compile QT from source code so you know. As I said, they are actually bloated.
02:21
They require a hardware acceleration. Isn't that a problem? You actually, besides huge amount of memory, you need a hardware acceleration. That is thing requiring by games. You basically need a gaming platform, gaming computer just to run these things and to probably surf the web,
02:42
send some emails or write a document. And the worst of all, they are quite hard to hack. For example, why KDE developers need so long time just to fix plasmoid crashes? They probably know about that. So in recent years, there is increased interest
03:03
about light desktop environments. So we have some here like Xfecy, like LXDE. Recently, Razer QT became quite popular but they are still one major problem about them. They are built on bloated base. Like JTK or QT.
03:21
Let me see some comparison size. For example, plain JTK demo is using this size of memory or QDBUS Viewer, which is plain QT application. Now I'm just comparing here disk usage. Some of you will probably say, okay, disk today is quite cheap
03:41
but if you are going to go on embedded devices, on devices with let's say, micro SD card, this can be a problem. So can we have something lighter? Yes. First of all, we will ditch QT, we will ditch JTK
04:01
and for God's sake, we will not use X Windows API. We will use FLTK. What is actually FLTK? FLTK or pronounced full tick is as fast light toolkit. It is only GUI toolkit, which means it follows true Unix philosophy. You are using only what you need.
04:22
If you're having your own, for example, specific networking library, you can use it without problems. The second one thing is that it's full asynchronous. You get a lot of places where you can register callbacks and at some point, you can receive events.
04:41
Also, there is OpenGL like stacking API. You simply create widgets by creating begin, put widgets, create the end. I will later have specific talk about FLTK in cross desktop room so you can ask questions there. And the best of all, there is no,
05:02
almost no dependencies except operating system API. Let me see some sizes. Fluid is actually a GUI designer that ships with full tick and it's not trivial application. It can do a lot of things.
05:21
So this is the memory usage. This is the sizes of all FLTK libraries that comes with it and the best of all, they are built with debug information. So let me build a desktop environment on that toolkit. It is called EDE. EDE is actually a desktop environment
05:43
with known desktop paradigm. There is no reinventing the wheel. We are not trying to create desktop for tablets, for small devices with small screens. We are just creating desktops for old hardware and for devices which will be shown on your plain monitors.
06:01
The best of all, it is already portable on some devices like Xbox, on some constraint operating systems like Minix and et cetera, et cetera. How it looks like? Well, it looks like you all know plain desktop environment.
06:20
So you have desktop, you have icons, you have taskbar, start button, et cetera, et cetera. Some of you will probably ask why I'm trying to emulate that other operating system for that other big company. Well, Mr. Dali said once,
06:41
if we don't want to imitate, we will produce nothing actually. Let me see quickly what are the main features of EDE. As I said, it's full-tick powered. We depend only on plain API, OS API. We developed our own library called EDElib
07:03
and at some point, we can have EDE compile optionally with things like Dbus, like U-Power or Hull and et cetera, et cetera. So we support a lot of things like standard window manager hits, icon themes.
07:20
This all means that if you don't like shipped window manager, you can replace with your own. If is free desktop.org compatible, there is also support for auto start locations, et cetera. Let me see some sizes comparison. Desktop with icons,
07:40
using the same amount memory as systemd. Notification demo is using almost the same amount of memory as syslog demo and maybe the worst of all of them is panel with plugins because maybe plugins is loading all those shared library, is using a little bit more memory
08:01
but the best of all, all things are compiled with debug information. So how we managed to do that? First of all, it is built using C++. We are not using advanced C++ things like STL, like template abuse. We are just trying to use plain C API,
08:23
trying to use C prep processor as much as possible and as a result, we are getting that it compiles quite fast. It works on older compilers and it creates smaller libraries. It also can be built without runtime information which means you will get even smaller binary files.
08:45
Let me see quickly about edlib. Edlib is actually drop in replacement for fastlight toolkit. It's just continuation of that same library. For example, if you have a menu that is using fulltik actually menu,
09:03
you just replace it with edlib menu and you will get instantly icons from icon themes inside of it. So it is just designed to be easily replaced current fltk code. So also there is dbus full C++ dbus binding
09:24
and there is also API for icon themes. It is quite configurable and the best of all, it gives you a full scheme implementation inside of it. And I will mention also the,
09:41
just to check the time, I will also mention the themes we are trying to use inside ed. Actually, themes are much more different than you get used to. So there is no MVC things. You don't write themes in one language. How they will behave in different language.
10:03
We are not trying to use things like XML or JSON and stuff like that. We are trying to write everything inside scheme because in scheme, you will get all those lispers out there will recognize it. In scheme, the code is data and the data is code.
10:20
Also, we are trying to support foreign themes. For example, our default window manager is PecVM. So at some point, we will try to integrate PecVM themes inside global teaming engine of ed. So how teaming looks like inside of it.
10:41
Well, you have, for example, this is quick example how it looks like and how it behaves. For example, you have some metadata, you have some function that it works and at the bottom, you have actual real data. This is not code, this is data. But at some point, you have a function call.
11:01
Well, this is quite hard to achieve with other languages except LISPR scheme. And what we are trying to, what are actually our plans for future, to have a fast file or web browser.
11:20
There are some already proposal that we try to integrate Delo web browser, which is built on FLTK. But the problem with Delo is that it does not have JavaScript support. So all modern browsers will not work. We are also trying to, we will try actually to add some platform independent package manager.
11:41
But thanks to package kit, this is much more easier today. Also, there is plan to integrate IPC from plan nine. Well, the reason for this is because Dbus we are trying to use more and more is actually quite heavy.
12:01
And it's quite hard to port it on foreign platforms. For example, you can't run Dbus on Minix because Minix does not have threading support and Dbus cannot run without threads. So at some point, we will try to remove Dbus
12:20
and replace it at least for internal communication. And we will try at some point to integrate more and more scheme code to provide let's say small talk like features. The reason is this, for this is to give you a feeling of a live desktop where you can change in runtime things
12:40
where you can probably create at some point image of the whole desktop where you can, let's say evolve desktop over the time. So this is as quick, almost minute. So this is, these are actually the links
13:01
where you can check things about the project. This is my mail, if you have some questions, you can mail me or you can catch me on the hall after the talk and that's it. Thank you very much. Thank you. Thank you.