From f19356b9fd514b9b0ed86172ec85d12206a9efa3 Mon Sep 17 00:00:00 2001 From: jao Date: Sun, 27 Mar 2022 05:35:41 +0100 Subject: ace-window --- init.org | 99 ++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 47 insertions(+), 52 deletions(-) (limited to 'init.org') diff --git a/init.org b/init.org index f163425..4fc1409 100644 --- a/init.org +++ b/init.org @@ -1117,25 +1117,27 @@ :ensure t :diminish :custom ((pulsar-pulse-functions - '(recenter-top-bottom - move-to-window-line-top-bottom - reposition-window - other-window - delete-window + '(ace-window + backward-page delete-other-windows + delete-window forward-page - backward-page - scroll-up-command - scroll-down-command + jao-prev-window + move-to-window-line-top-bottom + org-backward-heading-same-level + org-forward-heading-same-level org-next-visible-heading org-previous-visible-heading - org-forward-heading-same-level - org-backward-heading-same-level + other-window outline-backward-same-level outline-forward-same-level outline-next-visible-heading outline-previous-visible-heading - outline-up-heading)) + outline-up-heading + recenter-top-bottom + reposition-window + scroll-down-command + scroll-up-command)) (pulsar-pulse t) (pulsar-delay 0.1) (pulsar-iterations 10) @@ -1147,7 +1149,7 @@ #+end_src * Windows -*** Scrolling +*** scrolling #+begin_src emacs-lisp (setq scroll-preserve-screen-position 'always scroll-conservatively most-positive-fixnum @@ -1155,7 +1157,7 @@ scroll-step 2 redisplay-skip-fontification-on-input t) #+end_src -*** Splitting and switch +*** splitting and switch #+begin_src emacs-lisp (setq split-height-threshold 80 split-width-threshold 144) @@ -1168,29 +1170,7 @@ (global-set-key (kbd "C-x _") #'delete-other-windows-vertically) #+end_src -*** Transpose - #+begin_src emacs-lisp - (defun jao-transpose-windows (arg) - "Transpose the buffers shown in two windows." - (interactive "p") - (let ((selector (if (>= arg 0) 'next-window 'previous-window))) - (while (/= arg 0) - (let ((this-win (window-buffer)) - (next-win (window-buffer (funcall selector)))) - (set-window-buffer (selected-window) next-win) - (set-window-buffer (funcall selector) this-win) - (select-window (funcall selector))) - (setq arg (if (> arg 0) (1- arg) (1+ arg)))))) - - (defun jao-transpose-windows-prev () - (interactive) - (jao-transpose-windows -1)) - - (define-key ctl-x-4-map (kbd "t") #'jao-transpose-windows) - (global-set-key (kbd "M-O") #'jao-transpose-windows) - (global-set-key (kbd "M-P") #'jao-transpose-windows-prev) - #+end_src -*** Window navigation +*** first window #+begin_src emacs-lisp (defvar jao-first-window--from nil) @@ -1207,24 +1187,39 @@ (interactive) (other-window -1)) - (defun jao--nth-window (n) - (let ((jao-minibuffer-mode nil) - (ignore-window-parameters t)) - (select-window (frame-first-window)) - (other-window n)) - (jao-minibuffer-refresh)) + (global-set-key (kbd "C-x p") #'jao-prev-window) + (global-set-key (kbd "s-a") #'jao-first-window) - (defalias 'jao-other-window 'other-window) + #+end_src +*** ace window + #+begin_src emacs-lisp + (use-package ace-window + :ensure t + :demand t + :init (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) + aw-char-position 'top-left + aw-ignore-current nil + aw-dispatch-when-more-than 2 + aw-leading-char-style 'path + aw-display-mode-overlay t + aw-scope 'frame) + :config - (global-set-key (kbd "s-a") #'jao-first-window) - (global-set-key (kbd "C-x p") 'jao-prev-window) - (global-set-key (kbd "M-o") #'jao-other-window) - (global-set-key (kbd "M-p") #'jao-prev-window) - - (global-set-key (kbd "C-c 0") #'jao-first-window) - (dolist (n '(0 1 2 3 4 5 6 7 8)) - (global-set-key (format "\C-c%s" (1+ n)) - (lambda () (interactive) (jao--nth-window n)))) + (defun jao-ace-consult-buffer-other-window (w) + (interactive) + (aw-switch-to-window w) + (consult-buffer)) + + (setf (alist-get ?b aw-dispatch-alist) + '(jao-ace-consult-buffer-other-window "Consult buffer")) + + (setf (alist-get ?B aw-dispatch-alist) + (alist-get ?u aw-dispatch-alist)) + + + :bind (("s-o" . ace-window) + ("s-O" . ace-swap-window) + ("C-x 4 t" . ace-swap-window))) #+end_src *** winner mode -- cgit v1.2.3