You are not logged in.
In the past I tried pretty much every tilling window manager out there but I always ended going back to 'normal' ones.
Tilling window managers are cool if one has a big screen and doesn't need to do many distinct things throughout a working session. That's not always the case so they often end up staying more on the way then increasing productivity.
Also many applications have odd behavior when used in a tilling environment, for many reasons which I'll not get into.
So, getting frustrated between thousands of frenetic and unproductive mouse clicks (I hate mouse over-usage) and the strict nature of tilling window managers, I found winsplit revolution.
I installed it on my work computer (windows XP) and it turned out to be EXACTLY what I was looking for.
Since then, I've been looking for a good alternative to winsplit revolution that would work on linux. There are a few out there but they either have to heavy dependencies (compiz for example) or do not do exactly what I wanted.
So, to get rid of this frustration I decided to give it a try a while ago.
This is still highly experimental and is more of a draft than production software. Despite that, I'm using it every day and it does do what I want. If you're desperate like me, you should definitely give it a try:
I called it azulejo, which is the portuguese word for 'tile'. Tiles are a very important element on portuguese architecture and culture, so this is my lame tribute to tiles 
You can download a usable version from bitbucket:
https://bitbucket.org/plainas/azulejo/get/usable.tar.gz
Usage and a very brief description of how it works:
http://lamehacks.net/blog/introducing-a … w-tilling/
As much as I love debian software dependency management from a end user prespective, I find the process of creating deb packages over-complicated and not so well documented, so this is where I would ask some kind soul to branch the source and add that DEBIAN packaging folder to it.
Last edited by pico (2011-01-26 23:01:13)
Offline
Have you tried PyTyle?
Note: ** Please read before posting **
BTW if you wish to contact me, send me an e-mail instead of a PM.
Offline
Have you tried PyTyle?
I did but as I said it didn't work quite the way I wanted. I wanted something more like winsplit.
Pytyle is closer to tilling window managers.
The concept is not quite the same.
Also, it wouldn't be a reason for me not have fun 
Offline
It might encourage more people to try it out if you gave a bit of detail as to how this differs from a tiling manager, or something like pytyle. What are the shortcoming of these two for your workflow?
From a bit of searching and watching the video tutorials on Winsplit website (http://www.winsplit-revolution.com/scre … deos-demos) it seems like much of what he demonstrates can be replicated within Openbox's rc.xml using a variety of functions together for instance attached to a keybinding. I used to use a few of these to replicate Window's 7-like window snapping etc. Openbox Actions like "MaximizeVert" "MoveResizeTo" "MoveToEdgeWest" (north/south/east) and "GrowToEdge" are pretty awesome when linked up. Of course you're limited to Openbox here.
That said I'm checking it out as I'm trying to teach myself Python and this looks like a small, clear little project. Thanks for sharing.
IRC: PizzaAndWine Script bits: Incremental Backup | Sleep Timer
Offline
Also -- you might want to add a note that this requires the installation of the python-wnck package to get running.
(Got it running...will be trying it for the evening.)
IRC: PizzaAndWine Script bits: Incremental Backup | Sleep Timer
Offline
It might encourage more people to try it out if you gave a bit of detail as to how this differs from a tiling manager, or something like pytyle. What are the shortcoming of these two for your workflow?
The main difference in here is that Azulejo will sit on the background and do nothing unless you specifically order it to do stuff.
Windows will still open in a float fashion like they always did. Nothing automatic ever happens. Nothing is overridden nor intercepted, except for the keybinds of course.
From a bit of searching and watching the video tutorials on Winsplit website (http://www.winsplit-revolution.com/scre … deos-demos) it seems like much of what he demonstrates can be replicated within Openbox's rc.xml using a variety of functions together for instance attached to a keybinding. I used to use a few of these to replicate Window's 7-like window snapping etc. Openbox Actions like "MaximizeVert" "MoveResizeTo" "MoveToEdgeWest" (north/south/east) and "GrowToEdge" are pretty awesome when linked up. Of course you're limited to Openbox here.
That is, in fact, a good description of the motivation of this small project. It was already possible, but too hacky IMO. You'd have to define the keyboard shortcuts here, tilling details there and so on.
I wanted to bring all this together into a stand-alone application that would handle everything necessary.
Another advantage is that it will just work (well, except for the annoying first time bug) out of the box, but you're still free to tune your configurations.
Also -- you might want to add a note that this requires the installation of the python-wnck package to get running.
(Got it running...will be trying it for the evening.)
Yes, thank you, python-wnck and ptyhon-keybinder are necessary, I forgot to mention, sorry.
Again, if anyone could create the necessary files to build a deb package, I would be grateful.
Offline
you know, at first I thought "meh" but now I think this is a good idea! I'll try it out as soon as I get to my computer again 
Punch all your friends.
Offline
Olà amigo! Vou escreber a minha mensagem em inglês para que todos percebem ^^
It's funny, because this software is EXACTLY what my girlfriend needs. She told me she wanted to have her windows tiled like mine, but I use xmonad and she just needs this feature ponctually. I installed pytyle but the fact that it tiles windows automatically when it's running is not really what she wants either. I will give azulejo a try, I looks great!
Xmonad is the best way to get things done, fast.
My french linux blog: http://cbrunos.wordpress.com
Offline
I know exactly what you mean, I loved tiling but it just gets annoying with some applications. I loved the fact that awesome and XMonad had a workspace per screen, it's the most productive thing ever imo and I can't find any floating WMs that support it.
Have you looked at bluetile? http://www.bluetile.org/
It says it's for gnome which is annoying, but it looked interesting to me
My person website, Michael Burton
Offline
So, did anybody used it? What's the verdict? I could use some feedback.
Burton, I checked bluetile, I haven't heard about it before. It's made with a different paradigm in mind. It might be more powerful, but for sure more intrusive.
Offline
I liked it: the functionality worked like it said it should (except that it reads tint2's strut policy, but no biggie) and I like it! The only problem with it is that there is no "untile" function: when I'm done with windows being tiled I want them to be able to snap back to what size/position they were before, much like when a window is un-maximized. I don't know how easy it is to implement this but it's something that if you had it, I'd use azulejo all the time!
Punch all your friends.
Offline
I've been playing for a bit, and generally it works quite well.
A few things I've noticed:
The needing to start it up twice makes it a bit awkward to put in autostart scripts...don't know how hard this is to fix.
Often the tiling doesn't fill up the screen all the way, with margins at the edges. Some of this may be due to terminal windows (and their need to be the exact number of columns/rows) -- but i know some tiling window managers have a way around this (awesome for one.)
I end up doing a lot of Alt-Tab switching and reapplying the tile as it often puts windows in a ordering I'm not a fan of. It would be hand if pressing the same command twice in a row would switch the windows position. (Or perhaps just a default command to do this like Super - 0.)
Very cool -- interested to see where it goes from here.
IRC: PizzaAndWine Script bits: Incremental Backup | Sleep Timer
Offline
First of, thank you for feedback, it's of great use.
On to the details...
I liked it: the functionality worked like it said it should (except that it reads tint2's strut policy, but no biggie) and I like it! The only problem with it is that there is no "untile" function: when I'm done with windows being tiled I want them to be able to snap back to what size/position they were before, much like when a window is un-maximized. I don't know how easy it is to implement this but it's something that if you had it, I'd use azulejo all the time!
It happens the same to me, when on openbox the windows don't use all the space they could, instead they leave a small gap. It's not biggie, but of course, it would be nice to get rid of that bug.
WNCK is a very high level library, It's cool that some good people took the effort to write it so I can do this kind of toy with minor effort. Simplicity comes with a price though, when this kind of glitch show up, there's not a solution all the time, sometimes we have to live with it :s
WNCK works and is deadly easy to use, but it quickly reaches its usefulness limit.
I'm not sure I want to learn something like Xlib, _maybe_ XCB, it's ind of annoying that the not-so-abundant docs about these python modules assume that the reader is familiar with the correspondent C libraries, which I am not.
I will break the resizing code apart from the rest and call it through a simple agnostic interface. Hopefully this will leave the door open for anyone who wants to implement it using xlib, xcb, etc.
In the mean time we will have to live with the gaps here and there.
On gnome seems to work better, without wasted space.
As for untiling, that is not likely to be implemented. That would require keeping track of windows, saving their states, etc. I don't see that happen in the near future, sorry.
A few things I've noticed:
The needing to start it up twice makes it a bit awkward to put in autostart scripts...don't know how hard this is to fix
Ok, I was't so clear. It's not necessary to start it twice, that's only the very first time you use it. If you already ran into that problem then you won't run into it anymore. You can (and should
) put it on your OB startup script, it will work.
The good news is that that is a known issue, I'm not doing it right
, will fix it when I get bored 
I end up doing a lot of Alt-Tab switching and reapplying the tile as it often puts windows in a ordering I'm not a fan of. It would be hand if pressing the same command twice in a row would switch the windows position. (Or perhaps just a default command to do this like Super - 0.)
That's my main concern ATM. Rotating windows' positions is the next feature I want to implement, I too, need it badly 
Last edited by pico (2011-01-31 21:52:09)
Offline
Hi Pico,
Thanks for your work. I use azula atm and i like it. I had pytyle installed, but most times i only need two or three windows open (mostly firefox and terminator, or firefox, terminator and gedit).
What i didn't like about pytyle:
- very small windows when i had 5 programs running
- untile resulted in strange window formats
For azula:
It would be nice to have a 'untile'key (win-1 maybe) and a rotate function.
I don't need a deb installer, but some install instructions in the tar would be nice.
Tuna
sed 's/stress/relaxation/g'
Privacy & Security on #!
Offline
Hey all,
So, today I was bored and decided to give a go implementing window rotation.
It kind of works, but it has two really annoying bugs. I would call it barely usable.
https://bitbucket.org/plainas/azulejo/i … tatus=open
More info and download here:
http://lamehacks.net/blog/azulejo-window-rotation/
I'm facing more and more tricky problems that I lack knowledge to solve and documentation is scarce. At this point I could really use the help of somebody with proper knowledge of GTK and/or WNCK.
@Tuna
Untiling is unlikely to be implemented in the near future. Azulejo works simply by resizing windows. In order to untile it would need to keep track of window attributes before resizing. while this might be simpler than what I initially thought, there's still a lot of rough edges to polish before I move on to more advanced features.
Offline
You might also look at
http://code.google.com/p/pywo/
it seems to be similar to winsplit
Get Dropbox and an extra 500 mb http://db.tt/wAizqw0
Offline
Since then, I've been looking for a good alternative to winsplit revolution that would work on linux. There are a few out there but they either have to heavy dependencies (compiz for example) or do not do exactly what I wanted.
Have you tried PyTyle?
Have you looked at bluetile? http://www.bluetile.org/
You might also look at
http://code.google.com/p/pywo/it seems to be similar to winsplit
Mmmm.... What's with the skepticism?
Offline
To be fair, you didn't specify which programs you did try.
Note: ** Please read before posting **
BTW if you wish to contact me, send me an e-mail instead of a PM.
Offline
Not skepticism in my case but it is open source, so if there are ideas you can use why should I not let you know about it ?
Get Dropbox and an extra 500 mb http://db.tt/wAizqw0
Offline
Ok, I guess I didn't express myself very accurately.
What I meant is, yes, I've tried the tools you guys mentioned and many more.
@anonymous
that's fair enough, but on the other hand I don't see the point of making an extensive list of alternatives in this topic.
@jefferey
I do appreciate the hints, and to be honest I go and check pywo's source code from time to time. Unfortunately, while its author seems to have a good grasp of Xlib, I find it rather confusing and not so well documented when it comes its python bindings.
Offline
@pico
Xlib is not that hard to understand, you just need to read the manual for C. The real problem is to find a way to deal with all the inconsistencies in how EWMH and ICCCM is implemented between different window managers.
If you want to go low-level you might check XCB, but I have no idea if documentation for python xcb bindings is any better.
At this point PyWO should be ready to be used as a wrapper library for Xlib. Almost everything connected with moving windows around, changing their state, and handling events is implemented. There are still some parts that are waiting for refactoring, but I hope that new version with some new features, and possibility to write your own plugins, will be out in a around month time.
Offline
@pico
Xlib is not that hard to understand, you just need to read the manual for C. The real problem is to find a way to deal with all the inconsistencies in how EWMH and ICCCM is implemented between different window managers.
If you want to go low-level you might check XCB, but I have no idea if documentation for python xcb bindings is any better.At this point PyWO should be ready to be used as a wrapper library for Xlib. Almost everything connected with moving windows around, changing their state, and handling events is implemented. There are still some parts that are waiting for refactoring, but I hope that new version with some new features, and possibility to write your own plugins, will be out in a around month time.
Hey Kosciak, whanks for replying.
I haven't thought about it in that way. But now that you mention it I think I'll go for it. I'll grab core.py and use it. Looks much simpler as I intend to stay as high level as possible.
I see some intense activity the last weeks on that particular file, but the method layout has been quite stable. Do you intend to keep it that way, or are there some big changes ahead affecting class layout and/or methods names?
Offline
I don't plan big changes affecting module/class layout. Especially in core module as I'm quite happy how it works now, so it can be treated as stable - changes shouldn't affect code that uses this module. Most probably the EventDispatcher class will move to separate module, but it shouldn't be used directly by other code anyway. There will be some changes in actions package - adding pre/post action hooks, maybe some changes in actions.manager (implementing plugins loading). And the support for multiple monitors, but I doubt I will manage to do it soon.
As I don't have much time for working on PyWO (mostly on weekends) I try to put the TODO/NOTE comments in the code if I think something needs to be changed.
If you have any suggestions on how to make PyWO more friendly for third-party developers feel free to contact me.
Offline
Hey all,
I've been to lazy to make major improvements, but I've added a few very useful keybinds to resize windows to all the four corners and packed the application into a deb package for the joy of the masses.
Info and deb package:
http://lamehacks.net/blog/azulejo-updat … b-package/
Offline
OK cool. This might be what I have been looking for
Installed the deb, but ran in the following issue:
$ azulejo
Traceback (most recent call last):
File "/usr/bin/azulejo", line 2, in <module>
from azulejo import *
ImportError: No module named azulejoToo lazy to try and figure out at the moment how to make my python aware of this module 
Offline
Copyright © 2012 CrunchBang Linux.
Proudly powered by Debian. Hosted by Linode.
Debian is a registered trademark of Software in the Public Interest, Inc.