;;; -*- 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) 'font-lock-keyword-face '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)))))) (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/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 )) (provide 'bd--modeline) ;;; bd--modeline.el ends here