Skip to content

Instantly share code, notes, and snippets.

@m-renaud
Created January 11, 2016 22:53
Show Gist options
  • Save m-renaud/de46811e50ad536949e6 to your computer and use it in GitHub Desktop.
Save m-renaud/de46811e50ad536949e6 to your computer and use it in GitHub Desktop.
;;; 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