Hey guys,

I've been writing a new tiling module for enlightenment, which I think 
is an improvement over the current one. I've based it on the current 
tiling module (thanks a lot billiob!), but redesigned some of the 
internals and the behaviour. I like the result and would like to share 
it here and see what you guys think.

TL;DR: It's e19 based, get it from the devs/tasn/e19_tiling2 branch on 
enlightenment.git

I currently use it, so it's stable enough for that, but there might 
still be bugs. It's e19 so you need latest elementary and watch out for 
all of the things you need to watch out for if you are upgrading from e18.

So what does the module do?
It's a tree-based tiling module, which means you can tile whatever and 
wherever. When you create a window, it splits the currently focused 
window according to the tile mode (can be toggled via key bindings). So 
for example:
'O' will become '8' if you split vertically and 'OO' if you split 
horizontally.

You can also swap windows using key bindings. Swapping is directional, 
so you can only swap windows that share a border with the key bindings 
(might add another swap mode in the future).

You can also toggle a window's floating state (either from the border 
menu or a key binding) which will make a window float over the tiled 
windows (behave like e would normally treat a window).

It shares the config with the tiling v1.0 module which is probably a bad 
thing, but just makes it easier for new people to start using it. While 
tiling v2.0 can load tiling v1.0 config, making changes might reset some 
of the v1.0 config values when you switch back (hopefully never).

Please let me know if you encounter any issues or have any suggestions.

Many thanks to billiob for writing Tiling v1.0 and zmike for e related 
advice.

What doesn't work:
* Everything is not centred when using "don't show window borders" mode 
(thanks to cippp for reporting).
* Live loading of the module - You'd have to recreate the windows for 
the tiling module to "catch them". (Should be easy to fix, will fix soon).
* E restarts: the windows will be re-tiled :( and sometimes wouldn't be 
"caught". The former issue is annoying to fix, the latter is easy and 
will be fixed along with the live loading issue.
* You can't "live change" the "show border" option. You'd need to 
recreate the windows (super easy to fix, will do soon).
* Moving a window from an untiled desktop to a tiled desktop doesn't 
work. You'd need to disable/enable floating in order to refresh it (easy 
to fix, found out while writing this email).
* Some resizing cases have visual artefacts that solve themselves when 
resizing ends.
* Minimum/maximum size of windows is ignored. - I don't know what's the 
best way to handle that. Awesome just closes the window if it can't fit 
it, I just ignore it. I could potentially make it floating if I can't 
fit it, but I'd rather just ignore the size hints. Ideas are welcome.
* Code clean-ups and log clean-ups. Both are a mess as I was hacking 
while learning the code.

--
Tom.

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to