Added header.
authorplugd <plugd@thelambdalab.xyz>
Wed, 7 Jul 2021 09:52:06 +0000 (11:52 +0200)
committerplugd <plugd@thelambdalab.xyz>
Wed, 7 Jul 2021 09:52:06 +0000 (11:52 +0200)
lurk.el

diff --git a/lurk.el b/lurk.el
index 8f384df..c5a11f3 100644 (file)
--- a/lurk.el
+++ b/lurk.el
@@ -58,6 +58,9 @@
 (defcustom lurk-show-joins nil
   "Set to non-nil to be notified of joins, parts and quits.")
 
+(defcustom lurk-display-header t
+  "If non-nil, use buffer header to display information on current host and channel.")
+
 ;;; Faces
 ;;
 
@@ -364,6 +367,24 @@ portion of the source component of the message, as LURK doesn't use this.")
 (defvar lurk-input-marker nil
   "Marker for prompt position in LURK buffer.")
 
+(defun lurk-setup-header ()
+  (setq-local header-line-format
+              '(:eval
+                (let ((proc (get-process "lurk")))
+                  (if proc
+                      (concat
+                       "Host: " (car (process-contact proc))
+                       ", Context: "
+                       (if lurk-current-context
+                           (concat
+                            lurk-current-context
+                            " ("
+                            (number-to-string
+                             (length (lurk-get-context-users lurk-current-context)))
+                            " users)")
+                         "Server"))
+                    "No connection")))))
+
 (defun lurk-setup-buffer ()
   (with-current-buffer (get-buffer-create "*lurk*")
     (setq-local scroll-conservatively 1)
@@ -375,7 +396,9 @@ portion of the source component of the message, as LURK doesn't use this.")
         (set-marker lurk-input-marker (point-max))
       (setq lurk-input-marker (point-max-marker)))
     (goto-char (point-max))
-    (lurk-render-prompt)))
+    (lurk-render-prompt)
+    (if (lurk-display-header)
+        (lurk-setup-header))))
 
 
 ;;; Output formatting and highlighting
@@ -711,6 +734,14 @@ portion of the source component of the message, as LURK doesn't use this.")
          (setq lurk-debug (not lurk-debug))
          (lurk-display-notice nil "Debug mode now " (if lurk-debug "on" "off") "."))
 
+        ((rx "HEADER")
+         (if header-line-format
+           (progn
+             (setq-local header-line-format nil)
+             (lurk-display-notice nil "Header disabled."))
+           (lurk-setup-header)
+           (lurk-display-notice nil "Header enabled.")))
+
         ((rx (: "CONNECT " (let network (* not-newline))))
          (lurk-display-notice nil "Attempting to connect to " network "...")
          (lurk-connect network))