Disambiguate the colemak-hnei and colemak-neio layouts

This commit is contained in:
fmdkdd 2017-04-20 17:53:18 +02:00 committed by Eivind Fonn
parent a8c813a815
commit 6255081645
3 changed files with 41 additions and 41 deletions

View File

@ -194,33 +194,17 @@ the [[https://colemak.com/][Colemak website]].
[[file:img/colemak-layout.png]]
- The =colemak= layout: matches Vims movement keys:
- ~h~ doesn't need to be remapped, it's to the left of the index finger.
- ~n → j~
- ~e → k~
- ~i → l~
This layer offers three flavors of Colemak bindings:
- The lost keys are remapped as follows:
- ~j → n~
- ~k → e~
- ~l → i~
- =colemak-hnei= remaps ~HJKL~ to ~HNEI~, keeping the same key location; useful
for people used to the ~HJKL~ scheme on a Qwerty keyboard.
- =colemak-neio= remaps ~HJKL~ to ~NEIO~, shifted one key to the right for
easier access.
- =colemak-jkhl= remaps ~HJKL~ to ~JKHL~, permuting the direction of the keys
without disturbing any other binding.
The configuration =colemak-jkhl= reuses HJKL as movement keys, but permuted as
JKHL:
- ~j~ is now left
- ~k~ is now down
- ~h~ is now up
- ~l~ is right, unchanged
While not on the home row, the keys are still easily accessible and do not
conflict with any other Evil binding.
Additionally, in normal and motion states, ~L~ is bound to =evil-lookup= while
~H~ and ~K~ are respectively bound to =evil-window-top= and
=evil-window-bottom=.
*Note*: for technical reasons (see [[https://github.com/syl20bnr/spacemacs/pull/7178#issuecomment-249360301][GH-7178]]), the =kl/pre-config-evil= and
=kl/post-config-evil= hooks will be run /twice/.
*Note*: for technical reasons (see [[https://github.com/syl20bnr/spacemacs/pull/7178#issuecomment-249360301][GH-7178]]), when using =colemak-jkhl=, the
~kl/pre-config-evil~ and ~kl/post-config-evil~ hooks will be run /twice/.
** Workman
=Workman= is an English-optimized keyboard layout that's designed to, among

View File

@ -13,7 +13,10 @@
;; PUBLIC VARIABLES
;;------------------------------------------------------------------------------
(defvar kl-layout 'dvorak)
(defvar kl-layout 'dvorak
"The keyboard-layout to use. Possible values are `bepo', `dvp',
`dvorak', `workman', `neo', `colemak-neio', `colemak-hnei' and
`colemak-jkhl'.")
(defvar kl-enabled-configurations nil
"If non nil, `keyboard-layout' will enable configurations only
@ -57,15 +60,6 @@ case.")
("j" . "t")
("k" . "n")
("l" . "s")))
(colemak . (("h" . "h")
("n" . "j")
("e" . "k")
("i" . "l")
;;
("h" . "h")
("j" . "n")
("k" . "e")
("l" . "i")))
(workman . (("y" . "h")
("n" . "j")
("e" . "k")
@ -84,6 +78,24 @@ case.")
("j" . "n")
("h" . "r")
("k" . "t")))
(colemak-neio . (("n" . "h")
("e" . "j")
("i" . "k")
("o" . "l")
;;
("h" . "n")
("j" . "e")
("k" . "i")
("l" . "o")))
(colemak-hnei . (("h" . "h")
("n" . "j")
("e" . "k")
("i" . "l")
;;
("h" . "h")
("j" . "n")
("k" . "e")
("l" . "i")))
(colemak-jkhl . (("j" . "h")
("k" . "j")
("h" . "k")

View File

@ -42,12 +42,14 @@
(spacemacs|use-package-add-hook ace-window :post-init BODY)
:bepo
(setq aw-keys '(?a ?u ?i ?e ?t ?s ?r ?n))
:colemak
(setq aw-keys '(?a ?r ?s ?t ?n ?e ?i ?o))
:dvorak
(setq aw-keys '(?a ?o ?e ?u ?h ?t ?n ?s))
:neo
(setq aw-keys '(?u ?i ?a ?e ?n ?r ?t ?d))
:colemak-neio
(setq aw-keys '(?a ?r ?s ?t ?n ?e ?i ?o))
:colemak-hnei
(setq aw-keys '(?a ?r ?s ?t ?n ?e ?i ?o))
:colemak-jkhl
(setq aw-keys '(?a ?r ?s ?t ?n ?e ?i ?o))))
@ -59,12 +61,14 @@
(spacemacs|use-package-add-hook avy :post-init BODY)
:bepo
(setq-default avy-keys '(?a ?u ?i ?e ?t ?s ?r ?n))
:colemak
(setq-default avy-keys '(?a ?r ?s ?t ?n ?e ?i ?o))
:dvorak
(setq-default avy-keys '(?a ?o ?e ?u ?h ?t ?n ?s))
:neo
(setq-default avy-keys '(?u ?i ?a ?e ?n ?r ?t ?d))
:colemak-neio
(setq-default avy-keys '(?a ?r ?s ?t ?n ?e ?i ?o))
:colemak-hnei
(setq-default avy-keys '(?a ?r ?s ?t ?n ?e ?i ?o))
:colemak-jkhl
(setq-default avy-keys '(?a ?r ?s ?t ?n ?e ?i ?o))))
@ -203,7 +207,7 @@
(spacemacs|use-package-add-hook evil-escape :post-init BODY)
:bepo
(setq-default evil-escape-key-sequence "gq")
:colemak
:colemak-neio
(setq-default evil-escape-key-sequence "tn")))
(defun keyboard-layout/pre-init-evil-evilified-state ()
@ -487,7 +491,7 @@
;; additional
(kbd "«") 'org-metaleft
(kbd "»") 'org-metaright))
:colemak
:colemak-neio
(progn
(spacemacs|use-package-add-hook evil-org
:post-config