Expel from bottom of column #662
Replies: 3 comments 7 replies
-
My understanding of What's Been SaidMy generalisation of what you're saying is that currently you categorise the two operations based on the destination or result of the operation as opposed to the operation itself, which leads to a different categorisation of the two operations. What you want to do is categorise said operations with regard to the operations themselves by reducing the effect of selecting a window, which currently creates the distinction between destinations. Does this sound roughly correct? A Possible IssueThe only issue I can see with this is it would be a hassle to expel a window that isn't at the bottom, as you'd have to expel everything underneath it, expel the window and then reconsume the windows that were there previously. The way I sse it you could formulate this as My Own SuggestionsMy suggestion would be to try to flip it around somehow so consuming feels more like a window operation, which would remove this issue. I can't think of a good way to do this right now though. Possibly implementing some method of selecting multiple windows would help in this regard. Then consuming would affect all selected windows and so would expulsion. There would be edge cases we'd need to figure out, but the general idea is there. This would also allow expel and consume to be proper inverses of each other. Another possible suggestion I have is that expel expels all windows in the stack below the selected window as well as the selected window. Consume could also maybe do something similar. This should be an easier change to make than my previous selection idea, and it would also solve the "expel and consume being inverses" problem. This solution would also mean at most 2 operations to remove a specific window, unlike the O(n) complexity in OPs solution. One Last BitWith any of the previously mentioned suggestions, we could also make them new, separate actions. I personally don't think there is much of an issue with the current actions, but moving around multiple windows is a bit of a hassle atm, which both of my suggestions would, at least partially, solve. I also think the current restriction of moving around just one window is possibly what's led to this issue in the first place. |
Beta Was this translation helpful? Give feedback.
-
Hm, in PaperWM expel actually works as you describe. And now we also have the consume or expel window as you mentioned. So maybe it makes sense to change expel to work how you describe. Should it focus the expelled window? |
Beta Was this translation helpful? Give feedback.
-
17861e0 makes it so expel always expels the bottom window and doesn't focus it. |
Beta Was this translation helpful? Give feedback.
-
I like the consume/expel functionality. I can, for example, have a large height editor above a small height shell where I run commands related to what I edit.
However, I find the two commands a bit asymmetric. To me, consume feels like a column operation, and expel feels like a window operation. I will try to explain what I mean. When I consume a window, it is the selected column that consumes an extra window. It is not the selected window that is consumed into a column. It feels like a operation on the column. When I expel a window, it is the selected window that is expelled from the column. It is not the selected column that gets a window expelled. It feels like an operation on the window.
I would like expel to expel the bottom window from the column. The main benefit would be that consume always reverts an expel and expel (almost) always reverts a consume. Almost any consume or expel by mistake is easily reverted by the other command. (The exception is if there is more than one window in the column to the right, where consume will take the top window, but expel will expel to a new column.)
The alternative consume/expel commands (consume-or-expel-window-{left,right}) are more symmetrical in their behavior in that the subject is always selected window.
Beta Was this translation helpful? Give feedback.
All reactions