Prefer telephone-line to doom-modeline
After growing frustrated with doom-modeline's compatibility with my EXWM setup, I decided to borrow @tazjin's setup, which I find to be much more appealing.
This commit is contained in:
parent
eb1af216cf
commit
7d9cfdbc41
3 changed files with 67 additions and 4 deletions
64
emacs/.emacs.d/wpc/modeline.el
Normal file
64
emacs/.emacs.d/wpc/modeline.el
Normal file
|
@ -0,0 +1,64 @@
|
|||
;;; modeline.el --- Customize my Emacs mode-line -*- lexical-binding: t -*-
|
||||
;; Author: William Carroll <wpcarro@gmail.com>
|
||||
|
||||
;;; Commentary:
|
||||
;; Because I use EXWM, I treat my Emacs mode-line like my system bar: I need to
|
||||
;; quickly check the system time, and I expect it to be at the bottom-right of
|
||||
;; my Emacs frame. I used doom-modeline for awhile, which is an impressive
|
||||
;; package, but it conditionally colorizes on the modeline for the active
|
||||
;; buffer. So if my bottom-right window is inactive, I cannot see the time.
|
||||
;;
|
||||
;; My friend, @tazjin, has a modeline setup that I think is more compatible with
|
||||
;; EXWM, so I'm going to base my setup off of his.
|
||||
|
||||
(use-package telephone-line)
|
||||
|
||||
(defun modeline/bottom-right-window? ()
|
||||
"Determines whether the last (i.e. bottom-right) window of the
|
||||
active frame is showing the buffer in which this function is
|
||||
executed."
|
||||
(let* ((frame (selected-frame))
|
||||
(right-windows (window-at-side-list frame 'right))
|
||||
(bottom-windows (window-at-side-list frame 'bottom))
|
||||
(last-window (car (seq-intersection right-windows bottom-windows))))
|
||||
(eq (current-buffer) (window-buffer last-window))))
|
||||
|
||||
(defun modeline/maybe-render-time ()
|
||||
"Renders the mode-line-misc-info string for display in the
|
||||
mode-line if the currently active window is the last one in the
|
||||
frame.
|
||||
|
||||
The idea is to not display information like the current time,
|
||||
load, battery levels on all buffers."
|
||||
(when (modeline/bottom-right-window?)
|
||||
(telephone-line-raw mode-line-misc-info t)))
|
||||
|
||||
(defun modeline/setup ()
|
||||
"Render my custom modeline."
|
||||
(telephone-line-defsegment telephone-line-last-window-segment ()
|
||||
(modeline/maybe-render-time))
|
||||
;; Display the current EXWM workspace index in the mode-line
|
||||
(telephone-line-defsegment telephone-line-exwm-workspace-index ()
|
||||
(when (modeline/bottom-right-window?)
|
||||
(format "[%s]" exwm-workspace-current-index)))
|
||||
;; Define a highlight font for ~ important ~ information in the last
|
||||
;; window.
|
||||
(defface special-highlight '((t (:foreground "white" :background "#5f627f"))) "")
|
||||
(add-to-list 'telephone-line-faces
|
||||
'(highlight . (special-highlight . special-highlight)))
|
||||
(setq telephone-line-lhs
|
||||
'((nil . (telephone-line-position-segment))
|
||||
(accent . (telephone-line-buffer-segment))))
|
||||
(setq telephone-line-rhs
|
||||
'((accent . (telephone-line-major-mode-segment))
|
||||
(nil . (telephone-line-last-window-segment
|
||||
telephone-line-exwm-workspace-index))))
|
||||
(setq telephone-line-primary-left-separator 'telephone-line-tan-left
|
||||
telephone-line-primary-right-separator 'telephone-line-tan-right
|
||||
telephone-line-secondary-left-separator 'telephone-line-tan-hollow-left
|
||||
telephone-line-secondary-right-separator 'telephone-line-tan-hollow-right)
|
||||
|
||||
(telephone-line-mode 1))
|
||||
|
||||
(provide 'modeline)
|
||||
;; modeline.el ends here
|
|
@ -15,6 +15,7 @@
|
|||
(require 'themes)
|
||||
(require 'device)
|
||||
(require 'laptop-battery)
|
||||
(require 'modeline)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Configuration
|
||||
|
@ -175,9 +176,7 @@
|
|||
;; Load a theme
|
||||
(themes/set "Solarized Light")
|
||||
|
||||
;; Use the Doom modeline
|
||||
(use-package 'doom-modeline)
|
||||
(doom-modeline-mode 1)
|
||||
(modeline/setup)
|
||||
|
||||
(provide 'wpc-ui)
|
||||
;;; wpc-ui.el ends here
|
||||
|
|
|
@ -47,7 +47,7 @@ let
|
|||
flycheck
|
||||
diminish
|
||||
doom-themes
|
||||
doom-modeline
|
||||
telephone-line
|
||||
neotree # TODO: Remove this dependency from my config.
|
||||
which-key
|
||||
ivy
|
||||
|
|
Loading…
Reference in a new issue