A Minimal or Maximal Emacs Config Framework.
For beginners, configuring Emacs can be a challenging task. The reason lies in Emacs’ high degree of customizability. This matter only begins to become clear after you have spent countless hours exploring. During this process, you start to focus on your genuine needs and come to believe that Emacs is not a panacea. Subsequently, you will quietly sit down and revisit your Emacs configuration file. This process might last a long time or be relatively short if you stand on the shoulders of the community. The community offers many ready-made starter kits that can quickly set you on your way. The minmax-emacs.d project is a simple Emacs configuration framework extracted from my commonly used setup. Like other startkits, its purpose is to help beginners get started quickly. What sets it apart is that it incorporates my personal experience and understanding.
Next, I will briefly describe the top-level design of this framework, and you can decide for yourself whether it meets your needs. The entire framework is divided into two layers, the core layer and the additional layer, like stars surrounding the moon.
- Moon
- The core layer consists of configuration files related to essential needs and should strive to remain stable and concise. Specifically,
- Use the Customization Interface to manage built-in options.
- Try to use the built-in functionalities provided by Emacs as much as possible.
- This part should be concise and portable across multiple platforms.
- Stars
- The additional layer includes many independent third-party packages. Each file represents an atomic feature, typically containing the configuration for a single package, but it can also include multiple highly cohesive packages.
This “Moon + Stars” design can provide your configuration with great flexibility and stability. It isolates the volatile, error-prone, and non-platform-portable parts of the configuration in the additional layer. This way, you can avoid frustration caused by upgrade failures, difficulties in locating issues, and other problems. It is a compromise between minimal and maximal–*MinMax*.
I recommend directly forking this project to your own repository and then cloning it locally. This way, you can modify it according to your actual needs, following the design principles and methods mentioned above. Of course, you can also directly clone this project.
git clone [email protected]:xplutoy/minmax-emacs.d.git ~/.emacs.d
Then, you can customize it in the following ways:
- Rename
user-config.example
touser-config.el
. Then, add the feature from the addtional layer or your own local customizations to it. - Add other features to the additional layer according to the atomic principle.