My personal Emacs config based on use-package, evil and counsel.
- lisp: Require based config, dont neet autoload
- site-lisp: Third party lisp code
- v: Package based config
- 2025-08-20
- https://github.com/sunskyxh/ast-grep.el
- https://github.com/inaimathi/aidev-mode
- https://github.com/Dev380/automoji-el
- https://github.com/KeyWeeUsr/conventional?tab=readme-ov-file
- https://github.com/eki3z/ddp.el
- https://github.com/editor-code-assistant/eca-emacs
- https://github.com/countvajhula/pubsub
- https://github.com/hron/too-wide-minibuffer-mode
- https://github.com/jdtsmith/ultra-scroll
- 2025-12-16
after-init-hook is better for enabling ivy-mode.
Here’s why:
after-init-hookruns after all init files are loaded but before displaying the initial buffer. This is the standard place for enabling global modes.emacs-startup-hookruns later, after command-line arguments are processed and the initial buffer is displayed. This delays mode activation unnecessarily.
For ivy-mode, you want it ready as early as possible so commands like M-x work immediately.
Your current approach with :hook (after-init . ivy-mode) is correct.
The typical ordering is:
after-init-hook→ Enable global modes (ivy-mode,company-mode, etc.)emacs-startup-hook→ Run completion tasks, display messageswindow-setup-hook→ Graphics-specific setup after frame is created