Enabling & Disabling Features
Every decknix default uses lib.mkDefault, making it easy to override in your personal config.
Emacs Modules
# ~/.config/decknix/local/home.nix
{ ... }: {
# Disable specific modules
programs.emacs.decknix.welcome.enable = false;
programs.emacs.decknix.org.presentation.enable = false;
programs.emacs.decknix.http.enable = false;
# Disable specific language modes
programs.emacs.decknix.languages.rust.enable = false;
programs.emacs.decknix.languages.go.enable = false;
# Disable all Emacs config (use your own)
programs.emacs.decknix.enable = false;
}
See Emacs module reference for all available options.
Editor Profiles
Switch between pre-defined tiers instead of toggling individual modules:
{ ... }: {
decknix.editors.emacs.profile = "standard"; # minimal | standard | full | custom
decknix.editors.vim.profile = "minimal"; # minimal | standard | custom
}
Window Manager
{ ... }: {
# AeroSpace
decknix.wm.aerospace.enable = false;
# Or enable with custom workspaces
decknix.wm.aerospace = {
enable = true;
workspaces = {
"1" = { name = "Terminal"; };
"2" = { name = "Browser"; };
"3" = { name = "Code"; };
};
};
}
AI Tooling
{ ... }: {
decknix.cli.auggie.enable = false;
}
Git Features
{ ... }: {
# Disable Forge (GitHub PRs in Emacs)
programs.emacs.decknix.magit.forge.enable = false;
# Disable code-review
programs.emacs.decknix.magit.codeReview.enable = false;
}
System-Level Features
# ~/.config/decknix/local/system.nix
{ ... }: {
# Disable Emacs daemon
services.emacs.decknix.enable = false;
# Disable AeroSpace system optimisations
decknix.services.aerospace.enable = false;
}
Using lib.mkForce
When a simple override doesn't work (because another module sets a value explicitly), use mkForce:
{ lib, ... }: {
programs.emacs.decknix.enable = lib.mkForce false;
}
Use sparingly — in most cases, a normal override is sufficient because the framework uses lib.mkDefault.