From 60fbc75d5e54430a240198533dbe34f7c36fc92d Mon Sep 17 00:00:00 2001 From: "sascha.koenig" Date: Mon, 16 Mar 2026 07:47:22 +0100 Subject: [PATCH] +ghostty --- flake.lock | 26 +++++++++--------- home/features/cli/fish.nix | 2 +- home/features/cli/nushell.nix | 2 +- home/features/coding/default.nix | 33 +++++++++++++++++++++++ home/features/coding/opencode.nix | 43 +----------------------------- home/features/desktop/default.nix | 14 +++++----- home/features/desktop/hyprland.nix | 2 +- home/features/desktop/rofi.nix | 4 +-- pkgs/default.nix | 2 +- 9 files changed, 59 insertions(+), 69 deletions(-) diff --git a/flake.lock b/flake.lock index 1970463..51d0c87 100644 --- a/flake.lock +++ b/flake.lock @@ -24,11 +24,11 @@ "agents": { "flake": false, "locked": { - "lastModified": 1772563257, - "narHash": "sha256-hp6Q8TVP9xZeBFgZm51ndCacmVZxucZzLtj12pzD6c0=", + "lastModified": 1773479083, + "narHash": "sha256-qwope4VrtrMsebTjyqhiwO6NxZ4t8kk+65K8y41ada0=", "ref": "refs/heads/master", - "rev": "39ac89f388532e9a7629808037791c64cd5fc13c", - "revCount": 63, + "rev": "8bcb5e11fbfeb4c00b81358163162324d0893ff8", + "revCount": 64, "type": "git", "url": "https://code.m3ta.dev/m3tam3re/AGENTS" }, @@ -492,11 +492,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1773201098, - "narHash": "sha256-yq35qMKDHyMdVlhGfR5BojbjniY2cY9XYmiILeCf1Xc=", + "lastModified": 1773631298, + "narHash": "sha256-ayzlBBwiXP30BiI+T4POukapy+x0TG7MVsWbTIfUDac=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "8578734bf5087a1ca45033c2ec8e1a2228f9b95c", + "rev": "49964b8b4efa9ed7ffab7cbd63497ab029bdfc82", "type": "github" }, "original": { @@ -774,11 +774,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1772956932, - "narHash": "sha256-M0yS4AafhKxPPmOHGqIV0iKxgNO8bHDWdl1kOwGBwRY=", + "lastModified": 1773507054, + "narHash": "sha256-Q8U5VXgrcxmCxPtCCJCIZkcAX3FCZwGh1GNVIXxMND0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "608d0cadfed240589a7eea422407a547ad626a14", + "rev": "e80236013dc8b77aa49ca90e7a12d86f5d8d64c9", "type": "github" }, "original": { @@ -1057,11 +1057,11 @@ ] }, "locked": { - "lastModified": 1772660329, - "narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=", + "lastModified": 1773297127, + "narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "3710e0e1218041bbad640352a0440114b1e10428", + "rev": "71b125cd05fbfd78cab3e070b73544abe24c5016", "type": "github" }, "original": { diff --git a/home/features/cli/fish.nix b/home/features/cli/fish.nix index ba60550..962e3fa 100644 --- a/home/features/cli/fish.nix +++ b/home/features/cli/fish.nix @@ -15,7 +15,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 zeditor set -x XDG_DATA_HOME $HOME/.local/share diff --git a/home/features/cli/nushell.nix b/home/features/cli/nushell.nix index 5c1e6a8..416c4e8 100644 --- a/home/features/cli/nushell.nix +++ b/home/features/cli/nushell.nix @@ -17,7 +17,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 = "zeditor" $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 be27804..51e1c79 100644 --- a/home/features/coding/default.nix +++ b/home/features/coding/default.nix @@ -2,12 +2,45 @@ 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"]; + }; + Basecamp = { + command = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/venv/bin/python"; + args = ["/home/sascha.koenig/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py"]; + env = { + PYTHONPATH = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server"; + VIRTUAL_ENV = "/home/sascha.koenig/p/AI/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 bc bun devpod + kitty #devpod-desktop (python3.withPackages (ps: with ps; [ diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index a61f32d..f43ec3c 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -20,6 +20,7 @@ programs.opencode = { enable = true; + enableMcpIntegration = true; settings = { theme = "opencode"; plugin = ["oh-my-opencode" "opencode-beads"]; @@ -79,48 +80,6 @@ }; }; }; - mcp = { - Ref = { - type = "local"; - command = [ - "sh" - "-c" - "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest" - ]; - enabled = true; - }; - 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; - }; - Basecamp = { - type = "local"; - command = [ - "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/venv/bin/python" - "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py" - ]; - environment = { - PYTHONPATH = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server"; - VIRTUAL_ENV = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/venv"; - BASECAMP_ACCOUNT_ID = "5996442"; - }; - enabled = false; - }; - 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; - }; - }; }; }; diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index a560311..acd70e5 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -43,7 +43,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"; @@ -53,15 +53,13 @@ fonts.fontconfig.enable = true; - programs.kitty = { + programs.ghostty = { enable = true; - shellIntegration = { - enableFishIntegration = true; - enableBashIntegration = true; + settings = { + font-family = "Fira Code"; + theme = "Dracula"; + copy-on-select = "clipboard"; }; - font = {name = "Fira Code";}; - themeFile = "Dracula"; - settings = {copy_on_select = "yes";}; }; home.pointerCursor = { diff --git a/home/features/desktop/hyprland.nix b/home/features/desktop/hyprland.nix index 07b31bf..d1da50a 100644 --- a/home/features/desktop/hyprland.nix +++ b/home/features/desktop/hyprland.nix @@ -155,7 +155,7 @@ in { ]; "$mainMod" = "SUPER"; - "$terminal" = "uwsm app -- kitty"; + "$terminal" = "uwsm app -- ghostty"; bind = [ "$mainMod, return, exec, nu -c zellij-ps" diff --git a/home/features/desktop/rofi.nix b/home/features/desktop/rofi.nix index c229458..00f3993 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; @@ -195,7 +195,7 @@ in { args = "--agent chiron"; }; }; - terminal = pkgs.kitty; + terminal = pkgs.ghostty; terminalCommand = "opencode %a"; }; }; diff --git a/pkgs/default.nix b/pkgs/default.nix index c1471f1..a027453 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -7,5 +7,5 @@ zellij-ps = pkgs.callPackage ./zellij-ps {}; aider-chat-env = pkgs.callPackage ./aider-chat-env {}; code2prompt = pkgs.callPackage ./code2prompt {}; - pomodoro-timer = pkgs.callPackage ./pomodoro-timer {}; + # pomodoro-timer = pkgs.callPackage ./pomodoro-timer {}; }