https://github.com/danielfleischer/mood-line
https://github.com/danielfleischer/mood-line
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/danielfleischer/mood-line
- Owner: danielfleischer
- License: gpl-2.0
- Created: 2023-05-19T07:40:19.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-08T06:50:57.000Z (about 2 years ago)
- Last Synced: 2025-10-11T22:16:37.569Z (8 months ago)
- Language: Emacs Lisp
- Size: 527 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#
mood-line
A lightweight, drop-in replacement for the default Emacs mode line configuration.
[](https://melpa.org/#/mood-line)
[](https://stable.melpa.org/#/mood-line)
## Features
* Clean, informative design
* Customizable, modular segment format
* Customizable glyph sets
* Lazy-loaded extensions
* [Lightweight](.repo-assets/benchmark.md), no dependencies
## Preview

## Configuration
You can install mood-line directly via `package-install` from [MELPA](https://melpa.org/).
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:
```elisp
(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:
```elisp
;; 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`:
```elisp
;; 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:
```bash
./ert-test.sh
```
## Feedback
If you experience any issues with this package, please
[open an issue](https://git.tty.dog/jessieh/mood-line/issues/new)
on the issue tracker.
Suggestions for improvements and feature requests are always appreciated, as well!