reddit / emacs
stimmung-themes.el — Emacs tuned to inner harmonies
overcow · 2022-03-25 14:51
overcow · 2022-03-25 14:52
[https://github.com/motform/stimmung-themes](https://github.com/motform/stimmung-themes)
Hi r/emacs!
I have been tinkering away at my personal take on what a modern, monochrome-esque Emacs might look for some years now and it is finally in a place where I think other might find it useful. The approached draws wisdom from the realization that "highlighting everything is the same as highlighting nothing" and tries to remedy the de-facto practice of theme by way of fruit-salad with more considerate approach. Inspired by [alabaster's](https://github.com/tonsky/sublime-scheme-alabaster) use of backgrounds for subtle syntax highlighting, typographic ideals and my endlessly sore eyes, it leaves text a comfortable black/white while drawing attention to constants, comments, declarations, and strings. A customizeable highlight color (by default a golden beige) provides a bit of life to the otherwise monochrome palette.
In addition to design considerations, I've also tried to be extensive in my support of packages and modes. Emacs is equally an ecosystem as it is a text editor where blanks spots in a theme's reach can feel especially jarring. It is by no means complete, but I welcome any requests (pull or otherwise) for additional coverage.
It is not a theme for everyone, and while it might not be as fanatically radical as [rougier's](https://www.reddit.com/user/Nicolas-Rougier/) inspirational work, I hope some of you might find it's harmonic pragmatism as useful as I do.
Kartoshk · 2022-03-25 15:33
Thank you!
This look beautiful in screenshots and intriguing enabled in emacs.
I'll try this out, with thought that maybe it would fit my work and sometimes in my dreamworld I'll get a e-inc display to compliment this
dpassen1 · 2022-03-25 17:19
Love!
casouri · 2022-03-25 18:08
oooh, I love the combination of the typeface and color palette! I’ve tried pragmatic pro before but it always felt crammed and uneasy to me. You made it look so calm and crystal clear!
overcow · 2022-03-25 18:23
Thank you! Pragmata is a surprisingly difficult type to set, as you say, it often turns into something rather asphyxiating (as my [earlier attempt](https://raw.githubusercontent.com/motform/stimmung-themes/545f5cba92f35a269bf89101ddf84dcf2ca971a5/.assets/stimmung.jpg) at this theme shows). I think the key is to give it a generous line height to offset the narrow glyphs. Emacs ability to control line height is a bit... well, iffy at best, so I usually resort to manually patching the font using [this great script.](https://github.com/tam5/font-patcher) I can't share my copy due to licensing, but I have it set to 1.4 if you want to recreate it.
casouri · 2022-03-25 18:52
\> I think the key is to give it a generous line height to offset the narrow glyphs.
Brilliant! I'm definitely trying this.
AlanYx · 2022-03-25 20:48
Thanks for sharing that tip about changing the line height. That's something I'd never think of on my own. Will definitely try it.
oceanlessfreediver · 2022-03-25 21:33
Looks neat ! I love minimal themes, but The one thing that prevent from using those are the lack of different colors for org-header levels. Do you change their colors ?
pkazmier · 2022-03-26 00:24
I gave up on Pragmata (a shame as it was expensive) because it looked terrible in emacs due to the reasons you mention. I might give this a try, but I’ve recently discovered the newly redesigned M PLUS Code font, which I’m loving. Narrow like Pragmata, but even cleaner letterforms IMO.
Screenshots:
https://imgur.com/a/OLz1lGS
M PLUS Code:
https://fonts.google.com/specimen/M+PLUS+Code+Latin
discursive_moth · 2022-03-26 02:28
I really like M PLUS, but I wish the monospaced versions included italics.
pkazmier · 2022-03-26 03:17
Agreed. That’s why I keep a close eye on this GitHub issue:
https://github.com/coz-m/MPLUS_FONTS/issues/16
IterativeSieve · 2022-03-26 05:04
I can honestly say the thought of seasoning my fonts to taste has never crossed my mind, that's really cool. The difference between screenshots is staggering.
I'm an inveterate bitmap user wherever I can be, but I'm going to have to play with this.
onetom · 2022-03-26 06:48
interesting thought about increasing the line height...
I do the opposite and set the line height to 0.9 in IntelliJ, so I can see more lines of code, without scrolling.
onetom · 2022-03-26 06:49
which bitmap fonts are you using?
IterativeSieve · 2022-03-26 06:59
[Ttyp0](https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/) is my personal favorite.
I used to use Cozette but the lack of bold/italic variants and single size makes it unsuitable for a lot of applications.
onetom · 2022-03-26 07:01
You can also turn off antialiasing (with `(set-face-attribute 'default nil ... :font (font-spec :antialias nil))`), if you want really crisp fonts.
Most fonts require hinting though, to make them look readable at below 18px sizes. `:family "Envy Code R" :height 130` looks amazing on HiDPI 1080p resolution, on a physically 4K screen.
Fantasque Mono works alright too, or the Iosevka Comfy, used by prot (his build of Iosevka Comfy is available on his GitHub org)
overcow · 2022-03-26 08:21
Yeah, it is definitely a trade-off. There are times when I miss the increased density, but the reduced eye-strain I experience is worth it in the end. It would be fantastic to have some kind of [Zoomable UI](https://en.wikipedia.org/wiki/Zooming_user_interface) affordances to navigate/compare/overview code on multiple scales, but I have yet to see a useable implementation of that (I guess I'll just have to that myself one day).
onetom · 2022-03-26 10:28
Here is a demonstration of the crispness of non-antialiased, italic fonts: https://imgur.com/gallery/nfPrljD
casouri · 2022-03-26 15:54
oh cool, I never knew about :antialias
The_L_Of_Life · 2022-03-26 20:17
Hey, what's the name of that theme? Is that doom-nord? It does not look as good on my Mac.
overcow · 2022-03-26 22:04
Looks like some kind of Nord with [solaire-mode](https://github.com/hlissner/emacs-solaire-mode) to provide contrasting backgrounds for secondary buffers.
overcow · 2022-03-26 22:06
Thanks! I don't change they colors of the org headers, i.e. they are all black and bold. However, you can easily override any theme faces yourself, which I've seen quite a lot with org-headers specifically. Something like this would do the trick:
`https://emacs.stackexchange.com/a/26783`
pkazmier · 2022-03-27 00:55
It's a customized version of doom-nord. I like to use variable width fonts for headings as I like typography. In addition, I tweaked a couple of the colors (not the palette) used for different parts of syntax. Here is a link to the repo that I just made public in case you want to try it:
[https://github.com/pkazmier/doom-nord-plus-theme](https://github.com/pkazmier/doom-nord-plus-theme)
MistakeNotDotDotDot · 2022-03-27 03:52
I'm not a light person theme at all, but this is the first one I'd ever consider using. I'm definitely going to steal some ideas (especially italics/backgrounds) for my own [vale.el](https://codeberg.org/ext0l/vale.el), even if it is kind of 'fruit-salad' as you say.
redblobgames · 2022-03-27 03:55
Woah! Where did you learn about font-spec supporting `:antialias`? I can't find it in info or help.
onetom · 2022-03-27 07:43
I can't remember exactly, but I remember that it took a lot of googling and I just accidentally came across an example of it.
I also remember that I was quite pissed off at that time, because I was using this feature in IntelliJ and as they upgraded their default JVM runtime from Java8 to Java11, suddenly the _No antialiasing_ option didn't do anything; it behaved exactly the same as _Greyscale_.
I also remember reading about the removal of bitmap fonts from Pango:
https://github.com/emacs-mirror/emacs/blob/master/etc/NEWS.27#L103-L105
that also played a role in what was I googling for.
BTW, I'm using https://bitbucket.org/mituharu/emacs-mac/, so I'm not sure, if this `:antialias` option is not just specific to that fork.
AntoineDarquier · 2022-03-27 11:53
Good job!
The_L_Of_Life · 2022-03-27 23:21
Thanks! :)