[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ace-window d92320e 10/92: Add fair window split.
From: |
Stefan Monnier |
Subject: |
[elpa] externals/ace-window d92320e 10/92: Add fair window split. |
Date: |
Wed, 17 Mar 2021 18:39:11 -0400 (EDT) |
branch: externals/ace-window
commit d92320e74089cb346e172c63b02cce48a0d8cca7
Author: Will S. Medrano <will.s.medrano@gmail.com>
Commit: Oleh Krehel <ohwoeowho@gmail.com>
Add fair window split.
Document fair window splitting
Fixes #83
---
README.md | 2 ++
ace-window.el | 16 ++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/README.md b/README.md
index 59afd57..8d87bbd 100644
--- a/README.md
+++ b/README.md
@@ -50,6 +50,7 @@ You can also start by calling `ace-window` and then decide to
switch the action
- <kbd>x</kbd> - delete window
- <kbd>m</kbd> - swap (move) window
+- <kbd>c</kbd> - split window fairly, either vertically or horizontally
- <kbd>v</kbd> - split window vertically
- <kbd>b</kbd> - split window horizontally
- <kbd>n</kbd> - select the previous window
@@ -109,6 +110,7 @@ By default is:
'((?x aw-delete-window " Ace - Delete Window")
(?m aw-swap-window " Ace - Swap Window")
(?n aw-flip-window)
+ (?c aw-split-window-fair " Ace - Split Fair Window")
(?v aw-split-window-vert " Ace - Split Vert Window")
(?b aw-split-window-horz " Ace - Split Horz Window")
(?i delete-other-windows " Ace - Maximize Window")
diff --git a/ace-window.el b/ace-window.el
index ad7204b..02a0654 100644
--- a/ace-window.el
+++ b/ace-window.el
@@ -263,6 +263,7 @@ LEAF is (PT . WND)."
(?m aw-swap-window " Ace - Swap Window")
(?M aw-move-window " Ace - Move Window")
(?n aw-flip-window)
+ (?c aw-split-window-fair " Ace - Split Fair Window")
(?v aw-split-window-vert " Ace - Split Vert Window")
(?b aw-split-window-horz " Ace - Split Horz Window")
(?i delete-other-windows " Ace - Maximize Window")
@@ -504,6 +505,21 @@ Switch the current window to the previous buffer."
(select-window window)
(split-window-horizontally))
+(defcustom aw-fair-aspect-ratio 2
+ "The aspect ratio to aim for when splitting windows.
+Sizes are based on the number of characters, not pixels.
+Increase to prefer wider windows, or decrease for taller windows."
+ :type 'number)
+
+(defun aw-split-window-fair (window)
+ "Split WINDOW vertically or horizontally, based on its current dimensions.
+Modify `aw-fair-aspect-ratio' to tweak behavior."
+ (let ((w (window-body-width window))
+ (h (window-body-height window)))
+ (if (< (* h aw-fair-aspect-ratio) w)
+ (aw-split-window-horz window)
+ (aw-split-window-vert window))))
+
(defun aw-offset (window)
"Return point in WINDOW that's closest to top left corner.
The point is writable, i.e. it's not part of space after newline."
- [elpa] externals/ace-window 3665daf 24/92: ace-window.el (aw-dispatch-default): No error on "C-g", (continued)
- [elpa] externals/ace-window 3665daf 24/92: ace-window.el (aw-dispatch-default): No error on "C-g", Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 74c9cef 25/92: ace-window.el (aw-dispatch-when-more-than): New defcustom, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 9bec357 28/92: ace-window.el: Fix compiler warning, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 2f433c8 29/92: Added ability to specify a new frame window as the target, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 6d3a6a0 23/92: ace-window.el (aw-switch-buffer-in-window): Use ivy if available, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 137af0d 32/92: ace-window.el: Make "z" open a frame right away, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window be3a885 38/92: Fix so ace-window-display-mode ids are displayed in new frames, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 4ab92e1 39/92: Fix up the previous commit, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window c0fbdd5 40/92: ace-window.el: Fix compiler warning, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window de873d1 09/92: Add `aw-reverse-frame-list` variable, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window d92320e 10/92: Add fair window split.,
Stefan Monnier <=
- [elpa] externals/ace-window 0a59342 12/92: ace-window.el (aw-keys): Add custom type, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window ad7c0fb 21/92: test/make-plain.el: Add, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 5e733ff 35/92: ace-window.el: Documentation and minor changes, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 26c0ad0 36/92: ace-window.el (aw-dispatch-default): Check action, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 92d20e7 47/92: Bring back "Make window ordering rely on frame position", Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 6ff31d1 33/92: Do not ignore window-parameters, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window ceea53d 41/92: ace-window.el (aw-dispatch-default): Add fboundp, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window d5d8f5d 30/92: Update README.md with latest commands and remove "i" (duplicate), Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window 5b88de0 49/92: ace-window.el (aw-translate-char-function): New defcustom, Stefan Monnier, 2021/03/17
- [elpa] externals/ace-window f0da12d 71/92: Readme.md: Add copy window to both action lists, Stefan Monnier, 2021/03/17