11
11
![ MinEmacs screenshot] ( assets/images/minemacs-screenshot.svg )
12
12
13
13
## Why?
14
+
14
15
Since many years, Emacs forms the foundation of my workflow, serving as my go-to
15
16
tool for various tasks such as document writing, academic paper writing,
16
17
programming in multiple languages, email management, and staying updated with
@@ -36,7 +37,7 @@ opinionated manner, CI commands, and even a profile manager! Each of these
36
37
features introduced extra complexity and more failure points at every layer.
37
38
38
39
As a result, MinEmacs emerged as my personal configuration framework for Emacs,
39
- * and it continues to serve that purpose * . I'm trying to tailor it to my specific
40
+ _ and it continues to serve that purpose _ . I'm trying to tailor it to my specific
40
41
needs while maintaining its modularity and portability. You can refer to the
41
42
[ change log] ( CHANGELOG.md ) for more information about the evolution of MinEmacs. However, I have
42
43
no intention or availability to create an alternative to Doom Emacs or
@@ -47,6 +48,7 @@ really interested in becoming a full-time maintainer of this tool that I would
47
48
only use to maintain itself!
48
49
49
50
## Install
51
+
50
52
Open a shell and run:
51
53
52
54
``` shell
@@ -73,12 +75,14 @@ packages.
73
75
> MinEmacs with versions earlier than 28.1, and I don't plan to do so!
74
76
75
77
## Customization
78
+
76
79
To personalize MinEmacs, you can incorporate a specific set of files within the
77
80
default user configuration directory, which is located at ` ~/.minemacs.d ` .
78
81
However, if you prefer to use a different directory, you have the flexibility to
79
82
do so by setting the ` MINEMACSDIR ` environment variable.
80
83
81
84
### Main configuration files
85
+
82
86
There are two main files that can be added in the ` ~/.minemacs.d ` directory:
83
87
84
88
1 . The ` ~/.minemacs.d/modules.el ` file contains a list of enabled modules and a
@@ -95,6 +99,7 @@ using `require` directly (`require` loads the packages immediately, which increa
95
99
the startup time of Emacs).
96
100
97
101
### Machine-specific configuration files
102
+
98
103
In my workflow, I use mainly the same configuration files across all my machines
99
104
(which are traditionally shared in my [ dotfiles] ( https://github.com/abougouffa/dotfiles ) repository). However, I have some
100
105
machine-specific (local) configurations that I like to load. For example, to
@@ -105,6 +110,7 @@ For this purpose, MinEmacs will also check for files in
105
110
exists.
106
111
107
112
### Advanced configuration files
113
+
108
114
MinEmacs provides also some advanced customization files, these files can be
109
115
used to tweak MinEmacs' behavior, add some early initialization code, make
110
116
MinEmacs runnable on older Emacs versions, etc.
@@ -119,6 +125,7 @@ MinEmacs runnable on older Emacs versions, etc.
119
125
functions MinEmacs uses. See the [ ` init.el ` ] ( init.el ) for more information.
120
126
121
127
### Environment variables
128
+
122
129
You can customize MinEmacs' behavior via some environment variables.
123
130
124
131
- ` MINEMACS_DIR ` or ` MINEMACSDIR ` : Path for MinEmacs user configuration directory,
@@ -142,10 +149,11 @@ You can customize MinEmacs' behavior via some environment variables.
142
149
user configuration files.
143
150
144
151
### Load and hooks order
152
+
145
153
MinEmacs loads its features and run hooks in this order:
146
154
147
155
- ` ~/.emacs.d/early-init.el `
148
- - ` $MINEMACSDIR/early-config.el ` * (unless disabled in ` $MINEMACS_IGNORE_USER_CONFIG ` )*
156
+ - ` $MINEMACSDIR/early-config.el ` _ (unless disabled in ` $MINEMACS_IGNORE_USER_CONFIG ` )_
149
157
- ` $MINEMACSDIR/local/early-config.el ` _ (unless disabled)_
150
158
- ` ~/.emacs.d/init.el `
151
159
- ` before-init-hook `
@@ -174,11 +182,12 @@ Special hooks defined with `+make-first-file-hook!`:
174
182
- ` minemacs-first-org-file-hook `
175
183
176
184
## MinEmacs keybindings cheat sheet
185
+
177
186
MinEmacs defines several keybindings, mainly using [ ** general.el** ] ( https://github.com/noctuid/general.el ) . To see the full
178
187
list of keybindings defined using general, you can type ` SPC h g ` or `M-x
179
188
general-describe-keybindings`.
180
189
181
190
## Troubleshooting
191
+
182
192
If you experienced an issue with MinEmacs, you can check the [ FAQ] ( FAQ.md ) , check [ open
183
193
issues or open a new one] ( https://github.com/abougouffa/minemacs/issues ) .
184
-
0 commit comments