From: plugd Date: Wed, 7 Jul 2021 09:52:06 +0000 (+0200) Subject: Added header. X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=commitdiff_plain;h=ac4e52a32c28fd433b8f8e760341b324e7b35dfb;p=lurk.git Added header. --- diff --git a/lurk.el b/lurk.el index 8f384df..c5a11f3 100644 --- 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))