[HN Gopher] Enlightenment 0.26
___________________________________________________________________
Enlightenment 0.26
Author : pantalaimon
Score : 101 points
Date : 2023-12-24 12:29 UTC (10 hours ago)
(HTM) web link (www.enlightenment.org)
(TXT) w3m dump (www.enlightenment.org)
| blackhaz wrote:
| Is this one of the oldest WMs still in development for Unices? I
| remember I ran Enlightenment on my Pentium 133 MHz Linux box to
| get those cool aliens hanging from my windows. Feels like the
| version numbering isn't much different from those good old days.
| What is the rationale for running Enlightenment today, compared
| to, say, a DE like Xfce?
| vbernat wrote:
| TWM (87) and FVWM (93) are still maintained today.
| lagniappe wrote:
| Don't forget CDE (93) and XFWM (96), still getting releases.
| oblio wrote:
| Xfwm has been rewritten from scratch at least 2 times. I
| can't imagine there is any code left from the original
| releases. Plus it used to be a CDE clone and that was
| dropped around version 2 when it became a light Gnome
| clone.
| ClueslessTech99 wrote:
| Cool aliens? Is this a reference to the Alien 5/Alien 17 theme?
| blackhaz wrote:
| I don't remember what it was called, but yeah, something
| along these lines. It really looked cool.
| lagniappe wrote:
| The first time I got e running was a magical moment. I'd sit
| there in awe at the responsiveness, and I'd wait for the just the
| "right" moment to sneak up on xeyes and catch it slipping but it
| always found my cursor... It sounds dumb now that I type it out,
| in retrospect.
| bloopernova wrote:
| Don't be so hard on yourself, we all have interesting
| misunderstandings about new tech.
|
| Back in the day, late 96 I think with Slackware: I had been
| using the SunOS and Solaris boxes at work, and a senior
| engineer told me I should check out Linux, it's Unix on a PC!
| So, armed with a setup CD, I got it installed and started using
| it. I thought, this is a very new user unfriendly system, each
| time I make a mistake, it says it wants to hit me!
| bash: syntax error near unexpected token...
|
| I thought "bash" was the system insulting and mock threatening
| me for messing up. :D
| lawnchair wrote:
| I absolutely loved e16 way back when. Really great to see this
| project still going.
| chriswarbo wrote:
| The linked project is a rewrite; originally called E17, but the
| version number has been increasing, and is now up to 26.
|
| However, E16 is actually still maintained!
| https://www.enlightenment.org/e16
| lawnchair wrote:
| Wow that's amazing. I know what I'm doing over the break!
| cbm-vic-20 wrote:
| Getting closer to 1.0!
| ck45 wrote:
| Not if they follow https://0ver.org/
|
| E is wrongly listed as 11 years in version 0, shouldn't it be
| 26 years?
| pavon wrote:
| E16 hit 1.0 in 2009 (and is still maintained), disqualifying
| that older code for 0ver.
|
| E17 was released in 2012 and as a major rewrite it is
| considered a separate project.
| jwells89 wrote:
| It's been probably a decade since I last tried it, but
| Enlightenment is interesting and somewhat quirky... definitely a
| change of pace from the usual suspects. Might have to try it
| again just to see how it's changed.
| throw156754228 wrote:
| How is the Wayland support these days? Wondering if there is an
| alternative to Sway, other than gnome.
| __s wrote:
| https://wiki.archlinux.org/title/wayland#Compositors includes
| Enlightenment
| throw156754228 wrote:
| I know, I'm asking how it has progressed.
| abrouwers wrote:
| Not awful, but not great. I believe multi-monitor support isn't
| there, and some issues with layers (Firefox can't run natively,
| for example, but requires xwayland).
| throw156754228 wrote:
| I can't get multimonitor support in sway or gnome wayland
| with nouveau, can others? Just want to plug a hdmi into my
| Arch Linux laptop.
| Gualdrapo wrote:
| Enlightenment in general is in my humble opinion one of those
| things from the FOSS world that deserve much more success and
| recognition than it has had. It has so much potential.
| orblivion wrote:
| Could you (or someone) remind me what the big selling points
| are? I remember a LUG meeting back in the day where someone had
| fire on the bottom of their screen. But that's about it.
| dale_glass wrote:
| That was kind of the selling point, IMO. Enlightenment was
| the WM that focused on pure eye candy even at the expense of
| practicality. You had random graphical effects just because
| it looks cool, all sorts of overblown themes to emulate
| hacker movies, and a few actually useful features (like the
| virtual desktop display showing what windows were present on
| other virtual desktops)
|
| If you wanted to have a normal, usable desktop there were the
| typical choices like Gnome, KDE or IceWM. But if you wanted
| to show off, Enlightenment was hard to beat.
|
| Hilariously, as time went by hardware got so much better that
| it went from ridiculously wasteful to really lightweight.
| beagle3 wrote:
| There was a time (around 1999-2005 iirc) when
| Enlightenment's graphics library Imlib was _the_ tool for
| fast CPU raster ops, and was adopted by everyone else. Then
| accelerated graphics (and eventually GPUs) became the focus
| and the norm, and Imlib was mostly abandoned.
| csdvrx wrote:
| > If you wanted to have a normal, usable desktop there were
| the typical choices like Gnome, KDE or IceWM. But if you
| wanted to show off, Enlightenment was hard to beat.
|
| Many people say the same thing about Hyprland. I think they
| don't understand that what you call eyecandy allows
| important usability feature.
|
| For example, Hyprland has very good animations and
| optimizations, so I can run all my windows fullscreen,
| without a titlebar, on several desktops. It's something I
| did before on Windows, but that was painful on Linux when
| the "eye candy" wasn't on par.
|
| Moving between desktops is done with just one key. I
| configure it to take about 200ms (so it's not intrusive)
| and I mapped it the ro (ro) key, which is next to the right
| shift key on my 106 keys keyboard): the visual feedback
| helps me keep the context.
|
| Doing the same with Gnome was painful: slow, ugly and hard
| to get right (if working at all)
|
| > Hilariously, as time went by hardware got so much better
| that it went from ridiculously wasteful to really
| lightweight.
|
| I don't think it's hilarous but sad because Gnome is both
| slow, looks ugly and can't be configured
| rollcat wrote:
| > Many people say the same thing about Hyprland. I think
| they don't understand that what you call eyecandy allows
| important usability feature.
|
| Bingo. Mac has had (crude, by today's standards)
| animations from very early on, because an animation
| helped convey the idea that e.g. a window opens "from" an
| icon you've clicked.
|
| You don't need the effects to be fancy, but a tiny bit of
| animation helps you orient yourself. No naturally
| occurring object (except lightning) can change as
| abruptly as the contents of a screen.
| sillystuff wrote:
| I've run Enlightenment (E) since the 90's. Never had flames
| or any other BS like that. By default there are some
| animations (for things like desktop switching), but these are
| easy to turn off, and I always do.
|
| E maintains separate virtual desktops per physical monitor.
| This allows you to independently switch between L virtual
| desktops on monitor 1, M virtual desktops on monitor 2, and N
| virtual desktops on monitor 3... Once you have tried this, it
| is really hard accepting the limitations of a single virtual
| desktop space across all physical monitors.
|
| E supports window shading. In some circumstances, I will
| minimize applications, in others, shading is nicer (e.g., to
| keep a window associated with a particular virtual desktop).
|
| It can be run in floating window, or tiling mode.
|
| You can decide if focus raises windows or not. Not raising
| windows on focus is IMO much nicer than the way most
| environments operate.
|
| You can turn off all the crap like task bar etc., and have a
| traditional X environment where clicking the mouse on the
| root window brings up your menu (my preferred setup), or you
| can make it look/act like Mac/Windows, if that is your thing.
| You can do most things with the keyboard (setting up custom
| key/mouse/edge of screen/etc. bindings is trivial). If you
| hand edit '.e/e/applications/menu/favorite.menu', you can
| have submenus etc. in your right-click "favorites" menu
| (using the gui to add menu entries to "favorites" only
| supports a flat structure). Left click brings up the default
| menu. Middle click brings up a list of open windows (separate
| list per physical monitor) to quickly switch.
|
| E is still lightweight compared to alternatives, but it used
| to be the case that one of the primary devs would test
| against an ancient machine to ensure it worked well even on
| box without much memory, and an ancient processor.
|
| I don't use gui stuff for network, filemanager, etc., but I
| have heard complaints about the default included stuff for
| this, but you can always just use something else with E, if
| you like to use gui for these.
|
| Wayland support is WIP. Not recommended.
|
| If you try the E25 package in Debian Bookworm, there may be a
| missing dependency in the package. It often abruptly exited
| without an error when clicking on the root window (which I do
| a lot of for menus). In frustration, I decided to try to
| build the Moksha E17 fork, but got errors in the build. I
| didn't have time to track them down, so just continued using
| debian's packaged E25. Time passed, and I noticed that I
| hadn't had a crash (abrupt exit without error) since
| installing the build dependencies for E/Moksha.
|
| from apt's logs:
|
| libefl-all-dev
|
| (which pulled in: efl-doc gir1.2-gst-plugins-base-1.0
| gir1.2-gstreamer-1.0 libcurl4-openssl-dev libdw-dev libefl-
| all-dev libeina-bin libeolian-bin libeolian1 libflac-dev
| libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
| liblua5.2-dev liblz4-dev libmpg123-dev libogg-dev libopus-dev
| liborc-0.4-dev liborc-0.4-dev-bin libout123-0 libreadline-dev
| libsndfile1-dev libsyn123-0 libsystemd-dev libtool-bin
| libunwind-dev libvorbis-dev libx11-xcb-dev libxcb-xkb-dev
| libxkbcommon-x11-dev )
|
| libxcb-shape0-dev libxcb-keysyms1-dev libeet-bin doxygen
| libpng-dev libluajit-5.1-dev libbullet-dev dbus-x11
| libpam0g-dev
| csdvrx wrote:
| > By default there are some animations (for things like
| desktop switching), but these are easy to turn off, and I
| always do.
|
| Why?
|
| > It can be run in floating window, or tiling mode. >
| Wayland support is WIP. Not recommended.
|
| What you describe looks to me like Hyprland. You should try
| it if you want to keep the same workflow on wayland!
|
| > clicking the mouse on the root window brings up your menu
| (my preferred setup),
|
| This seems slow. I have the windows key mapped to drun, to
| open floating menus. You can run many floating menus, with
| type ahead (like fzf or fzy)
|
| > You can turn off all the crap like task bar etc
|
| Same on hyprland, but a good taskbar is one that doesn't go
| against your workflow but with it: mine is very thin and
| mostly shows the virtual desktop, if the screensaver is
| forcefully disabled, the name and signal of the network,
| the volume, temperature, free ram, cpu, battery charge.
|
| It can be toggled off with a shortcut. There's no need to
| list the individual running apps if each one has its own
| desktop and run in fullscreen mode.
|
| Likewise, no need to waste space on titlebars if the title
| can go in the taskbar.
| abrouwers wrote:
| In general, I agree, and like using it. But, it's lagged quite
| a bit regarding Wayland, and still uses some strange components
| under the hood (acpid instead of logind, connman instead of
| network manager, etc). I hope it becomes a bit "modernized,"
| where it makes sense.
| bonzini wrote:
| Connman is okay, it's less featureful than network manager
| but it's easy to use. I think some Kodi distributions use it,
| and also available in Debian. Connman, NM and systemd-
| networkd all strike a different balance (simplicity, server
| usage, client usage--pick two).
| kstenerud wrote:
| This is why:
| https://what.thedailywtf.com/topic/15001/enlightened
| badsectoracula wrote:
| This article is probably a reason why a lot of people did not
| pay much attention to EFL but i don't think the author had
| some misunderstandings about the API (see my other comment
| here[0]).
|
| [0] https://news.ycombinator.com/item?id=38754289
| j4yav wrote:
| Wow! I think I first used this wm 25 years ago and they are still
| not even close to 1.0. Does anyone know what version number
| scheme they are using? Is it actually +0.01 per year, or is that
| just a happy coincidence?
| jitl wrote:
| Interesting, Samsung's Tizen OS used Enlightenment/EFL as its
| native UI framework:
| https://docs.tizen.org/application/native/tutorials/ui-build...
| tetromino_ wrote:
| Some have questioned the wisdom of that decision:
| https://what.thedailywtf.com/topic/15001/enlightened
| badsectoracula wrote:
| IIRC the author of that article really misunderstood what he
| was working with, for example he mentions that everything in
| EFL is an Evas_Object but that is only for the Evas library -
| which is a scene graph (another thing he seemed to
| misunderstand). In addition using a generic handle for an
| object is also something common in C APIs that want to hide
| the implementation details for objects, especially generic
| ones (one of the most common cases is HWND on Windows).
|
| I haven't used EFL myself to judge its quality (i considered
| it for a bit but from what i could tell it doesn't seem the
| main developer(s) considers backwards compatibility important
| - there is some API revamp which on one hand sounds nice but
| on the other hand it means anything that uses the existing
| API will stop working - though i might be wrong here) but
| from what i could tell the author didn't really knew the API
| he was working with.
| dig1 wrote:
| Also, the author does not seem to understand how C
| callbacks work. Gtk uses the same stuff, hiding them under
| "signals". Qt had an awful hack to support C++-style
| callbacks through the MOC preprocessor, which, in the end,
| were "compiled" into C-style callbacks. AFAIK, after C++11
| they moved from this.
|
| > If you can pass a const, you can pass a string literal
| for example, which will then be de-const'd, so you can
| modify it at will. Welcome to the land of undefined
| behavior by design!
|
| The author needed to understand what C is - a weakly typed
| language that doesn't get in your way. EFL (and
| Enlightenment) was created and led by Rasterman [1], the
| guy who knows his craft and doesn't waste his time with
| type-related theoretical nonsense. I find his code
| extremely readable and performant, and he has a lot of good
| resources to learn from.
|
| [1] https://en.wikipedia.org/wiki/Carsten_Haitzler
| dale_glass wrote:
| > Qt had an awful hack to support C++-style callbacks
| through the MOC preprocessor, which, in the end, were
| "compiled" into C-style callbacks. AFAIK, after C++11
| they moved from this.
|
| Nothing really awful about it. MOC is the MetaObject
| Compiler, and it's needed to support introspection. In
| standard C++ you can't just list the methods or
| properties any random thing has, for instance.
|
| Signals are also pretty complex. At the simplest, yes,
| they're more or less a C callback. But they can also be
| queued and sent between threads, and that of course needs
| special support that Qt does for you behind the scenes.
|
| What changed in newer releases is that signal syntax
| moved from using strings:
| connect(sender, SIGNAL(destroyed(QObject*)), this,
| SLOT(objectDestroyed())); // This is pretty much:
| connect(sender, "destroyed(QObject*)", this,
| "objectDestroyed()");
|
| to references: connect(sender,
| &QObject::destroyed, this, &MyObject::objectDestroyed);
|
| Which means connections are checked at compile time
| instead of at runtime, and you can also connect signals
| to functors or lambdas.
| agumonkey wrote:
| Also enlightened (and thus rasterman) had a reputation of
| non trivial optimizations and low memory footprint which
| was critical for early smartphones.
| IshKebab wrote:
| They didn't display any misunderstanding of C callbacks.
| The two complaints I read were: 1. You pass a const
| pointer in and get a mutable pointer out. 2. The value of
| one of the parameters was inconsistent.
|
| Both are valid criticisms. The first point is objectively
| wrong API design.
|
| Let me repeat, it is objectively wrong. C may not have
| the strongest type system but that doesn't mean that the
| intended programming model is "completely ignore const
| correctness".
|
| > knows his craft
|
| Maybe. But there are plenty of programmers who achieve
| great things while being objectively _awful_ programmers.
|
| The criticisms in this article (assuming they are true)
| are really unarguable.
| IshKebab wrote:
| Wow that's way worse than I would have expected. Especially
| those error messages. I imagine bosses could brush off "the
| API design is completely broken" because they don't have
| direct experience of it but how do you accept using a library
| with error messages like "You bitch!"?
|
| I'm genuinely curious how Tizen came to use EFL.
|
| Edit: I looked it up; apparently due to high performance and
| built in theming support (which tbf I do remember being true
| of E17 back in the day). They do also note the "unfamiliar
| developer experience" and lack of documentation and
| developers. Definitely an odd choice.
| goalieca wrote:
| I once E because the cool kids on IRC were telling me all about
| it.. over 20 years ago! I think that was E16 and quickly
| checking, it is still supported! This is older than windows XP!
| haolez wrote:
| I remember the previous version of Enlightenment (E16?) and, from
| a design standpoint, it was really cool and productive for the
| small resolution CRTs of old.
|
| The current version doesn't give me those vibes. And I haven't
| checked out the code of either, so I'm unaware if it's something
| atrocious :)
| colordrops wrote:
| The types of people that were into Enlightenment back in the day
| are now into Hyprland.
| lol_catz wrote:
| e16 is the best Enlightenment imho. and yes its true, Rasterman
| is still a script kiddie! i still prefer windowmaker as my daily
| driver dispute it not being a fancy compositing window manager.
| maybe i will experiment adding my own compositor to wm one of
| these days
| cmsj wrote:
| Shout out to the folks who used to hang out in the Enlightenment
| IRC channel until we all got told to take the social stuff to a
| new channel :D
___________________________________________________________________
(page generated 2023-12-24 23:02 UTC)