Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (require 'quail)
- ;; consumes list of from-to string pairs
- (defun make-rules (l)
- (mapcan
- (lambda (pair)
- (let ((fl (string-to-list (car pair)))
- (tl (string-to-list (cadr pair))))
- (mapcar*
- (lambda (fc tc)
- (list (string fc) tc))
- fl tl)))
- l))
- (defvar colemak-letters
- '(("qwertyuiop[]\\"
- "qwfpgjluy;[]\\")
- ("QWERTYUIOP{}|"
- "QWFPGJLUY:{}|")
- ("asdfghjkl;'"
- "arstdhneio'")
- ("ASDFGHJKL:\""
- "ARSTDHNEIO\"")
- ("zxcvbnm,./"
- "zxcvbkm,./")
- ("ZXCVBNM<>?"
- "ZXCVBKM<>?")))
- (defvar colemak-nums
- '(("`1234567890-="
- "~!@#$%^&*()-=")
- ("~!@#$%^&*()_+"
- "`1234567890_+")))
- (quail-define-package
- "english-colemak" "English" "Cl@" t
- "another docstring"
- nil ;translation keys
- t ;foget-last-selection
- t ;deterministic
- t ;kbd-translate
- t ;show-layout
- nil ;create-decode-map
- nil ;maxumum-shortest
- nil ;overlay-plist
- nil ;update-translation
- nil ;conversion-keys
- t) ;simple
- (eval (append '(quail-define-rules)
- (make-rules colemak-letters)))
- (quail-define-package
- "english-colemak-num" "English" "Cln@")
- (eval (append '(quail-define-rules)
- (make-rules (append colemak-letters colemak-nums))))
- (provide 'english-colemak)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement