Created
January 11, 2016 22:53
-
-
Save m-renaud/de46811e50ad536949e6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; Ergonomic changes. | |
;;; These are for the Dvorak keyboard layout. | |
(defvar mrenaud-ergo-minor-mode-map (make-keymap) "mrenaud-ergo-minor-mode keymap.") | |
;; Movement commands: | |
;; Now lie on right hand homerow. | |
;; h t n s | |
;; < ^ v > | |
(define-key mrenaud-ergo-minor-mode-map (kbd "C-h") 'backward-char) | |
(define-key mrenaud-ergo-minor-mode-map (kbd "M-h") 'backward-word) | |
(define-key mrenaud-ergo-minor-mode-map (kbd "C-t") 'previous-line) | |
(define-key mrenaud-ergo-minor-mode-map (kbd "C-s") 'forward-char) | |
(define-key mrenaud-ergo-minor-mode-map (kbd "M-s") 'forward-word) | |
;; Other window. | |
(define-key mrenaud-ergo-minor-mode-map (kbd "C-<tab>") 'other-window) | |
;; Use C-f for searching. | |
(define-key mrenaud-ergo-minor-mode-map (kbd "C-f") 'isearch-forward-regexp) | |
(define-key mrenaud-ergo-minor-mode-map (kbd "C-r") 'isearch-backward-regexp) | |
(define-key isearch-mode-map (kbd "C-f") 'isearch-repeat-forward) | |
(define-key isearch-mode-map (kbd "C-r") 'isearch-repeat-backward) | |
;; Swap functionality of C-p and C-x. | |
;; C-x is more difficult to type then C-p, especially on a split keyboard | |
;; that has the x on the left hand. | |
(keyboard-translate ?\C-p ?\C-x) | |
(keyboard-translate ?\C-x ?\C-p) | |
(define-minor-mode mrenaud-ergo-minor-mode | |
"A minor mode for ergonomic key bindings." | |
t " ergo-keys" 'mrenaud-ergo-minor-mode-map) | |
(mrenaud-ergo-minor-mode 1) | |
;; Disable ergo keybindings in minibuffer so they don't interfere. Mostly so it | |
;; doesn't interfere with C-s in iswitch-b-mode. | |
(defun mrenaud-ergo-minibuffer-setup-hook () | |
(mrenaud-ergo-minor-mode 0)) | |
(add-hook 'minibuffer-setup-hook 'mrenaud-ergo-minibuffer-setup-hook) | |
(provide 'mrenaud-ergo) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment