dotfiles

My PC Dotfiles & Website

modules/apps/ai/antigravity.nix (1473B)


 1## Google Antigravity ##
 2{config, ...}: let
 3  inherit (config.flake) files modules;
 4in {
 5  flake.modules.homeManager.antigravity = {
 6    config,
 7    lib,
 8    pkgs,
 9    osConfig ? {},
10    ...
11  }: let
12    font = config.stylix.fonts.monospace.name;
13    isGnome = osConfig.services.desktopManager.gnome.enable or false;
14    isWM = (osConfig.programs.hyprland.enable or false) || (osConfig.programs.niri.enable or false);
15  in {
16    imports = [
17      modules.homeManager.antigravity-cli
18      (import ../vscode/_mutable.nix {
19        program = "antigravity";
20        configDir = "Antigravity";
21      })
22    ];
23
24    # IDE
25    programs.antigravity = {
26      enable = true;
27      package = pkgs.antigravity;
28      profiles.default = import ../vscode/_profile.nix {
29        inherit lib pkgs files font isGnome isWM;
30      };
31    };
32
33    home.persist.directories = [".config/Antigravity"];
34  };
35
36  flake.modules.homeManager.antigravity-cli = {
37    config,
38    pkgs,
39    ...
40  }: {
41    imports = [./_common.nix];
42
43    # CLI
44    programs.antigravity-cli = {
45      enable = true;
46      package = pkgs.llm.antigravity-cli;
47      enableMcpIntegration = true;
48      skills = config.ai._skills;
49      settings.altScreenMode = "always";
50      permissions = {
51        deny = ["command(rm -rf)"];
52        ask = ["command(*)"];
53      };
54    };
55
56    home = {
57      file.".gemini/antigravity-cli/settings.json".force = true;
58      persist.directories = [".antigravity" ".gemini"];
59    };
60  };
61}