Module to visually select windows with either ace-window or switch-window
Modularize ace-window and add switch-window as a replacement: Issue #218
This commit is contained in:
parent
ab31730253
commit
f9321b1b3b
5 changed files with 59 additions and 8 deletions
|
@ -242,14 +242,6 @@ with functions that require it (like modeline segments)."
|
||||||
(def-package! ace-link
|
(def-package! ace-link
|
||||||
:commands (ace-link-help ace-link-org))
|
:commands (ace-link-help ace-link-org))
|
||||||
|
|
||||||
(def-package! ace-window
|
|
||||||
:commands (ace-window ace-swap-window ace-delete-window
|
|
||||||
ace-select-window ace-delete-other-windows)
|
|
||||||
:config
|
|
||||||
(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)
|
|
||||||
aw-scope 'frame
|
|
||||||
aw-background t))
|
|
||||||
|
|
||||||
(def-package! avy
|
(def-package! avy
|
||||||
:commands (avy-goto-char-2 avy-goto-line)
|
:commands (avy-goto-char-2 avy-goto-line)
|
||||||
:config
|
:config
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
;unicode ; extended unicode support for various languages
|
;unicode ; extended unicode support for various languages
|
||||||
;tabbar ; FIXME an (incomplete) tab bar for Emacs
|
;tabbar ; FIXME an (incomplete) tab bar for Emacs
|
||||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||||
|
(window-select +ace-window) ; visually switch windows
|
||||||
|
|
||||||
:tools
|
:tools
|
||||||
dired ; making dired pretty [functional]
|
dired ; making dired pretty [functional]
|
||||||
|
|
23
modules/ui/window-select/README.org
Normal file
23
modules/ui/window-select/README.org
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#+TITLE: :ui window-select
|
||||||
|
|
||||||
|
This module provides the user with a visual way to switch windows. By default, the module only kicks in if there are more than two windows open at the same time.
|
||||||
|
|
||||||
|
* Keybindings
|
||||||
|
The default function to switch windows is automatically changed to work with this module. More specifically, the function ~other-window~ is automatically remapped. This function is bounded by default to ~C-x o~.
|
||||||
|
|
||||||
|
* Customization
|
||||||
|
There are two packages that accomplish the same but with a different visual queue.
|
||||||
|
|
||||||
|
** ace-window
|
||||||
|
The first character of the buffers change to a user selectable character.
|
||||||
|
+ Pros: The content of the buffers are always visible.
|
||||||
|
+ Cons: The displayed characters are small and difficult to see.
|
||||||
|
|
||||||
|
This is the module's default if no module flag is specified. To explicitly enable this, write in *init.el*: ~(doom! :ui (window-select +ace-window))~
|
||||||
|
|
||||||
|
** switch-window
|
||||||
|
The entire buffer is replaced by big letters than enable the user to easily select a desired window.
|
||||||
|
+ Pros: The displayed characters are easy to see. They will never be missed.
|
||||||
|
+ Cons: The contents of the buffers is entirely replaced by a big character.
|
||||||
|
|
||||||
|
To enable this, write in *init.el*: ~(doom! :ui (window-select +switch-window))~
|
24
modules/ui/window-select/config.el
Normal file
24
modules/ui/window-select/config.el
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
;;; ui/window-select/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(cond ((featurep! +switch-window)
|
||||||
|
;; Configure switch-window if that flag is found
|
||||||
|
(def-package! switch-window
|
||||||
|
:commands (switch-window switch-window-then-maximize switch-window-then-split-below
|
||||||
|
switch-window-then-split-right switch-window-then-delete
|
||||||
|
switch-window-then-swap-buffer)
|
||||||
|
:init
|
||||||
|
(setq switch-window-shortcut-style 'qwerty
|
||||||
|
switch-window-qwerty-shortcuts '("a" "s" "d" "f" "g" "h" "j" "k" "l"))
|
||||||
|
;; Redefine how we switch windows with switch-window
|
||||||
|
(define-key global-map [remap other-window] #'switch-window)))
|
||||||
|
((or (featurep! +ace-window) t)
|
||||||
|
;; Configure ace-window if that flag or no flag is found
|
||||||
|
(def-package! ace-window
|
||||||
|
:commands (ace-window ace-swap-window ace-delete-window
|
||||||
|
ace-select-window ace-delete-other-windows)
|
||||||
|
:init
|
||||||
|
(define-key global-map [remap other-window] #'ace-window)
|
||||||
|
:config
|
||||||
|
(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)
|
||||||
|
aw-scope 'frame
|
||||||
|
aw-background t))))
|
11
modules/ui/window-select/packages.el
Normal file
11
modules/ui/window-select/packages.el
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
;; -*- no-byte-compile: t; -*-
|
||||||
|
;;; ui/window-select/packages.el
|
||||||
|
|
||||||
|
(cond ((featurep! +switch-window)
|
||||||
|
;; Install switch-window if the user indicated the '+switch-window' module flag
|
||||||
|
(package! switch-window))
|
||||||
|
((or (featurep! +ace-window) t)
|
||||||
|
;; Install ace-window if the user selects the flag '+ace-window' or by default
|
||||||
|
;; ... if the user did not specify a module flag
|
||||||
|
(package! ace-window)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue