“I’m rarely happier than when spending an entire day programming my computer to perform automatically a task that would otherwise take me a good ten seconds to do by hand.” - Douglas Adams
This repository contains my doom-emacs configuration.
API reference: https://github.com/hlissner/doom-emacs/blob/develop/docs/api.org
Themes: https://github.com/hlissner/emacs-doom-themes/tree/screenshots
git clone [email protected]:kkholst/.doom.d .config/doom
git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
~/.config/emacs/bin/doom install
Alter the section ‘Variable definitions’ in config.org
to your needs or add a custom .doom.d/init.el
file to override definitions (for example doom-theme
, doom-font
variables)
VIM users should enable evil mode by uncommenting the relevant lines in init.el
:editor
(evil +everywhere)
make sure that relevant directory structures exists (e.g., ~/Projects/notes
and ~/Projects/org
unless altered in the above step).
Next, the doom configuration needs to be synchronized (will also expose your shell environment variables to emacs)
~/.config/emacs/bin/doom sync
This configuration depends on the following components
emacs
(>= 27.1)git
R
python3
clang++
texlive
ripgrep
plus recommendations: zsh
, tmux
, ImageMagick
(and probably a lot of other dependencies I forgot here).
To try out the newest features of Emacs checkout the source code from git://git.sv.gnu.org/emacs.git and build your own binaries (for example with support for ligatures using harfbuzz
). In Fedora you will need the following packages:
sudo dnf install -y libXpm-devel Xaw3d-devel openjpeg-devel libpng-devel librsvg2-devel giflib-devel cairo-devel gpm-devel gnutls-devel libxml2-devel libXft-devel libotf zlib-devel harfbuzz-devel ImageMagick-devel libtiff-devel wxGTK3 git R python3 llvm texlive ripgrep
On Mac OS X via homebrew (here the native-comp branch, i.e. gccemacs):
brew tap d12frosted/emacs-plus
brew install emacs-plus@28 --with-modern-doom3-icon --with-native-comp --with-xwidgets --with-no-frame-refocus
For the Python environment you may need to install pyenv (here assuming you are using zsh
)
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
- Python:
pip3 install pip setuptools wheel --upgrade --user pip3 install "python-language-server[all]" pylint nose pytest --user
- R:
R -e 'install.packages(c("languageserver")'
- C++:
Can be based on either ccls
(from PyPi
) or clangd
. On Mac OS X this can be installed with homebrew
brew install llvm
For debugging (C++) with dap-debug
, I recommend LLDB’s machine interface driver
https://github.com/lldb-tools/lldb-mi. On Fedora this can be compiled with
dnf install llvm-devel -y
git clone https://github.com/lldb-tools/lldb-mi
cd lldb-mi
cmake -Bbuild -GNinja
Customized configuration can go into the local.el
file, e.g.
(setq doom-font (font-spec :family "Literation Mono Powerline:style=Regular" :size 15 :weight 'normal)
doom-theme 'doom-challenger-deep
doom-theme 'doom-city-lights
doom-theme 'doom-solarized-dark
doom-theme 'doom-sourcerer)
Note, the font family can be found in the terminal with the command
fc-list :spacing=mono family style | sort