Modus Themes

about | blog | config | notes | github

1. Highly Accessible Themes for GNU/Emacs

Included Themes
modus-operandi
modus-vivendi

2. Configuration

2.1. Package Install

(use-package modus-themes
  :bind ("<f5>" . modus-themes-toggle))

2.2. Custom Parameters

All customizations for the modus themes must be applied before loading a theme (see next section).

2.2.1. Inhibiting Theme Reload

The first option prevents theme relaoding to occur when using the M-x customize-set-variable method.

(setq modus-themes-inhibit-reload t)

2.2.2. Color-coding Success State (Deuteranopia)

The next option is for color-coding success state for people who had deuteranopia (also known as red-green color blindness).

(setq modus-themes-success-deuteranopia nil)

2.2.3. Option for more Italic/Bold Constructs

The next set of optinos cover adding italics and bold constructs to code syntax.

(setq modus-themes-italic-constructs t)
(setq modus-themes-bold-constructs t)

2.2.4. Syntax Highlighting

Next we have the option to configure how the syntax would be highlighted. It can include any combination of the following symbols.

  • faint
  • yellow-comments
  • green-strings
  • alt-syntax
(setq modus-themes-syntax nil)

2.2.5. Font Mixing

Let modus-themes know that we are going to be having mixed fonts.

(setq modus-themes-mixed-fonts t)

2.2.6. Links

The links itself can be customized with the following parameters

  • neutral-underline or no-underline
  • faint or no-color
  • bold
  • italic
  • background
(setq modus-themes-links '(no-underline background))

2.2.7. Command Prompt

The following can customzie the command prompt style.

(setq modus-themes-prompts '(background italic))

2.2.8. Modeline

We can also customize the theme of the modeline

(setq modus-themes-mode-line '(accented))

2.2.9. Tab Interface

We can also configure the accented background for tab interfaces. However I do not use any tab based interface as of yet.

(setq modus-themes-tabs-accented nil)

2.2.10. Completion Framework Aesthetics

We have a couple different ways to customize the completion framework UI.

  • nil
  • 'moderate
  • 'opinionated
(setq modus-themes-completions nil)

2.2.11. Mail Citations

This is for mail stuff if I used mu4e. I don't really use this yet.

(setq modus-themes-mail-citations nil)

2.2.12. Fringe Visibility

Available options for modus-themes-fringes is nil, 'subtle, and 'intense

(setq modus-themes-fringes nil)

2.2.13. Language Checkers

Options for modus-themes-lang-checkers are either nil (the default), or a list of properties that may include any of those symbols:

  • straight-underline
  • text-also
  • background
  • intense or faint
(setq modus-themes-lang-checkers nil)

2.2.14. Line Highlighting

Configures options for hl-line-mode. Possible values can be expressed as a list of the following properties:

  • accented
  • intense
  • underline
(setq modus-themes-hl-line '(underline accented intense))

2.2.15. Line Numbers

This option only customized how subtle the line numbers look

(setq modus-themes-subtle-line-numbers t)

2.2.16. Markup in Org

Changes the style for certain markup types in inline code and vertbatim constructs in Org-mode. Note this is verbatim and this is code.

(setq modus-themes-intense-markup t)

2.2.17. Parenthesis Matching

Control the aesthetic of the paren matching system. Possible values are:

  • bold
  • intense
  • underline
(setq modus-themes-paren-match '(bold intense))

2.2.18. Active Region

This controls the color of the selected regoin (like in visual mode).

  • no-extend
  • bg-only
  • accented
(setq modus-themes-region '(bg-only accented))

2.2.19. Diff Buffer Looks

Changes the look of the diff utility theme with the possible values:

  • nil
  • desaturated
  • bg-only
  • deuteranopia
  • fg-only-deuteranopia
(setq modus-themes-diffs nil)

2.2.20. Org-mode Block Styles

  • nil
  • gray-background
  • tinted-background
(setq modus-themes-org-blocks 'gray-background)

2.2.21. Org-agenda Constructs

There is a lot going on here. Read the documentation for more info.

(setq modus-themes-org-agenda nil)

2.2.22. Heading Style

Using a (heading-level . list-of-values) system, we can provide the following values for each of the headings:

  • rainbow
  • overline
  • background
  • no-bold
  • monochrome
(setq modus-themes-headings
      '((t . (rainbow no-bold))))

2.2.23. Heading Scales

(setq modus-themes-scale-headings t)
(setq modus-themes-scale-1 1.05)
(setq modus-themes-scale-2 1.1)
(setq modus-themes-scale-3 1.15)
(setq modus-themes-scale-4 1.2)
(setq modus-themes-scale-title 1.3)
(setq modus-themes-scale-small 0.9)

2.2.24. Variable Pitch Headings

(setq modus-themes-variable-pitch-headings t)

2.2.25. Variable Pitch UI Elements

(setq modus-themes-variable-pitch-ui nil)

2.3. Load Theme Files

The following will load and configure the modus-themes, this is not the same as enabling the theme!

(modus-themes-load-themes)

2.4. Feature Provide

(provide 'init-modus-themes)

Created: 2021-11-13

Emacs 26.1 (Org mode 9.5)