diff options
Diffstat (limited to 'guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el')
| -rw-r--r-- | guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el b/guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el new file mode 100644 index 0000000..2ca7ccb --- /dev/null +++ b/guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el @@ -0,0 +1,99 @@ +;;; -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + + +;;;; remove all the stupid stupid stupid crap +(define-minor-mode minor-mode-blackout-mode + "Hides minor modes from the mode line." + t) + +(catch 'done + (mapc (lambda (x) + (when (and (consp x) + (equal (cadr x) '("" minor-mode-alist))) + (let ((original (copy-sequence x))) + (setcar x 'minor-mode-blackout-mode) + (setcdr x (list "" original))) + (throw 'done t))) + mode-line-modes)) +(global-set-key (kbd "C-c ,") 'minor-mode-blackout-mode) + +(defvar-local bd/buffer-identification-mode-line + '(:eval (format "%s" (propertize (buffer-name) 'face + (if (mode-line-window-selected-p) + 'modus-themes-fg-cyan-intense + 'mode-line-inactive)))) + "Formats the modeline-buffer-name.") + +(defvar-local bd/project-mode-line + '(:eval + (when-let ((project (project-current)) + (file? (buffer-file-name))) + (let ((last-coding-system-used last-coding-system-used)) + (format "%s " + (propertize + (project-name project) + 'face 'shadow + 'mouse-face 'mode-line-highlight + 'help-echo "mouse-1: Project menu" + 'local-map project-mode-line-map)))))) + +(defvar-local bd/global-mode-string + '(:eval (when (mode-line-window-selected-p) + global-mode-string)) + "Displays the global mode string only on the current window.") + +(column-number-mode 1) +(setopt mode-line-position-column-line-format '("%l:%c") + mode-line-percent-position nil) +(defvar-local bd/line-position + '(:eval + (when (mode-line-window-selected-p) + mode-line-position))) + +(defvar-local bd/vc-mode-line + '(:eval (when vc-mode + (format "%s " + (propertize (cadr (split-string vc-mode "[:-]")) 'face 'shadow)))) + "Formats the checked out git repository.") + +(defvar-local bd/modeline-window-dedicated + '(:eval + (when (window-dedicated-p) + (format "%s -- " + (propertize "LK" 'face 'font-lock-comment-face)))) + "Indicator for dedicated window.") + +(dolist (construct '(bd/buffer-identification-mode-line + bd/project-mode-line + bd/vc-mode-line + bd/global-mode-string + bd/line-position + bd/modeline-window-dedicated)) + (put construct 'risky-local-variable t)) + + +(setopt mode-line-right-align-edge 'window) +(setq-default mode-line-format + '("%e" + mode-line-front-space + bd/project-mode-line + bd/buffer-identification-mode-line + " -- " + mode-line-modes + "-- " + bd/line-position + mode-line-format-right-align + bd/modeline-window-dedicated + bd/vc-mode-line + mode-line-mule-info + mode-line-modified + mode-line-front-space + bd/global-mode-string + mode-line-front-space + )) + + +(provide 'bd--modeline) +;;; bd--modeline.el ends here |
