programs.windsurf.enable
Whether to enable Windsurf.
Type: boolean
Default:
false
Example:
true
Declared by:
programs.windsurf.package
The windsurf package to use. Version of Windsurf to install.
Type: null or package
Default:
pkgs.windsurf
Declared by:
programs.windsurf.argvSettings
Configuration written to Windsurf’s
argv.json.
This can be a JSON object or a path to a custom JSON file.
Type: absolute path or JSON value
Default:
{ }
Example:
{
enable-crash-reporter = false;
}
Declared by:
programs.windsurf.mutableExtensionsDir
Whether extensions can be installed or updated manually or by Windsurf. Mutually exclusive to programs.windsurf.profiles.
Type: boolean
Default:
(removeAttrs config.programs.windsurf.profiles [ "default" ]) == { }
Example:
false
Declared by:
programs.windsurf.profiles
A list of all Windsurf profiles. Mutually exclusive to programs.windsurf.mutableExtensionsDir
Type: attribute set of (submodule)
Default:
{ }
Declared by:
programs.windsurf.profiles.<name>.enableExtensionUpdateCheck
Whether to enable update notifications for extensions. Can only be set for the default profile, but it applies to all profiles.
Type: null or boolean
Default:
null
Declared by:
programs.windsurf.profiles.<name>.enableMcpIntegration
Whether to integrate the MCP servers config from
programs.mcp.servers into
programs.windsurf.profiles.<name>.userMcp.
Note: Settings defined in programs.mcp.servers are merged
with programs.windsurf.profiles.<name>.userMcp, with Windsurf
settings taking precedence.
Type: boolean
Default:
false
Declared by:
programs.windsurf.profiles.<name>.enableUpdateCheck
Whether to enable update checks/notifications. Can only be set for the default profile, but it applies to all profiles.
Type: null or boolean
Default:
null
Declared by:
programs.windsurf.profiles.<name>.extensions
The extensions Windsurf should be started with.
Type: list of package
Default:
[ ]
Example:
[ pkgs.vscode-extensions.bbenoist.nix ]
Declared by:
programs.windsurf.profiles.<name>.globalSnippets
Defines global user snippets.
Type: JSON value
Default:
{ }
Example:
{
fixme = {
body = [
"$LINE_COMMENT FIXME: $0"
];
description = "Insert a FIXME remark";
prefix = [
"fixme"
];
};
}
Declared by:
programs.windsurf.profiles.<name>.keybindings
Keybindings written to Windsurf’s
keybindings.json.
This can be a JSON object or a path to a custom JSON file.
Type: absolute path or list of (open submodule of (JSON value))
Default:
[ ]
Example:
[
{
command = "editor.action.clipboardCopyAction";
key = "ctrl+c";
when = "textInputFocus";
}
]
Declared by:
programs.windsurf.profiles.<name>.keybindings.*.args
Optional arguments for a command.
Type: null or JSON value
Default:
null
Example:
{
direction = "up";
}
programs.windsurf.profiles.<name>.keybindings.*.command
The VS Code command to execute.
Type: string
Example:
"editor.action.clipboardCopyAction"
programs.windsurf.profiles.<name>.keybindings.*.key
The key or key-combination to bind.
Type: string
Example:
"ctrl+c"
programs.windsurf.profiles.<name>.keybindings.*.when
Optional context filter.
Type: null or string
Default:
null
Example:
"textInputFocus"
programs.windsurf.profiles.<name>.languageSnippets
Defines user snippets for different languages.
Type: JSON value
Default:
{ }
Example:
{
haskell = {
fixme = {
body = [
"$LINE_COMMENT FIXME: $0"
];
description = "Insert a FIXME remark";
prefix = [
"fixme"
];
};
};
}
Declared by:
programs.windsurf.profiles.<name>.userMcp
Configuration written to Windsurf’s
mcp.json.
This can be a JSON object or a path to a custom JSON file.
Type: absolute path or JSON value
Default:
{ }
Example:
{
"servers": {
"Github": {
"url": "https://api.githubcopilot.com/mcp/"
}
}
}
Declared by:
programs.windsurf.profiles.<name>.userSettings
Configuration written to Windsurf’s
settings.json.
This can be a JSON object or a path to a custom JSON file.
Type: absolute path or JSON value
Default:
{ }
Example:
{
"[nix]" = {
"editor.tabSize" = 2;
};
"files.autoSave" = "off";
}
Declared by:
programs.windsurf.profiles.<name>.userTasks
Configuration written to Windsurf’s
tasks.json.
This can be a JSON object or a path to a custom JSON file.
Type: absolute path or JSON value
Default:
{ }
Example:
{
tasks = [
{
command = "hello";
label = "Hello task";
type = "shell";
}
];
version = "2.0.0";
}
Declared by: