Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Applying "default_orientation auto" to all containers #674

Closed
i3bot opened this issue Mar 20, 2012 · 2 comments
Closed

Applying "default_orientation auto" to all containers #674

i3bot opened this issue Mar 20, 2012 · 2 comments
Assignees

Comments

@i3bot
Copy link

i3bot commented Mar 20, 2012

[Originally reported by tassilo@…]
(I like the default_orientation auto config option, which splits workspaces either horizontal or vertical depending on if it's wider than high. However, for my daily use (and habits), that option doesn't go far enough. I'd love if that applies to any container. I.e., when a new window appears, the current focused container is split horizontally or vertically depending on it's width/height.

Here's an example what I'd like to have starting with a fresh workspace and hitting Mod-RET 4 times in a row opening 4 terminals, when the focus is always on the container whose window was mapped last:

+--------------+---------------+
|              |               |
|              |               |
|              |               |
|              |               |
|              +-------+-------+
|              |       |       |
|              |       |       |
|              |       |       |
|              |       |       |
+--------------+-------+-------+

Right now, the default_orientation auto configuration applies to workspaces only, so I get this layout instead:

+--------------+-----+----+----+
|              |     |    |    |
|              |     |    |    |
|              |     |    |    |
|              |     |    |    |
|              |     |    |    |
|              |     |    |    |
|              |     |    |    |
|              |     |    |    |
|              |     |    |    |
+--------------+-----+----+----+

Right now, my current habit is to directly hit Mod-v (which is split v) after the second container has been created, which is pretty inconvenient.

I tried to follow the code from handling new windows thru mapping them until starting the rendering, but I'm not too proficient in C in general and i3 in particular to implement that myself. But I'm happy to try if someone gives me a pointer.

@stapelberg
Copy link
Member

Actually, now that I think of it, what you describe is how automatic tiling WMs work (like DWM, awesome, etc.). If you really need that, you might be better off using one of these. i3 is (and will stay) a manual tiling WM.

If you frequently require such a layout (not the algorithm, but a fixed layout), maybe layout restoring will provide a mechanism for doing that. That’s not quite there yet, though.

In conclusion: closing as wontfix. Either future features will provide that, or you need to switch to a different WM :).

@i3bot
Copy link
Author

i3bot commented Mar 22, 2012

[Original comment by tassilo@…]

Sorry, Michael, I won't settle to that argument that quickly. ;-)

I've already used dynamic/automatic tiling WMs, and as I result I can say that I want to be the master of my tiles, i.e., I want manual tiling. The main difference is that in a dynamic tiling WM, new windows are automatically handled by the layout algorithm, whereas in a manual tiling WM like i3, I can be sure that creating a new window will split the currently focused container. That's a very important point to me.

But that doesn't mean that a manual tiling WM isn't allowed to have (optional) sane (non-surprising) defaults. In my opinion default_orientation auto is what most users would expect, and it's the i3 default, so it seems you agree.

But why are workspaces that special that they deserve such a special behavior while other containers don't? I mean, on the monitor I'm sitting in front of right now, every of the 2 tiles on my current workspace is more than twice as large than the resolution on a usual netbook.

WRT the layout restoring: That wouldn't help me. My usual mostly-static layout is half-half split horizontally (SomeApp|Terminal). However, frequently I fire up another terminal to do some quick operation and close it instantly afterwards. Or SomeApp spawns some new temporary window. In those cases, I always want that the focused container is split depending on its height/width ratio. Now, I work around that by doing split v on both containers created by spawning the 2 initial apps on a workspace. Or if I forgot that, I have to shuffle windows. Both are one-time operations, but still...

Long story short: IMO, applying default_orientation auto to any kind of container would probably DTRT for most users (how about a poll on the list?). Of course, if that feature totally doesn't fit into i3's implementation, then I'll shut up immediately.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants