From aff642a7553b1bbb768cd0d9c444840464bbabfe Mon Sep 17 00:00:00 2001 From: Phil Pluckthun Date: Thu, 22 Oct 2026 01:30:24 +0100 Subject: [PATCH] Add T3 settings and disable update checks --- home/development/t3code.nix | 30 +++++++++++++++++++++++++++++- modules/server/t3code/default.nix | 1 + 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/home/development/t3code.nix b/home/development/t3code.nix index 029fd09..dcbc2db 100644 --- a/home/development/t3code.nix +++ b/home/development/t3code.nix @@ -3,11 +3,29 @@ with lib; let cfg = config.modules.development.t3code; + json = pkgs.formats.json { }; + settings = json.generate "t3code-settings.json" cfg.settings; auth = import ../../lib/shell-env-wrapper.nix { inherit lib pkgs; }; envFiles = auth.runtimeFiles "${config.home.username}-t3code" cfg.environmentFile osConfig.age.secrets; - wrapperArgs = [ "--set-default" "T3CODE_TELEMETRY_ENABLED" (boolToString cfg.telemetry) ] + wrapperArgs = [ + "--set-default" "T3CODE_TELEMETRY_ENABLED" (boolToString cfg.telemetry) + "--set" "T3CODE_DISABLE_AUTO_UPDATE" "true" + ] ++ auth.wrapperArgs envFiles; + configureSettings = pkgs.writeShellScript "t3code-settings" '' + set -euo pipefail + umask 077 + directory=${escapeShellArg "${config.home.homeDirectory}/.t3/userdata"} + mkdir -p "$directory" + temporary=$(mktemp "$directory/settings.json.XXXXXX") + trap 'rm -f "$temporary"' EXIT + touch "$directory/settings.json" + ${pkgs.jq}/bin/jq -s 'reduce .[] as $settings ({}; . * $settings)' \ + "$directory/settings.json" ${settings} > "$temporary" + mv "$temporary" "$directory/settings.json" + ''; + cliPackage = pkgs.runCommand "t3code-cli" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' mkdir -p $out/bin makeWrapper ${cfg.package}/bin/t3 $out/bin/t3 ${escapeShellArgs wrapperArgs} @@ -34,6 +52,12 @@ let }; in { options.modules.development.t3code = { + settings = mkOption { + default = { }; + type = json.type; + description = "T3 server settings merged on activation; declared values override UI settings."; + }; + environmentFile = auth.environmentFileOptions [ ./encrypt/cursor.env.age ./encrypt/grok.env.age @@ -78,6 +102,10 @@ in { }; config = mkIf cfg.enable { + modules.development.t3code.settings.enableProviderUpdateChecks = mkDefault false; home.packages = [ (if cfg.desktop.enable then desktopPackage else cliPackage) ]; + home.activation.t3codeSettings = mkIf (cfg.settings != { }) (hm.dag.entryAfter [ "writeBoundary" ] '' + run ${configureSettings} + ''); }; } diff --git a/modules/server/t3code/default.nix b/modules/server/t3code/default.nix index 6124141..93fe523 100644 --- a/modules/server/t3code/default.nix +++ b/modules/server/t3code/default.nix @@ -34,6 +34,7 @@ let export T3CODE_HOME=${home}/.t3 T3CODE_NO_BROWSER=true export T3CODE_TELEMETRY_ENABLED=${boolToString homeCfg.telemetry} + export T3CODE_DISABLE_AUTO_UPDATE=true export GIT_TERMINAL_PROMPT=0 GH_PROMPT_DISABLED=1 GH_NO_UPDATE_NOTIFIER=1 # agenix installs secrets asynchronously at boot. -- knotmirror 0.0.1