From a80b9348cc589b50e5d509bf3e55c39e944ea6ba Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Thu, 17 Nov 2016 14:01:17 +0100 Subject: [PATCH] Reconfigure ace-window * Make it possible to scroll (up/down) and bury window buffers * Map window selectors back to the defaults (numbers) * Make dispatcher run always, even for only two windows --- init.el | 15 ++++++++++++--- lisp/window-manip.el | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/init.el b/init.el index 305b7ee..2b54186 100644 --- a/init.el +++ b/init.el @@ -371,9 +371,18 @@ (use-package ace-window :ensure t - :init - (setq aw-keys '(?a ?o ?e ?u ?i ?d ?h ?t ?n) - aw-background nil) + :config + (setq aw-background nil + aw-dispatch-always t) + (add-to-list 'aw-dispatch-alist + '(?s gpolonkai/scroll-window-up " Scroll window up") + t) + (add-to-list 'aw-dispatch-alist + '(?S gpolonkai/scroll-window-down " Scroll window down") + t) + (add-to-list 'aw-dispatch-alist + '(?q gpolonkai/bury-window " Bury (quit) window") + t) :bind (:map ctl-x-map ("o" . ace-window))) diff --git a/lisp/window-manip.el b/lisp/window-manip.el index 6e300e4..ad6ad79 100644 --- a/lisp/window-manip.el +++ b/lisp/window-manip.el @@ -35,3 +35,22 @@ (select-window first-win) (if this-win-2nd (other-window 1)))) (error "This works only for two windows!"))) + +(defun gpolonkai/scroll-window-up (window) + "Scroll WINDOW up as `scroll-up-command' would." + (interactive) + (save-selected-window + (select-window window) + (scroll-up))) + +(defun gpolonkai/scroll-window-down (window) + "Scroll WINDOW down as `scroll-down-command' would." + (interactive) + (save-selected-window + (select-window window) + (scroll-down))) + +(defun gpolonkai/bury-window (window) + "Quit WINDOW without killing it." + (interactive) + (quit-window nil window))