There is no private-dir in develop branch, how could I customize my config?
Private config should go into ~/.doom.d or ~/.config/doom (whichever you prefer). This folder is essentially your private module. Run bin/doom quickstart to get it set up (it will copy init.example.el to ~/.doom.d/init.el, create a ~/.doom.d/config.el file for you, and get you up and running.
Thank you, also where I need to add my settings, before (doom! ...) or after?
It's up to you, but the best place to keep your settings is in ~/.doom.d/config.el.
If you want to customize a specific plugin, use the after! macro, for example:
;;; in ~/.doom.d/config.el
(after! helm
(setq helm-display-header-line t)
(helm-adapative-mode +1))
If you want to disable a package, put this in your ~/.doom.d/packages.el:
;; disable packages
(package! evil-multiedit :disable t)
;; install your own packages
(package! gruvbox-theme)
Just remember to run make (the same as bin/doom refresh) anytime you modify your doom! block or your packages.el file.
@hlissner So if I want to change for example height of the modeline should I use:
(after! doom-modeline
(setq +doom-modeline-height 50))
in my config.el, or just:
(setq +doom-modeline-height 50)
?
after! takes the name of a plugin/feature, and will not work with modules (like doom-modeline).
For +doom-modeline-height, specifically, you don't need after!.
A good rule of thumb is: if the variable starts with a + or doom-, that means it's a Doom variable, and can be set without an after! block.
Otherwise, there are no guarantees (it'll depend on the plugin(s) that own the variable and the design of the module that configures it), and it is safest to use after! to make sure your customizations always override any defaults that Doom sets now or in the future.
@hlissner Thank you
Also I changing titlebar on the MacOS and when emacs starting I see default titlebar, then after it load plugins and other all blinks and sets custom titlebar, I wonder how can I avoid this, or there is no way?
;; Fancy titlebar for MacOS
(add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
(add-to-list 'default-frame-alist '(ns-appearance . dark))
(setq ns-use-proxy-icon nil)
(setq frame-title-format nil)
I do it in the config.el
The code is correct, and works correctly if you are using Emacs 26.1+. Are you using Emacs 25.3, perhaps?
It works, but I think that's settings applying after loading plugins, can I somehow load it before?
If you put it in ~/.doom.d/init.el, before your doom! block, it will run before any plugins/modules are loaded.
Doom doesn't modify these settings however, so I assume you have installed a new package that does?
I put it in config.el it runs after init?
Yes, config.el runs after init.el and after all modules have loaded. This is the load order of Doom:
~/.emacs.d/init.el
~/.emacs.d/core/core.el
~/.emacs.d/core/core-*.el
~/.doom.d/init.el
~/.emacs.d/modules/*/*/init.el
~/.emacs.d/modules/*/*/config.el
~/.doom.d/config.el
@hlissner Thank you so much!
Most helpful comment
Yes,
config.elruns afterinit.eland after all modules have loaded. This is the load order of Doom: