Code Monkey home page Code Monkey logo

.doom.d's Introduction

“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

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.