Re: patch: push window to frame

Jeff Abrahamson <[email protected]> Thu, 2 Oct 2014 18:49:09 +0200
Newsgroups gmane.comp.window-managers.ratpoison.devel
Message-ID <CAM4Y7zz3a0n4SPrvtOR00S3SAM911B-f3v-KN8X1cW17XvB9XA@mail.gmail.com>
Hi, Johannes.

Thanks for the feedback. I'm glad to hear that you're using the code and
that it's working well.

I like the idea of a window swap. I agree it would be nice (and faster) as
a separate feature, and I'm starting to get good at this. ;-)  So I'll do
it.

My next rp project, though, is the very big frame affinity feature --
making windows want to reappear in the frame where they were last seen.
This is one that is really annoying me now, so it will be good to get it
done!

It's interesting that a side-effect is how to handle undo. Currently undo
acts only on frames, but because frames don't care much what windows they
display, we don't need to remember anything about windows for undo. With
frame affinity, however, removing a frame does something to the windows
that were displayed in the frame. (Probably inserts them into the frame
that absorbed the pixels.) So undo should probably move the windows back to
the frame that was just undeleted. But then, suddenly, other window actions
should be undoable. (Closing a window seems an exception, since it isn't
very meaningful and could even be dangerous if the process actually did
something serious.)

Ratpoison might be the only window manager that supports undo well, so we
might be in interesting creative territory. If anyone knows prior art,
please let me know.



Jeff Abrahamson
+33 6 24 40 01 57
+44 7920 594 255    <-- only if I'm in the UK

http://jeff.purple.com/
http://blog.purple.com/jeff/

On 2 October 2014 16:09, Johannes Altmanninger <[email protected]>
wrote:

>
> Hi Jeff,
>
> The patches are working as expected for me.  However, I sometimes find
> myself wanting to swap windows but keep focus on the current frame,
> something which neither swap nor pushwindow/pullwindow do.  Turns out
> this can be easily scripted with the --interactive flag:
>
>     ratpoison --interactive -c swap -c focuslast
>
> As far as I tested "pushwindow" does the same thing with "other" added:
>
>     ratpoison --interactive -c swap -c focuslast -c other
>
> In contrast, "pullwindow" can be implemented by calling "other" before
> switching back to the original frame
>
>     ratpoison --interactive -c swap -c other -c focuslast
>
> These can be turned into ratpoison commands with "alias pushwindow exec
> ratpoison ..."
>
> Of course these aliases are not as nice as real commands, (e.g. they
> behave oddly when targeting the current frame, they may also be slower)
> but combining ratpoison commands is more flexible and can match
> everyone's needs.  Naturally there is a downside to implementing only
> the basic commands, namely the user needs to know what's possible even
> if it is not implemented by default. For example, I have been using
> ratpoison for some time now but never realized I just could do that with
> "--interactive".
>
> Regards,
>
> Johannes
>

_______________________________________________
Ratpoison-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/ratpoison-devel