• Stars
    star
    309
  • Rank 135,306 (Top 3 %)
  • Language
    Emacs Lisp
  • License
    MIT License
  • Created over 7 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

If only certain buffers could be so grossly incandescent.

Made with Doom Emacs Release tag MELPA Build status

Solaire mode

If only certain buffers could be so grossly incandescent.

solaire-mode is an aesthetic plugin designed to visually distinguish "real" buffers (i.e. file-visiting code buffers where you do most of your work) from "unreal" buffers (like popups, sidebars, log buffers, terminals, etc) by giving the latter a slightly different -- often darker -- background:

solaire-mode at work

This plugin accomplishes this by doing two things when activated:

  • solaire-mode buffer-locally remaps all the faces in solaire-mode-remap-alist. e.g. default <-> solaire-default-face, and mode-line <-> solaire-mode-line-face

    The latter faces are the (presumably) "adjusted" faces.

  • solaire-global-mode will globally swap faces in solaire-mode-swap-alist IF your active theme is in solaire-mode-themes-to-face-swap. Use this if you think a theme has its designated solaire-*-face colors the wrong way around.

Praise the sun.

Note:

  • Uses face-remapping-alist, which other plugins may overwrite.
  • Tested mainly on Emacs 25.1+
  • Works in GUI and terminal Emacs (with themes that support it).
  • Try jumping.

Install

Solaire-mode is available on MELPA: M-x package-install RET solaire-mode

Doom Emacs

Doom installs this package as part of the :ui doom module. No additional configuration is needed.

Configuration

Simply activate solaire-global-mode:

(solaire-global-mode +1)

Settings

  • solaire-mode-real-buffer-fn (default: solaire-mode-real-buffer-p): The predicate function used to determine if a buffer is "real" or not. It takes no arguments and must return truthy for buffers where solaire-mode should not be activated in.
  • solaire-mode-remap-alist: An alist mapping original faces to replacement faces, which will be buffer-locally remapped in any buffer solaire-mode is enabled in.
  • solaire-mode-swap-alist: An alist mapping original faces to replacement faces, which will be swapped globally if current theme is in solaire-mode-themes-to-face-swap.
  • solaire-mode-themes-to-face-swap (default: ()): A list of themes to swap faces in solaire-mode-swap-alist for. Can be symbols or regexps.

Jolly cooperation with other plugins

  • By default, solaire-mode remaps the mode-line faces. This interferes with certain mode-line packages like telephone-line or powerline, but works fine for doom-modeline. To disable this behavior use:

    (dolist (face '(mode-line mode-line-inactive))
      (setf (alist-get face solaire-mode-remap-modeline) nil))
  • It is up to themes to decide whether unreal buffers (i.e. non-file-visiting) are lighter or darker than real buffers. If you don't like their arrangement, add that theme to solaire-mode-themes-to-face-swap:

    (add-to-list 'solaire-mode-themes-to-face-swap 'doom-vibrant)

    Then solaire-mode will swap all the faces in solaire-mode-swap-alist (for example, swapping the default face with solaire-default-face).

    You can add a regexp to solaire-mode-themes-to-face-swap to affect a family of themes, e.g.

    (add-to-list 'solaire-mode-themes-to-face-swap "^doom-")

Theme support for solaire-mode

solaire-mode will disable itself if the active theme doesn't support it, but to ensure support a theme must at least change solaire-default-face's :background. My recommendation is that it is be slightly darker or lighter than default's background.

For example doom-one (seen in the screenshot above) prefers solaire-default-face be darker than default:

doom-one screenshot

Others, like doom-vibrant prefer the opposite:

doom-vibrant screenshot

For full support, themes can customize the following faces:

Face Remapped face
solaire-default-face default
solaire-fringe-face fringe
solaire-line-number-face line-number
solaire-hl-line-face hl-line
solaire-org-hide-face org-hide, org-indent
solaire-mode-line-face mode-line
solaire-mode-line-inactive-face mode-line-inactive
solaire-header-line-face header-line

Themes that support solaire-mode out of the box

The only (known) themes to support solaire-mode are:

If you know of more, feel free to PR them.

More Repositories

1

dotfiles

And I say hey, what's going on?
Nix
1,457
star
2

zsh-autopair

Auto-close and delete matching delimiters in zsh
Shell
471
star
3

evil-multiedit

Multiple cursors for evil-mode, based on iedit
Emacs Lisp
338
star
4

evil-snipe

2-char searching ala vim-sneak & vim-seek, for evil-mode
Emacs Lisp
328
star
5

lb6-actions

A litter of LaunchBar 6 actions
JavaScript
218
star
6

.doom.d

My private config for Doom Emacs
Emacs Lisp
177
star
7

emacs-hide-mode-line

An Emacs plugin that hides (or masks) the current buffer's mode-line
Emacs Lisp
73
star
8

emacs-pug-mode

Pug support for Emacs, based on slim-mode.
Emacs Lisp
42
star
9

emacs-thermite

(WIP) Less themin', more Emacsin'
Emacs Lisp
42
star
10

emacs-company-dict

A port of ac-source-dictionary to company-mode, plus annotation and documentation support.
Emacs Lisp
32
star
11

emacs-mips-mode

An Emacs major mode for MIPS assembly code
Emacs Lisp
27
star
12

.vim

Did someone say... vim?
Vim Script
20
star
13

emacs-counsel-css

An ivy-mode backend for css selectors (scss/less too)
Emacs Lisp
20
star
14

practice

Programming exercises. For fun and great good.
C++
18
star
15

emacs-nlinum-hl

Fix disappearing line numbers in nlinum
Emacs Lisp
16
star
16

hlissner

Oh yes.
6
star
17

lb6-rdio

[Defunct] Control Rdio.app & search rdio.com
JavaScript
6
star
18

vim-ultisnips-snippets

My ultisnips snippets
5
star
19

vim-forrestgump

Run inline code, run
Vim Script
4
star
20

vim-transmitty

Transmit.app integration for VIM (mac only)
Vim Script
3
star
21

emacs-so-long

A mirror of the so-long package (until it's on ELPA)
Emacs Lisp
3
star
22

emacs-flycheck-moonscript

Flycheck support for moonscript-mode
Emacs Lisp
2
star
23

trex-runner-bot-js

A bot for Trex Runner on the Chrome offline page.
JavaScript
1
star
24

.github

Default community health files
1
star
25

docker-nginx-dev

Development nginx image for Docker
Nginx
1
star