From a082b261e267f98878e7be58fe062305c786d9a8 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 10 May 2024 01:04:38 +0530 Subject: (Emacs/config)-telephone-line Mode line also now includes project name in mode line --- Emacs/.config/emacs/config.org | 85 ++++-------------------------------------- 1 file changed, 7 insertions(+), 78 deletions(-) (limited to 'Emacs/.config/emacs') diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org index 61c60f5..ae8d3d3 100644 --- a/Emacs/.config/emacs/config.org +++ b/Emacs/.config/emacs/config.org @@ -309,21 +309,14 @@ little. I customised the Emacs modeline to give me a bit of info, Currently I use the default mode line with some customisation; simplicity is above all. -*** Emacs Mode-line -#+begin_src emacs-lisp -(defun +mode-line/generate-padding () - (let ((wid (frame-width)) - (str "")) - (dotimes (n (floor (/ wid 7))) - (setq str (concat str " "))) - str)) +#+begin_src emacs-lisp (setq-default mode-line-format (list "%l:%c " ;; Line and column - "%p[" ;; Where in file + Evil state - '(:eval (with-eval-after-load "evil" + "%p[" ;; %into file + '(:eval (with-eval-after-load "evil" ;; Evil state (upcase (substring (format "%s" (if (bound-and-true-p evil-state) @@ -331,79 +324,15 @@ simplicity is above all. " ")) 0 1)))) "] " - "%+%b(" + "%+%b(" ;; Buffer name '(:eval (format "%s" major-mode)) ") " - "%I " - '(:eval (+mode-line/generate-padding)) - '(vc-mode vc-mode) + "%I " ;; file size + '(:eval (project-name (project-current))) + '(vc-mode vc-mode) ;; git branch mode-line-misc-info mode-line-end-spaces)) #+end_src -*** WAIT Telephone-line -:PROPERTIES: -:header-args:emacs-lisp: :tangle no -:END: -Telephone-line is a mode-line package for Emacs which prioritises -extensibility. It also looks much nicer than the default mode line -with colouring and a ton of presentations to choose from. -#+begin_src emacs-lisp -(use-package telephone-line - :init - (defface +telephone/position-face '((t (:foreground "red" :background "grey10"))) "") - (defface +telephone/mode-face '((t (:foreground "white" :background "dark green"))) "") - (defface +telephone/file-info-face '((t (:foreground "white" :background "Dark Blue"))) "") - :custom - (telephone-line-faces - '((evil . telephone-line-modal-face) - (modal . telephone-line-modal-face) - (ryo . telephone-line-ryo-modal-face) - (accent . (telephone-line-accent-active . telephone-line-accent-inactive)) - (nil . (mode-line . mode-line-inactive)) - (position . (+telephone/position-face . mode-line-inactive)) - (mode . (+telephone/mode-face . mode-line-inactive)) - (file-info . (+telephone/file-info-face . mode-line-inactive)))) - (telephone-line-primary-left-separator 'telephone-line-halfcos-left) - (telephone-line-secondary-left-separator 'telephone-line-halfcos-hollow-left) - (telephone-line-primary-right-separator 'telephone-line-identity-right) - (telephone-line-secondary-right-separator 'telephone-line-identity-hollow-right) - (telephone-line-height 24) - (telephone-line-evil-use-short-tag nil) - :config - (telephone-line-defsegment +telephone/buffer-or-filename () - (cond - ((buffer-file-name) - (if (and (fboundp 'projectile-project-name) - (fboundp 'projectile-project-p) - (projectile-project-p)) - (list "" - (funcall (telephone-line-projectile-segment) face) - (propertize - (concat "/" - (file-relative-name (file-truename (buffer-file-name)) - (projectile-project-root))) - 'help-echo (buffer-file-name))) - (buffer-file-name))) - (t (buffer-name)))) - - (telephone-line-defsegment +telephone/get-position () - `(,(concat "%lL:%cC" - (if (not mark-active) - "" - (format " | %dc" (- (+ 1 (region-end)) (region-beginning))))))) - - (setq-default - telephone-line-lhs '((mode telephone-line-major-mode-segment) - (file-info telephone-line-input-info-segment) - (position +telephone/get-position) - (accent +telephone/buffer-or-filename - telephone-line-process-segment)) - telephone-line-rhs '((accent telephone-line-flycheck-segment telephone-line-misc-info-segment - telephone-line-projectile-segment) - (file-info telephone-line-filesize-segment) - (evil telephone-line-evil-tag-segment))) - (telephone-line-mode)) -#+end_src ** Mouse Who uses a mouse? 🤮 #+begin_src emacs-lisp -- cgit v1.2.3-13-gbd6f