[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/window-commander 4a7ea31b37 036/170: * swsw.el (swsw-mo
From: |
ELPA Syncer |
Subject: |
[elpa] externals/window-commander 4a7ea31b37 036/170: * swsw.el (swsw-mode): Bind 'C-x o' to 'swsw-select' |
Date: |
Wed, 28 Jun 2023 19:00:23 -0400 (EDT) |
branch: externals/window-commander
commit 4a7ea31b37170a2d5e56bd36640786887ab343f8
Author: Daniel Semyonov <cmstr@dsemy.com>
Commit: Daniel Semyonov <cmstr@dsemy.com>
* swsw.el (swsw-mode): Bind 'C-x o' to 'swsw-select'
---
swsw.el | 59 +++++++++++++++++++++++++++--------------------------------
1 file changed, 27 insertions(+), 32 deletions(-)
diff --git a/swsw.el b/swsw.el
index 631bfecb5b..a4d67aa4c3 100644
--- a/swsw.el
+++ b/swsw.el
@@ -28,31 +28,25 @@
;;
;; Usage:
;;
-;; Enable `swsw-mode' and (optionally) bind `swsw-select' to a key:
+;; Enable `swsw-mode':
;;
;; (swsw-mode)
-;; (define-key swsw-mode-map "C-x o" #'swsw-select)
;;
;; For use-package users:
;;
;; (use-package swsw
-;; :demand ; :bind keyword causes loading to defer.
-;; :bind
-;; (:map swsw-mode-map
-;; ("C-x o" . swsw-select))
;; :config
;; (swsw-mode))
;;
;; When swsw-mode is active:
;; - A window ID is displayed using a mode line lighter or a display function
(see
;; `swsw-display-function').
-;; - A single (predefined) character CHAR corresponds to the minibuffer (see
+;; - A single (predefined) character corresponds to the minibuffer (see
;; `swsw-minibuffer-id').
;; - Window IDs are assigned to all windows on all frames (by default, see
;; `swsw-scope').
;;
-;; C-x o RET ID (if bound) or M-x swsw-select RET ID switches focus to the
window
-;; which corresponds to ID.
+;; C-x o ID switches focus to the window which corresponds to ID.
;;
;; You can customize `swsw-mode' using the customize interface:
;;
@@ -179,29 +173,6 @@ If set to `lighter', use the mode line lighter of
`swsw-mode'"
(format swsw-id-format
(reverse (apply #'string (window-parameter window 'swsw-id)))))
-;;;###autoload
-(define-minor-mode swsw-mode
- "Minor mode for selecting windows by their ID."
- :global t
- :lighter (:eval (when (eq swsw-display-function 'lighter)
- (swsw-format-id (selected-window))))
- :keymap (make-sparse-keymap)
- (if swsw-mode
- (progn
- (swsw-update)
- (unless (eq swsw-display-function 'lighter)
- (funcall swsw-display-function t))
- (add-hook 'window-configuration-change-hook #'swsw-update)
- (add-hook 'minibuffer-setup-hook #'swsw-update)
- (add-hook 'minibuffer-exit-hook #'swsw-update)
- (add-hook 'after-delete-frame-functions #'swsw-update))
- (unless (eq swsw-display-function 'lighter)
- (funcall swsw-display-function nil))
- (remove-hook 'window-configuration-change-hook #'swsw-update)
- (remove-hook 'minibuffer-setup-hook #'swsw-update)
- (remove-hook 'minibuffer-exit-hook #'swsw-update)
- (remove-hook 'after-delete-frame-functions #'swsw-update)))
-
(defun swsw--read-id (len)
"Read a window ID of length LEN using `read-char'."
(let ((acc 1) id)
@@ -227,6 +198,30 @@ If set to `lighter', use the mode line lighter of
`swsw-mode'"
(select-window window)))
(other-window 1)))
+;;;###autoload
+(define-minor-mode swsw-mode
+ "Minor mode for selecting windows by their ID."
+ :global t
+ :lighter
+ (:eval (when (eq swsw-display-function 'lighter)
+ (swsw-format-id (selected-window))))
+ :keymap '(keymap (?\C-x . (keymap (?o . swsw-select))))
+ (if swsw-mode
+ (progn
+ (swsw-update)
+ (unless (eq swsw-display-function 'lighter)
+ (funcall swsw-display-function t))
+ (add-hook 'window-configuration-change-hook #'swsw-update)
+ (add-hook 'minibuffer-setup-hook #'swsw-update)
+ (add-hook 'minibuffer-exit-hook #'swsw-update)
+ (add-hook 'after-delete-frame-functions #'swsw-update))
+ (unless (eq swsw-display-function 'lighter)
+ (funcall swsw-display-function nil))
+ (remove-hook 'window-configuration-change-hook #'swsw-update)
+ (remove-hook 'minibuffer-setup-hook #'swsw-update)
+ (remove-hook 'minibuffer-exit-hook #'swsw-update)
+ (remove-hook 'after-delete-frame-functions #'swsw-update)))
+
;;;; Display functions:
(defun swsw--mode-line-display ()
- [elpa] externals/window-commander ac8efcbbd1 007/170: Assign a unique ID to an active minibuffer, (continued)
- [elpa] externals/window-commander ac8efcbbd1 007/170: Assign a unique ID to an active minibuffer, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 024502f51f 017/170: * swsw.el (swsw-mode): Don't call 'force-mode-line-update', ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander ddfed7b727 012/170: * swsw.el (swsw-mode): Add a sparse keymap., ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 37ad725b1e 018/170: ; Update comment referencing single character IDs, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander def4d94e43 013/170: ; Update README to better reflect the current state of the package, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 0aef3311c6 014/170: ; Bump to version 0.3, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 9873ff1bd2 020/170: * swsw.el (swsw-select): Add before and after hooks., ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 63e295f599 025/170: Add a user option to customize the scope of window tracking, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 721d0208f7 026/170: Update the window list after deleting a frame, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 082e03382e 033/170: * swsw.el (swsw-select): Ensure 'swsw-after-select-hook' runs., ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 4a7ea31b37 036/170: * swsw.el (swsw-mode): Bind 'C-x o' to 'swsw-select',
ELPA Syncer <=
- [elpa] externals/window-commander 8044341fdb 040/170: ; Update README to no longer suggest binding 'C-x o' in 'swsw-mode-map', ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander b0b55f010c 041/170: ; Improve the docstrings for the reference display functions, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander c0f5277538 045/170: ; Update the URL property of the package, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 8fc0e7dfa7 046/170: ; Bump required emacs version to 26.1, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 40f7a25f82 047/170: ; Add license information to the title page of the Info node, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 83eb90586a 051/170: ; Alter comments and docstrings to comply with Emacs' conventions, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 08b56d124c 015/170: Add support for multi-character IDs, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 96809a6cae 019/170: Add the ability to change the way window IDs are displayed, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 4c84ca310f 016/170: ; Update README to reflect recent changes, ELPA Syncer, 2023/06/28
- [elpa] externals/window-commander 48db8fe39b 021/170: Add a reference implementation for a conditional display function, ELPA Syncer, 2023/06/28