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:
completioncontains the configuration for completion packages likeivyandcounsel, andcompany;corecontains packages related to editor-wide behaviour like appearance, fonts, etcprojectscontains packages related to project-based packages likeprojectile,magit,wakatime, andtreemacs.startupcontains 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.