I customized this config mostly around Software Technical Writing, which is my day job. If you like to work with Vim and Orgmode, you might find elements to work with.
Note that it integrates with:
- Linear.app (you will need to clone https://github.com/anegg0/linear-emacs for that feature to be available)
- Jethro Kuan's fabulous https://github.com/org-roam/org-roam
- Alvaro Ramirez's perfect solution for accentuated characters on Emacs/MacOS: https://xenodium.com/an-accentuated-emacs-experiment/
- Enhanced Org-mode: Org-roam integration, custom export templates, Linear.app synchronization
- Development Tools: LSP support (Eglot), Copilot integration, syntax highlighting for multiple languages
- UI/UX: Leuven-dark theme, Vertico completion, visual enhancements with Treemacs
- Productivity: GTD workflows, custom keybindings, Emacs Everywhere for system-wide editing
- Corfu with orderless for code completion
- Vertico for minibuffer completion
- Doom modeline with icons
- Treemacs for project navigation
- Emacs Lisp, JavaScript, Python, Rust, Solidity
- LaTeX with custom templates
- Markdown/MDX support
- Magit for Git integration
- Org-roam for knowledge management
- Custom capture templates
- Linear.app two-way sync
- HTML/PDF export configurations
copilot
: GitHub Copilot integrationclaudemacs
: Claude AI integrationlinear-emacs
: Linear issue trackingeat
: Terminal emulatorevil
: Vim emulation
init.el
: Module declarations and feature togglesconfig.el
: Main configuration with keybindings and settingspackages.el
: Package declarations and custom recipes
- French Accent Support: Integrated
accent
package with custom configuration for French diacritics (à, â, é, è, ê, ë, î, ï, ô, ù, û, ü, ç). Disabled by default - must be manually enabled.- Usage: When enabled, double-tap keys quickly (within 0.17s) to insert accented characters
- Toggle Commands:
SPC t a
: Toggle accent menu globally (all text/org/markdown buffers)SPC t A
: Toggle accent menu for current buffer only
- Example: Type "ee" quickly → menu appears with (é è ê ë) options
- Includes org-mode cache fix to prevent conflicts
- Special thank you to Alvaro Ramirez from xenodium.com!
- Project-wide Search: Custom
my/smart-project-occur
function for efficient regex searches across project files using projectile - Eglot Modeline: Custom status indicator
+modeline-eglot-status
showing LSP connection state - Enhanced Undo Limits: Increased to 64MB/96MB/960MB for handling large operations
- Copilot Chat: Extended configuration with leader key shortcuts for code review, documentation, and fixes
Custom Functions:
my/smart-project-occur
: Project-wide occur search with file filteringmy/toggle-accent-menu-global
: Toggle accent menu in all supported buffersmy/toggle-accent-menu-buffer
: Toggle accent menu in current buffer onlymy/drag-n-drop-handler
: Handle files dropped onto Emacs framemy/eat-popup
: Open eat terminal in popup windowmy/setup-custom-font-fallbacks-mac
: Configure font fallbacks for symbols and emojis on macOS
- Custom TODO States: Extended workflow states (IN-PROGRESS, IN-REVIEW, BACKLOG, BLOCKED, NEXT, HOLD, WAITING-ON) with color-coded faces
- Letter-style LaTeX Class: Custom document class with modified title handling, removes default title page for clean letter format
- Visible-only Markdown Export:
my/org-md-export-to-markdown-visible-only
exports only visible content, removes anchor tags and TOC - HTML Hot-reload:
my/org-hot-reload-toggle
enables auto-export on save with live browser preview - Custom Export Functions:
my/org-export-pdf-and-open
andmy/org-export-html-and-open
with leader key bindings - Jethro's GTD Capture: Inbox and slipbox templates with quick capture keybindings (C-c TAB, C-c SPC)
- ProtonDrive Integration: Org directory configured to sync with ProtonDrive cloud storage
Custom Functions:
my/org-md-export-to-markdown-visible-only
: Export visible content to markdown, remove anchor tags and TOCmy/org-hot-reload-html-export
: Enable hot-reload for HTML exportmy/org-hot-reload-toggle
: Toggle HTML auto-export on savemy/org-export-html-and-open
: Export to HTML and open in browser (SPC 7)my/org-export-pdf-and-open
: Export to PDF and open viewer (SPC e p)my/org-todo-list-all-by-tag
: Display all TODO states filtered by tagmy/auto-save-org-files-on-todo-change
: Auto-save linear.org and inbox.org on TODO changes
- ProtonDrive Sync: Database and notes stored in cloud-synced ProtonDrive folder
- Custom Capture Templates:
- Quote notes with :quote: filetag
- CATB project notes in dedicated folder
- OCL documentation with OCL_ prefix
- Prompts with twai_ prefix
- Hugo-compatible article template with export settings
- Tag-based Node Finder:
my/org-roam-node-find-by-tag
function with leader key binding (SPC r F) - Missing ID Scanner:
my/org-roam-find-files-without-id
generates report of org files without roam IDs - Enhanced Node Display: Shows node type (directory) and tags in completion interface
Custom Functions:
my/org-roam-node-has-tag
: Filter function to check if node has specified tagmy/org-roam-node-find-by-tag
: Find and open nodes based on tag (SPC r F)my/org-roam-find-files-without-id
: Generate report of org files missing roam IDs (SPC r m)
- Auth-source API Storage:
my/linear-load-api-key-from-auth-source
loads API key securely from .authinfo - Single-issue Sync:
my/linear-sync-single-issue-at-point
updates only the changed issue to minimize API calls - Toggle Auto-sync:
my/toggle-linear-auto-sync
controls whether Linear updates before todo list display - Auto-save on State Change: Hooks automatically save linear.org and inbox.org when TODO states change
- Custom Leader Keys:
- SPC l s: Sync all Linear issues
- SPC l t: Toggle auto-sync
- SPC l n: Create new issue
- SPC l c: Test connection
- SPC l d: Toggle debug mode
Custom Functions:
my/linear-load-api-key-from-auth-source
: Load Linear API key from auth-sourcemy/linear-sync-single-issue-at-point
: Sync only current issue to Linear APImy/toggle-linear-auto-sync
: Toggle automatic Linear sync before todo listmy/run-linear-emacs-list-issues-before-todo
: Run Linear sync before org-todo-listmy/enable-linear-org-sync
: Auto-enable sync when linear.org is openedmy/auto-save-org-files-on-todo-change
: Auto-save linear.org and inbox.org on TODO state changesmy/magit-submodule-update-init-recursive
: Run git submodule update (SPC 6)my/magit-checkout-advice
: Invalidate projectile cache after git checkout