diff --git a/extensions/lem-dashboard/default-dashboard.lisp b/extensions/lem-dashboard/default-dashboard.lisp index b7b2a67f2..6c8fe4d47 100644 --- a/extensions/lem-dashboard/default-dashboard.lisp +++ b/extensions/lem-dashboard/default-dashboard.lisp @@ -42,7 +42,7 @@ (splash *default-splash*) (footer-messages *default-footer-messages*) hide-links) - (let ((dashboard-items + (let ((dashboard-items (list (make-instance 'dashboard-splash :item-attribute 'document-metadata-attribute :splash-texts splash) diff --git a/extensions/lem-dashboard/lem-dashboard.lisp b/extensions/lem-dashboard/lem-dashboard.lisp index 895ee853b..6cd1cb503 100644 --- a/extensions/lem-dashboard/lem-dashboard.lisp +++ b/extensions/lem-dashboard/lem-dashboard.lisp @@ -101,6 +101,14 @@ (dolist (item *dashboard-layout*) (draw-dashboard-item item point))) (change-buffer-mode buffer 'dashboard-mode) + ;; Show the Lem version in the modeline for the dashboard buffer only + (setf (variable-value 'modeline-format :buffer buffer) + '(" " modeline-write-info modeline-name + (modeline-posline nil :right) + (modeline-position nil :right) + (modeline-minor-modes nil :right) + (modeline-major-mode nil :right) + (modeline-version nil :right))) (move-to-line (buffer-point buffer) old-line) (move-to-column (buffer-point buffer) old-column))))) diff --git a/src/internal-packages.lisp b/src/internal-packages.lisp index 1c64cdcf3..ef4160a6d 100644 --- a/src/internal-packages.lisp +++ b/src/internal-packages.lisp @@ -413,6 +413,8 @@ :modeline-write-info :modeline-name :modeline-mode-names + :modeline-major-mode + :modeline-minor-modes :modeline-position :modeline-posline :modeline-name-attribute @@ -426,6 +428,9 @@ :inactive-modeline-position-attribute :inactive-modeline-name-attribute :inactive-modeline-posline-attribute + :modeline-version + :modeline-version-attribute + :inactive-modeline-version-attribute :convert-modeline-element) ;; command.lisp (:export diff --git a/src/modeline.lisp b/src/modeline.lisp index 4e59a6da6..b3f6bae97 100644 --- a/src/modeline.lisp +++ b/src/modeline.lisp @@ -39,6 +39,12 @@ (define-attribute inactive-modeline-posline-attribute (t :foreground "black" :background "#505050")) +(define-attribute modeline-version-attribute + (t :foreground "#6a6a6a")) + +(define-attribute inactive-modeline-version-attribute + (t :foreground "#444444")) + (defvar *modeline-status-list* nil) (defun modeline-add-status-list (x &optional (buffer nil bufferp)) @@ -124,6 +130,11 @@ 'modeline-posline-attribute 'inactive-modeline-posline-attribute))) +(defun modeline-version (window) + (declare (ignore window)) + (values (format nil " v~A " (asdf:component-version (asdf:find-system :lem))) + 'modeline-version-attribute)) + (defgeneric convert-modeline-element (element window)) (defmethod convert-modeline-element ((element t) window)