summaryrefslogtreecommitdiffhomepage
path: root/attic/elisp
diff options
context:
space:
mode:
Diffstat (limited to 'attic/elisp')
-rw-r--r--attic/elisp/misc.el41
1 files changed, 11 insertions, 30 deletions
diff --git a/attic/elisp/misc.el b/attic/elisp/misc.el
index 8808a5f..e0e13a9 100644
--- a/attic/elisp/misc.el
+++ b/attic/elisp/misc.el
@@ -128,39 +128,20 @@
("M-O" . ace-swap-window)
("C-x 4 t" . ace-swap-window)))
-;;; switch window
-(use-package switch-window
+;;; window navigation (spatial-window)
+(use-package spatial-window
:ensure t
- :custom ((switch-window-minibuffer-shortcut ?z)
- (switch-window-background t)
- (switch-window-shortcut-style 'qwerty)
- (switch-window-shortcut-appearance 'text)
- (switch-window-timeout 7)
- (switch-window-threshold 2))
:config
- (defun jao-switch-window--then (prompt cmd)
- (let ((f `(lambda ()
- (let ((default-directory ,default-directory))
- (call-interactively ',cmd)))))
- (switch-window--then prompt f f)))
-
- (defun jao-switch-window-then-dired ()
- (interactive)
- (jao-switch-window--then "Find directory" 'dired))
-
- (defun jao-switch-window-then-find-file ()
- (interactive)
- (jao-switch-window--then "Find file" 'find-file))
-
- (defun jao-switch-window-then-consult-buffer ()
+ (defun jao-spatial-window-select ()
(interactive)
- (jao-switch-window--then "Switch to buffer" 'consult-buffer))
-
- :bind (("s-o" . switch-window)
- ("C-x 4 d" . jao-switch-window-then-dired)
- ("C-x 4 f" . jao-switch-window-then-find-file)
- ("C-x 4 b" . jao-switch-window-then-consult-buffer)))
-
+ (let ((n (length (window-list))))
+ (cond ((< n 2))
+ ((< n 3) (other-window 1))
+ (t (spatial-window-select)))))
+ :bind
+ ("M-o" . jao-spatial-window-select)
+ ("C-x o" . jao-spatial-window-select)
+ ("C-x p" . jao-spatial-window-select))
;;; git helpers
(use-package dired-git-info
:ensure t