Monday, October 31, 2011

No more eFLTK

In the last month there has been a lot of changes in repository. First of all, maybe the most interesting change is that edewm (window manager) was replaced with pekwm, making EDE now fully eFLTK free! This is the major step we headed to in last few years when decided to abandon eFLTK and fully focus on stable (and more maintable) FLTK 1.x.

I chose pekwm simply because it depends only on C++ compiler and X11 libs. I used it (and still using it) heavily with other EDE parts and it works without any major problems. Also, quite important thing for window manager was to have good window manager specification support, so users can replace them without any hassle.

Thanks to ChristTrekker suggestion I played with FLTK based awflwm, but it is still quite behind EDE needs.

Also, important news is how panel (ede-panel) got system tray support (implementing almost full system tray specification, excluding messaging part). This removed one huge limitation for current EDE usage, as more and more applications (and daemons) store own status in tray. Here is image with some apps running on Fedora 15:


There could be some issues I missed, but this thing is working and I'm using it daily (with skype and pidgin of course :)).

ede-launch got some important addition in form of support for preferred applications. This introduced new tool, called ede-preferred-applications from where user can select preferred web browser or terminal. I'm sure you already seen it in form of exo-preferred-applications from Xfce or similar tool from GNOME.

Basically, with this you will be able to run preselected terminal or browser, or simply leave ede-launch to guess your input and deduce what to run.

ede-launch can now directly run .desktop files too, which will simplify some code in ede-desktop component.

So to summarize, you can do this:
ede-launch http://www.google.com  # run selected browser
ede-launch foo@foo.com # run selected mail client
ede-launch --launch terminal ls -la /  # list directory in preferred terminal
As ede-launch is used to start almost everything, these features will become quite handy.

What are the major things left to be done before release? There is a small issue with long long support on FreeBSD's Xorg distro (EDE is compiled with -pedantic support yielding error reports when long long is detected, as it is not supported by C++ standard) and iconv inside pekwm (also on FreeBSD) that needs to be resolved. Also, I would like to review translation support and add intltool for easier string extraction from files that are not source code (conf and .desktop files, theme sources and such).

20 comments:

Anonymous said...

Great news. With Fedora already running on Raspberry Pi (http://www.raspberrypi.org/archives/254), EDE could make a good lightweight DE alternative.
Any recommendations for a lightweight FLTK based file manager?

Sanel Z. said...

EDE already comes with 'efiler', but is quite incomplete (and after trying to compile it, 'uncompilaable' :S).

There is mfm (http://sg67.altervista.org/mfm/index.html), but have some issues with compilation and if you would like, I could provide patch for you.

Also, try to google 'flfm'. I didn't have success to find any working download link, so maybe you will have.

And there is fluff (http://sites.google.com/site/lockmoorecoding/downloads/fluff).

Anonymous said...

Thanks for file manager recommendations.
Now I've ran into some problems while trying to compile EDE on TinyCoreLinux. During compilation of edelib (using latest SVN), I get error messages:
...failed C++ src/FontCache.o ...
and in result:
...failed updating 20 target(s)...
Here's whole compilation log: http://pastebin.com/XhPzebUE

Sanel Z. said...

Thank you for trying the latest code. You caught some unfinished parts... I committed few minutes ago refactored code that should address your issue.

Let me know if fails somewhere again :)

Anonymous said...

That was unexpectedly fast response, thank you. I tried to compile with latest SVN - 3 errors left: http://pastebin.com/ptq2GLjk
Maybe the limited environment of TinyCoreLinux prevents from successful compilation?

Anonymous said...

With latest SVN R3161 only one error is left related to FontCache http://pastebin.com/arADwcTf

Sanel Z. said...

Please can you check now? Hopefully this should be fixed.

Anonymous said...

No, doesn't work yet. http://pastebin.com/bWeySjLB
Added some info about gcc and FLTK version. I could post more debug information if it is necessary.

Anonymous said...

With a few "hacks" I got EDE running under TCL
http://pastebin.com/qqPMF93N

Looks like that most things works as expected. I'll be doing more testing tomorrow.

Anonymous said...

With latest SVN R3168 edelib builds correctly without any errors or warnings. ede2 compilation gives an error:
http://pastebin.com/airFMB8w

And looks like the fix with adding & to first Fl_Font doesn't work now.

Anonymous said...

After clean compilation looks like that modifying ede-desktop.cpp 321 line variable to
(Fl_Font&)gisett->label_font
compiles the ede-desktop.o , but gives a warining
http://pastebin.com/AiPUE034

I hope you can come up with more elegant solution.

Sanel Z. said...

Ahhh crap; caught that with FreeBSD's gcc version :) I'll try to fix that in better way.

Have other problems with code/running ede?

Anonymous said...

Thanks for help, EDE runs nicely on TinyCoreLinux. Currently only ede-keyboard-conf is giving a segmentation fault. Of course, there are some tiny issues, like window restore function not working from taskbar context menu, but those could be addressed later.
After some more testing I might pack an EDE tcz pack, so other TCL users could test it too. Are there any options to strip debug data from binaries during install?

Sanel Z. said...

Glad to hear that :) Related to ede-keyboard-conf: can you run gdb on it please?

For restore, what exactly doesn't work?

And for strip, have you run ./configure without options? Debug information should not be present, but explicit stripping (via strip) is not yet implemented; I will leave that for near future.

Anonymous said...

ede-keyboard-conf wasn't working because setxkbmap was missing, my bad.
I think "restore" should restore window from maximized state to normal, currently it only restores window from minimized state.
There's also a default pekwm menu left, which is accessible from right click on top-left corner.
For UTF-8 support I presume FLTK 1.3 is required?
And is there any way to call custom script or app when user clicks "Logout" from main menu?

Sanel Z. said...

> ede-keyboard-conf wasn't working because setxkbmap was missing, my bad.

Hm... when setxkbmap is not installed, ede-keyboard-conf should just report it, not crash. Did crash really happened or you just got some dialog?

> I think "restore" should restore window from maximized state to normal, currently it only restores window from minimized state.

Yes, you are correct; I will look at this.

> There's also a default pekwm menu left, which is accessible from right click on top-left corner.

This should be fixed now. After code pull, just remove "~/.pekwm" folder. What I basically did is to make 'menu' empty.

> For UTF-8 support I presume FLTK 1.3 is required?

Yes.

> And is there any way to call custom script or app when user clicks "Logout" from main menu?

No for now. You mean when user log out from desktop or when click Logout on menu?

Anonymous said...

While keyboard panel plugin informs about setxkbmap absence, ede-keyboard-conf crashes silently with segmentation error.

ChristTrekker said...

Does EDE build against both FLTK 1.1 and 1.3, or is a specific version required?

Very excited to see posts here again! When will a β2 be out?

Unfortunately I am also chronically short on time, so no progress has been made on porting Webkit to FLTK, beyond thinking of potential names. I still dream of a fully FLTK-based desktop.

Sanel Z. said...

@Anonymous when this happens, does ede-panel crashes too? Can you run ede-panel like this:

gdb //bin/ede-panel
: run
(and when crashes, type)
: bt

and send me a stack trace?

@ChristTrekker now EDE builds against 1.1.x and 1.3

Related to beta release: I'm hoping we will go without it, straight to 2.0. Hopefully this will speed up things. Time? Not sure, a couple of tiny things + complete ede-desktop menus (to create icons) + fix critical bugs.

Would you like guys to subscribe to ede-devel [at] lists.sourceforge.net; it is much easier to type mail than replies here :D?

ChristTrekker said...

I'm already on the email list, but it hasn't seen a post in a very long time.