diff --git a/.emacs.d/lisp/init-exwm.el b/.emacs.d/lisp/init-exwm.el index 439a3662..d2c8de86 100644 --- a/.emacs.d/lisp/init-exwm.el +++ b/.emacs.d/lisp/init-exwm.el @@ -86,11 +86,6 @@ (exwm-input-set-key (kbd "s-") #'eshell) (exwm-input-set-key (kbd "s-") #'helm-eshell-switch) (exwm-input-set-key (kbd "S-s-") #'helm-eshell-switch-other-window)) -(with-eval-after-load 'slime - (exwm-input-set-key (kbd "s-") #'ambrevar/slime-switch-to-repl)) -(with-eval-after-load 'geiser-impl - (exwm-input-set-key (kbd "s-") #'helm-geiser-repl-switch) - (exwm-input-set-key (kbd "S-s-") #'helm-geiser-repl-switch-other-window)) (when (fboundp 'magit-status) (exwm-input-set-key (kbd "s-v") #'magit-status)) (when (fboundp 'emms-all) @@ -121,6 +116,20 @@ (when (fboundp 'helm-pass) (exwm-input-set-key (kbd "s-p") #'helm-pass)) +(defun ambrevar/repl-switcher () + "Switch between Geiser and SLIME REPLs." + (interactive) + (pcase + (completing-read "Lisp: " '(geiser slime)) + ("geiser" + (autoload 'helm-geiser-repl-switch "scheme") + (exwm-input-set-key (kbd "s-") #'helm-geiser-repl-switch) + (exwm-input-set-key (kbd "S-s-") #'helm-geiser-repl-switch-other-window)) + ("slime" + (autoload 'ambrevar/slime-to-repl "lisp") + (exwm-input-set-key (kbd "s-") #'ambrevar/slime-switch-to-repl)))) +(exwm-input-set-key (kbd "s-C-") #'ambrevar/repl-switcher) + ;;; External application shortcuts. (defun ambrevar/exwm-start (command) (interactive (list (read-shell-command "$ ")))