emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Add function to rotate/transpose all windows


From: Juri Linkov
Subject: Re: Add function to rotate/transpose all windows
Date: Tue, 17 Dec 2024 20:32:28 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)

>> - Have you settled on final names for your functions?  I need them so I
>>   can write a(n at least) preliminary section in the Elisp manual.
>
> I have

What are these names?  It seems such names would be suitable:

- rotate-windows

  +-----+     +-----+
  |  A  |     |  B  |
  |-----| ->  |-----|
  |B | C|     |C | A|
  +-----+     +-----+

- rotate-windows-back

  +-----+     +-----+
  |  A  |     |  C  |
  |-----| ->  |-----|
  |B | C|     |A | B|
  +-----+     +-----+

- rotate-window-layout

  +-----+     +-----+
  |  A  |     |B |  |
  |-----| ->  |--| A|
  |B | C|     |C |  |
  +-----+     +-----+

- rotate-window-layout-back

  +-----+     +-----+
  |  A  |     |  | C|
  |-----| ->  |A |--|
  |B | C|     |  | B|
  +-----+     +-----+

- flip-window-layout-horizontally

  +-----+     +-----+
  |  A  |     |  A  |
  |-----| ->  |-----|
  |B | C|     |C | B|
  +-----+     +-----+

- flip-window-layout-vertically

  +-----+     +-----+
  |  A  |     |B | C|
  |-----| ->  |-----|
  |B | C|     |  A  |
  +-----+     +-----+

- flip-window-layout-diagonally
  This is a better name than transpose-windows.
  To transpose all windows means this transformation
  that swaps x-axis and y-axis:

  +------------+------------+      +----------------+--------+
  |            |     B      |      |        A       |        |
  |     A      +------------+      |                |        |
  |            |     C      |  =>  +--------+-------+   D    |
  +------------+------------+      |   B    |   C   |        |
  |            D            |      |        |       |        |
  +-------------------------+      +--------+-------+--------+

>> - Have the keybindings been established?
>
> Juri, what do you think?  IMO we could have
> C-x w t   - transpose
>       f   - flip window veritcly
>       C-f - flip window horizontally
>       r   - rotate clockwizse
>       C-r - roate anti clocwise
>       c   - rotate layout
>       C-c - other direction rotate layout

What is mnemonic of 'c'.  I see no letter 'c' in "rotate layout".

> IMO preserving keybindings for future use is premature optimisation,
> breaking backward compatibility in terms of keybindings is generally
> harmless.

Experience shows that replacing established keys is not quite harmless.

> Also is there any reason emacs doesn't bind M-{A-Z} (eg M-H), even
> though they work on tty?  If not, someone, if not us, should break the
> ice on using these bindings, we could bind rotate-window-layout to M-R.
> That could be super handy, it's much more ergonomic than suepr key.

For example, M-A is shift-translated M-a that selects the region
to the beginning of the sentence.

>> - Where should your changes be installed?
>
> We discussed this previously, and decided that it should not be in
> window.el as it is loaded, instead we should put it in an autoloaded
> file.  IMO we should make new file window-transpose.el, putting it in
> windowmove would not make much sense.  wdyt?

Eli suggested window-x.el, so let's use this.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]