From 5dc9a4d88f7630360b10e2429d88808a196d4343 Mon Sep 17 00:00:00 2001 From: rearman Date: Fri, 29 Aug 2025 14:06:06 -0400 Subject: [PATCH] Switch to sly/slynk from slime/swank Leave swank stuff there in case it doesn't work. --- init.lisp | 7 +++++-- slynk-init.lisp | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 slynk-init.lisp diff --git a/init.lisp b/init.lisp index 06d5c62..a7d67fc 100644 --- a/init.lisp +++ b/init.lisp @@ -5,7 +5,10 @@ (defparameter *threads* '()) ;; SWANK -(load "~/.stumpwm.d/swank-init.lisp") +;; (load "~/.stumpwm.d/swank-init.lisp") + +;; SLYNK +(load "~/.stumpwm.d/slynk-init.lisp") ;; FUNCTIONS (load "~/.stumpwm.d/functions.lisp") @@ -16,7 +19,7 @@ (undefine-key *root-map* (kbd "C-m")) (define-key *top-map* (kbd "s-l") "exec xscreensaver-command --activate") -(define-key *top-map* (kbd "s-s") "toggle-swank") +(define-key *top-map* (kbd "s-s") "toggle-slynk") (define-key *root-map* (kbd "\-") "vsplit") (define-key *root-map* (kbd "\\") "hsplit") diff --git a/slynk-init.lisp b/slynk-init.lisp new file mode 100644 index 0000000..2c73b06 --- /dev/null +++ b/slynk-init.lisp @@ -0,0 +1,40 @@ +(require :slynk) +(slynk-loader:init) + +(defparameter *port-number* 4004) + +(defvar *slynk-server-p* nil) + +(defcommand start-slynk () () + (if *slynk-server-p* + (message "Slynk server is already active on Port^5 ~a^n" *port-number*) + (progn + (slynk:create-server :port *port-number* + :dont-close t) + (setf *slynk-server-p* t) + (message "Slynk server is now active on Port^5 ~a^n. +Use^4 M-x sly-connect^n in Emacs. +Type^2 (in-package :stumpwm)^n in Sly REPL." *port-number*)))) + +(defcommand stop-slynk () () + "Stop Slynk" + (slynk:stop-server *port-number*) + (setf *slynk-server-p* nil) + (message "Stopping Slynk Server! Closing Port^5 ~a^n." *port-number*)) + +(defcommand toggle-slynk () () + (if *slynk-server-p* + (run-commands "stop-slynk") + (run-commands "start-slynk"))) + +;;modeline status +(defun get-slynk-status () + (if *slynk-server-p* + (setf *slynk-ml-status* (format nil "Slynk:^2 ~a^n | " *port-number*)) + (setf *slynk-ml-status* "Slynk: off | "))) + +(defun ml-fmt-slynk-status (ml) + (declare (ignore ml)) + (get-slynk-status)) + +(add-screen-mode-line-formatter #\S #'ml-fmt-slynk-status) -- 2.39.5