Add Warp terminal theme import#4714
Draft
brennanb2025 wants to merge 5 commits into
Draft
Conversation
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
- Use the real Warp brand mark for the import button instead of a generic palette icon - Drop the in-modal theme search box; auto-import is a small bundled set - Report import success via a toast and close the modal instead of inline status - Scroll to and briefly highlight the Imported group in the theme picker after import - Hide color swatches on the current/selected theme row so the grid doesn't shift - Split the combined import action into focused GhosttyImportButton and WarpThemeImportButton: Ghostty (whole-config) stays in Typography; Warp (themes) moves beside the theme pickers Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Warp terminal theme import as durable Orca custom terminal themes:
terminalCustomThemessettings model andcustom:<id>terminal theme selections.Importedgroup in the terminal theme picker.Design Review
Created scratch design doc at
design-docs/warp-theme-import.mdand ran the required design-review/fix subagent loop. Final design review returned clean after tightening the canonical custom theme model, privacy constraints, Warp/Ghostty coexistence, and import-only product decision.Implementation Notes
Implementation follows the reviewed design with one intentional compatibility split: existing Ghostty import remains the current color-override flow, while Warp themes land in the new durable custom-theme list. Warp import supports Warp color fields, includes 19 bundled themes by default, and reports unsupported non-terminal-color features rather than attempting to recreate them.
Completeness Verification
Completeness verification subagent result: COMPLETE. No design-contract omissions remained after implementation.
Code Review Loop
Subagent review loop ran until both reviewers in the same current round returned clean.
Earlier rounds found and fixed actionable issues:
Select visibleinitially affected hidden filtered rows.opendir()to avoid full-folder materialization.aria-pressedstate.Final same-round reviewers S and T both returned CLEAN.
Brennan Test Changes
brennan-test-changesverdict: land.Validated in Electron from this exact worktree and branch:
brennanb2025/terminal-themes-integration/Users/thebr/orca/workspaces/orca/goosefish/Users/thebr/orca/workspaces/demo-project/testUI/product validation:
Import from GhosttyandImport from Warp.Choose FileandChoose Folder.Found 19 themes in Warp bundled themes.~/.warp/themes/orca-validation-warp-import-1883.yamland imported it through real UI auto-discovery/import.Importedin the terminal theme picker.terminalCustomThemes[0].id = "warp:orca-validation-warp"terminalThemeDark = "custom:warp:orca-validation-warp"Screenshots captured locally and ignored by git:
validation-screenshots/warp-theme-import/appearance-import-controls.pngvalidation-screenshots/warp-theme-import/warp-import-empty-modal.pngvalidation-screenshots/warp-theme-import/warp-import-fixture-preview.pngvalidation-screenshots/warp-theme-import/imported-theme-picker-selected.pngCleanup performed:
.gitignore.Tests
pnpm exec vitest run --config config/vitest.config.ts src/main/warp-themes/index.test.ts src/main/warp-themes/parser-runner.test.ts src/main/warp-themes/parser.test.ts src/main/warp-themes/discovery.test.ts src/shared/terminal-custom-themes.test.ts src/renderer/src/components/settings/TerminalAppearanceSection.ghostty.test.ts src/renderer/src/components/settings/AppearancePane.test.tsx src/renderer/src/components/settings/useWarpThemeImport.test.ts src/renderer/src/lib/terminal-theme.test.ts src/main/ipc/settings.test.ts src/main/warp-themes/bundled-themes.test.ts— 11 files / 69 tests passedpnpm run typecheckpnpm run lint— passed with existing React hook warningsgit diff --checkAccepted Gaps / Risks
Made with Orca 🐋