Decknix provides a modern, batteries-included Emacs experience with 13+ modules, background daemon, and three profile tiers.
Module Description Profile
Core Modus theme, line numbers, better defaults minimal+
Completion Vertico, Consult, Corfu, Embark minimal+
Editing Smartparens, Crux, Move-text, EditorConfig minimal+
UI Which-key, Helpful, Nerd-icons minimal+
Undo undo-fu, vundo (visual undo tree) minimal+
Project Project management and navigation minimal+
Welcome Startup screen with keybinding cheat sheet standard+
Development Flycheck, Yasnippet standard+
Magit Git interface, Forge (GitHub PRs), code-review standard+
Treemacs Project file tree with git integration standard+
Languages 30+ language modes with syntax highlighting standard+
LSP Eglot, kotlin-ls, jdt-ls, dape (debugging) full
Org-mode Modern styling, presentations (Olivetti) full
HTTP REST client, jq integration, org-babel full
Agent Shell AI agent interface (Augment Code) full
Key Action
C-sSearch in buffer (consult-line)
C-x bSwitch buffer with preview
M-s rProject-wide ripgrep search
M-yBrowse kill ring
C-.Context actions (Embark)
Key Action
C-x gMagit status
@ f fFetch forge topics (PRs/issues)
@ c pCreate pull request
@ l pList pull requests
Key Action
C-x t tToggle treemacs
C-x t fFind current file in tree
Key Action
C-c l rRename symbol
C-c l aCode actions
C-c l fFormat region
C-c l FFormat buffer
C-c l dShow documentation
Key Action
C-c d dStart debugger
C-c d bToggle breakpoint
C-c d nStep over
C-c d sStep in
C-c d cContinue
Key Action
C-aSmart home (Crux)
C-c dDuplicate line
M-up/downMove line/region
C-/Undo
C-?Redo
C-x uVisual undo tree (vundo)
Key Action
F5 or C-c pStart/stop presentation
n / pNext/previous slide
30+ languages with syntax highlighting:
Category Languages
Primary Kotlin, Java, Scala, SQL, Terraform/HCL, Shell, Nix, Python
Data JSON, YAML, TOML, XML, Markdown
Web HTML, CSS/SCSS/LESS, JavaScript, TypeScript, JSX, Vue, Svelte
Configured in modules/darwin/emacs.nix, enabled by default on macOS. Runs as a background launchd service — no Dock icon, no Cmd+Tab entry.
ec filename # Open file in Emacs
ec -c -n # New GUI frame
ec -c -n file.txt # Open file in new GUI frame
ec -t file.txt # Open in terminal
emacsclient -c # Create new GUI frame
GUI frames appear in the Dock while open; closing a frame doesn't kill the daemon.
Option Default Description
services.emacs.decknix.enabletrueEnable Emacs daemon
services.emacs.decknix.packagepkgs.emacsEmacs package to use
services.emacs.decknix.additionalPath[]Extra PATH entries for daemon
{ ... }: {
programs.emacs.decknix.enable = false; # ALL emacs config
programs.emacs.decknix.welcome.enable = false; # Welcome screen
programs.emacs.decknix.magit.enable = false; # Git interface
programs.emacs.decknix.magit.forge.enable = false; # Just Forge
programs.emacs.decknix.completion.enable = false; # Completion stack
programs.emacs.decknix.treemacs.enable = false; # File tree
programs.emacs.decknix.undo.enable = false; # Undo enhancements
programs.emacs.decknix.editing.enable = false; # Editing enhancements
programs.emacs.decknix.development.enable = false; # Flycheck/Yasnippet
programs.emacs.decknix.ui.enable = false; # UI enhancements
programs.emacs.decknix.ui.icons.enable = false; # Just icons
programs.emacs.decknix.org.enable = false; # Org enhancements
programs.emacs.decknix.lsp.enable = false; # LSP/IDE
programs.emacs.decknix.http.enable = false; # REST client
programs.emacs.decknix.languages.enable = false; # All languages
}
{ pkgs, ... }: {
# Add your own packages
programs.emacs.extraPackages = epkgs: [ epkgs.evil epkgs.lsp-mode ];
# Add your own config
programs.emacs.extraConfig = ''
(evil-mode 1)
(setq my-custom-variable t)
'';
}
Note: Evil mode (Vim emulation) is not included by default. Add it in your personal config as shown above.