230 lines
6 KiB
Nix
230 lines
6 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
let
|
|
# Wrap Antigravity in an FHS environment to support dynamically linked binaries
|
|
antigravityFHS = pkgs.buildFHSEnv {
|
|
name = "antigravity";
|
|
|
|
targetPkgs =
|
|
pkgs:
|
|
(with pkgs; [
|
|
antigravity
|
|
chromium
|
|
# Common libraries for dynamically linked binaries
|
|
gcc
|
|
glibc
|
|
stdenv.cc.cc
|
|
zlib
|
|
openssl
|
|
curl
|
|
libgcc
|
|
glib
|
|
gtk3
|
|
libsecret
|
|
libnotify
|
|
nss
|
|
nspr
|
|
alsa-lib
|
|
cups
|
|
dbus
|
|
expat
|
|
libdrm
|
|
libxkbcommon
|
|
mesa
|
|
pango
|
|
cairo
|
|
# X11 libraries
|
|
xorg.libX11
|
|
xorg.libXcomposite
|
|
xorg.libXdamage
|
|
xorg.libXext
|
|
xorg.libXfixes
|
|
xorg.libXrandr
|
|
xorg.libxcb
|
|
]);
|
|
|
|
# Run antigravity binary when the FHS env is invoked
|
|
runScript = pkgs.writeShellScript "antigravity-wrapper" ''
|
|
unset LD_PRELOAD
|
|
exec ${pkgs.antigravity}/bin/antigravity "$@"
|
|
'';
|
|
|
|
# Ensure the FHS environment is set up properly
|
|
profile = ''
|
|
export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:$LD_LIBRARY_PATH
|
|
'';
|
|
|
|
extraBindMounts = [
|
|
"/etc/subuid"
|
|
"/etc/subgid"
|
|
];
|
|
};
|
|
|
|
# Wrap the FHS environment to add product.json symlink where Home Manager expects it
|
|
antigravityWrapped = pkgs.symlinkJoin {
|
|
name = "antigravity-wrapped";
|
|
paths = [ antigravityFHS ];
|
|
postBuild = ''
|
|
# Link product.json from the original antigravity package
|
|
ln -sf ${pkgs.antigravity}/lib/antigravity/resources/app/product.json $out/product.json
|
|
'';
|
|
# Pass through required attributes for Home Manager vscode module
|
|
passthru = {
|
|
inherit (pkgs.antigravity) pname version;
|
|
};
|
|
};
|
|
|
|
# Launcher for the regular non-sandboxed environment (Native)
|
|
antigravityNative = pkgs.writeShellScriptBin "antigravity-native" ''
|
|
unset LD_PRELOAD
|
|
exec ${pkgs.antigravity}/bin/antigravity "$@"
|
|
'';
|
|
|
|
# Explicit launcher for the FHS environment (same as default)
|
|
antigravityFHSLauncher = pkgs.writeShellScriptBin "antigravity-fhs" ''
|
|
exec ${antigravityWrapped}/bin/antigravity "$@"
|
|
'';
|
|
in
|
|
{
|
|
home.packages = [
|
|
antigravityNative
|
|
antigravityFHSLauncher
|
|
];
|
|
|
|
programs.vscode = {
|
|
enable = true;
|
|
package = antigravityWrapped;
|
|
|
|
# Allow mutable extensions dir so Antigravity can create extensions.json
|
|
mutableExtensionsDir = true;
|
|
|
|
# extensions = [
|
|
# (pkgs.vscode-utils.extensionFromVscodeMarketplace {
|
|
# name = "x";
|
|
# publisher = "x";
|
|
# version = "x.x.x";
|
|
# sha256 = "sha256-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=";
|
|
# })
|
|
# ];
|
|
|
|
profiles.default = {
|
|
# Disable update checks (not applicable for Nix-managed packages)
|
|
enableUpdateCheck = false;
|
|
enableExtensionUpdateCheck = false;
|
|
|
|
# Extensions from nixpkgs
|
|
extensions = with pkgs.vscode-extensions; [
|
|
# Theme & Icons
|
|
catppuccin.catppuccin-vsc
|
|
catppuccin.catppuccin-vsc-icons
|
|
|
|
# Git
|
|
eamodio.gitlens
|
|
|
|
# C/C++
|
|
llvm-vs-code-extensions.vscode-clangd
|
|
|
|
# Nix
|
|
jnoortheen.nix-ide
|
|
|
|
# Python
|
|
ms-python.python
|
|
ms-python.debugpy
|
|
|
|
# Go
|
|
golang.go
|
|
|
|
# Java (RedHat + vscjava)
|
|
redhat.java
|
|
vscjava.vscode-java-debug
|
|
vscjava.vscode-java-dependency
|
|
vscjava.vscode-java-pack
|
|
vscjava.vscode-java-test
|
|
vscjava.vscode-gradle
|
|
vscjava.vscode-maven
|
|
|
|
# PHP
|
|
bmewburn.vscode-intelephense-client
|
|
xdebug.php-debug
|
|
|
|
# Ruby
|
|
shopify.ruby-lsp
|
|
|
|
# Docker & Containers
|
|
ms-azuretools.vscode-docker
|
|
|
|
# Formatters
|
|
esbenp.prettier-vscode
|
|
];
|
|
|
|
# User settings (settings.json equivalent)
|
|
userSettings = {
|
|
# Existing settings from your current settings.json
|
|
"workbench.colorTheme" = "Catppuccin Mocha";
|
|
"workbench.iconTheme" = "catppuccin-mocha";
|
|
"terminal.integrated.shellIntegration.enabled" = false;
|
|
"python.languageServer" = "Default";
|
|
"json.schemaDownload.enable" = true;
|
|
"git.autofetch" = true;
|
|
"git.confirmSync" = false;
|
|
"explorer.confirmDelete" = false;
|
|
"redhat.telemetry.enabled" = false;
|
|
|
|
# MCP Server configuration for Continue.dev / Cline
|
|
# These servers provide AI agents with direct access to:
|
|
# - Database inspection (sqlite-inspector)
|
|
# - Log analysis (pino-parser)
|
|
# - API testing (api-tester)
|
|
"mcp.servers" = {
|
|
"unified-router-sqlite" = {
|
|
command = "mcp-sqlite-inspector";
|
|
env = {
|
|
DEFAULT_DB_PATH = "/home/ashie/nixos/unified-router/data/database.db";
|
|
};
|
|
};
|
|
"unified-router-logs" = {
|
|
command = "mcp-pino-parser";
|
|
env = {
|
|
DEFAULT_LOG_PATH = "/home/ashie/nixos/unified-router/server.log";
|
|
};
|
|
};
|
|
"unified-router-api" = {
|
|
command = "mcp-api-tester";
|
|
env = {
|
|
ALLOWED_HOSTS = "localhost,127.0.0.1";
|
|
DEFAULT_PORT = "9090";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# Antigravity MCP Server Configuration
|
|
home.file.".gemini/antigravity/mcp_config.json" = {
|
|
force = true; # Allow overwriting existing file created by Antigravity
|
|
text = builtins.toJSON {
|
|
mcpServers = {
|
|
unified-router-sqlite = {
|
|
command = "mcp-sqlite-inspector";
|
|
env = {
|
|
DEFAULT_DB_PATH = "/home/ashie/nixos/unified-router/data/database.db";
|
|
};
|
|
};
|
|
unified-router-logs = {
|
|
command = "mcp-pino-parser";
|
|
env = {
|
|
DEFAULT_LOG_PATH = "/home/ashie/nixos/unified-router/server.log";
|
|
};
|
|
};
|
|
unified-router-api = {
|
|
command = "mcp-api-tester";
|
|
env = {
|
|
ALLOWED_HOSTS = "localhost,127.0.0.1";
|
|
DEFAULT_PORT = "9090";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|