diff options
Diffstat (limited to 'main.scm')
-rw-r--r-- | main.scm | 30 |
1 files changed, 24 insertions, 6 deletions
@@ -5,7 +5,7 @@ (make-config inner-border-width outer-border-width - manger-border-width + magnet-border-width offset-x offset-y offset-width @@ -30,16 +30,34 @@ 0 ; offset-height )) -(define keys - '(((make-key-chord (key-from-str "q")) . wm-quit))) +(define (make-key key) + (list #f (key-from-str key))) + +(define (make-shift-key key) + (list #t (key-from-str key))) + +(define wm-keybindings + `((,(make-shift-key "q") . ,wm-quit) + (,(make-key "Tab") . ,wm-focus-next))) + +(define (grab-keys keybindings) + (unless (null? keybindings) + (let* ((keybinding (car keybindings)) + (chord (car keybinding)) + (func (cdr keybinding)) + (with-shift (car chord)) + (key (car (cdr chord)))) + (if with-shift + (wm-grab-key-with-mod-shift key) + (wm-grab-key-with-mod key)) + (grab-keys (cdr keybindings))))) (when (wm-init) + (grab-keys wm-keybindings) (wm-set-key-press-handler! (lambda (mod keysym) (display (list mod keysym)) - (display "\n"))) - (display config) - (display "\n") + (newline))) (wm-run) (wm-quit)) |