]> git.earman.xyz Git - stumpwminit.git/commitdiff
Switch to sly/slynk from slime/swank
authorrearman <rearman@r717.net>
Fri, 29 Aug 2025 18:06:06 +0000 (14:06 -0400)
committerrearman <rearman@r717.net>
Fri, 29 Aug 2025 18:06:06 +0000 (14:06 -0400)
Leave swank stuff there in case it doesn't work.

init.lisp
slynk-init.lisp [new file with mode: 0644]

index 06d5c6209434518f1a271f0226318a1c9b2fb5d2..a7d67fccc486509626179cdd8fcca989de389ae3 100644 (file)
--- 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 (file)
index 0000000..2c73b06
--- /dev/null
@@ -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)