[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 3916bf0 2/3: Add user options for default windmove commands (bug#
From: |
Juri Linkov |
Subject: |
master 3916bf0 2/3: Add user options for default windmove commands (bug#41438) |
Date: |
Thu, 3 Jun 2021 16:36:31 -0400 (EDT) |
branch: master
commit 3916bf00c56274b39f921217168669f445e0df14
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Juri Linkov <juri@linkov.net>
Add user options for default windmove commands (bug#41438)
* windmove.el (windmove--default-keybindings-type): Add type.
(windmove-default-keybindings): Add user option.
(windmove-display-default-keybindings): Add user option.
(windmove-delete-default-keybindings): Add user option.
(windmove-swap-states-default-keybindings): Add user option.
---
lisp/windmove.el | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)
diff --git a/lisp/windmove.el b/lisp/windmove.el
index ea448634..0eba97a 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -732,6 +732,86 @@ Default value of MODIFIERS is `shift-super'."
(windmove-swap-states-down down))))
+
+(defconst windmove--default-keybindings-type
+ `(choice (const :tag "Don't bind" nil)
+ (cons :tag "Bind using"
+ (key-sequence :tag "Prefix")
+ (set :tag "Modifier"
+ :greedy t
+ ;; See `(elisp) Keyboard Events'
+ (const :tag "Meta" meta)
+ (const :tag "Control" control)
+ (const :tag "Shift" shift)
+ (const :tag "Hyper" hyper)
+ (const :tag "Super" super)
+ (const :tag "Alt" alt))))
+ "Customisation type for windmove modifiers.")
+
+(defcustom windmove-default-keybindings nil
+ "Default bindings for regular windmove commands."
+ :set (lambda (sym val)
+ (windmove-install-defaults
+ (car val) (cdr val)
+ '((windmove-left left)
+ (windmove-right right)
+ (windmove-up up)
+ (windmove-down down))
+ (null val))
+ (set-default sym val))
+ :type windmove--default-keybindings-type
+ :version "28.1"
+ :group 'windmove)
+
+(defcustom windmove-display-default-keybindings nil
+ "Default bindings for display windmove commands."
+ :set (lambda (sym val)
+ (windmove-install-defaults
+ (car val) (cdr val)
+ '((windmove-display-left left)
+ (windmove-display-right right)
+ (windmove-display-up up)
+ (windmove-display-down down)
+ (windmove-display-same-window ?0)
+ (windmove-display-new-frame ?f)
+ (windmove-display-new-tab ?t))
+ (null val))
+ (set-default sym val))
+ :type windmove--default-keybindings-type
+ :version "28.1"
+ :group 'windmove)
+
+(defcustom windmove-delete-default-keybindings nil
+ "Default bindings for delete windmove commands."
+ :set (lambda (sym val)
+ (windmove-install-defaults
+ (car val) (cdr val)
+ '((windmove-delete-left left)
+ (windmove-delete-right right)
+ (windmove-delete-up up)
+ (windmove-delete-down down))
+ (null val))
+ (set-default sym val))
+ :type windmove--default-keybindings-type
+ :version "28.1"
+ :group 'windmove)
+
+(defcustom windmove-swap-states-default-keybindings nil
+ "Default bindings for swap-state windmove commands."
+ :set (lambda (sym val)
+ (windmove-install-defaults
+ (car val) (cdr val)
+ '((windmove-swap-states-left left)
+ (windmove-swap-states-right right)
+ (windmove-swap-states-up up)
+ (windmove-swap-states-down down))
+ (null val))
+ (set-default sym val))
+ :type windmove--default-keybindings-type
+ :version "28.1"
+ :group 'windmove)
+
+
(provide 'windmove)
;;; windmove.el ends here