Michael Stapelberg wrote:
Hi,

as some of you might already know from IRC, I've been working on a tiling
module for e17 for about a month. Today, it reached feature-complete status
and this is a good moment to post to the development list, I thought ;-).

For those of you who are not familiar with the concepts that (for example) ion
or wmii use: The windows on your screen always fill the whole available space,
there are no overlapping windows. Some people quite like this concept and are
more productive with it. Some (like me) have worked implicitly this way
sometimes - this can be more effective when using the module which does all
placement for you :-).

To get an idea of the configuration, see:
https://twice-irc.de/misc/tiling/config.png
(You need to install the CACert-root-certificate for this to work in newer
versions of firefox, go to http://www.cacert.org/index.php?id=3 and use the
class 3 one.)

To see how the different layouts look like:
https://twice-irc.de/misc/tiling/bigmain_xinerama.png (Big window left, small
windows on the right)
https://twice-irc.de/misc/tiling/grid_xinerama.png (Grid mode)

Of course, Xinerama is supported :-).

There may still be bugs, so I'd appreciate some testing. Please don't comment
the "#define DEBUG" out and let e17 log to a file, for example using "startx
/opt/e17/bin/enlightenment_start 2>&1 1>elog" and send me the file afterwards
if you're having strange bugs which are not design flaws.

There is a short HOWTO on installing as you need to apply a patch for adding
another event before desktop changes, so check
https://twice-irc.de/misc/HOWTO-e17-tiling if you'd like to try it.

For those familiar with patching/compiling, use "git clone
git://dev.twice-irc.de/e17-tiling.git" or check webgit on
https://dev.twice-irc.de/git/?p=e17-tiling.git;a=summary

Best regards,
Michael

PS: The module has exactly 1337 lines of ansi-c-code according to SLOCCount -
if that isn't a good sign... ;-
The first time I loaded this module, E segfaulted. It loaded successfully the next time, though. However, since unloading it I am unable to load the module again - E segfaults on every attempt. I am attaching a backtrace from gdb.

Thanks for the great work!

Will Keaney
uberpinguin
#0  0x00002b312f8b9b60 in strlen () from /lib/libc.so.6
No symbol table info available.
#1  0x00002b312f8b98a6 in strdup () from /lib/libc.so.6
No symbol table info available.
#2  0x00002aaaaae1ce84 in e_modapi_init (m=0x119bd10) at e_mod_main.c:936
        buf = "/opt/e17/lib/enlightenment/modules/tiling/e-module-tiling.edj", 
'\0' <repeats 2011 times>, 
"ph■\202■\177\000\000■\217f(1+\000\000■\217f(1+\000\000Wg■\202■\177\000\000i,\210/1+\000\000Xg■\202■\177\000\000\000\000\000\000\221\t\000\000■g■\202■\177\000\000■g■\202■\177\000\000\000h■\202■\177\000\000■g■\202■\177\000\000■g■\202■\177\000\000■g■\202■\177\000\000\bh■\202■\177\000\000Xg■\202■\177\000\000\000\000\000\000\000\000\000\000p"...
        desk = <value optimized out>
#3  0x000000000047dfbf in e_module_enable (m=0x119bd10) at e_module.c:261
        l = (Evas_List *) 0x10666d0
        ev = (E_Event_Module_Update *) 0x0
#4  0x00000000004c7d4d in _mod_hash_load (hash=0xd67090, key=0xf4e8c0 "tiling", 
data=0xf1ef20, fdata=0x0) at e_int_config_modules.c:631
        mod = (CFModule *) 0xf1ef20
        module = (E_Module *) 0x119bd10
#5  0x00002b312a5530dc in evas_hash_foreach () from /opt/e17/lib/libevas.so.0
No symbol table info available.
#6  0x00000000004c7c8a in _enable_modules (enable=1) at 
e_int_config_modules.c:613
        cft = (CFType *) 0x9f9fb0
        i = 0
#7  0x00000000004c7b9d in _btn_cb_load (data=0xc77400, data2=0x0) at 
e_int_config_modules.c:590
        cfdata = (E_Config_Dialog_Data *) 0xc77400
#8  0x00000000004add54 in _e_wid_activate_hook (obj=0x1205170) at 
e_widget_button.c:164
        wd = (E_Widget_Data *) 0x1204d90
#9  0x00000000004addfd in _e_wid_signal_cb1 (data=0x1205170, obj=0x1205300, 
emission=0x120e360 "e,action,click", source=0x80e820 "") at 
e_widget_button.c:188
        wid = (Evas_Object *) 0x1205170
#10 0x00002b312865edcf in edje_match_callback_exec_check_finals 
(signal_finals=0x120dda0, source_finals=0x120de10, signal_states=0x1212560,
    source_states=0x120de60, signal=0x120e360 "e,action,click", source=0x80e820 
"", callbacks=0x11fc300, ed=0x1205490) at edje_match.c:392
        escb = (Edje_Signal_Callback *) 0x120dbd0
        i = 0
        j = 0
        r = 1
#11 0x00002b312865f235 in edje_match_callback_exec (ppat_signal=0x120dd80, 
ppat_source=0x120ddf0, signal=0x120e360 "e,action,click", source=0x80e820 "",
    callbacks=0x11fc300, ed=0x1205490) at edje_match.c:528
        signal_result = (Edje_States *) 0x1212560
        source_result = (Edje_States *) 0x120de60
        r = 0
#12 0x00002b3128651baa in _edje_emit_cb (ed=0x1205490, sig=0x120e360 
"e,action,click", src=0x80e820 "") at edje_program.c:1009
        r = 0
        l = (Evas_List *) 0x7fff82ca6c80
#13 0x00002b3128651ac2 in _edje_emit_handle (ed=0x1205490, sig=0x120e360 
"e,action,click", src=0x80e820 "") at edje_program.c:976
        ec = (Edje_Part_Collection *) 0x1204f50
        done = 0
#14 0x00002b312865c560 in _edje_message_process (em=0x9bb660) at 
edje_message_queue.c:432
        fn = 0
        pdata = (void *) 0x7fff82caa030
        i = 11057
#15 0x00002b312865cb92 in _edje_message_queue_process () at 
edje_message_queue.c:607
        em = (Edje_Message *) 0x9bb660
        ed = (Edje *) 0x1205490
        i = 1
#16 0x00002b312865bbd0 in _edje_job (data=0x0) at edje_message_queue.c:106
No locals.
#17 0x00002b312a3169ab in _ecore_job_event_handler () from 
/opt/e17/lib/libecore_job.so.0
No symbol table info available.
#18 0x00002b312ed60baa in _ecore_event_call () from /opt/e17/lib/libecore.so.0
No symbol table info available.
#19 0x00002b312ed66d15 in _ecore_main_loop_iterate_internal () from 
/opt/e17/lib/libecore.so.0
No symbol table info available.
#20 0x00002b312ed6702f in ecore_main_loop_begin () from 
/opt/e17/lib/libecore.so.0
No symbol table info available.
#21 0x000000000042ccc2 in main (argc=1, argv=0x7fff82caa038) at e_main.c:937
        i = 1
        nostartup = 0
        after_restart = 1
        safe_mode = 0
        buf = "/opt/e17/share/enlightenment/data/icons\000j", '\0' <repeats 23 
times>, 
"\200\231c/1+\000\000/\227■'1+\000\000\210\211\224.1+\000\000\230■+1+\000\000\000■■,1+\000\000■■■,1+\000\000\000\220c/1+\000\000■\224c/1+\000\000\000\000\000\000\000\000\000\000■\001(1+\000\000■\233■\202■\177\000\000\000\000\000\000\000\000\000\000/\234■\202■\177\000\000■\221A\000\000\000\000\000\000\000■8\225\005■■P~s",
 '\0' <repeats 31 times>, "[EMAIL PROTECTED]"...
        s = 0x7fff82cabd89 ":0.0"
        action = {__sigaction_handler = {sa_handler = 0x4870f0 <e_sigabrt_act>, 
sa_sigaction = 0x4870f0 <e_sigabrt_act>}, sa_mask = {__val = {
      0 <repeats 16 times>}}, sa_flags = -1073741820, sa_restorer = 
0x2b312f639498}
        t = 1208462293.4078889
        tstart = 1208462293.4078889

Attachment: signature.asc
Description: OpenPGP digital signature

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to