My Emacs config
Tags: #elisp #emacs
My Emacs config, built up over the years on my main work tool (Emacs), spans around thirty files and a little over ten thousand lines. It’s available here: https://github.com/occisn/emacs-config.
It’s not exemplary or authoritative. The hard-coded paths point to my directories, not yours. Several features depend on external executables — zip, pandoc, and a few others. Some comments, written five or six years ago, haven’t aged gracefully.
A few points:
1) Fast startup
The loading of most packages is deferred until first use. Therefore, on a standard laptop, startup fits in under four seconds.
At launch, a dedicated buffer sums up the time spent loading each section of the init files and each package. So, when startup happens to drag, the culprit stands out.

2) Same config on Windows and Linux (WSL)
The config detects the platform and available tools automatically, then quietly adapts its shortcuts and paths. Under WSL, some commands fall back to Linux equivalents, while others go through cmd.exe to reach the Windows side.
Same Emacs, same shortcuts, on any of my machines.
3) Hydras everywhere
Emacs has a major mode for just about everything: Lisp, Org, Dired, Magit, LaTeX, C, Python, and so on. Each mode has its useful commands, sometimes buried behind specific key combinations.
To each mode I actually use, I’ve attached its own hydra — a menu listing that mode’s most frequent commands or personal commands. All these hydras trigger on the same shortcut: C-c d. Whatever the active mode, C-c d opens the right menu.
4) C-c c — copy what makes sense here
Instead of a shortcut per object type, a custom command bound to C-c c reads the context and picks the right scope to copy: word inside a paragraph, symbol inside code, contents of a #+begin_src block, row of a table.
5) Swap theme or font with a click
Picking a theme from the twenty or so I’ve preinstalled is tedious from the command line. Hence a pair of button buffers: one click activates the matching theme or font, without leaving the current session.

