kickstart.el icon indicating copy to clipboard operation
kickstart.el copied to clipboard

The WIP migration path from kickstart.nvim

WORK IN PROGRESS DO NOT USE

  • kickstart.el

** Introduction

A starting point for Emacs that is:

  • Small (<500 lines)
  • Two-file
  • Documented
  • Modular

This repo is meant to be used as a starting point for your Emacs configuration; remove the things you don't use and add what you miss.

If you are interested in a more full-featured, modular configuration. Please use [[https://github.com/doomemacs/doomemacs][Doom emacs]].

** Installation

Kickstart.el at this time targets Emacs 29. If you are experiencing issues, please make sure you have the latest version.

  • Backup your previous configuration #+BEGIN_SRC bash mv $HOME/.config/emacs{,.bak} #+END_SRC
  • Recommended: Fork this repo so that you have your own copy you can modify.
  • Clone the kickstart repo into $HOME/.config/emacs/ #+BEGIN_SRC bash git clone https://github.com:mjlbach/kickstart.el.git $HOME/.config/emacs/ #+END_SRC
  • Start Emacs (emacs) and allow elpaca to complete installation.

Additional system requirements:

  • [[https://github.com/BurntSushi/ripgrep#installation][ripgrep]] is required for multiple vertico pickers.

** Contribution

Pull-requests are welcome. The goal of this repo is not to create an Emacs configuration framework, but to offer a starting template that shows, by example, available features in Emacs.

Each PR, especially those which increase the line count, should have a description as to why the PR is necessary.

** Limitations

  • The startup time for Emacs is poor, please help me optimize lazy-loading
    • You can Emacs as a daemon and attach to the server with clients for instant startup
  • Emacs client/server model was not designed to have separate settings for TUI/GUI clients
    • This mainly manifests in being unable to customize the UI layer for GUI/TUI without restarting the daemon
  • Emacs lacks a unified UI layer around childframes, so some feature (namely eldoc-box, corfu) have an inconsitent or degraded experience in the TUI
  • Emacs requires significantly more boilerplate in its plugins
  • Elisp (even native or byte-compiled elisp) is much slower than comparable scripting languages like javascript or luajit
  • Emacs is not designed with Vim bindings in mind, and requires emulation packages like evil

** Attribution

  • Nicholas Vollmer (progfolio), Henrik Lissner (hlissner), and all the other configurations/README's I've ripped off.