Compare commits

..

No commits in common. "f2c1b239624a6e0f81648a1ad936858ce84b56bb" and "49352abbfc061f8722252713909eee274a7cc0b6" have entirely different histories.

3 changed files with 94 additions and 76 deletions

17
init.el
View File

@ -474,10 +474,7 @@ split horizontally again, but this extra work should not matter much."
db/dired-ediff-files
db/dired-back-to-top
db/dired-jump-to-bottom
db/dired-get-size
hydra-toggle/body
hydra-rectangle/body
hydra-feature-shortcuts/body)
db/dired-get-size)
:autoload (turn-on-flycheck-when-file
db/sort-nsm-permanent-settings
endless/colorize-compilation
@ -487,8 +484,14 @@ split horizontally again, but this extra work should not matter much."
db/replace-variables-in-string
db/grep-read-files
db/make-selector-from-table-header
db/get-library-version
db/define-feature-shortcuts-hydra))
db/get-library-version))
(use-package db-hydras
:commands (hydra-toggle/body
hydra-zoom/body
hydra-rectangle/body
db/define-feature-shortcuts-hydra
hydra-feature-shortcuts/body))
(use-package diminish
:ensure t)
@ -3113,7 +3116,7 @@ eventuelly be set to nil, however)."
(bind-key "<f1>" #'db/run-or-hide-eshell)
(bind-key "<f2>" #'hydra-feature-shortcuts/body)
(bind-key "<f5>" #'project-find-regexp)
(bind-key "<f6>" #'text-scale-adjust)
(bind-key "<f6>" #'hydra-zoom/body)
(bind-key "<f7>" #'dictcc)
(bind-key "<f9>" #'hydra-org-linking/body)
(bind-key "<f10>" #'magit-status)

84
site-lisp/db-hydras.el Normal file
View File

@ -0,0 +1,84 @@
;;; db-hydras.el --- Personal hydras ' -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
(autoload 'rectangle-exchange-point-and-mark "rect")
(require 'hydra)
(require 'db-customize)
(defhydra hydra-toggle (:color blue)
"toggle"
("c" column-number-mode "column")
("d" toggle-debug-on-error "debug-on-error")
("e" toggle-debug-on-error "debug-on-error")
("f" auto-fill-mode "auto-fill")
("l" toggle-truncate-lines "truncate lines")
("q" toggle-debug-on-quit "debug-on-quit")
("r" read-only-mode "read-only"))
;; zooming with single keystrokes (from oremacs)
(defhydra hydra-zoom (:color red
:body-pre (require 'face-remap))
;; the following newline is important, as otherwise the format string is not
;; interpreted correctly; cf. https://oremacs.com/2015/02/23/hydra-0.11.0/
"
Zoom (%`text-scale-mode-amount): "
("g" text-scale-increase "increase")
("l" text-scale-decrease "decrease")
("0" (text-scale-adjust 0) "reset"))
(defhydra hydra-rectangle (:body-pre (rectangle-mark-mode 1)
:color pink
:post (deactivate-mark))
"
^_k_^ _d_elete _s_tring
_h_ _l_ _o_k _y_ank
^_j_^ _n_ew-copy _r_eset
^^^^ _e_xchange _u_ndo
^^^^ ^ ^ _p_aste
"
("h" backward-char nil)
("l" forward-char nil)
("k" previous-line nil)
("j" next-line nil)
("n" copy-rectangle-as-kill nil)
("d" delete-rectangle nil)
("r" (if (region-active-p)
(deactivate-mark)
(rectangle-mark-mode 1))
nil)
("y" yank-rectangle nil)
("u" undo nil)
("s" string-rectangle nil)
("p" kill-rectangle nil)
("e" rectangle-exchange-point-and-mark nil)
("o" nil nil))
;; The hydra for our frequently used features should be defined here, but should
;; also be redefined every time `db/frequently-used-features' is redefined via
;; customize. To this end, we provide a special function here that defines this
;; hydra, that can also be called in the setter of
;; `db/frequently-used-features'.
(defun db/define-feature-shortcuts-hydra ()
"Globally define `hydra-feature-shortcuts' for feature shortcuts.
If instead of a shortcut character nil is provided, no entry in
the hydra will be generated. See documentation of
`db/frequently-used-features' for details."
(eval
`(defhydra hydra-feature-shortcuts (:color blue)
""
,@(mapcar (lambda (entry)
(pcase-let ((`(,description ,shortcut ,function) entry))
(list (string shortcut) function description)))
(cl-remove-if #'(lambda (entry)
(null (cl-second entry)))
db/frequently-used-features)))))
(db/define-feature-shortcuts-hydra)
(provide 'db-hydras)
;;; db-hydras.el ends here

View File

@ -22,7 +22,6 @@
(require 's)
(require 'shr)
(require 'recentf)
(require 'hydra)
(autoload 'async-start "async")
(autoload 'lispy-mode "lispy")
@ -30,7 +29,6 @@
(autoload 'find-libary-name "find-func")
(autoload 'lm-header "lisp-mnt")
(autoload 'dired-dwim-target-directory "dired-aux")
(autoload 'rectangle-exchange-point-and-mark "rect")
(declare-function w32-shell-execute "w32fns.c")
(declare-function org-password-manager-get-password-by-id nil)
@ -677,73 +675,6 @@ quite sure whether something like this exists already?"
(defalias 'check-git-repos #'db/list-changed-git-repositories) ; old name of former shell script
(defhydra hydra-toggle (:color blue)
"toggle"
("c" column-number-mode "column")
("d" toggle-debug-on-error "debug-on-error")
("e" toggle-debug-on-error "debug-on-error")
("f" auto-fill-mode "auto-fill")
("l" toggle-truncate-lines "truncate lines")
("q" toggle-debug-on-quit "debug-on-quit")
("r" read-only-mode "read-only"))
(defvar-keymap zoom-toggle-map
:repeat t
:doc "Zoom"
"g" #'text-scale-increase
"l" #'text-scale-decrease
"0" #'text-scale-adjust)
(defhydra hydra-rectangle (:body-pre (rectangle-mark-mode 1)
:color pink
:post (deactivate-mark))
"
^_k_^ _d_elete _s_tring
_h_ _l_ _o_k _y_ank
^_j_^ _n_ew-copy _r_eset
^^^^ _e_xchange _u_ndo
^^^^ ^ ^ _p_aste
"
("h" backward-char nil)
("l" forward-char nil)
("k" previous-line nil)
("j" next-line nil)
("n" copy-rectangle-as-kill nil)
("d" delete-rectangle nil)
("r" (if (region-active-p)
(deactivate-mark)
(rectangle-mark-mode 1))
nil)
("y" yank-rectangle nil)
("u" undo nil)
("s" string-rectangle nil)
("p" kill-rectangle nil)
("e" rectangle-exchange-point-and-mark nil)
("o" nil nil))
;; The hydra for our frequently used features should be defined here, but should
;; also be redefined every time `db/frequently-used-features' is redefined via
;; customize. To this end, we provide a special function here that defines this
;; hydra, that can also be called in the setter of
;; `db/frequently-used-features'.
(defun db/define-feature-shortcuts-hydra ()
"Globally define `hydra-feature-shortcuts' for feature shortcuts.
If instead of a shortcut character nil is provided, no entry in
the hydra will be generated. See documentation of
`db/frequently-used-features' for details."
(eval
`(defhydra hydra-feature-shortcuts (:color blue)
""
,@(mapcar (lambda (entry)
(pcase-let ((`(,description ,shortcut ,function) entry))
(list (string shortcut) function description)))
(cl-remove-if #'(lambda (entry)
(null (cl-second entry)))
db/frequently-used-features)))))
(db/define-feature-shortcuts-hydra)
;;; Base45 Decoding