An open API service indexing awesome lists of open source software.

https://github.com/easimonenko/.emacs.d

Simple configuration for GNU Emacs for programming, writing and other stuff using only builtins.
https://github.com/easimonenko/.emacs.d

emacs

Last synced: 11 months ago
JSON representation

Simple configuration for GNU Emacs for programming, writing and other stuff using only builtins.

Awesome Lists containing this project

README

          

#+TITLE: .emacs.dD with a preference for built-ins, ELPA packages, and packages built from source code
#+AUTHOR: Evgeny Simonenko
#+VERSION: 0.1.4

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:

#+BEGIN_SRC shell
emacs --init-directory=.emacs.d
#+END_SRC

You can also move =.emacs.d= to =~/= and then use this configuration as the main configuration by simply launching:

#+BEGIN_SRC shell
emacs
#+END_SRC

* Customization

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.

* Extra Packages

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 [[https://elpa.gnu.org/][GNU ELPA]] and [[https://elpa.nongnu.org/][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:

#+BEGIN_SRC elisp
'(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/")))
#+END_SRC

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.

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=:

#+BEGIN_SRC shell
DISABLE_EXTRAS=1 emacs
#+END_SRC

Or add following line to your =custom.el=:

#+BEGIN_SRC elisp
(defvar disable-extras t)
#+END_SRC

** User Extras

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.

* License

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/]].