This document describes how various options can be configured.

#Selecting Features

All features are broken into separate library files that can be selectively not loaded via the usage of environment variables:


The above example runs this configuration without any extra support for C/C++, Java, and Rust. A full list of usable variables is below.

If, as an example, I wanted all the features and modes provided but no theme or modeline changes:


This would launch emacs with all the various modes and tweaks, but without using the theme I selected or Smart Mode Line. A mostly "vanilla" look.


Set any of the below environment variables to disable the corresponding packages.

Env Var Description
EMACS_LINUM Enables linum-mode, which adds line nunbers to the left side of a file.
EMACS_NO_ALERT Packages: alert
EMACS_NO_ALL_THE_ICONS Packages: all-the-icons, all-the-icons-dired
EMACS_NO_ANSIBLE Packages: company-ansible
EMACS_NO_C_CPP Packages: cc-mode, clang-format, cmake-mode, company-c-headers, company-irony, company-rtags, flycheck-irony, flycheck-rtags, function-args, irony, irony-eldoc
EMACS_NO_CLOJURE Packages: cider, clojure-snippets
EMACS_NO_CSS Packages: css-mode
EMACS_NO_DASHBOARD Packages: dashboard
EMACS_NO_DIFF_HL Don't use diff-hl.
EMACS_NO_DIMMER Disables dimmer.el, which dims inactive buffers.
EMACS_NO_DOCKER Packages: dockerfile-mode
EMACS_NO_EPL Packages: epl
EMACS_NO_FIREPLACE Don't allow Emacs to be a warm cozy fireplace.
EMACS_NO_FISH Packages: fish-mode
EMACS_NO_GIT Packages: gitignore-mode, magit
EMACS_NO_GODOT Packages: gdscript-mode
EMACS_NO_GOLANG Packages: company-go, go-mode, go-eldoc
EMACS_NO_GROOVY Packages: groovy-mode
EMACS_NO_HL_TODO Disable hl-todo-mode.
EMACS_NO_HTML Packages: html-mode, skewer-mode, web-mode
EMACS_NO_JAVA Packages: meghanada
EMACS_NO_JAVASCRIPT Packages: company-tern, tern
EMACS_NO_JINJA2 Packages: jinja2-mode
EMACS_NO_JSON Packages: json-mode
EMACS_NO_LUA Packages: company-lua, lua-mode
EMACS_NO_MARKDOWN Packages: markdown-mode, markdown-mode+
EMACS_NO_NGINX Packages: nginx-mode
EMACS_NO_ORGMODE Packages: org-plus-contrib
EMACS_NO_PYTHON Packages: blacken, company-jedi, pydoc, python-mode
EMACS_NO_RACKET Packages: racket-mode, racket-repl-mode
EMACS_NO_RUBY Packages: robe, ruby-mode
EMACS_NO_RUST Packages: company-racer, flycheck-rust, racer
EMACS_NO_SHADERS Packages: glsl-mode
EMACS_NO_SLIME Packages: slime-company, slime
EMACS_NO_SYSTEMD Packages: systemd
EMACS_NO_TERRAFORM Packages: company-terraform, terraform-mode
EMACS_NO_TOML Packages: toml-mode
EMACS_NO_YAML Packages: yaml-mode
EMACS_NO_ZONE_OUT Packages: zone (built in)

Set any of the below environment variables to disable the corresponding extra tweaks.

Env Var Description
EMACS_ALERT_STYLE Configure the "alert" behavior: growl, libnotify, log, message, mode-line, notifications, osx-notifier, x11. Default: libnotify
EMACS_AUDIO_BEEP Configure the "bell" behavior: audio or visual. This is off by default.
EMACS_CUSTOM_FILE Set the location of the custom file (Default: ~/.emacs.d/my-custom.el).
EMACS_NO_EDITING_TWEAKS Packages: autorevert, clean-aindent-mode, company, counsel, dtrt-indent, flycheck, ido, rainbow-delimiters, rainbow-mode, semantic, smartparens, swiper, undo-tree, windmove, ws-butler, yasnippet, zygospore
EMACS_NO_EXTRA_FUNCTIONS Extra convenience functions.
EMACS_NO_HACK_FONT Don't use the Hack font.
EMACS_NO_INTERNALS_TWEAKS Tweaks to various Emacs internals.
EMACS_NO_KEYBINDINGS_TWEAKS Custom keybindings that are not necessarily mode-specific.
EMACS_NO_NOTO_EMOJI Don't use the Noto emoji font family.
EMACS_NO_UI_TWEAKS Packages: diff-hl, fireplace, flycheck-status-emoji, smart-mode-line, material-theme
EMACS_USE_SML_THEME Select the SML theme to use: dark, light, or respectful
#Package-Specific Variables

These variables are for specific packages.

Env Var Description
EMACS_AUDIO_BEEP Enable a "beep" via audio or visual values.
EMACS_DASHBOARD_BANNER Change the dashboard banner. Choices: official, logo, 1, 2, 3, or a string that represents a path to a file.
EMACS_DASHBOARD_TITLE Change the dashboard title
EMACS_LSP_NO_HEADERLINE_BREADCRUMB Disable the LSP mode headerline breadcrumbs
EMACS_LUA_LSP Use the language server stuff for Lua.
EMACS_MAGIT_HIDE_STASHES Hide the stashes section by default.
EMACS_MAGIT_HIDE_UNPUSHED Hide the unpushed section by default.
EMACS_NO_GOPATH Disable setting GOPATH in this config.
EMACS_NO_GOBINPATH Don't try to add a custom bin dir to exec-path.
EMACS_NO_GOCODE Don't try to set up gocode
EMACS_NO_STATUS_EMOJI Don't use emoji for Flycheck's status.
EMACS_NO_SMART_MODE_LINE Don't use smart-mode-line.
EMACS_NO_THEME Don't load a theme.
EMACS_ZONE_TIMEOUT Set the timeout (seconds) for zoning out. Default: 300

About this wiki

commit a9d601df3575870d6b5fc66d35057c4e64df6797
Author: Hristos N. Triantafillou <me@hristos.triantafillou.us>
Date:   2021-12-31T21:34:54-06:00

Remove a bunch of old stuff
Clone this wiki
https://git.sr.ht/~hristoast/dot-emacs (read-only)
git@git.sr.ht:~hristoast/dot-emacs (read/write)