summaryrefslogtreecommitdiff
path: root/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el
diff options
context:
space:
mode:
Diffstat (limited to 'kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el')
-rw-r--r--kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el99
1 files changed, 99 insertions, 0 deletions
diff --git a/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el b/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--modeline.el
new file mode 100644
index 0000000..2ca7ccb
--- /dev/null
+++ b/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