The fork shipped renamed binary/bundle but the product name "Zed" was still
shown everywhere in the UI. Rename the display name to "Joule" (tagline
"Energy-metered agentic coding") while preserving every load-bearing reference.
Display renames (105 .rs files): release_channel display_name, welcome +
onboarding + ai_onboarding, macOS app menu (About/Hide/Quit), window titles,
About panel, settings UI, notifications, update/collab messages, system specs.
Bundle display name (crates/zed/Cargo.toml) -> "Joule" so CFBundleName / the
menu-bar name and the .app are "Joule" (identifier science.transaction.AgentJoule
and the agent-joule binary are unchanged).
Docs (223 .md): product prose Zed -> Joule, fence-aware (code blocks untouched).
Embedded assets (12 JSONC): // comments only.
Legal (4 files): product -> Joule, entity "Zed Industries, Inc." -> "Transaction
Science, Inc.", domain zed.dev -> openie.dev. NOTE: these are structurally Zed's
inherited terms and need a real legal review, not just a rename.
Deliberately PRESERVED (renaming would break the app): font aliases ("Zed Plex
Sans"/".ZedMono" in text_system + assets), HTTP header names (X-Zed-Predict-*),
zed:: action ids, app/bundle identifiers (dev.zed.Zed*, Zed-Editor-* product ids),
zed.dev URLs, ZED_* env vars, crate/package names, "Zed Industries" in non-legal
attribution, and the {zed,Zed} config-dir glob.
Signed + notarized + stapled as Joule.app, installed to /Applications, verified
(Gatekeeper: Notarized Developer ID, FH93XC2VRR). Caveat: test-code string
literals were renamed too, so some `cargo test` assertions may need updating.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
83 lines
2.6 KiB
JSON
83 lines
2.6 KiB
JSON
[
|
|
// Cursor for MacOS. See: https://docs.cursor.com/kbd
|
|
{
|
|
"context": "Workspace",
|
|
"use_key_equivalents": true,
|
|
"bindings": {
|
|
"cmd-i": "agent::ToggleFocus",
|
|
"cmd-shift-i": "agent::ToggleFocus",
|
|
"cmd-l": "agent::ToggleFocus",
|
|
"cmd-shift-l": "agent::ToggleFocus",
|
|
"cmd-shift-j": "agent::OpenSettings",
|
|
},
|
|
},
|
|
{
|
|
"context": "Editor && mode == full",
|
|
"use_key_equivalents": true,
|
|
"bindings": {
|
|
"cmd-i": "agent::ToggleFocus",
|
|
"cmd-shift-i": "agent::ToggleFocus",
|
|
"cmd-shift-l": "agent::AddSelectionToThread", // In cursor uses "Ask" mode
|
|
"cmd-l": "agent::AddSelectionToThread", // In cursor uses "Agent" mode
|
|
"cmd-k": "assistant::InlineAssist",
|
|
},
|
|
},
|
|
{
|
|
"context": "InlineAssistant > Editor",
|
|
"use_key_equivalents": true,
|
|
"bindings": {
|
|
"cmd-shift-backspace": "editor::Cancel",
|
|
"cmd-enter": "menu::Confirm",
|
|
// "alt-enter": // Quick Question
|
|
// "cmd-shift-enter": // Full File Context
|
|
// "cmd-shift-k": // Toggle input focus (editor <> inline assist)
|
|
},
|
|
},
|
|
{
|
|
"context": "AgentPanel || (MessageEditor > Editor)",
|
|
"use_key_equivalents": true,
|
|
"bindings": {
|
|
"cmd-i": "workspace::ToggleRightDock",
|
|
"cmd-shift-i": "workspace::ToggleRightDock",
|
|
"cmd-l": "workspace::ToggleRightDock",
|
|
"cmd-shift-l": "workspace::ToggleRightDock",
|
|
"cmd-w": "workspace::ToggleRightDock", // technically should close chat
|
|
"cmd-.": "agent::ToggleProfileSelector",
|
|
"cmd-/": "agent::ToggleModelSelector",
|
|
"cmd-shift-backspace": "editor::Cancel",
|
|
"cmd-r": "agent::NewThread",
|
|
"cmd-shift-v": "editor::Paste",
|
|
// "escape": "agent::ToggleFocus"
|
|
///// Enable when Joule supports multiple thread tabs
|
|
// "cmd-t": // new thread tab
|
|
// "cmd-[": // next thread tab
|
|
// "cmd-]": // next thread tab
|
|
///// Enable if Joule adds support for keyboard navigation of thread elements
|
|
// "tab": // cycle to next message
|
|
// "shift-tab": // cycle to previous message
|
|
},
|
|
},
|
|
{
|
|
"context": "Editor && editor_agent_diff",
|
|
"use_key_equivalents": true,
|
|
"bindings": {
|
|
"cmd-enter": "agent::KeepAll",
|
|
"cmd-backspace": "agent::RejectAll",
|
|
},
|
|
},
|
|
{
|
|
"context": "Editor && mode == full && edit_prediction",
|
|
"use_key_equivalents": true,
|
|
"bindings": {
|
|
"cmd-right": "editor::AcceptNextWordEditPrediction",
|
|
"cmd-down": "editor::AcceptNextLineEditPrediction",
|
|
},
|
|
},
|
|
{
|
|
"context": "Terminal",
|
|
"use_key_equivalents": true,
|
|
"bindings": {
|
|
"cmd-k": "assistant::InlineAssist",
|
|
},
|
|
},
|
|
]
|