Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergeyklay/.emacs.d
My personal configuration for GNU Emacs
https://github.com/sergeyklay/.emacs.d
emacs emacs-config emacs-configuration emacs-customizations emacs-initialization emacs-lisp org-mode
Last synced: 4 months ago
JSON representation
My personal configuration for GNU Emacs
- Host: GitHub
- URL: https://github.com/sergeyklay/.emacs.d
- Owner: sergeyklay
- License: gpl-3.0
- Created: 2019-03-05T20:17:52.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-15T15:46:33.000Z (4 months ago)
- Last Synced: 2024-10-16T19:52:50.819Z (4 months ago)
- Topics: emacs, emacs-config, emacs-configuration, emacs-customizations, emacs-initialization, emacs-lisp, org-mode
- Language: Emacs Lisp
- Homepage:
- Size: 2.44 MB
- Stars: 7
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
* Serghei's GNU Emacs Configuration
This repository contains my personal GNU Emacs setup, crafted to be an
integral part of my daily workflow and continually tweaked
since 2019. It’s the second repository I clone after [[https://github.com/sergeyklay/dotfiles][my dotfiles]],
ensuring I have a consistent development environment wherever I go.** The Philosophy
This configuration serves as a practical and flexible tool, designed
to meet my needs without chasing after the latest trends or overly
complex setups. My focus is on providing a straightforward and
transparent configuration, avoiding unnecessary packages or flashy
features. I do not aim to make this setup glamorous; instead, it
remains rooted in functionality and efficiency.** Core Principles
I adhere to the following guiding principles in this configuration:
- The setup is entirely managed within =early-init.el= and =init.el=,
which are responsible for loading and configuring publicly available
packages. The only exception to this is =custom.el=, which is an
autogenerated layer. I don't manually edit or read this file, so it
doesn't follow Core Principes as the rest of the configuration.
- This configuration avoids unnecessary complexity, sticking to
built-in packages whenever possible. When external packages are
necessary, I prefer GNU alternatives over third-party options from
MELPA, ensuring that the setup remains streamlined and
understandable.
- My setup should work seamlessly across different operating systems,
providing a consistent experience. These days it's somewhat geared
towards Linux, but it also should work on macOS and I hope Windows.
- The goal is to maintain a setup that is functional and easy to
manage, without pushing Emacs to its limits or adding features for
the sake of novelty.** Additional Preferences
- I intentionally avoid using ~use-package~ because I do not see a clear
benefit for my use case, and I can manage perfectly well without it.
- I also don't use ~evil-mode~; if I want to work in Vim, I simply use
Vim.
- I strive to maintain the default Emacs keybindings, and I keep my
custom keymaps for any desired keybinding ideas, without altering
default package behavior.** Performance Considerations
When it comes to performance, it's all relative. Currently, Emacs
loads in a little over a second in the graphical environment, which is
admittedly slower than the configurations of those more dedicated to
optimizing startup times. However, it is definitely faster than many
other configurations found online. Have I settled on this? No, I
occasionally work on slight optimizations and will continue to do so
spontaneously. That said, Emacs startup time is not a top priority for
me as long as it stays around one second, especially since I do not
restart Emacs for weeks or months at a time. Therefore, these metrics
might improve over time, but it's certainly not something that
occupies most of my attention.** Requirements
Currently, I use GNU Emacs 29.x, and I recommend others do the same by
using this configuration to ensure everything works smoothly. I have
not tested this configuration with versions of Emacs prior to 29.1,
and I have no insight into how it behaves on older versions.I have built this configuration with the following tools in mind:
- [[https://github.com/BurntSushi/ripgrep][ripgrep (=rg=)]]
- [[https://git-scm.com][Git (=git=)]]
- [[https://www.gnupg.org][GnuPG (=gpg=)]]
- [[https://imagemagick.org][Imagemagick (=convert=)]]
- [[https://www.ghostscript.com/][Ghostscript (=gs=)]]
- [[https://pandoc.org/][Pandoc (=pandoc=)]]
- [[https://www.passwordstore.org/][The standard Unix password manager (=pass=)]]
- [[https://gnutls.org/][GnuTLS]]These tools enhance the functionality of my daily workflows, so it's
recommended to have them installed for full compatibility.** License
This project is open source software licensed under the
[[https://github.com/sergeyklay/.emacs.d/blob/master/LICENSE][GNU General Public Licence version 3]].
Copyright © 2019, 2020, 2021, 2022, 2023, 2024 Serghei Iakovlev.*** Note On Copyright Years
In copyright notices where the copyright holder is Serghei Iakovlev,
then where a range of years appears, this is an inclusive range that
applies to every year in the range. For example: 2019-2024 represents
the years 2019, 2020, 2021, 2022, 2023 and 2024.