From aab5bfd074e57d06a79e39d7c7c4760e1f385a06 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Mon, 17 Oct 2022 21:41:28 -0500 Subject: Bankruptcy 9 --- lisp/+key.el | 106 ----------------------------------------------------------- 1 file changed, 106 deletions(-) delete mode 100644 lisp/+key.el (limited to 'lisp/+key.el') diff --git a/lisp/+key.el b/lisp/+key.el deleted file mode 100644 index a217dad..0000000 --- a/lisp/+key.el +++ /dev/null @@ -1,106 +0,0 @@ -;;; +key.el --- minor mode for keymaps -*- lexical-binding: t; -*- - -;;; Commentary: - -;; Much of the code here was cribbed from https://emacs.stackexchange.com/a/358, -;; which in turn was cribbed in part from -;; https://github.com/kaushalmodi/.emacs.d/blob/master/elisp/modi-mode.el, -;; https://github.com/jwiegley/use-package/blob/master/bind-key.el and -;; elsewhere. - -;; The basic idea is to have a minor-mode for my personal key customizations, -;; especially a "leader key" set up à la vim. In Emacs, I use `C-z' for this -;; leader key, because of its easy location and relative uselessness by default. - -;;; Code: - -(require 'easy-mmode) -(require 'setup nil t) - -;; I need to define this map before the proper mode map. -(defvar +key-leader-map (let ((map (make-sparse-keymap)) - (c-z (global-key-binding "\C-z"))) - ;;(define-key map "\C-z" c-z) - map) - "A leader keymap under the \"C-z\" bind.") - -;; http://xahlee.info/emacs/emacs/emacs_menu_app_keys.html and -(defvar +key-menu-map (let ((map (make-sparse-keymap))) - (define-key map (kbd "") - #'execute-extended-command) - map) - "Custom bindings behind the menu key.") - -(defvar +key-mode-map (let ((map (make-sparse-keymap))) - (define-key map "\C-z" +key-leader-map) - (define-key map (kbd "") +key-menu-map) - map) - "Keymap for `+key-mode'.") - -(defun turn-off-+key-mode () - "Turn off `+key-mode'." - (+key-mode -1)) - -;;;###autoload -(define-minor-mode +key-mode - "A minor mode with keybindings that will override every other mode." - :init-value t - :lighter " +" - (if +key-mode - (progn ; Enable - (add-to-list 'emulation-mode-map-alists - `((+key-mode . ,+key-mode-map))) - ;; Disable in minibuffer - (add-hook 'minibuffer-setup-hook #'turn-off-+key-mode) - ;; compat Linux-Windows - (define-key key-translation-map (kbd "") (kbd "")) - ;; curse you, thinkpad keyboard!!! - (define-key key-translation-map (kbd "") (kbd "")) - ) - ;; Disable - (setq emulation-mode-map-alists - (assoc-delete-all '+key-mode emulation-mode-map-alists - (lambda (a b) - (equal (car a) b)))) - (remove-hook 'minibuffer-setup-hook #'turn-off-+key-mode) - (define-key key-translation-map (kbd "") nil) - (define-key key-translation-map (kbd "") nil))) - -;;;###autoload -(defun +key-setup () - "Ensure `+key-mode' happens after init." - (if after-init-time - (+key-global-mode) - (add-hook 'after-init-hook #'+key-global-mode))) - -;;;###autoload -(define-globalized-minor-mode +key-global-mode +key-mode +key-mode) - -;; Extras for `setup' -(with-eval-after-load 'setup - (setup-define :+key - (lambda (key command) - `(define-key +key-mode-map ,key ,command)) - :documentation "Bind KEY to COMMAND in `+key-mode-map'." - :debug '(form sexp) - :ensure '(kbd nil) - :repeatable t) - - (setup-define :+leader - (lambda (key command) - `(define-key +key-leader-map ,key ,command)) - :documentation "Bind KEY to COMMAND in `+key-leader-map'." - :debug '(form sexp) - :ensure '(kbd nil) - :repeatable t) - - (setup-define :+menu - (lambda (key command) - `(define-key +key-menu-map ,key ,command)) - :documentation "Bind KEY to COMMAND in `+key-leader-map'." - :debug '(form sexp) - :ensure '(kbd nil) - :repeatable t)) - -(provide '+key) -;;; +key.el ends here -- cgit 1.4.1-21-gabe81