Simple configuration for GNU Emacs for programming, writing and other stuff using only builtins. It is useful when there is no Internet access, you just need to edit the file or as a basis for creating an extended configuration. It works with Emacs version 29.1 or later.
Before using it, copy the custom-template.el
to custom.el
. And then, in the command prompt, run:
emacs --init-directory=.emacs.d
You can also move .emacs.d
to ~/
and then use this configuration as the main configuration by simply launching:
emacs
First, don’t forget to copy (not move) custom-template.el
to custom.el
so that your settings are saved there and you can receive updates from the upstream repository without conflict.
To select a theme, call customize-themes
in the minibuffer (press M-x
). Don’t forget to press the Apply and Save
button to apply and save the settings.
To selest a font, call customize-face
in the minibuffer (press M-x
), then find face Default
and edit its parameters. Don’t forget to press the Apply and Save
button to apply and save the settings.
This setup does not use automatic package installation and updating, as this is contrary to its philosophy. We need Emacs to load quickly and not need an Internet connection. If the required package is missing and you have Internet access, simply install it using package.el
or another package manager you prefer.
extras.el
contains advanced settings for some useful extra packages. If you don’t need these packages or can’t install them now, just run Emacs with the option DISABLE_EXTRAS=1
:
DISABLE_EXTRAS=1 emacs
Or add following line to your custom.el
:
(defvar disable-extras t)
Do not add any of your settings to extras.el
, as this will lead to conflicts when updating this file. For user settings, simply create your own extras-user.el
and add to it the settings you need for the additional packages you have installed.
According to the philosophy of this project, installing packages from sources is preferred. But you can also use the standard mechanism for installing ready-made packages (see below). There are various ways to install from source: standard package-vc
, straight.el and Borg. This project does not impose any of them, but is pre-configured to use package-vc
for installing packages and Epkg for searching and browsing packages.
Before using Epkg, you need to get the Epkgs database:
git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
For example, let’s say we need to install the markdown-mode
package. First, find it in the Epkgs database:
epkg-describe-package
markdown-mode
Check in the opened Epkg buffer to see if all dependencies are installed. If not all of them, then install them first, and then the required package:
(package-vc-install '(edit-indirect :url "https://github.com/Fanael/edit-indirect.git"))
(package-vc-install '(markdown-mode :url "https://github.com/jrblevin/markdown-mode.git"))
Using the built-in package.el
, you can install additional and useful packages such as magit
, markdown-mode
, vertico
, and others. By default, packages are downloaded from the GNU ELPA and NonGNU ELPA repositories.
To use the MELPA or MELPA Stable repositories, add the following lines to your custom.el in the custom-set-variables section:
'(package-archives
'(("gnu" . "https://elpa.gnu.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")
("melpa-stable" . "https://stable.melpa.org/packages/")
("melpa" . "https://melpa.org/packages/")))
Keep in mind that if a package is supplied by several repositories, MELPA will have priority due to the specifics of versioning. Therefore, to use MELPA Stable, you need to remove MELPA from the list of repositories.
Copyright (C) 2025 Evgeny Simonenko
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.