menelaus/qwerty.scm

67 lines
2.6 KiB
Scheme

(include "keycodes.scm")
(define rows (list 0 1 2 3))
(define columns (list 0 1 2 3 4 5 6 7 8 9 10 11))
(define row-pins (vector 5 9 16 10))
; +#define MATRIX_ROW_PINS { C6, B5, B2, B6 }
(define column-pins (vector 21 19 20 18 15 7 6 4 3 2 0 1))
; +#define MATRIX_COL_PINS { F4, F6, F5, F7, B1, E6, D7, D4, D0, D1, D2, D3 }
;; we have to declare this up front and set it later because of circularity
(define layers #f)
(define current-layer #f)
(define momentary-layer #f)
(define (fn on?) (set! momentary-layer (and on? (vector-ref layers 1))))
(define (set-layer n)
(lambda (_) (set! current-layer (vector-ref layers n))))
;;;; layers
(define noop 0)
(define base-layer
(vector key-q key-w key-e key-r key-t noop noop key-y key-u key-i key-o key-p
key-a key-s key-d key-f key-g noop noop key-h key-j key-k key-l key-semicolon
key-z key-x key-c key-v key-b key-backtick key-backslash key-n key-m key-comma key-period key-slash
key-esc key-tab mod-super mod-shift key-backspace mod-ctrl
mod-alt key-space fn key-dash key-quote key-enter))
(define fn-layer
(vector (sft key-1) (sft key-2) key-up (sft key-4) (sft key-5) noop
noop key-page-up key-7 key-8 key-9 key-backspace
(sft key-9) key-left key-down key-right (sft key-0) noop
noop key-page-down key-4 key-5 key-6 (altgr sticky-modifier)
key-lbrack key-rbrack (sft key-3) (sft key-lbrack) (sft key-rbrack) (sft key-6)
(sft key-7) (sft key-8) key-1 key-2 key-3 (sft key-equal)
;; set-layer 2 takes us to l2-layer below; doesn't need to be held
(set-layer 2) key-insert mod-super mod-shift key-backspace mod-ctrl
mod-alt key-space fn key-period key-0 key-equal))
(define l2-layer
(vector key-insert key-home key-up key-end key-page-up noop
noop key-up key-f7 key-f8 key-f9 key-f10
key-delete key-left key-down key-right key-page-down noop
noop key-down key-f4 key-f5 key-f6 key-f11
;; the B key enters the bootloader
noop key-vol-up noop noop reset noop
noop noop key-f1 key-f2 key-f3 key-f12
noop key-vol-down mod-super mod-shift key-backspace mod-ctrl
mod-alt key-space (set-layer 0) key-printscreen key-scroll-lock key-pause))
(set! layers (vector base-layer fn-layer l2-layer))
(set! current-layer (vector-ref layers 0))
(include "menelaus.scm")