From dcf8ba40bb7878d080956d5ac22e46764465fd6c Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 5 May 2026 02:17:20 -0700 Subject: [PATCH] fix(code): default web editor to dark theme --- internal/cli/code.go | 5 +++++ internal/cli/code_test.go | 2 ++ 2 files changed, 7 insertions(+) diff --git a/internal/cli/code.go b/internal/cli/code.go index 81e1f20..f7d1ee6 100644 --- a/internal/cli/code.go +++ b/internal/cli/code.go @@ -214,6 +214,7 @@ func startCodeServerCommand(workdir string) string { return strings.Join([]string{ "mkdir -p " + shellQuote(workdir), "pidfile=" + shellQuote(pidfile) + "; if [ -s \"$pidfile\" ]; then oldpid=$(cat \"$pidfile\" 2>/dev/null || true); if [ -n \"$oldpid\" ] && kill -0 \"$oldpid\" 2>/dev/null; then kill \"$oldpid\" 2>/dev/null || true; for i in 1 2 3 4 5 6 7 8 9 10; do kill -0 \"$oldpid\" 2>/dev/null || break; sleep 0.2; done; if kill -0 \"$oldpid\" 2>/dev/null; then kill -9 \"$oldpid\" 2>/dev/null || true; fi; fi; fi", + codeServerSettingsCommand(), "(nohup env VSCODE_PROXY_URI='./proxy/{{port}}' " + codeServerBinary + " --auth none --bind-addr 127.0.0.1:" + managedCodePort + " --disable-telemetry --disable-update-check " + shellQuote(workdir) + @@ -221,6 +222,10 @@ func startCodeServerCommand(workdir string) string { }, " && ") } +func codeServerSettingsCommand() string { + return `settings="$HOME/.local/share/code-server/User/settings.json"; mkdir -p "$(dirname "$settings")"; tmp=$(mktemp); if [ -s "$settings" ] && command -v jq >/dev/null 2>&1 && jq '. + {"workbench.colorTheme":"Default Dark Modern"}' "$settings" > "$tmp"; then mv "$tmp" "$settings"; else printf '%s\n' '{"workbench.colorTheme":"Default Dark Modern"}' > "$settings"; rm -f "$tmp"; fi` +} + type codeBridge struct { ws *websocket.Conn baseURL string diff --git a/internal/cli/code_test.go b/internal/cli/code_test.go index a69c68f..1abe3f5 100644 --- a/internal/cli/code_test.go +++ b/internal/cli/code_test.go @@ -81,6 +81,8 @@ func TestStartCodeServerCommand(t *testing.T) { "--auth none", "--bind-addr 127.0.0.1:8080", "VSCODE_PROXY_URI='./proxy/{{port}}'", + "workbench.colorTheme", + "Default Dark Modern", "/tmp/crabbox-code-server.log", "/tmp/crabbox-code-server.pid", } {