My emacs configuration since 2013.
- Aims for a fast launch time, achieving approximately 150ms.
- Provide wide range packages for usability.
- Writing, development, and more. But I don’t use Emacs as for all , so this config do not contain email client, slack client, and some 3rd party clients.
- Strive for maximum replicability using
elpaca. - Optimized for early Emacs versions (e.g., 31.0.50 for daily use).
- Includes support for Japanese input methods.
- This configuration can run on Linux and macOS.
- I’m living Linux for daily, but I’m working on macOS.
Clone this repository to $XDG_CONFIG_DIR//emacs . This repository keeps as clean as possible user’s emacs directory. Use $XDG_CONFIG_DIR/emacs-local for user-related state and configurations.
My config will load user-env.el on early stage of launching. It is the best place to set some options.
You need Taskfile to build init.el/early-init.el in your environment.
$ mkdir -p ~/.config/
$ git clone https://github.com/derui/dot.emacs.d ~/.config/emacs
$ cd ~/.config/emacs
# Tangle early-init.el and init.el.
$ task tangleNotice, I’ve decided to not to compile init.el . It is not recommended by official document, but it is only used to launch time. Some macros defined in init.el are tiny and simple, so no worry about that.
If you want to update dependencies, follow these instructions:
- update dependencies under
$XDG_CONFIG_DIR/emacs-local/elpaca/repos. You can use method that you like, elpaca-update or just pull main of the package. - My taskfile contains the command
update-lockto update elpaca’s lock file, just runtask update-lock - It will launch new Emacs. After you finish updating elpaca, just execute
my/write-elpaca-lock. - After that, you get update elpaca.lock. Commit it.