My Emacs setup


I started my Emacs journey using the Doom Emacs framework, but as time passed and I wanted to customize the editor and its behaviour, I found I was fighting the framework instead of taking advantage of it. This led me to start from scratch with a minimal config that I evolved every time I needed to integrate a new package or wanted to improve my workflow.

Here's what I currently use:

  • enlight: a custom startup screen with shortcuts for the actions I use most
  • ef-themes: well-balanced colour themes by Protesilaos Stavrou, with many light and dark variants
  • eglot: language server support for Python (pylsp) and C (clangd)
  • tree-sitter: enabled for Python, YAML and C, with indentation tuned to my preferred coding style
  • imenu-list: shows function definitions of the current file in a side window
  • Magit: simply the best way to integrate Git in a coding workflow
  • Org Mode: everything in plain text — work planning, notes, teaching materials
  • perspective-el: named workspaces for Emacs, can be saved or loaded from disk

I am working on a few small helpers to separate programming and school activity using perspective-el. I also integrated some small automations to compile and run C code examples while teaching.

I write my teaching material using Org Mode files and I export them using pandoc as web pages or reveal.js presentations.