Context
After a successful run with Spacemacs as my main emacs distribution, the time came to write my own config to avoid having to load features I don’t need and have more flexibility to implement useful snippets I glean on the web.
Architecture
Using org-mode to organize the files using literate programming, I decided to breakdown the configuration by theme and language using the following file structure.
|-- completion
|-- core
|-- projects
|-- snippets
|-- startup
|-- templates
`-- terminal
Where:
completion
contains the configuration for completion packages likeivy
andcounsel
, andcompany
;core
contains packages related to editor-wide behaviour like appearance, fonts, etcprojects
contains packages related to project-based packages likeprojectile
,magit
,wakatime
, andtreemacs
.startup
contains packages likedashboard
.- and so on…
The full configuration with up-to-date packages and associated configurations can be found in this GitHub repository. The idea behind this config is to allow for maximum flexibility when adding support for a given language, file format, etc … all while still keeping each piece of configuration findable.
Sources
David Wilson provided some nice pointers, such as the Palenight theme. Gregory J. Stein also provided a very nice pointer to organizing an annotated bibliography using org-mode. Other sources for each trick can be found in the corresponding org file themselves.