mirror of
https://github.com/nix-community/home-manager.git
synced 2026-11-04 03:40:10 +00:00
Keep native settings and MCP configuration writable while applying declared values. Treat unspecified permission lists as absent in mutable native mode so activation does not reset undeclared application choices. Explicit lists, including empty lists, replace saved lists. Keep immutable and legacy defaults unchanged.
58 lines
2.0 KiB
Nix
58 lines
2.0 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
activation = config.home.activation.antigravitySettings;
|
|
in
|
|
{
|
|
programs.antigravity-cli = {
|
|
enable = true;
|
|
package = null;
|
|
mutableSettings = true;
|
|
settings = {
|
|
colorScheme = "tokyo night";
|
|
};
|
|
permissions.allow = [ "command(git)" ];
|
|
mcpServers.filesystem = {
|
|
command = "fs";
|
|
args = [ ];
|
|
enabled = true;
|
|
};
|
|
};
|
|
|
|
assertions = [
|
|
{
|
|
assertion = lib.hasInfix "display_path=${lib.escapeShellArg "/home/hm-user/.gemini/antigravity-cli/settings.json"}\n" config.home.activation.antigravitySettings.data;
|
|
message = "Antigravity settings must merge into the configured destination.";
|
|
}
|
|
{
|
|
assertion = lib.hasInfix "display_path=${lib.escapeShellArg "/home/hm-user/.gemini/config/mcp_config.json"}\n" config.home.activation.antigravitySettings.data;
|
|
message = "Antigravity MCP settings must merge into the configured destination.";
|
|
}
|
|
{
|
|
assertion = !(config.home.file ? ".gemini/config/mcp_config.json");
|
|
message = "Mutable Antigravity MCP settings must not be owned by home.file.";
|
|
}
|
|
{
|
|
assertion = !(config.home.file ? ".gemini/antigravity-cli/settings.json");
|
|
message = "Mutable Antigravity settings must not be owned by home.file.";
|
|
}
|
|
{
|
|
assertion = activation.after == [ "linkGeneration" ];
|
|
message = "Antigravity settings must merge after linkGeneration.";
|
|
}
|
|
];
|
|
nmt.script = ''
|
|
assertPathNotExists home-files/.gemini/antigravity-cli/settings.json
|
|
assertPathNotExists home-files/.gemini/config/mcp_config.json
|
|
settings="$(grep -m1 -o '/nix/store/[^ ]*-antigravity-cli-settings.json' "$TESTED/activate")" \
|
|
|| fail "Missing antigravity-cli-settings.json input"
|
|
assertFileContent "$settings" ${./mutable-input.json}
|
|
mcp="$(grep -m1 -o '/nix/store/[^ ]*-antigravity-cli-mcp-config.json' "$TESTED/activate")" \
|
|
|| fail "Missing antigravity-cli-mcp-config.json input"
|
|
assertFileContent "$mcp" ${./mutable-mcp-input.json}
|
|
'';
|
|
}
|