Skip to content

kkholst/.doom.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

“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

Installation

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

Configuration

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

Other dependencies

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

Language Server Protocol (lsp)

  • 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

About

Doom Emacs Configuration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published