From 411c67d2c6c7ac42fb2704e1f263ebe6372a8c15 Mon Sep 17 00:00:00 2001 From: m3tm3re Date: Sat, 14 Mar 2026 09:26:13 +0100 Subject: [PATCH] add mcps to home-config; +ghostty --- home/features/cli/fish.nix | 2 +- home/features/cli/nushell.nix | 2 +- home/features/coding/default.nix | 39 +++++++++ home/features/coding/opencode.nix | 52 +----------- home/features/desktop/default.nix | 80 +++++++------------ home/features/desktop/hyprland.nix | 2 +- home/features/desktop/media.nix | 1 - home/features/desktop/rofi.nix | 4 +- hosts/common/extraServices/virtualisation.nix | 1 + 9 files changed, 75 insertions(+), 108 deletions(-) diff --git a/home/features/cli/fish.nix b/home/features/cli/fish.nix index 0e14e96..7d80aea 100644 --- a/home/features/cli/fish.nix +++ b/home/features/cli/fish.nix @@ -52,7 +52,7 @@ in { set -x NIX_PATH nixpkgs=channel:nixos-unstable set -x NIX_LOG info set -x WEBKIT_DISABLE_COMPOSITING_MODE 1 - set -x TERMINAL kitty + set -x TERMINAL ghostty set -x EDITOR nvim set -x VISUAL zed set -x XDG_DATA_HOME $HOME/.local/share diff --git a/home/features/cli/nushell.nix b/home/features/cli/nushell.nix index f90e3eb..01923f7 100644 --- a/home/features/cli/nushell.nix +++ b/home/features/cli/nushell.nix @@ -16,7 +16,7 @@ in { $env.NIX_PATH = "nixpkgs=channel:nixos-unstable" $env.NIX_LOG = "iunfo" $env.WEBKIT_DISABLE_COMPOSITING_MODE = "1" - $env.TERMINAL = "kitty" + $env.TERMINAL = "ghostty" $env.EDITOR = "nvim" $env.VISUAL = "zed" $env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden" diff --git a/home/features/coding/default.nix b/home/features/coding/default.nix index 63ea508..62ca319 100644 --- a/home/features/coding/default.nix +++ b/home/features/coding/default.nix @@ -2,6 +2,44 @@ imports = [ ./opencode.nix ]; + programs.mcp = { + enable = true; + servers = { + Ref = { + command = "sh"; + args = ["-c" "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"]; + }; + Anytype = { + command = "sh"; + args = ["-c" "OPENAPI_MCP_HEADERS=$(cat /run/agenix/anytype-key) exec bunx @anyproto/anytype-mcp"]; + disabled = true; + }; + Basecamp = { + command = "/home/m3tam3re/p/AI/Basecamp-MCP-Server/venv/bin/python"; + args = ["/home/m3tam3re/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py"]; + env = { + PYTHONPATH = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server"; + VIRTUAL_ENV = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/venv"; + BASECAMP_ACCOUNT_ID = "5996442"; + }; + disabled = true; + }; + Exa = { + command = "sh"; + args = ["-c" "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"]; + }; + Outline = { + command = "sh"; + args = ["-c" "OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline"]; + disabled = true; + }; + ContextMode = { + command = "sh"; + args = ["-c" "exec bunx context-mode@latest"]; + }; + }; + }; + home.packages = with pkgs; [ agenix-cli alejandra @@ -30,6 +68,7 @@ vulkanSupport = true; cudaSupport = false; }) + pi alejandra sidecar tailwindcss diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index 3951ab5..b86f238 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -24,6 +24,7 @@ programs.opencode = { enable = true; + enableMcpIntegration = true; settings = { theme = "opencode"; plugin = ["oh-my-opencode" "opencode-antigravity-auth@beta"]; @@ -36,57 +37,6 @@ extensions = [".nix"]; }; }; - mcp = { - Ref = { - type = "local"; - command = [ - "sh" - "-c" - "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest" - ]; - enabled = true; - }; - Anytype = { - type = "local"; - command = [ - "sh" - "-c" - "OPENAPI_MCP_HEADERS=$(cat /run/agenix/anytype-key) exec bunx @anyproto/anytype-mcp" - ]; - enabled = false; - }; - Basecamp = { - type = "local"; - command = [ - "/home/m3tam3re/p/AI/Basecamp-MCP-Server/venv/bin/python" - "/home/m3tam3re/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py" - ]; - environment = { - PYTHONPATH = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server"; - VIRTUAL_ENV = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/venv"; - BASECAMP_ACCOUNT_ID = "5996442"; - }; - enabled = false; - }; - Exa = { - type = "local"; - command = [ - "sh" - "-c" - "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa" - ]; - enabled = true; - }; - Outline = { - type = "local"; - command = [ - "sh" - "-c" - "OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline" - ]; - enabled = false; - }; - }; provider = { litellm = { npm = "@ai-sdk/openai-compatible"; diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index efa8367..e31ab82 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -48,7 +48,7 @@ home.sessionVariables = { WEBKIT_DISABLE_COMPOSITING_MODE = "1"; NIXOS_OZONE_WL = "1"; - TERMINAL = "kitty"; + TERMINAL = "ghostty"; QT_QPA_PLATFORM = "wayland"; XDG_CURRENT_DESKTOP = "Hyprland"; XDG_SESSION_TYPE = "wayland"; @@ -58,64 +58,42 @@ fonts.fontconfig.enable = true; - programs.kitty = { + programs.ghostty = { enable = true; - shellIntegration = { - enableFishIntegration = true; - enableBashIntegration = true; - }; - font = {name = "Fira Code";}; - + enableFishIntegration = true; + enableBashIntegration = true; settings = { - copy_on_select = "yes"; + font-family = "Fira Code"; + copy-on-select = true; - # Base colors + # Base colors from nix-colors foreground = "#${config.colorScheme.palette.base05}"; background = "#${config.colorScheme.palette.base00}"; - selection_foreground = "#${config.colorScheme.palette.base07}"; - selection_background = "#${config.colorScheme.palette.base02}"; - - # URL color - url_color = "#${config.colorScheme.palette.base08}"; + selection-foreground = "#${config.colorScheme.palette.base07}"; + selection-background = "#${config.colorScheme.palette.base02}"; # Cursor - cursor = "#${config.colorScheme.palette.base05}"; - cursor_text_color = "#${config.colorScheme.palette.base00}"; + cursor-color = "#${config.colorScheme.palette.base05}"; - # Colors 0-15 - color0 = "#${config.colorScheme.palette.base01}"; - color8 = "#${config.colorScheme.palette.base03}"; - - color1 = "#${config.colorScheme.palette.base08}"; - color9 = "#${config.colorScheme.palette.base08}"; - - color2 = "#${config.colorScheme.palette.base0B}"; - color10 = "#${config.colorScheme.palette.base0B}"; - - color3 = "#${config.colorScheme.palette.base0A}"; - color11 = "#${config.colorScheme.palette.base0A}"; - - color4 = "#${config.colorScheme.palette.base0D}"; - color12 = "#${config.colorScheme.palette.base0D}"; - - color5 = "#${config.colorScheme.palette.base0E}"; - color13 = "#${config.colorScheme.palette.base0E}"; - - color6 = "#${config.colorScheme.palette.base0C}"; - color14 = "#${config.colorScheme.palette.base0C}"; - - color7 = "#${config.colorScheme.palette.base05}"; - color15 = "#${config.colorScheme.palette.base07}"; - - # Tab colors - active_tab_foreground = "#${config.colorScheme.palette.base00}"; - active_tab_background = "#${config.colorScheme.palette.base05}"; - inactive_tab_foreground = "#${config.colorScheme.palette.base05}"; - inactive_tab_background = "#${config.colorScheme.palette.base01}"; - - # Mark colors - mark1_foreground = "#${config.colorScheme.palette.base00}"; - mark1_background = "#${config.colorScheme.palette.base08}"; + # Palette (16 colors) + palette = [ + "0=#${config.colorScheme.palette.base01}" + "1=#${config.colorScheme.palette.base08}" + "2=#${config.colorScheme.palette.base0B}" + "3=#${config.colorScheme.palette.base0A}" + "4=#${config.colorScheme.palette.base0D}" + "5=#${config.colorScheme.palette.base0E}" + "6=#${config.colorScheme.palette.base0C}" + "7=#${config.colorScheme.palette.base05}" + "8=#${config.colorScheme.palette.base03}" + "9=#${config.colorScheme.palette.base08}" + "10=#${config.colorScheme.palette.base0B}" + "11=#${config.colorScheme.palette.base0A}" + "12=#${config.colorScheme.palette.base0D}" + "13=#${config.colorScheme.palette.base0E}" + "14=#${config.colorScheme.palette.base0C}" + "15=#${config.colorScheme.palette.base07}" + ]; }; }; diff --git a/home/features/desktop/hyprland.nix b/home/features/desktop/hyprland.nix index 0f92500..614ee33 100644 --- a/home/features/desktop/hyprland.nix +++ b/home/features/desktop/hyprland.nix @@ -155,7 +155,7 @@ in { "border_color rgb(ffffff), match:xwayland 1" ]; "$mainMod" = "SUPER"; - "$terminal" = "kitty"; + "$terminal" = "ghostty"; bind = [ "$mainMod, return, exec, $terminal nu -c zellij-ps" diff --git a/home/features/desktop/media.nix b/home/features/desktop/media.nix index 35eb1cc..39f4d01 100644 --- a/home/features/desktop/media.nix +++ b/home/features/desktop/media.nix @@ -17,7 +17,6 @@ in { # makemkv # mediainfo amf - blueberry ffmpeg_6-full gimp gst_all_1.gstreamer diff --git a/home/features/desktop/rofi.nix b/home/features/desktop/rofi.nix index 09947df..e17c9a6 100644 --- a/home/features/desktop/rofi.nix +++ b/home/features/desktop/rofi.nix @@ -23,7 +23,7 @@ in { enable = true; package = rofi-pass-wayland; }; - terminal = "\${pkgs.kitty}/bin/kitty"; + terminal = "${pkgs.ghostty}/bin/ghostty"; font = "Fira Code"; extraConfig = { show-icons = true; @@ -199,7 +199,7 @@ in { args = ""; }; }; - terminal = pkgs.kitty; + terminal = pkgs.ghostty; terminalCommand = "opencode %a"; }; }; diff --git a/hosts/common/extraServices/virtualisation.nix b/hosts/common/extraServices/virtualisation.nix index b9adada..34576e9 100644 --- a/hosts/common/extraServices/virtualisation.nix +++ b/hosts/common/extraServices/virtualisation.nix @@ -21,6 +21,7 @@ in { }; }; programs.virt-manager.enable = true; + systemd.services.virt-secret-init-encryption.enable = false; environment = { systemPackages = [pkgs.qemu]; };