(Emacs/config)-telephone-line
Mode line also now includes project name in mode line
This commit is contained in:
@@ -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;
|
Currently I use the default mode line with some customisation;
|
||||||
simplicity is above all.
|
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
|
(setq-default
|
||||||
mode-line-format
|
mode-line-format
|
||||||
(list
|
(list
|
||||||
"%l:%c " ;; Line and column
|
"%l:%c " ;; Line and column
|
||||||
"%p[" ;; Where in file + Evil state
|
"%p[" ;; %into file
|
||||||
'(:eval (with-eval-after-load "evil"
|
'(:eval (with-eval-after-load "evil" ;; Evil state
|
||||||
(upcase
|
(upcase
|
||||||
(substring
|
(substring
|
||||||
(format "%s" (if (bound-and-true-p evil-state)
|
(format "%s" (if (bound-and-true-p evil-state)
|
||||||
@@ -331,79 +324,15 @@ simplicity is above all.
|
|||||||
" "))
|
" "))
|
||||||
0 1))))
|
0 1))))
|
||||||
"] "
|
"] "
|
||||||
"%+%b("
|
"%+%b(" ;; Buffer name
|
||||||
'(:eval (format "%s" major-mode))
|
'(:eval (format "%s" major-mode))
|
||||||
") "
|
") "
|
||||||
"%I "
|
"%I " ;; file size
|
||||||
'(:eval (+mode-line/generate-padding))
|
'(:eval (project-name (project-current)))
|
||||||
'(vc-mode vc-mode)
|
'(vc-mode vc-mode) ;; git branch
|
||||||
mode-line-misc-info
|
mode-line-misc-info
|
||||||
mode-line-end-spaces))
|
mode-line-end-spaces))
|
||||||
#+end_src
|
#+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
|
** Mouse
|
||||||
Who uses a mouse? 🤮
|
Who uses a mouse? 🤮
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
|||||||
Reference in New Issue
Block a user