Giter Club home page Giter Club logo

themes's Introduction

Doom Emacs

InstallDocumentationFAQScreenshotsContribute

Made with Doom Emacs Supports Emacs 27.1–29.4 Latest commit

Discord Server Discourse server

Doom Emacs Screenshot


Table of Contents

Introduction

It is a story as old as time. A stubborn, shell-dwelling, and melodramatic vimmer—envious of the features of modern text editors—spirals into despair before he succumbs to the dark side. This is his config.

Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite operating system.

Its design is guided by these mantras:

  • Gotta go fast. Startup and run-time performance are priorities. Doom goes beyond by modifying packages to be snappier and load lazier.
  • Close to metal. There's less between you and vanilla Emacs by design. That's less to grok and less to work around when you tinker. Internals ought to be written as if reading them were part of Doom's UX, and it is!
  • Opinionated, but not stubborn. Doom is about reasonable defaults and curated opinions, but use as little or as much of it as you like.
  • Your system, your rules. You know better. At least, Doom hopes so! It won't automatically install system dependencies (and will force plugins not to either). Rely on doom doctor to tell you what's missing.
  • Nix/Guix is a great idea! The Emacs ecosystem is temperamental. Things break and they break often. Disaster recovery should be a priority! Doom's package management should be declarative and your private config reproducible, and comes with a means to roll back releases and updates (still a WIP).

Check out the FAQ for answers to common questions about the project.

Features

  • Minimalistic good looks inspired by modern editors.
  • Curated and sane defaults for many packages, (major) OSes, and Emacs itself.
  • A modular organizational structure for separating concerns in your config.
  • A standard library designed to simplify your elisp bike shedding.
  • A declarative package management system (powered by straight.el) with a command line interface. Install packages from anywhere, not just (M)ELPA, and pin them to any commit.
  • Optional vim emulation powered by evil-mode, including ports of popular vim plugins like vim-sneak, vim-easymotion, vim-unimpaired and more!
  • Opt-in LSP integration for many languages, using lsp-mode or eglot
  • Support for many programming languages. Includes syntax highlighting, linters/checker integration, inline code evaluation, code completion (where possible), REPLs, documentation lookups, snippets, and more!
  • Support for many tools, like docker, pass, ansible, terraform, and more.
  • A Spacemacs-esque keybinding scheme, centered around leader and localleader prefix keys (SPC and SPCm for evil users, C-c and C-c l for vanilla users).
  • A rule-based popup manager to control how temporary buffers are displayed (and disposed of).
  • Per-file indentation style detection and editorconfig integration. Let someone else argue about tabs vs spaces.
  • Project-management tools and framework-specific minor modes with their own snippets libraries.
  • Project search (and replace) utilities, powered by ripgrep and ivy or helm.
  • Isolated and persistent workspaces (also substitutes for vim tabs).
  • Support for Chinese and Japanese input systems.
  • Save a snapshot of your shell environment to a file for Emacs to load at startup. No more struggling to get Emacs to inherit your PATH, among other things.

Prerequisites

  • Git 2.23+
  • Emacs 27.1–29.4 (Recommended: 29.4 + native-comp)
  • ripgrep 11.0+
  • GNU find
  • OPTIONAL: fd 7.3.0+ (improves file indexing performance for some commands)

Warning

Unstable and pre-release builds of Emacs -- which end in .50, .60, or .9X (e.g. 28.1.91) -- are not officially supported. There is some effort to support Emacs HEAD, however. Follow this Discourse post for details.

Important

Doom is comprised of ~150 optional modules, some of which may have additional dependencies. Visit their documentation or run bin/doom doctor to check for any that you may have missed.

Install

git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
~/.config/emacs/bin/doom install

Then read our Getting Started guide to be walked through installing, configuring and maintaining Doom Emacs.

It's a good idea to add ~/.config/emacs/bin to your PATH! Other bin/doom commands you should know about:

  • doom sync to synchronize your private config with Doom by installing missing packages, removing orphaned packages, and regenerating caches. Run this whenever you modify your private init.el or packages.el, or install/remove an Emacs package through your OS package manager (e.g. mu4e or agda).
  • doom upgrade to update Doom to the latest release & all installed packages.
  • doom doctor to diagnose common issues with your system and config.
  • doom env to dump a snapshot of your shell environment to a file that Doom will load at startup. This allows Emacs to inherit your PATH, among other things.

Roadmap

Doom is an active and ongoing project. To make that development more transparent, its roadmap (and other concerns) are published across three github project boards and a newsletter:

  • Development Roadmap: roughly outlines our goals between release milestones and their progress.
  • Plugins under review: lists plugins we are watching and considering for inclusion, and what their status for inclusion is. Please consult this list before requesting new packages/features.
  • Upstream bugs: lists issues that originate from elsewhere, and whether or not we have local workarounds or temporary fixes for them.
  • Doom's newsletter (not finished) will contain changelogs in between releases.

Getting help

Emacs is no journey of a mere thousand miles. You will run into problems and mysterious errors. When you do, here are some places you can look for help:

  • Our documentation covers many use cases.
  • With Emacs built-in help system documentation is a keystroke away:
    • For functions: SPC h f or C-h f
    • For variables: SPC h v or C-h v
    • For a keybind: SPC h k or C-h k
    • To search available keybinds: SPC h b b or C-h b b
  • Run bin/doom doctor to detect common issues with your development environment and private config.
  • Check out the FAQ or Discourse FAQs, in case your question has already been answered.
  • Search Doom's issue tracker in case your issue was already reported.
  • Hop on our Discord server; it's active and friendly! Keep an eye on the #announcements channel, where I announce breaking updates and releases.

Contribute

PRs Welcome Elisp styleguide Donate on liberapay Donate on paypal

Doom is a labor of love and incurable madness, but I'm only one guy. Doom wouldn't be where it is today without your help. I welcome contributions of any kind!

  • I ❤️ pull requests and bug reports (see the Contributing Guidelines)!
  • Don't hesitate to tell me my Elisp-fu sucks, but please tell me why.
  • Hop on our Discord server and say hi! Help others, hang out or talk to me about Emacs, gamedev, programming, physics, pixel art, anime, gaming -- anything you like. Nourish this lonely soul.
  • If you'd like to support my work financially, buy me a drink through liberapay or paypal. My work contends with studies, adventures in indie gamedev and freelance work. Donations help me allocate more time to my Emacs and OSS capers.

themes's People

Contributors

bigardone avatar brettm12345 avatar bricewge avatar brongulus avatar daanturo avatar dalugm avatar dantlev01 avatar edmundmiller avatar ema2159 avatar ethanyu336 avatar evanleck avatar fuxialexander avatar gagbo avatar garethclews avatar hlissner avatar hyakt avatar ianyepan avatar iyefrat avatar jmorag avatar jsoa avatar justbur avatar jwintz avatar kenranunderscore avatar r-darwish avatar raziksf avatar seagle0128 avatar tecosaur avatar teesloane avatar tinylucid avatar ztlevi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

themes's Issues

Neotree setup

@hlissner,

After one day of work, I will definitely keep this theme, and hopefully, contribute a bit.

I have a question though:

With:

(require 'doom-neotree)  

screen shot 2017-04-18 at 18 39 13

The neotree is most beautiful: no fringe or fringe coloured as expected, however, major-modes for files are not showing as opposed to:

;; (require 'doom-neotree)  

Where major-mode icons are rendered as expected, but the fringe (or whatever margin) is messed up.

screen shot 2017-04-18 at 18 44 24

Is there any way to combine these two excellent features ?

Many thanks !

  • ju

enhance org-mode faces

screenshot_20161004_191408

This is the screenshot which doom-one theme has issue that some org-mode headlines are not colored.

And some org-mode faces like org-priority are not customized.
Hope you can add support to all org-mode faces from customize-group org-faces.

Poor contrast for inactive modeline

Hi,

Thanks for good theme! I have only one issue with default emacs - inactive modeline has the same color as background, making it difficult to visually distinguish.

add support org-mode face org-indent

To make org-mode support better.
Hope to support face org-indent:

(set-face-attribute 'org-indent nil
                    :inherit 'org-hide
                    :background (face-background 'doom-default)
                    :foreground (face-background 'doom-default)
                    )

doom-vibrant not a first class citizen theme?

Hi,

I'm using spacemacs. When I try to load doom-one in the 'dotspacemacs-themes variable, there's no problem. But when I do the same with doom-vibrant, it is treated as an unrecognized package and goes to install (which of course doesn't work). Do you have any advice about how to fix this? Thanks.

Can't load theme, no such file or directory, doom

I am probably doing something wrong, and error is on my part, so sorry for that in advance.
When I copy all files from repo to my theme sourced directory and try load-theme it gives
me the next error message:

Cannot open load file: No such file or directory, doom

So does it mean I need few more packages to install that aren't mentioned in description or just dash?

Ediff colors are very stark

The ediff-odd-diff-B (A, B, and C) faces are using light grey as a background, which is very difficult to read.

Additionally, the highlighted changes (green ones) are a bit too bright to read when looking at a particular change.

Here's a screenshot showing what I'm talking about:

screenshot from 2016-09-26 03-56-11

RPM spec file support

Currently colors (esp. the blue) for RPM spec files look off and are hard to read (see below). I guess this mode is not use that much, maybe when I have some free time I could look into fixing this myself.

doom-rpm-spec-mode-colors

pos-tip support

Thanks for your work 👍

It would be nice to have pos-tip support
There is an example code

   `(pos-tip-foreground-color ,foreground)
   `(pos-tip-background-color , background)

Multiple cursors don't show up

Multiple cursors selection works and multiple regions are highlighted whereas adding new cursors don't show up. The cursors are there just not highlighted.

doom-neotree don't work in emacsclient -c

hello i have this:

(use-package doom-themes
    :ensure t
    :init
    (load-theme 'doom-molokai t)
    :config
    (add-hook 'find-file-hook 'doom-buffer-mode)
    (add-hook 'minibuffer-setup-hook 'doom-brighten-minibuffer)
    (validate-setq org-fontify-whole-heading-line t
                   org-fontify-done-headline t
                   org-fontify-quote-and-verse-blocks t)
    (when (display-graphic-p)
      (require 'doom-neotree)
      (validate-setq doom-neotree-file-icons nil)))

when launch emacs, work fine, but in emacsclient -c dont work,

i eval this expression (display-graphic-p) and return t

Thanks

background color issue in iterm

Hi,

Thank you for the excellent theme, however i am facing a background color issue when i open emacs in ITerm or Terminal. Emacs is getting loaded with a blue background. Emacs version is 25.1. Not sure if this is an issue with the theme or some emacs customization issue.

screen shot 2016-07-15 at 5 15 37 pm

Fringe before line numbers

Hello!

First of all, this is more of a question than an issue, sorry for that.

I like the thin line git gutter indicators so I tried implementing them in my emacs config. I noticed that on my emacs the fringe is drawn after the line numbers, whereas in your screenshot the thin lines are drawn on the left of the line numbers.

I find this behavior quite uncomfortable, so my question is, how do I make the lines appear on the left of the line number?

Here is a quick comparison:

Comparison

org-heading backgrounds

Thanks for the great colors! I really like the level 1 and 2 org mode headings. At first I couldn't figure out why I wasn't getting the background color across the whole line. Then I discovered the org-fontify variables. You might suggest setting these in the readme.

(setq org-fontify-whole-heading-line t
      org-fontify-done-headline t
      org-fontify-quote-and-verse-blocks t)

edit: add org-fontify-quote-and-verse-blocks variable

Comment color is to dim.

The current color used in font-lock-comment-face is so dim
that one can barelly read any comment in a source file, please
consider improving this.

One light version

Very nice themes !
Do you plan to support the one light version ?

Many thanks for those awesome themes :)

[swiper] Current match invisible

First of all let me thank you for this awesome theme!

swiper

It looks like the two faces colliding here are swiper-line-face which inherits from highlight and swiper-match-face-2 inheriting from isearch. Personally I think it makes more sense to change swiper-line-face to something darker but I don’t have any strong opinion here or a good suggestion on which face would make sense.

Inactive modeline border

Hello,

__________________
|        |        |
|________|        |
|        |        |
|        |        |

When having multiple buffers open in horizontal split, the modeline for the top buffer isn't very
differentiable from the bottom buffer. Which is supposed to be the case given that the modeline should be the part which tells the top from the bottom buffer. However, the colors used for modeline when it's inactive makes it blend in the two open buffers making it a little hard to tell what you have in terms of layout.
So the question is:
Is it possible to add a visible border around inactive modeline for split buffers?

transparent modeline how to fix?

Great theme 👍

I saw in this issue that someone also had a transparent modeline, I've followed the instructions you gave and added a core-modeline.el file to my .emacs.d.

But still nothing, I assume I'm missing a way to tell spacemacs to use my custom modeline file?

Update screenshots

They are out of date.

  • Update neotree screenshots (with (setq doom-neotree-file-icons 'simple) and new variable-pitch labels)
  • Update full screenshot for doom-one (a lot has changed)

blue cursor collides with show-paren-mode

1cfecf5 enabled a blue cursor by default. Unfortunately this makes the cursor invisible if it is on the left parantheses and show-paren-mode is enabled. See the attached image where the cursor is on the left parenthesis.
leftparen

It looks like the face responsible is show-paren-match. I don’t have any clever suggestions on how to fix this apart from either changing the cursor back to white or finding a pretty color for show-paren-match that doesn’t collide.

show-smartparens-mode suffers from the same problem but its faces inherit from show-paren-match so this should fix both.

Make modeline styling optional

Thanks for the great theme, I'm using it daily and never looked back.

The minor inconvenience is I have my own style for modeline\spaceline and every time I update doom theme it gets overridden.
Please add a configuration option to exclude modeline styling.

Unify fringes background color with bg

Hi,

I find it quite annoying to have the left-fringe and right-fringe background colors different than the main bg defined in the theme.

Screenshots:
image1
image2
image3

The first 2 images show left fringe background color and right-fringe background color. The third one however shows how line highlight color is the same as both fringe background colors. I think we can just keep the same color for current line if we just unify both fringes with the main bg.

Wish i could be as good as you are with elisp, i would have posted a PR, but am getting there so maybe i can get to help in the near future.

Thanks alot!

Modeline colors don't seem to work since faces don't exist

Currently doom theme defines things like:

     ;; Custom (doom)
     `(doom-modeline-buffer-path       ((,c (:foreground ,white :bold ,bold))))
     `(doom-modeline-buffer-project    ((,c (:foreground ,fg))))
     `(doom-modeline-buffer-modified   ((,c (:foreground ,blue))))
     `(doom-modeline-buffer-major-mode ((,c (:foreground ,white :bold ,bold))))

     `(doom-modeline-highlight     ((,c (:foreground ,blue))))
     `(doom-modeline-panel         ((,c (:foreground ,black :background ,blue))))
     `(doom-modeline-bar           ((,c (:background ,blue))))
     `(doom-modeline-eldoc-bar     ((,c (:background ,yellow))))

     ;; Powerline/Spaceline
     `(spaceline-highlight-face    ((,c (:inherit doom-modeline-panel))))
     `(powerline-active1           ((,c (:inherit doom-modeline-panel))))
     `(powerline-active2           ((,c (:inherit doom-modeline-highlight))))
     `(powerline-inactive1         ((,c (:inherit mode-line-inactive))))
     `(powerline-inactive2         ((,c (:inherit mode-line-inactive))))

However, since the doom-modeline-panel (all doom-modeline-* faces) don't exist, the spaceline/powerline faces end up referencing a face that does not exist. This causes the modeline to be entirely uncolored, like:

screenshot from 2016-10-07 09-42-51

I think the faces need to be created somewhere, as evaling the custom-theme-set-faces s-exp doesn't create them. This is also necessary since your custom modeline does not exist in an installable package, so it's not marked as a dependency for this theme.

vc-modified is now grey ... intentional?

Is changing vc-modified face to grey an intentional change? The grey color is incredibly hard to pick out in the fringe, whereas the previous yellow color stood out much better. Thanks!

I have bug with doom-buffer-mode and icons neotree

I have two bugs or I use something wrong.

First with this part: when I move between my frames, "doom-buffer-mode" is not change.

  ;; brighter source buffers
  (add-hook 'find-file-hook 'doom-buffer-mode)
  ;; brighter minibuffer when active
  (add-hook 'minibuffer-setup-hook 'doom-brighten-minibuffer)
  ;; The temporary buffers ediff spins up aren't dimmed. You can fix this with:
  (add-hook 'ediff-prepare-buffer-hook 'doom-buffer-mode)

Second with neotree: something's wrong with the icons:
12

rainbow delimiters not working

Hello !

I've been looking you're package for some time now on twitter, and decided to give a try: I love it ! I will definiltly switch from spacemacs-theme to doom-light-one. Even though it is still a little be less designed and exhaustive.

As an example: rainbow delimiters are not honoured. I always fall back to the unmatched face. According to your code, it should be blue on the screenshot, but it's red.

screen shot 2017-04-16 at 21 37 27

org-level-1 font has unexpected behavior when moving cursor through characters

I've been using doom-theme and it's been BY FAR the best theme I've used in vim or emacs (nice work, this is awesome!)

I have experienced one issue: the line width for org-level-1 makes the font do weird things when you move your cursor through it (I've attached an animated gif):

doom-experienced

I tested by removing this from my local copy ((:line-width 4 :color ,current-line)) and I get what I expect:

doom-expected

I don't really know what's going on here, but I was wondering if you experienced it as well.

I've added the following to my init.org to override it temporarily and as a measure to help anyone else who may experience it in the meantime:

#+BEGIN_SRC emacs-lisp
(custom-set-faces
  '(org-level-1 ((t (:line-width 1))))
)
#+END_SRC

comment highlighting doesn't work

(setq doom-enable-bold t
     doom-enable-italic t

     doom-one-brighter-modeline t ;; doom one specific
     doom-one-brighter-comments t);; commands
(add-hook 'minibuffer-setup-hook 'doom-brighten-minibuffer)

this is my current setting
however comments are not hightlighting

Anyway to have highlight indentation part of the theme ?

Henrik,

Definitely the best theme I've ever used. I've seen in your screenshots, that your .emacs contains indentation highlighting: https://github.com/hlissner/.emacs.d/blob/master/core/core-ui.el#L126-L174. It's most beautiful.

At first I wanted to extract it and inject it into my own emacs config, but I think it should be a feature that comes together with doom-one.

Also, not sure about the def-package! and add-hook! stuff, should be your own emacs lisp aliases, I have to read more.

Inserting new parens and continuing edit has a blue background throughout

I don't know if this is through the theme or I am not setting something properly, but when I insert a new parenthesis (have smartparens mode), and start inserting characters, the blue highlight stays put making text hard to read:

screen shot 2017-01-18 at 10 45 48 pm

  • It is fine if I move my cursor and then edit, the highlight disappears.
  • Another theme that I use does not have this problem so I am not sure what emacs settings I need to change.

Thanks!

Cannot install from melpa

When I try to install the theme from package-lsit-package, it fails with the message:

package-compute-transaction: Package ‘font-lock+-0’ is unavailable

Publish to MELPA?

Hi there, I was enjoying the screenshots from your configuration and I'd like to try the theme out, but it's not available on MELPA, is there any chance you'd be interested in pushing it there?

Gnus support

Do you think it is possible to support Gnus faces ?

Jabber support

Added a PR #36 for including Jabber.el support into your great doom theme for emacs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.