~~Title: About Enlightenment~~ ==== Enlightenment ==== [[download|Download Enlightenment Here]] Code quality - [[https://scan.coverity.com/projects/554|Coverity scan status]] {{:icon-enlightenment.png?nolink |}} Enlightenment (0.17+) (a.k.a E17) is the next generation of graphical desktop shell from the Enlightenment project. When you first run it and get past the initial setup wizard, you should end up with a desktop not unlike the above. It is a very traditional UNIX/X11 style desktop, because that is what E primarily is and attempts to be, **BUT** with a bunch of bells, whistles and modernities that were never there, as well as a different core design philosophy. There seems to be some obsession with Window Manager vs. Desktop Environment debates. It doesn't much matter what you call it. It manages windows. It does compositing. It manages files. It launches applications. It handles UI and system settings. This information assumes you will download and compile Enlightenment and its necessities beyond what your current OS does or can provide. If Enlightenment is provided already as packages, you may want to check them out first, see if they are actually up to date, as opposed to compiling it all yourself. If not, then this information will help you get it set up yourself and take your first few steps. There are a few things you will need to use Enlightenment. Firstly you will need to [[download]] Enlightenment and EFL library components. You will need to provide the appropriate system dependencies too. The details will be further on. === Misconceptions and assumptions === Before we go any further, it is time to clean up some common misconceptions. First, Enlightenment is not new. It is OLD. It predates larger desktop environments like GNOME or XFCE. It is just barely younger than KDE. It never started life as an attempt to "be a full desktop environment". It started life as simply a window manager. This was back towards the latter part of 1996, and its first 0.1 release came in the first part of 1997. It was a window manager with some extras to scratch the itch that "everything was gray bevels and UIs had to be plain to be functional or useful, and that computers/X11 were not capable of more". It handily proved that to be wrong. It could manage function AND form more flexibly than anything else, and to this date is still in an enviable position of flexibility in both behavior features and in terms of visuals. In fact, its Achilles heel simply may be that it has too many options and too much flexibility. Some of the extras filled in the gaps, like setting wallpaper, that was always done by 3rd party tools and not the window manager at the time. If you are after a constrained and simple UI, then Enlightenment (E) is not for you. It can be configured to be plain and simple if you try, or to be buzzing with activity and complexity, but this is up to you. Its default is somewhere in between these to give you a taste of what it can do on both ends of the spectrum. You aren't stuck with the default theme. Enlightenment was the first Window Manager (WM) to introduce themes in X11 (pre-packaged sets of data that you just grab and select, providing you with a vast new look and feel). Today in Enlightenment, these themes come as "Edje" files (.edj), and are pre-packaged data files containing all images, layout, animation etc. that you may need. They never get "unpacked". They are used "live as-is", and only the data needed from the file is sourced and decoded, so even if the theme is massive, only the pieces needed at any one time are decoded into memory, which is normally a fraction of the actual file size. They are also live data and need to be there while E17 runs as it is forever digging bits of data out of these files as it needs it. It is an accepted fact that the default look will not be for everyone. It tries to strike a balance of being unique (not mimicking some other desktop look), yet still being stylish. It is meant to echo some of the past from where Enlightenment comes from, and yet roll in modern effects and feels. It sacrifices some "usability" for looks, yet tries to keep a balance and still be functional. It will not be for everyone, but it is hoped that it keeps you mostly happy until you find other themes that exactly meet your visual needs. You will find this as an on-going philosophy in Enlightenment. One size does NOT fit all. That's what options are for. That's why we have themes. Do not assume that what you see is what you are stuck with. You are expected to experiment and discover what is good for you. Maybe the default is fine. Maybe it is not. That's why we pioneered themes and spent immense amounts of time making them nicely packaged, efficient and powerful enough to fine-tune almost any aspect of the UI. That leads onto the next thing you may find quickly. Enlightenment has so many options, because we believe that **CHOICE** is important. If you don't believe that your preferences matter, then maybe another project is better for you, but we firmly believe that they do. We also believe that there are others who have different preferences to you and that they matter too. We may not have accounted for every single option out there. We may not have presented it to you in a way that makes it childs play to find and use, but we have tried. Over time options will be cleaned up and accessibility to them improved. A lot of them are there simply because they needed to be and not a lot of time was spent fine-tuning how to present them in a fool-proof manner. This will improve over time and with input, suggestions, patches etc. we hope to still offer all the options you need or want, but in a much more accessible form. Not everything is perfect, polished and "finished". This is not the end of a path. It is the start of a whole new one. If you find something you think could be better, please don't just complain and vanish. [[contact|Contact us]] and open up a dialogue. Maybe we agree. Maybe we disagree. Maybe we are already working on it. Maybe you can help out and provide patches too. ---- === Philosophy === We have certain things that are important to us and how we work. They will often show immediately to users, and it is good to explain this here. They will lurk behind our decisions and responses, so instead of having to explain them each time, setting the tone here is a good idea. == CHOICE IS GOOD == A user should be given as much control as is feasible. There is often a trade-off in maintainability by the programmers of some code, current and future development, as well as available time to do the work. It is always best to make any feature "just work" without options for everyone if possible, but the effort may be immense, or the "what does "just work" really mean may not be as clear to some as to others, and so options are provided to allow the fine-tuning to be done by users. Sometimes options are dangerous, but necessary for some people. Sometimes they are so dangerous that they are buried under layers of complex systems to try and keep them from being mis-used. Sometimes they are just, by nature, complex, and that's life. In the end, choice is good. That means that options and configuration are important. We'd love to streamline how they are presented, and make it easier for the "Average Joe", but never shall we do this at the expense of the power user. == VANILLA VS. STRAWBERRY VS. CHOCOLATE == Like with choice of options, the actual aesthetics are something that is highly subjective and personal. What is beautiful for one person can be ugly for another. Otherwise we'd all still be driving black Ford model-T's and all be happy about it. Some desktops and OSs provide vanilla looks. Some are strawberry. Some can never be changed. We have chosen chocolate by default. Mostly because it means we stand out by default. You can change this if you want. You can even create your own flavors of look in gory detail if you spend the time on the artwork and layout. Take advantage of the choice. == EFFICIENCY MATTERS == We want Enlightenment to be as efficient as possible. We don't want to sacrifice looks or functionality either, so we have spent a lot of effort making a lot of libraries that help this happen. Our theme files are binary blobs. They may appear opaque at first, but they are dissectable, given tools we provide like edje_decc. The same for our configuration files (eet). We value runtime speed and efficiency over giving the user encouragement to go hack their configuration files with a text editor. We spent a lot of time providing a GUI for almost every option that exists in Enlightenment. It manages this for you. It's to ensure maximum efficiency at runtime. If you need to, on the odd occasion, dig into the bowels of these files we have tools that can export and import text files that you can edit, so for the real tinkerer, hacker and developer you can do what you need to, BUT the regular user is discouraged from messing at this level, as this is where you can get yourself into more trouble if you get it wrong. We have also chosen a much more process-lean model with fewer processes and more rolled into a single one. This gives better opportunities for efficiency, but makes things a little more fragile. To solve the fragility we have made error recovery very good with enlightenment catching its own errors and offering the ability to debug or just restart from where you left off and move on without losing any work. E17 leaves a crash log file (~/.e-crashdump.txt) if you have gdb installed and you have debug symbols on. == NOT EVERYONE DRIVES A F1 == Not just being efficient, but realizing that not everyone has the latest and greatest hardware to run Enlightenment is what we are about. It's also not just one architecture. They may be stuck on something quite old (some 486), or want Enlightenment to work on something quite bizarre. We have gone to a lot of effort to make Enlightenment scale from anything like a 200MHz ARM phone with 32M RAM all the way up to the latest multi-core, 64bit multi-GHz and 16GB+ desktop beasts with 2 or more screens. We keep in mind the puny end of the spectrum all the way up to the beastly end. When we make decisions they try and ensure every part of this spectrum gets a fair go, and preferably leaves as few people behind as possible. This also means sometimes raising the bar in order not to hold back future things, but also means sometimes holding back until a better way is found. You'll find evidence of this in the fact that out-of-the-box we have made compositing fast and usable even without a GPU, and yet we can fully push your GPU if you have one and it has solid drivers. We care. == EYE CANDY MATTERS == If you want a minimal interface, you can configure Enlightenment to be quite minimal, but it takes effort. Enlightenment leans towards providing eye candy where it can, and often comes by default that way. This is how we roll. We always have. Haters gonna hate. That's how we roll. Bring on the lollipops! == WE MAKE LIBRARIES MUCH MORE THAN WM'S == One thing over the years that has happened, is that the project has morphed into a library project much more than a Window Manager or Desktop project. Of our released code something like 80% of it is stand-alone libraries. This is why there was no apparent progress in the Window Manager for many years. The progress was sunk all into building libraries and a toolkit, in order to make the WM and much more besides. A lot of effort was spent on abstractions to ensure we have many years of smooth sailing into the future. When we do things we often go and build libraries first, and then try and make them applicable to much more than just the simple problem being solved in Enlightenment, which adds overhead, but provides valuable resources for developers other than us who wish to re-use that effort in their own creations. == PORTING MATTERS == We, as a group, primarily work on Linux systems. We have developers who use and focus on others like MacOS-X, Windows, the BSD's even PS3. We care about porting, and that often adds overhead and complexity, but we don't have build and development farms set up for each OS out there, so often you'll find Linux gets the support first and foremost, and then it's improved for other targets. Sometimes we shortcut that and do it "the Linux way" only as we have problems to solve and can worry about other target systems later. We are always open to ways of making that better and more portable. We welcome patches and input and anyone willing to do the hard yards of supporting their OS. == WE HAVE A SENSE OF HUMOR == We are not always that serious a bunch. We have a sense of Humor. We exercise it regularly. You may call it "unprofessional". We call it "having a life". :) == THE WORLD IS NOT ENGLISH == Whilst most of our website is in English, as is the default language for Enlightenment (until you change it), and it's the common language of communication amongst developers and even a lot of users. Even so, we realize and are fully aware that people speak other languages. Many, in fact most of our developers are not native English speakers. We have tried to support "the rest of the world" as much as we can and hope to continue in future. It is an ongoing process to provide translations and such support. Help out. We do care. We are busy. Very busy. But we care. It should be hopefully evident in the large list of languages Enlightenment is already translated to, partially or completely, and the fact we support selection of keyboard layouts and input methods as well. We are all UTF-8 through and through and support right-to-left text too as well as complex composition as is found in some languages (if you provide the right dependencies). Many of our developers do not live in their own native languages and countries, so we are fully aware of the challenges people face with another language environment. == OPEN IS BEST == Enlightenment and its libraries are all open source (BSD 2 clause, LGPL or GPL for some executable binaries only). It is a mix because the person who founded each library chose the license, or a license is inherited from some original source. We respect that choice and license. We believe open is best because it simply is the best way to propagate knowledge, gain feedback and input and build a community beyond your small borders. It gets your software onto more devices and operating systems. It allows developers to poke and prod and find out what is really happening. It's the most detailed documentation ever made. It simply is better. But your "brand" of open and someone else's may differ. That's not for us to promote or debate. There are no other political aspirations for this project beyond that. Open is best. This also goes for our communication. Warts and all we discuss in the open. === Why oh why use E? === So if you've managed to read this far, you're rather patient and willing to invest more than 7 seconds on Enlightenment, but you're probably wondering "Why on earth should I use this Enlightenment thing? I don't want people to know I use E! They might think I do drugs or something?". Well wonder no more! You shall now be assaulted by our marketing blurb! E is smaller, lighter, faster, nicer and more flexible that your current WM, and it's old school with a new-school twist. It's trendy and fashionable. You will simply be totally un-cool if you don't use it. Its farts smell of roses and world peace has been known to be solved by E. OK. Just kidding (though really... they do smell of roses!). In all seriousness Enlightenment is fairly lean. Considering how much you get in return. It isn't a minimalist WM or desktop, but it is a massively long cry from the full desktop beasts that are its peers, even the ones that claim to be minimalist/lean. Enlightenment uses EFL. EFL was designed to provide the core of Enlightenment, and then some. But it was targeted at scaling down to things like mobile phones and embedded devices. This has meant that there was a large focus on being lean, and getting a lot of "return on investment" from the very core that sits under E17. This of course has paid off for Enlightenment itself rather nicely. It only loads what it needs to, when it needs to. It caches what it no longer needs to avoid always re-fetching it, but these caches eventually get flushed or expire, so long-term it won't just grow without bound in memory footprint. Rendering can be done with the CPU and/or GPU. It's up to you. (though at the moment we don't give you any UI controls over the rendering engine for UI content, but the compositor allows the choice - the core toolkit is capable of it). An E17 install on the exact same system as Unity on Ubuntu, simply replacing unity can save you 200M of RAM. Not to mention be snappier and more responsive. You will never know until you try, so why not at least give it a go? You run fewer processes since E17 now handles being the panel, filemanager, window manager and compositor (and more) all at once. It amortizes the cost of all these common components into a single process. You start quickly and you are now just a really cool person. Enlightenment and EFL provide over-the-top power when it comes to re-skinning or theme changes. You can change not just colors and background images, but entire animations, multiple layers of imagery scaled, aligned and laid out to please. It's like Photoshop or The GIMP, but on steroids riding a train of rabid camels. If anything it may be an Achilles heel given how much power is exposed, but hey, that's what we have. If you are an artist, designer or skinner, you could hardly do much worse than E17. Wallpapers don't just have to be images. They can be complete interactive animations. You can provide multiple resolutions of your imagery all in-line in the same file and have the "best one chosen automatically" based on size. It's all like layers that are sized, scaled, aligned and arranged relative to each-other and every UI element is a collection of these. You can have it animate base on input events, or time. And not just the wallpaper. Anything in E17 can do this. Fade layers in and out, change their sizes, image content and more. Make your art come to life. And for the tweaker heads amongst you, there is an option for every occasion. We don't go quietly into the night and remove options when no one is looking. None of those new big version releases with fanfare and "Hey look! Now with half the options you used to have!". We sneak in when you least expect it and plant a whole forest of new option seeds, watching them spring to life. We nail new options to walls on a regular basis. We bake options-cakes and hand them out at parties. Options are good. Options are awesome. We have lots of them. Spend some quality time getting to know your new garden of options in E17. It may just finally give you the control you have been pining for.