| .repo-assets | ||
| test | ||
| ert-test.sh | ||
| LICENSE | ||
| mood-line-segment-checker.el | ||
| mood-line-segment-indentation.el | ||
| mood-line-segment-modal.el | ||
| mood-line-segment-vc.el | ||
| mood-line.el | ||
| README.md | ||
 mood-line
 mood-line
A lightweight, drop-in replacement for the default Emacs mode line configuration.
Features
- 
Clean, informative design 
- 
Customizable, modular segment format 
- 
Customizable glyph sets 
- 
Lazy-loaded extensions 
- 
Lightweight, no dependencies 
Preview
Configuration
You can install mood-line directly via package-install from MELPA.
After installation, you can activate the global minor mode with M-x mood-line-mode.
Deactivating mode-line-mode will restore the default mode-line-format.
If you are a user of use-package, it is easy to configure mood-line directly in your init.el:
(use-package mood-line
  ;; Enable mood-line
  :config
  (mood-line-mode)
  ;; Use pretty Fira Code-compatible glyphs
  :custom
  (mood-line-glyph-alist mood-line-glyphs-fira-code))
Format
mood-line uses a modular segment format, and it is easy to reconfigure:
;; Default format:
;;   * init.el  4:32 Top                                         ELisp  ! Issues: 2
(setq mood-line-format mood-line-format-default)
;; Extended format:
;;   * init.el  4:32:52 Top                    SPCx2  LF  UTF-8  ELisp  ! Issues: 2
(setq mood-line-format mood-line-format-default-extended)
;; Custom format:
;;   * init.el : ELisp                                     Top 4:32  |  ! Issues: 2
(setq mood-line-format
      (mood-line-defformat
       :left
       (((mood-line-segment-buffer-status) . " ")
        ((mood-line-segment-buffer-name)   . " : ")
        (mood-line-segment-major-mode))
       :right
       (((mood-line-segment-scroll)             . " ")
        ((mood-line-segment-cursor-position)    . "  ")
        ((when (mood-line-segment-checker) "|") . "  ")
        ((mood-line-segment-checker)            . "  "))))
More information on the format specification is available in the documentation:
M-x describe-variable mood-line-format
M-x describe-function mood-line-defformat
Glyphs
By default, mood-line will use basic ASCII character glyphs to decorate mode line segments.
If you'd like to see prettier Unicode glyphs, you can change the value of mood-line-glyph-alist:
;; The default set of glyphs:
;;   * myModifiedFile.js  Replace*3                 + main  JavaScript  ! Issues: 2
(setq mood-line-glyph-alist mood-line-glyphs-ascii)
;; A set of Fira Code-compatible Unicode glyphs:
;;   ● myModifiedFile.js  Replace×3                 + main  JavaScript  → Issues: 2
(setq mood-line-glyph-alist mood-line-glyphs-fira-code)
;; A set of Unicode glyphs:
;;   ● myModifiedFile.js  Replace✕3                 🞤 main  JavaScript  ⚑ Issues: 2
(setq mood-line-glyph-alist mood-line-glyphs-unicode)
If you'd like to supply your own glyphs, you can use the customization interface
(M-x customize-variable mood-line-glyph-alist) or view the documentation
(M-x describe-variable mood-line-glyph-alist) for more information.
You can further tweak the behavior and appearance of mood-line by viewing the customizable variables
and faces in the mood-line and mood-line-faces customization groups. (M-x customize-group mood-line)
Testing
To run the included tests:
./ert-test.sh
Feedback
If you experience any issues with this package, please open an issue on the issue tracker.
Suggestions for improvements and feature requests are always appreciated, as well!
