srcery-colors / srcery-emacs

The dark color scheme for Emacs/Spacemacs. GUI and terminal support
https://srcery.sh
131 stars 6 forks source link
color-scheme colorscheme dark-syntax-theme emacs hacktoberfest spacemacs srcery theme

[[file:https://raw.githubusercontent.com/srcery-colors/srcery-assets/master/title.png]] [[https://melpa.org/#/srcery-theme][file:https://melpa.org/packages/srcery-theme-badge.svg]] [[https://stable.melpa.org/#/srcery-theme][file:https://stable.melpa.org/packages/srcery-theme-badge.svg]]

Colorscheme with clearly defined contrasting colors and a slightly earthy tone.

** Project status: Looking for contributers or maintainers

Project is no longer in active development, I plan to further support this theme with bugfixes and minor issues but no new additions will be added unless contributors/maintainers can be found. If you'd like to contribute, please introduce yourself on the [[https://github.com/srcery-colors/srcery-emacs/issues/9][maintainers wanted issue]].

Requirements Emacs 24 or above ** GUI Should work out of the box. Terminal

To use Srcery in the terminal you need to change your terminal emulator’s
so-called “ASCII” colors to the ones in the table below.

| TERMCOL        | NR | HEX     | RGB           |
|----------------+----+---------+---------------|
| black          |  0 | #1C1B19 | 28,  27,  25  |
| red            |  1 | #EF2F27 | 239, 47, 39   |
| green          |  2 | #519F50 | 81,  159, 80  |
| yellow         |  3 | #FBB829 | 251, 184, 41  |
| blue           |  4 | #2C78BF | 44, 120, 191  |
| magenta        |  5 | #E02C6D | 224, 44,  109 |
| cyan           |  6 | #0AAEB3 | 10, 174, 179  |
| white          |  7 | #BAA67F | 186, 166, 127 |
|----------------+----+---------+---------------|
| bright-black   |  8 | #918175 | 145, 129, 117 |
| brright-red    |  9 | #F75341 | 247, 83, 65   |
| bright-green   | 10 | #98BC37 | 152, 188, 55  |
| bright-yellow  | 11 | #FED06E | 254, 208, 110 |
| bright-blue    | 12 | #68A8E4 | 104, 168, 228 |
| bright-magenta | 13 | #FF5C8F | 255, 92, 143  |
| bright-cyan    | 14 | #2BE4D0 | 43, 228, 208  |
| bright-White   | 15 | #FCE8C3 | 252, 232, 195 |

See [[https://github.com/srcery-colors/srcery-terminal][srcery-terminal repository]] for a list of terminal configs.

In addition to the table above Srcery uses a few unmodified xterm colors.
Since most terminals have these defined it pads out the color selection
nicely without over complicating things.

Make sure your ~$TERM~ supports 256 colors.

** Installation *** Package.el Srcery is available from [[https://melpa.org/][MELPA]]

+BEGIN_SRC elisp

M-x package-install RET srcery-theme
#+END_SRC
Then load it with
#+BEGIN_SRC elisp
M-x load-theme srcery
#+END_SRC
Or add this to your init file:
#+BEGIN_SRC elisp
(load-theme 'srcery t)
#+END_SRC

*** Spacemacs Either install using ~package-install~ or add ~srcery-theme~ to ~dotspacemacs-additional-packages~, then add ~srcery~ to ~dotspacemacs-themes~

+BEGIN_SRC elisp

  (setq-default
   dotspacemacs-additional-packages
   '(srcery-theme)
   dotspacemacs-themes
   '(srcery))
#+END_SRC

*** Doom Emacs Include package in ~doom/packages.el~

+BEGIN_SRC elisp

  (package! srcery-theme)
#+END_SRC
Set theme in ~doom/config.el~
#+BEGIN_SRC elisp
  (setq doom-theme 'srcery)
#+END_SRC
Run ~doom sync~ to install the package

Screenshots ** Lisp [[file:https://raw.githubusercontent.com/srcery-colors/srcery-assets/master/emacs/lisp.png]] [[https://github.com/tarsius/paren-face][paren-face]] is used to color parenthesis. Python / JavaScript [[file:https://raw.githubusercontent.com/srcery-colors/srcery-assets/master/emacs/py-js.png]] Rust / Magit [[file:https://raw.githubusercontent.com/srcery-colors/srcery-assets/master/emacs/rs-magit.png]] Org / C [[file:https://raw.githubusercontent.com/srcery-colors/srcery-assets/master/emacs/org-c.png]] ** Customization Srcery has a couple of options that can be tweaked via ~M-x customize~: *** srcery-org-height ~boolean~, default: ~t~

This toggles the use of varying org headings heights.

*** srcery-invert-matches ~boolean~, default: ~nil~

Toggles whether to inverse-video search matches.

Make sure your cursor is inverted if this is enabled as otherwise it will
make the cursor difficult to spot.

*** srcery-invert-region ~boolean~, default: ~t~

Toggle inverse video for region

*** srcery-transparent-background ~boolean~, default ~nil~

Sets the base background color to nil, and relies on underlying terminal
background color. This only works in the terminal, and the idea behind it is
that you can use for example ~tmux~ to control the background color.

*** Custom colors Its possible to override the base srcery colors.

Possible colors are:
srcery-black, srcery-red, srcery-green, srcery-yellow, srcery-blue, srcery-magenta, srcery-cyan, srcery-white
srcery-bright-black, srcery-bright-red, srcery-bright-green, srcery-bright-yellow, srcery-bright-blue, srcery-bright-magenta, srcery-bright-cyan, srcery-bright-white
srcery-orange, srcery-bright-orange, srcery-hard-black, srcery-gray-1, srcery-gray-2, srcery-gray-3, srcery-gray-4, srcery-gray-5.

Bear in mind that changing these will not work in termninal. Set your term colors to whatever you wish to override.

** Supported modes

Troubleshooting ** Work in progress This theme is a work in progress, if you see something that is off or doesn't work please open an [[https://github.com/srcery-colors/srcery-emacs/issues/new][issue]] so it can be fixed. org-bullets and transparent background When setting the variable ~srcery-transparent-background~ and you are using [[https://github.com/sabof/org-bullets][org-bullets]] the leading asterisks are colored white, which does nothing to hide them. The problem is that org-bullets sets the ~:forground~ color to the default background color, but when this is ~nil~ this issue arise. I've made a [[https://github.com/roosta/org-bullets][fork]] that uses the ~org-hide~ face, fixing this issue. There is also an open [[https://github.com/sabof/org-bullets/pull/19][pull request]] that addresses this.

** Attribution I'm new to elisp, so I used the [[https://github.com/nashamri/spacemacs-theme][spacemacs-theme]] as a base for emacs-srcery. Huge thanks to everyone involved with that theme, and [[https://github.com/syl20bnr/spacemacs][Spacemacs]] itself. I also used [[monokai-emacs][Monokai Emacs]] as a blueprint for handling 256 colors properly. Big thanks to maintainers of that theme.