;;; -*- 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) (defface bd/underline-shadow `((t :inherit shadow :underline t)) "Shadow with an underline.") (defvar-local bd/buffer-identification-mode-line '(:eval (format "%s " (propertize (buffer-name) 'face 'bd/underline-shadow))) "Formats the modeline-buffer-name.") ;;;; pos (column-number-mode) (setopt mode-line-position-column-line-format '(" %l:%c ")) (defvar-local bd/line-position '(:eval (when (mode-line-window-selected-p) ;; remove the percentage (cdr mode-line-position)))) ;;;; git (defun git-vc-modeline () (mapconcat 'concat (cdr (split-string vc-mode "[:-]")) "-")) (defvar-local bd/vc-mode-line '(:eval (when (and vc-mode (not (eq major-mode 'magit-status-mode))) ; fix to avoid bug which occurs in magit buffer (don't remember) (format " %s " (propertize (git-vc-modeline) 'face 'shadow)))) "Formats the checked out git repository.") (dolist (construct '(bd/time-mode-line bd/buffer-identification-mode-line bd/vc-mode-line bd/line-position)) (put construct 'risky-local-variable t)) (setq-default mode-line-format (list mode-line-front-space bd/buffer-identification-mode-line mode-line-modes mode-line-modified bd/vc-mode-line bd/line-position)) (provide 'bd--modeline) ;;; bd-modeline ends here