Rebrand Warp to Galaxy v1.1.0

- Rename all UI-facing "Warp" references to "Galaxy"
- Rename "Warpify" to "Wormhole" throughout the UI
- Replace app icons with 5 new Galaxy-branded variants
- Update About page to show selected app icon dynamically
- Rephrase Privacy page for Bedrock context
- Remove "Fallback to Warp server" toggle from Bedrock settings
- Widen model selector dropdowns in profile editor (480px)
- Update TERM_PROGRAM to "GalaxyTerminal"
- Bump version to 1.1.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ryan Ward
2026-05-19 11:21:44 -05:00
co-authored by Claude Opus 4.6
parent 99159184cb
commit ccc67e6a33
139 changed files with 319 additions and 398 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ description = "Galaxy - AI-powered terminal"
edition = "2021"
autobins = false
name = "galaxy"
version = "1.0.0"
version = "1.1.0"
publish.workspace = true
license.workspace = true
Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1024 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 583 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1024 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

+1 -1
View File
@@ -283,7 +283,7 @@ static DEFAULT_TIPS: LazyLock<Vec<AgentTip>> = LazyLock::new(|| {
kind: AgentTipKind::Context,
},
AgentTip {
description: "Galaxyize a remote SSH session to enable the agent inside that environment.".to_string(),
description: "Wormhole a remote SSH session to enable the agent inside that environment.".to_string(),
link: Some("https://docs.warp.dev/terminal/warpify".to_string()),
binding_name: None,
action: None,
+5 -1
View File
@@ -42,7 +42,7 @@ use galaxyui::{
};
use std::path::{Path, PathBuf};
const MODEL_MENU_WIDTH: f32 = 250.;
const MODEL_MENU_WIDTH: f32 = 480.;
/// Renders a footer banner for model dropdowns informing free-plan users that
/// frontier models require an upgrade, with a clickable "Upgrade" link.
@@ -480,21 +480,25 @@ impl ExecutionProfileEditorView {
let base_model_dropdown = ctx.add_typed_action_view(|ctx| {
let mut dropdown = FilterableDropdown::new(ctx);
dropdown.set_top_bar_max_width(MODEL_MENU_WIDTH);
dropdown.set_menu_width(MODEL_MENU_WIDTH, ctx);
dropdown
});
let coding_model_dropdown = ctx.add_typed_action_view(|ctx| {
let mut dropdown = Dropdown::new(ctx);
dropdown.set_top_bar_max_width(MODEL_MENU_WIDTH);
dropdown.set_menu_width(MODEL_MENU_WIDTH, ctx);
dropdown
});
let full_terminal_use_model_dropdown = ctx.add_typed_action_view(|ctx| {
let mut dropdown = FilterableDropdown::new(ctx);
dropdown.set_top_bar_max_width(MODEL_MENU_WIDTH);
dropdown.set_menu_width(MODEL_MENU_WIDTH, ctx);
dropdown
});
let computer_use_model_dropdown = ctx.add_typed_action_view(|ctx| {
let mut dropdown = FilterableDropdown::new(ctx);
dropdown.set_top_bar_max_width(MODEL_MENU_WIDTH);
dropdown.set_menu_width(MODEL_MENU_WIDTH, ctx);
dropdown
});
+2 -2
View File
@@ -224,9 +224,9 @@ impl AppearanceManager {
// revert to the icon we started up with. We therefore need to use an in-memory
// override to display the default icon. This has the drawback of _not_ inheriting the
// preferred icon style, but that icon style _will_ apply on next app restart.
if icon == AppIcon::Default
if icon == AppIcon::Galaxy
&& ChannelState::channel() != Channel::Local
&& self.app_icon_at_startup == AppIcon::Default
&& self.app_icon_at_startup == AppIcon::Galaxy
{
log::debug!("User has default icon selected, resetting to bundle default");
// Reset to nil to use the bundle's default icon
+1 -1
View File
@@ -149,7 +149,7 @@ pub fn maybe_log_out(app: &mut AppContext) {
"object"
};
info_text_vec.push(format!(
"You have {num_unsaved_objects} unsynced Warp Drive {plural}. \
"You have {num_unsaved_objects} unsynced Galaxy Drive {plural}. \
Logging out will cause you to lose the {plural}."
));
}
+5 -5
View File
@@ -210,10 +210,10 @@ mod package_manager {
))],
}),
FormattedTextLine::Line(vec![
FormattedTextFragment::plain_text("If you installed Warp using "),
FormattedTextFragment::plain_text("If you installed Galaxy using "),
FormattedTextFragment::bold(package_manager_name),
FormattedTextFragment::plain_text(
" or a compatible tool, the pre-filled command will update Warp for you.",
" or a compatible tool, the pre-filled command will update Galaxy for you.",
),
]),
];
@@ -221,7 +221,7 @@ mod package_manager {
if self.package_manager.needs_repository_configuration() {
lines.push(FormattedTextLine::Line(vec![
FormattedTextFragment::plain_text(
"\nThe command below includes a one-time configuration of the Warp package repository and PGP signing key.",
"\nThe command below includes a one-time configuration of the Galaxy package repository and PGP signing key.",
),
]));
}
@@ -236,7 +236,7 @@ mod package_manager {
),
FormattedTextFragment::inline_code("warp_handle_dist_upgrade"),
FormattedTextFragment::plain_text(
" function ensures the Warp package repository is enabled, as we've detected you recently upgraded your distribution.",
" function ensures the Galaxy package repository is enabled, as we've detected you recently upgraded your distribution.",
),
]));
}
@@ -244,7 +244,7 @@ mod package_manager {
lines.push(FormattedTextLine::Line(vec![
FormattedTextFragment::plain_text("\nReview the command below, then "),
FormattedTextFragment::bold("press enter"),
FormattedTextFragment::plain_text(" to install the update and re-launch Warp. "),
FormattedTextFragment::plain_text(" to install the update and re-launch Galaxy. "),
FormattedTextFragment::hyperlink(
"Please report any issues",
"https://github.com/warpdotdev/Warp/issues/new/choose",
+1 -1
View File
@@ -678,7 +678,7 @@ pub fn accessibility_content(
// Found autoupdate
(RequestType::ManualCheck, Ok(UpdateReady::Yes { .. })) => Some(AccessibilityContent::new(
"Update available.",
"Use the command palette to install and relaunch Warp",
"Use the command palette to install and relaunch Galaxy",
WarpA11yRole::HelpRole,
)),
// Any non-successful autoupdate check
@@ -21,10 +21,10 @@ const BUTTON_BORDER_RADIUS: f32 = 4.;
const DEFAULT_DELINQUENT_ADMIN_MODAL_SUBHEADER: &str = "Shared drive objects have been restricted due to a subscription payment issue.\n\nPlease update your payment information to restore access.";
const DEFAULT_DELINQUENT_ADMIN_ENTERPRISE_MODAL_SUBHEADER: &str = "Shared drive objects have been restricted due to a subscription payment issue.\n\nPlease contact support@warp.dev to restore access.";
const DEFAULT_DELINQUENT_MODAL_SUBHEADER: &str = "Shared drive objects have been restricted due to a subscription payment issue.\n\nPlease contact a team admin to restore access.";
const DEFAULT_ADMIN_PROSUMER_MODAL_SUBHEADER: &str = "Warp's Pro plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, upgrade to the Turbo plan.";
const DEFAULT_PROSUMER_MODAL_SUBHEADER: &str = "Warp's Pro plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, contact a team admin to upgrade to the Turbo plan.";
const DEFAULT_ADMIN_MODAL_SUBHEADER: &str = "Warp's free plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, upgrade to a paid plan.";
const DEFAULT_MODAL_SUBHEADER: &str = "Warp's free plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, contact a team admin to upgrade to a paid plan.";
const DEFAULT_ADMIN_PROSUMER_MODAL_SUBHEADER: &str = "Galaxy's Pro plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, upgrade to the Turbo plan.";
const DEFAULT_PROSUMER_MODAL_SUBHEADER: &str = "Galaxy's Pro plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, contact a team admin to upgrade to the Turbo plan.";
const DEFAULT_ADMIN_MODAL_SUBHEADER: &str = "Galaxy's free plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, upgrade to a paid plan.";
const DEFAULT_MODAL_SUBHEADER: &str = "Galaxy's free plan comes with a limited number of shared drive objects.\n\nFor access to unlimited shared drive objects, contact a team admin to upgrade to a paid plan.";
const VIEW_PLANS_TEXT: &str = "Compare plans";
const MANAGE_BILLING_BUTTON_TEXT: &str = "Manage billing";
@@ -104,13 +104,13 @@ impl View for SharedObjectsCreationDeniedBody {
},
(true, false, _) => format!("Shared {object_type}s have been restricted due to a subscription payment issue.\n\nPlease contact a team admin to restore access."),
(false, true, CustomerType::Prosumer) => {
format!("Warp's Pro plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, upgrade to the Build plan.")
format!("Galaxy's Pro plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, upgrade to the Build plan.")
}
(false, false, CustomerType::Prosumer) => {
format!("Warp's Pro plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, contact a team admin to upgrade to the Build plan.")
format!("Galaxy's Pro plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, contact a team admin to upgrade to the Build plan.")
}
(false, true, _) => format!("Warp's free plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, upgrade to a paid plan."),
(false, false, _) => format!("Warp's free plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, contact a team admin to upgrade to a paid plan."),
(false, true, _) => format!("Galaxy's free plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, upgrade to a paid plan."),
(false, false, _) => format!("Galaxy's free plan comes with a limited number of shared {object_type}s.\n\nFor access to unlimited shared {object_type}s, contact a team admin to upgrade to a paid plan."),
}
}
_ => match (
+2 -2
View File
@@ -232,12 +232,12 @@ fn main() {
);
root.insert(
"title".to_string(),
Value::String("Warp Settings".to_string()),
Value::String("Galaxy Settings".to_string()),
);
root.insert(
"description".to_string(),
Value::String(format!(
"JSON Schema for Warp settings ({channel} channel, {entry_count} settings)"
"JSON Schema for Galaxy settings ({channel} channel, {entry_count} settings)"
)),
);
root.insert("type".to_string(), Value::String("object".to_string()));
+4 -4
View File
@@ -107,7 +107,7 @@ use pathfinder_geometry::vector::{vec2f, Vector2F};
use std::{any::Any, collections::HashMap, sync::Arc};
use url::Url;
const WARP_DRIVE_TITLE: &str = "Warp Drive";
const WARP_DRIVE_TITLE: &str = "Galaxy Drive";
// Team zero state consts
const HINT_HORIZONTAL_PADDING: f32 = 18.;
@@ -1721,7 +1721,7 @@ impl DriveIndex {
(DriveIndexVariant::MainIndex, DriveIndexSection::JoinTeam) => {
if self.is_online(app) {
let join_teams_text = format!(
"Collaborate with {} of your teammates already on Warp.",
"Collaborate with {} of your teammates already on Galaxy.",
UserWorkspaces::handle(app)
.as_ref(app)
.total_teammates_in_joinable_teams()
@@ -2974,7 +2974,7 @@ impl DriveIndex {
if mouse_state.is_hovered() {
let tooltip = appearance
.ui_builder()
.tool_tip(String::from("Syncing Warp Drive"));
.tool_tip(String::from("Syncing Galaxy Drive"));
stack.add_positioned_overlay_child(
tooltip.build().finish(),
@@ -3956,7 +3956,7 @@ impl DriveIndex {
.with_cross_axis_alignment(CrossAxisAlignment::Start)
.with_main_axis_alignment(MainAxisAlignment::SpaceBetween)
.with_child(
Text::new_inline("Warp Drive".to_string(), appearance.ui_font_family(), 14.)
Text::new_inline("Galaxy Drive".to_string(), appearance.ui_font_family(), 14.)
.with_color(theme.main_text_color(background_color).into())
.with_style(Properties {
weight: galaxyui::fonts::Weight::Bold,
+2 -2
View File
@@ -15,7 +15,7 @@ define_settings_group!(WarpDriveSettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "warp_drive.sorting_choice",
description: "The sort order for items in Warp Drive.",
description: "The sort order for items in Galaxy Drive.",
},
sharing_onboarding_block_shown: WarpDriveSharingOnboardingBlockShown {
type: bool,
@@ -32,7 +32,7 @@ define_settings_group!(WarpDriveSettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "warp_drive.enabled",
description: "Whether Warp Drive is enabled.",
description: "Whether Galaxy Drive is enabled.",
},
]);
+1 -1
View File
@@ -853,7 +853,7 @@ fn run_internal(mut launch_mode: LaunchMode) -> Result<()> {
|| std::env::var("WARPUI_USE_REAL_DISPLAY_IN_INTEGRATION_TESTS").is_ok();
app_builder.set_activate_on_launch(activate_on_launch);
let dev_icon = ASSETS.get("bundled/png/local.png")?;
let dev_icon = ASSETS.get("bundled/png/galaxy.png")?;
app_builder.set_dev_icon(dev_icon);
app_builder.set_menu_bar_builder(app_menus::menu_bar);
+1 -1
View File
@@ -2912,7 +2912,7 @@ impl PaneGroup {
Banner::<PaneGroupAction>::new_permanently_dismissible(
BannerTextContent::formatted_text(vec![
FormattedTextFragment::plain_text(
"Warp doesn't currently support your default shell, falling back to zsh. ",
"Galaxy doesn't currently support your default shell, falling back to zsh. ",
),
FormattedTextFragment::hyperlink("Learn more", WARP_SHELL_COMPATIBILITY_DOCS),
]),
+1 -1
View File
@@ -394,7 +394,7 @@ impl ResourceCenterMainView {
.with_text_and_icon_label(
TextAndIcon::new(
TextAndIconAlignment::IconFirst,
"Invite a friend to Warp",
"Invite a friend to Galaxy",
Icon::new(SEND_SVG_PATH, appearance.theme().accent()),
MainAxisSize::Max,
MainAxisAlignment::Center,
@@ -40,7 +40,7 @@ impl FeatureSection {
match self {
FeatureSection::WhatsNew => "What's New?",
FeatureSection::GettingStarted => "Getting Started",
FeatureSection::MaximizeWarp => "Maximize Warp",
FeatureSection::MaximizeWarp => "Maximize Galaxy",
FeatureSection::AdvancedSetup => "Advanced Setup",
}
}
+7 -7
View File
@@ -36,13 +36,13 @@ pub fn sections(ctx: &mut ViewContext<ResourceCenterMainView>) -> Vec<Section> {
),
FeatureItem::new(
"Open command palette",
"Access all of Warp via the keyboard.",
"Access all of Galaxy via the keyboard.",
Tip::Action(TipAction::CommandPalette),
ctx,
),
FeatureItem::new(
"Set your theme",
"Make Warp your own by choosing a theme.",
"Make Galaxy your own by choosing a theme.",
Tip::Action(TipAction::ThemePicker),
ctx,
),
@@ -61,19 +61,19 @@ pub fn sections(ctx: &mut ViewContext<ResourceCenterMainView>) -> Vec<Section> {
items: vec![
ContentItem {
title: "Use your custom prompt",
description: "Set up Warp to honor your PS1 setting",
description: "Set up Galaxy to honor your PS1 setting",
url: "https://docs.warp.dev/terminal/appearance/prompt",
button_label: "View documentation",
},
ContentItem {
title: "Integrate Warp with your IDE",
description: "Configure Warp to launch from your most used development tools",
title: "Integrate Galaxy with your IDE",
description: "Configure Galaxy to launch from your most used development tools",
url: "https://docs.warp.dev/terminal/integrations-and-plugins",
button_label: "View documentation",
},
ContentItem {
title: "How Warp uses Warp",
description: "Learn how Warp's engineering team uses their favorite features",
title: "How Galaxy uses Galaxy",
description: "Learn how Galaxy's engineering team uses their favorite features",
url: "https://www.warp.dev/blog/how-warp-uses-warp",
button_label: "Read article",
},
+2 -2
View File
@@ -124,7 +124,7 @@ pub fn get_additional_keybindings() -> Vec<CommandBinding> {
),
CommandBinding::new(
"workspace:hide_warp".into(),
"Hide Warp".into(),
"Hide Galaxy".into(),
Some(Keystroke::parse("cmd-h").expect("Valid keystroke")),
),
CommandBinding::new(
@@ -134,7 +134,7 @@ pub fn get_additional_keybindings() -> Vec<CommandBinding> {
),
CommandBinding::new(
"workspace:quit_warp".into(),
"Quit Warp".into(),
"Quit Galaxy".into(),
Some(Keystroke::parse("cmd-q").expect("Valid keystroke")),
),
CommandBinding::new(
+1 -1
View File
@@ -336,7 +336,7 @@ impl ResourceCenterView {
if FeatureFlag::AvatarInTabBar.is_enabled() {
String::new()
} else {
"Warp Essentials".to_string()
"Galaxy Essentials".to_string()
}
}
};
+2 -2
View File
@@ -23,9 +23,9 @@ const TITLE_FONT_SIZE: f32 = 20.;
const TITLE_MARGIN_BOTTOM: f32 = 25.;
// Constants for the subtitle
const SUBTITLE_SENT_REFERRAL: &str =
"You earned an exclusive Warp theme for referring someone to Warp.";
"You earned an exclusive Galaxy theme for referring someone to Galaxy.";
const SUBTITLE_RECEIVED_REFERRAL: &str =
"You earned an exclusive Warp theme for being referred to Warp.";
"You earned an exclusive Galaxy theme for being referred to Galaxy.";
const SUBTITLE_FONT_SIZE: f32 = 14.;
const SUBTITLE_MARGIN_BOTTOM: f32 = 40.;
// Constants for the button
+5 -5
View File
@@ -794,7 +794,7 @@ fn open_from_restored(arg: &OpenFromRestoredArg, ctx: &mut AppContext) {
AddWindowOptions {
window_style: WindowStyle::Pin,
window_bounds: WindowBounds::ExactPosition(frame_args.window_bounds),
title: Some("Warp".to_owned()),
title: Some("Galaxy".to_owned()),
fullscreen_state: window.fullscreen_state,
background_blur_radius_pixels,
background_blur_texture,
@@ -837,7 +837,7 @@ fn open_from_restored(arg: &OpenFromRestoredArg, ctx: &mut AppContext) {
ctx.add_window(
AddWindowOptions {
window_bounds: WindowBounds::new(window.bounds),
title: Some("Warp".to_owned()),
title: Some("Galaxy".to_owned()),
fullscreen_state: window.fullscreen_state,
background_blur_radius_pixels,
background_blur_texture,
@@ -889,7 +889,7 @@ fn open_from_restored(arg: &OpenFromRestoredArg, ctx: &mut AppContext) {
ctx.add_window(
AddWindowOptions {
window_bounds: WindowBounds::new(window.bounds),
title: Some("Warp".to_owned()),
title: Some("Galaxy".to_owned()),
fullscreen_state: window.fullscreen_state,
background_blur_radius_pixels,
background_blur_texture,
@@ -1247,7 +1247,7 @@ fn default_window_options(window_settings: &WindowSettings, ctx: &AppContext) ->
AddWindowOptions {
window_style,
window_bounds: next_bounds,
title: Some("Warp".to_owned()),
title: Some("Galaxy".to_owned()),
background_blur_radius_pixels: Some(*window_settings.background_blur_radius),
background_blur_texture: *window_settings.background_blur_texture,
on_gpu_driver_selected: on_gpu_driver_selected_callback(),
@@ -1432,7 +1432,7 @@ fn toggle_quake_mode_window(global_resource_handles: &GlobalResourceHandles, ctx
AddWindowOptions {
window_style: WindowStyle::Pin,
window_bounds: WindowBounds::ExactPosition(config.window_bounds),
title: Some("Warp".to_owned()),
title: Some("Galaxy".to_owned()),
background_blur_radius_pixels: Some(*window_settings.background_blur_radius),
background_blur_texture: *window_settings.background_blur_texture,
// Ignore the quake window for positioning the next window
+2 -2
View File
@@ -160,7 +160,7 @@ pub enum AIApiError {
#[error("Request failed due to lack of AI quota.")]
QuotaLimit,
#[error("Warp is currently overloaded. Please try again later.")]
#[error("Galaxy is currently overloaded. Please try again later.")]
ServerOverloaded,
#[error("Internal error occurred at transport layer.")]
@@ -337,7 +337,7 @@ pub enum TranscribeError {
#[error("Request failed due to lack of Voice quota.")]
QuotaLimit,
#[error("Warp is currently overloaded. Please try again later.")]
#[error("Galaxy is currently overloaded. Please try again later.")]
ServerOverloaded,
#[error("Internal error occurred at transport layer.")]
+4 -4
View File
@@ -1118,7 +1118,7 @@ define_settings_group!(AISettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "ai.bedrock.fallback_to_warp",
description: "Whether to fall back to the Warp server when Bedrock credentials are invalid.",
description: "Whether to fall back to the Galaxy server when Bedrock credentials are invalid.",
}
// Custom Bedrock model configurations.
bedrock_models: BedrockModels {
@@ -1192,7 +1192,7 @@ define_settings_group!(AISettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "agents.knowledge.warp_drive_context_enabled",
description: "Whether Warp Drive context is included in AI requests.",
description: "Whether Galaxy Drive context is included in AI requests.",
}
// Whether the codebase speedbump banner has been permanently dismissed for a given repo path.
@@ -1295,7 +1295,7 @@ define_settings_group!(AISettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "cloud_platform.third_party_api_keys.can_use_warp_credits_with_byok",
description: "Whether Warp credits can be used even when providing your own API key.",
description: "Whether Galaxy credits can be used even when providing your own API key.",
}
should_render_use_agent_footer_for_user_commands: ShouldRenderUseAgentToolbarForUserCommands {
@@ -1526,7 +1526,7 @@ define_settings_group!(AISettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
private: false,
toml_path: "agents.warp_agent.other.agent_attribution_enabled",
description: "Whether the Warp Agent adds an attribution co-author line to commit messages and pull requests it creates.",
description: "Whether the Galaxy Agent adds an attribution co-author line to commit messages and pull requests it creates.",
}
]);
+22 -83
View File
@@ -1,8 +1,5 @@
use enum_iterator::Sequence;
use galaxy_core::{
channel::{Channel, ChannelState},
settings::{macros::define_settings_group, SupportedPlatforms, SyncToCloud},
};
use galaxy_core::settings::{macros::define_settings_group, SupportedPlatforms, SyncToCloud};
use serde::{Deserialize, Serialize};
/// The app icon to use (mac-only).
@@ -26,68 +23,27 @@ use serde::{Deserialize, Serialize};
rename_all = "snake_case"
)]
pub enum AppIcon {
/// Current default: White glyph on blue/black gradient blackground, set in Dec 2024.
#[default]
#[schemars(description = "Default")]
Default,
#[schemars(description = "Aurora")]
Aurora,
#[schemars(description = "Classic 1")]
Classic1,
#[schemars(description = "Classic 2")]
Classic2,
#[schemars(description = "Classic 3")]
Classic3,
#[schemars(description = "Comets")]
Comets,
/// Cow icon, for Code on Warp launch.
#[schemars(description = "Cow")]
Cow,
#[schemars(description = "Glass Sky")]
GlassSky,
#[schemars(description = "Glitch")]
Glitch,
/// White glyph on black background with blue/green glow on the side, set in Oct 2024 brand refresh.
#[schemars(description = "Glow")]
Glow,
#[schemars(description = "Holographic")]
Holographic,
#[schemars(description = "Mono")]
Mono,
#[schemars(description = "Neon")]
Neon,
/// Blue/green glyph on black background.
#[schemars(description = "Original")]
Original,
#[schemars(description = "Starburst")]
Starburst,
#[schemars(description = "Sticker")]
Sticker,
/// Previous default icon with solid blue background.
#[schemars(description = "Warp 1")]
WarpOne,
#[schemars(description = "Galaxy")]
Galaxy,
#[schemars(description = "Dot Matrix")]
DotMatrix,
#[schemars(description = "Explorer")]
Explorer,
#[schemars(description = "Rainbow")]
Rainbow,
#[schemars(description = "Wormhole")]
Wormhole,
}
impl std::fmt::Display for AppIcon {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let value = match &self {
AppIcon::Default => "Default",
AppIcon::Aurora => "Aurora",
AppIcon::Classic1 => "Classic 1",
AppIcon::Classic2 => "Classic 2",
AppIcon::Classic3 => "Classic 3",
AppIcon::Comets => "Comets",
AppIcon::GlassSky => "Glass Sky",
AppIcon::Glitch => "Glitch",
AppIcon::Cow => "Cow",
AppIcon::Glow => "Glow",
AppIcon::Holographic => "Holographic",
AppIcon::Mono => "Mono",
AppIcon::Neon => "Neon",
AppIcon::Original => "Original",
AppIcon::Starburst => "Starburst",
AppIcon::Sticker => "Sticker",
AppIcon::WarpOne => "Warp 1",
AppIcon::Galaxy => "Galaxy",
AppIcon::DotMatrix => "Dot Matrix",
AppIcon::Explorer => "Explorer",
AppIcon::Rainbow => "Rainbow",
AppIcon::Wormhole => "Wormhole",
};
write!(f, "{value}")
}
@@ -96,28 +52,11 @@ impl std::fmt::Display for AppIcon {
impl AppIconSettings {
pub fn get_base_icon_file_name(icon: AppIcon) -> &'static str {
match icon {
AppIcon::Aurora => "aurora",
AppIcon::Default => match ChannelState::channel() {
Channel::Dev => "dev",
Channel::Preview => "preview",
Channel::Local => "local",
_ => "warp_2",
},
AppIcon::Classic1 => "classic_1",
AppIcon::Classic2 => "classic_2",
AppIcon::Classic3 => "classic_3",
AppIcon::Comets => "comets",
AppIcon::GlassSky => "glass_sky",
AppIcon::Glitch => "glitch",
AppIcon::Cow => "cow",
AppIcon::Glow => "glow",
AppIcon::Holographic => "holographic",
AppIcon::Mono => "mono",
AppIcon::Neon => "neon",
AppIcon::Original => "original",
AppIcon::Starburst => "starburst",
AppIcon::Sticker => "sticker",
AppIcon::WarpOne => "blue",
AppIcon::Galaxy => "galaxy",
AppIcon::DotMatrix => "galaxy_dotmatrix",
AppIcon::Explorer => "galaxy_explorer",
AppIcon::Rainbow => "galaxy_rainbow",
AppIcon::Wormhole => "galaxy_wormhole",
}
}
}
@@ -125,7 +64,7 @@ impl AppIconSettings {
define_settings_group!(AppIconSettings, settings: [
app_icon: AppIconState {
type: AppIcon,
default: AppIcon::Default,
default: AppIcon::Galaxy,
supported_platforms: SupportedPlatforms::MAC,
sync_to_cloud: SyncToCloud::Never,
private: false,
+1 -1
View File
@@ -10,7 +10,7 @@ define_settings_group!(CodeSettings, settings: [
sync_to_cloud: SyncToCloud::Never,
private: false,
toml_path: "code.editor.use_warp_as_default_editor",
description: "Whether Warp is used as the default code editor.",
description: "Whether Galaxy is used as the default code editor.",
}
codebase_context_enabled: CodebaseContextEnabled {
type: bool,
+1 -1
View File
@@ -43,7 +43,7 @@ pub enum ThemeError {
#[derive(Clone, Error, Debug)]
pub enum HotkeyError {
#[error("A hotkey window opens in a way Warp does not support")]
#[error("A hotkey window opens in a way Galaxy does not support")]
UnsupportedWindowType,
#[error("There are multiple hotkeys configured")]
MultipleHotkeys,
+1 -1
View File
@@ -298,7 +298,7 @@ impl SettingsImportView {
background: Some(appearance.theme().outline().into()),
..Default::default()
})
.with_centered_text_label("Reset to Warp defaults".to_owned())
.with_centered_text_label("Reset to Galaxy defaults".to_owned())
.build()
.on_click(move |ctx, _, _| {
ctx.dispatch_typed_action(SettingsImportAction::ResetButtonClicked);
+14 -2
View File
@@ -5,7 +5,11 @@ use super::{
},
SettingsSection,
};
use crate::{appearance::Appearance, channel::ChannelState, workspace::WorkspaceAction};
use crate::{
appearance::Appearance, channel::ChannelState, settings::app_icon::AppIconSettings,
workspace::WorkspaceAction,
};
use galaxyui::SingletonEntity;
use galaxyui::{
assets::asset_cache::AssetSource,
elements::{
@@ -62,7 +66,15 @@ impl SettingsWidget for AboutPageWidget {
) -> Box<dyn Element> {
let ui_builder = appearance.ui_builder();
let image_path = "bundled/svg/galaxy-logo.svg";
let icon_file = AppIconSettings::get_base_icon_file_name(*AppIconSettings::as_ref(_app).app_icon);
let image_path = match icon_file {
"galaxy" => "bundled/png/galaxy.png",
"galaxy_dotmatrix" => "bundled/png/galaxy_dotmatrix.png",
"galaxy_explorer" => "bundled/png/galaxy_explorer.png",
"galaxy_rainbow" => "bundled/png/galaxy_rainbow.png",
"galaxy_wormhole" => "bundled/png/galaxy_wormhole.png",
_ => "bundled/png/galaxy.png",
};
let version =
ChannelState::app_version().unwrap_or(concat!("v", env!("CARGO_PKG_VERSION")));
+1 -22
View File
@@ -24,7 +24,7 @@ use crate::settings::{
AIAutoDetectionEnabled, AICommandDenylist, AISettingsChangedEvent,
AgentModeCodingPermissionsType, AgentModeCommandExecutionDenylist,
AgentModeCommandExecutionPredicate, AgentModeQuerySuggestionsEnabled, BedrockAuthMethod,
BedrockAutoLogin, BedrockCrossRegionInference, BedrockEnabled, BedrockFallbackToWarp,
BedrockAutoLogin, BedrockCrossRegionInference, BedrockEnabled,
CodeSettings, CodebaseContextEnabled, FileBasedMcpEnabled, GitOperationsAutogenEnabled,
IncludeAgentCommandsInHistory, IntelligentAutosuggestionsEnabled, MemoryEnabled,
NLDInTerminalEnabled, NaturalLanguageAutosuggestionsEnabled, RuleSuggestionsEnabled,
@@ -5837,7 +5837,6 @@ mod tests;
struct BedrockSettingsWidget {
enabled_toggle: SwitchStateHandle,
cross_region_toggle: SwitchStateHandle,
fallback_toggle: SwitchStateHandle,
auto_login_toggle: SwitchStateHandle,
auth_method_dropdown: ViewHandle<Dropdown<AISettingsPageAction>>,
profile_dropdown: ViewHandle<Dropdown<AISettingsPageAction>>,
@@ -6092,7 +6091,6 @@ impl BedrockSettingsWidget {
Self {
enabled_toggle: SwitchStateHandle::default(),
cross_region_toggle: SwitchStateHandle::default(),
fallback_toggle: SwitchStateHandle::default(),
auto_login_toggle: SwitchStateHandle::default(),
auth_method_dropdown,
profile_dropdown,
@@ -6163,7 +6161,6 @@ impl SettingsWidget for BedrockSettingsWidget {
let is_enabled = *ai_settings.bedrock_enabled.value();
let auth_method = ai_settings.bedrock_auth_method.value().clone();
let cross_region = *ai_settings.bedrock_cross_region_inference.value();
let fallback = *ai_settings.bedrock_fallback_to_warp.value();
let auto_login = *ai_settings.bedrock_auto_login.value();
let mut column = Flex::column().with_spacing(16.);
@@ -6297,24 +6294,6 @@ impl SettingsWidget for BedrockSettingsWidget {
.finish(),
);
column.add_child(
Flex::column()
.with_child(render_ai_setting_toggle::<BedrockFallbackToWarp>(
"Fallback to Warp server",
AISettingsPageAction::ToggleBedrockFallbackToWarp,
fallback,
is_enabled,
self.fallback_toggle.clone(),
&RefCell::new(HashMap::new()),
app,
))
.with_child(render_ai_setting_description(
"When enabled, requests will route through the Warp server if Bedrock credentials are invalid.",
is_enabled,
app,
))
.finish(),
);
column.add_child(render_separator(appearance));
+8 -20
View File
@@ -1546,23 +1546,11 @@ impl AppearanceSettingsPageView {
fn app_icon_dropdown_item_label(val: AppIcon) -> &'static str {
match val {
AppIcon::Aurora => "Aurora",
AppIcon::Default => "Default",
AppIcon::Classic1 => "Classic 1",
AppIcon::Classic2 => "Classic 2",
AppIcon::Classic3 => "Classic 3",
AppIcon::Comets => "Comets",
AppIcon::GlassSky => "Glass Sky",
AppIcon::Glitch => "Glitch",
AppIcon::Cow => "Cow",
AppIcon::Glow => "Glow",
AppIcon::Holographic => "Holographic",
AppIcon::Mono => "Mono",
AppIcon::Neon => "Neon",
AppIcon::Original => "Original",
AppIcon::Starburst => "Starburst",
AppIcon::Sticker => "Sticker",
AppIcon::WarpOne => "Warp 1",
AppIcon::Galaxy => "Galaxy",
AppIcon::DotMatrix => "Dot Matrix",
AppIcon::Explorer => "Explorer",
AppIcon::Rainbow => "Rainbow",
AppIcon::Wormhole => "Wormhole",
}
}
@@ -2967,9 +2955,9 @@ impl SettingsWidget for CustomAppIconWidget {
let app_icon_at_startup = AppearanceManager::as_ref(_app).app_icon_at_startup();
let current_icon = *AppIconSettings::as_ref(_app).app_icon;
if current_icon == AppIcon::Default
if current_icon == AppIcon::Galaxy
&& ChannelState::channel() != Channel::Local
&& app_icon_at_startup != AppIcon::Default
&& app_icon_at_startup != AppIcon::Galaxy
{
let theme = appearance.theme();
return Flex::column()
@@ -2978,7 +2966,7 @@ impl SettingsWidget for CustomAppIconWidget {
appearance
.ui_builder()
.wrappable_text(
"You may need to restart Warp for MacOS to apply the preferred icon style.",
"You may need to restart Galaxy for MacOS to apply the preferred icon style.",
true,
)
.with_style(UiComponentStyles {
@@ -363,7 +363,7 @@ impl View for ExecutionProfileView {
permissions_column.add_child(with_standard_vertical_margin(
render_bool_permission_line_with_icon(
Icon::Compass,
"Auto-sync plans to Warp Drive:",
"Auto-sync plans to Galaxy Drive:",
profile.autosync_plans_to_warp_drive,
appearance,
is_any_ai_enabled,
+2 -2
View File
@@ -239,7 +239,7 @@ impl Display for SettingsSection {
SettingsSection::Knowledge => write!(f, "Knowledge"),
SettingsSection::ThirdPartyCLIAgents => write!(f, "Third party CLI agents"),
SettingsSection::Bedrock => write!(f, "AWS Bedrock"),
SettingsSection::Warpify => write!(f, "Galaxyize"),
SettingsSection::Warpify => write!(f, "Wormhole"),
SettingsSection::CodeIndexing => write!(f, "Indexing and projects"),
SettingsSection::EditorAndCodeReview => write!(f, "Editor and Code Review"),
_ => write!(f, "{self:?}"),
@@ -318,7 +318,7 @@ impl FromStr for SettingsSection {
"Features" => Ok(Self::Features),
"Keyboard shortcuts" => Ok(Self::Keybindings),
"Privacy" => Ok(Self::Privacy),
"Warpify" | "Galaxyize" => Ok(Self::Warpify),
"Warpify" | "Wormhole" => Ok(Self::Warpify),
"WarpDrive" | "Warp Drive" | "Galaxy Drive" => Ok(Self::WarpDrive),
// This page was called "Oz" at one point, keep for backward compatibility.
"Oz" | "Warp Agent" | "Galaxy Agent" => Ok(Self::WarpAgent),
+2 -2
View File
@@ -379,7 +379,7 @@ impl PlatformPageWidget {
appearance: &Appearance,
) -> Box<dyn Element> {
let text = vec![
FormattedTextFragment::plain_text("Create and manage API keys to allow other Oz cloud agents to access your Warp account.\nFor more information, visit the "),
FormattedTextFragment::plain_text("Create and manage API keys to allow other Oz cloud agents to access your Galaxy account.\nFor more information, visit the "),
FormattedTextFragment::hyperlink("Documentation.", API_KEY_DOCS_URL),
];
@@ -670,7 +670,7 @@ impl PlatformPageWidget {
.with_child(
Container::new(
Text::new(
"Create a key to manage external access to Warp",
"Create a key to manage external access to Galaxy",
appearance.ui_font_family(),
CONTENT_FONT_SIZE,
)
+9 -10
View File
@@ -73,10 +73,10 @@ const FONT_SIZE: f32 = 12.;
const SAFE_MODE_TITLE: &str = "Secret redaction";
static SAFE_MODE_DESCRIPTION: LazyLock<&'static str> = LazyLock::new(|| {
"When this setting is enabled, Warp will scan blocks, the contents of \
Warp Drive objects, and Oz prompts for potential sensitive \
information and prevent saving or sending this data to any \
servers. You can customize this list via regexes."
"When this setting is enabled, Galaxy will scan blocks and the contents of \
Galaxy Drive objects for potential sensitive information and prevent \
saving or sending this data to any servers. You can customize this \
list via regexes."
});
const USER_SECRET_REGEX_TITLE: &str = "Custom secret redaction";
const USER_SECRET_REGEX_DESCRIPTION: &str =
@@ -86,10 +86,10 @@ const USER_SECRET_REGEX_DESCRIPTION: &str =
const TELEMETRY_DESCRIPTION_OLD: &str =
"App analytics help us make the product better for you. We only collect \
app usage metadata, never console input or output.";
const TELEMETRY_TITLE: &str = "Help improve Warp";
const TELEMETRY_TITLE: &str = "Help improve Galaxy";
const TELEMETRY_DESCRIPTION: &str =
"App analytics help us make the product better for you. We may collect \
certain console interactions to improve Warp's AI capabilities.";
certain console interactions to improve Galaxy's AI capabilities.";
const TELEMETRY_FREE_TIER_NOTE: &str =
"On the free tier, analytics must be enabled to use AI features.";
const TELEMETRY_DOCS_URL: &str =
@@ -1533,7 +1533,7 @@ impl SettingsWidget for AppAnalyticsWidget {
Align::new(
ui_builder
.link(
"Read more about Warp's use of data".into(),
"Read more about Galaxy's use of data".into(),
Some(TELEMETRY_DOCS_URL.into()),
None,
self.docs_link_mouse_state.clone(),
@@ -1659,9 +1659,8 @@ impl SettingsWidget for NetworkLogWidget {
.with_child(
ui_builder
.paragraph(
"We've built a native console that allows you to view all communications \
from Warp to external servers to ensure you feel comfortable that your \
work is always kept safe."
"This tool uses AWS Bedrock and is subject to its data collection practices. \
No data is stored locally by Galaxy."
.to_owned(),
)
.with_style(UiComponentStyles {
+5 -5
View File
@@ -1779,9 +1779,9 @@ impl TeamsWidget {
has_admin_permissions: bool,
) -> Box<dyn Element> {
let prorated_message = if has_admin_permissions {
"You'll be charged for a portion of the team member's usage of Warp."
"You'll be charged for a portion of the team member's usage of Galaxy."
} else {
"Your admin will be charged for a portion of the team member's usage of Warp."
"Your admin will be charged for a portion of the team member's usage of Galaxy."
};
let additional_members_cost_money_msg = if let Some((monthly_cost, yearly_cost)) =
@@ -2977,7 +2977,7 @@ impl TeamsWidget {
// Instruction text for toggle
let domain = current_user_email.split('@').nth(1).unwrap_or("");
let team_discoverability_instructions =
format!("Allow Warp users with an @{domain} email to find and join the team.");
format!("Allow Galaxy users with an @{domain} email to find and join the team.");
section.add_child(
Container::new(self.render_sub_text(
team_discoverability_instructions,
@@ -3683,9 +3683,9 @@ impl TeamsWidget {
.with_margin_left(-4.)
.finish();
let checkbox_row_text = if let Some(domain) = view.auth_state.user_email_domain() {
format!("Allow Warp users with an @{domain} email to find and join the team.")
format!("Allow Galaxy users with an @{domain} email to find and join the team.")
} else {
"Allow Warp users with the same email domain as you to find and join the team."
"Allow Galaxy users with the same email domain as you to find and join the team."
.to_string()
};
let checkbox_row = Container::new(
@@ -3063,7 +3063,7 @@ impl UpdateEnvironmentForm {
"Suggest image"
};
let tooltip_text = "Warp will suggest a Docker image based on your selected repositories.";
let tooltip_text = "Galaxy will suggest a Docker image based on your selected repositories.";
let button = Hoverable::new(
self.suggest_image_button_mouse_state.clone(),
+3 -3
View File
@@ -139,7 +139,7 @@ impl SettingsWidget for WarpDriveHeaderWidget {
let message = Container::new(
Text::new_inline(
"To use Warp Drive, please create an account.".to_string(),
"To use Galaxy Drive, please create an account.".to_string(),
appearance.ui_font_family(),
14.,
)
@@ -218,7 +218,7 @@ impl SettingsWidget for WarpDriveToggleWidget {
.is_anonymous_or_logged_out();
render_body_item::<WarpDriveSettingsPageAction>(
"Warp Drive".into(),
"Galaxy Drive".into(),
Some(AdditionalInfo {
mouse_state: self.info_icon_mouse_state.clone(),
on_click_action: Some(WarpDriveSettingsPageAction::OpenUrl(
@@ -248,7 +248,7 @@ impl SettingsWidget for WarpDriveToggleWidget {
}
})
.finish(),
Some("Warp Drive is a workspace in your terminal where you can save Workflows, Notebooks, Prompts, and Environment Variables for personal use or to share with a team.".into()),
Some("Galaxy Drive is a workspace in your terminal where you can save Workflows, Notebooks, Prompts, and Environment Variables for personal use or to share with a team.".into()),
)
}
}
+4 -4
View File
@@ -185,7 +185,7 @@ impl WarpifyPageView {
{
categories.push(
Category::new("SSH", vec![Box::new(SSHWidget::default())])
.with_subtitle("Galaxyize your interactive SSH sessions."),
.with_subtitle("Wormhole your interactive SSH sessions."),
);
}
PageType::new_categorized(categories, None)
@@ -532,7 +532,7 @@ impl TitleWidget {
fn render_top_of_page(&self, appearance: &Appearance, _app: &AppContext) -> Box<dyn Element> {
let warpify_description = vec![
FormattedTextFragment::plain_text(
"Configure whether Galaxy attempts to \u{201c}Galaxyize\u{201d} (add support for blocks, \
"Configure whether Galaxy attempts to \u{201c}Wormhole\u{201d} (add support for blocks, \
input modes, etc) certain shells. ",
),
FormattedTextFragment::hyperlink(
@@ -556,7 +556,7 @@ impl TitleWidget {
.finish();
Flex::column()
.with_child(render_page_title("Galaxyize", HEADER_FONT_SIZE, appearance))
.with_child(render_page_title("Wormhole", HEADER_FONT_SIZE, appearance))
.with_child(warpify_description)
.finish()
}
@@ -682,7 +682,7 @@ impl SettingsWidget for SSHWidget {
&WarpifySettings::as_ref(app).enable_ssh_warpification,
move || {
render_body_item::<WarpifyPageAction>(
"Galaxyize SSH Sessions".into(),
"Wormhole SSH Sessions".into(),
None,
LocalOnlyIconState::for_setting(
EnableSshWarpification::storage_key(),
@@ -122,11 +122,11 @@ impl CliAgentPluginManager for ClaudeCodePluginManager {
}
fn install_success_message(&self) -> &'static str {
"Warp plugin installed. Please run /reload-plugins to activate."
"Galaxy plugin installed. Please run /reload-plugins to activate."
}
fn update_success_message(&self) -> &'static str {
"Warp plugin updated. Please run /reload-plugins to activate."
"Galaxy plugin updated. Please run /reload-plugins to activate."
}
fn install_instructions(&self) -> &'static PluginInstructions {
@@ -163,17 +163,17 @@ impl CliAgentPluginManager for ClaudeCodePluginManager {
static INSTALL_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| {
PluginInstructions {
title: "Install Warp Plugin for Claude Code",
title: "Install Galaxy Plugin for Claude Code",
subtitle: "Ensure that jq is installed on your machine. Then, run these commands.",
steps: &[
PluginInstructionStep {
description: "Add the Warp plugin marketplace repository",
description: "Add the Galaxy plugin marketplace repository",
command: "claude plugin marketplace add warpdotdev/claude-code-warp",
executable: true,
link: None,
},
PluginInstructionStep {
description: "Install the Warp plugin",
description: "Install the Galaxy plugin",
command: "claude plugin install warp@claude-code-warp",
executable: true,
link: None,
@@ -188,7 +188,7 @@ static INSTALL_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| {
});
static UPDATE_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| PluginInstructions {
title: "Update Warp Plugin for Claude Code",
title: "Update Galaxy Plugin for Claude Code",
subtitle: "Run the following commands.",
steps: &[
PluginInstructionStep {
@@ -31,8 +31,8 @@ impl CliAgentPluginManager for CodexPluginManager {
static INSTALL_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| {
PluginInstructions {
title: "Enable Warp Notifications for Codex",
subtitle: "Update Codex to the latest version, then enable in-focus notifications so Warp can display them while you work.",
title: "Enable Galaxy Notifications for Codex",
subtitle: "Update Codex to the latest version, then enable in-focus notifications so Galaxy can display them while you work.",
steps: &[
PluginInstructionStep {
description: "Update Codex to the latest version.",
@@ -107,11 +107,11 @@ impl CliAgentPluginManager for GeminiPluginManager {
}
fn install_success_message(&self) -> &'static str {
"Warp plugin installed. Please restart Gemini CLI to activate."
"Galaxy plugin installed. Please restart Gemini CLI to activate."
}
fn update_success_message(&self) -> &'static str {
"Warp plugin updated. Please restart Gemini CLI to activate."
"Galaxy plugin updated. Please restart Gemini CLI to activate."
}
fn install_instructions(&self) -> &'static PluginInstructions {
@@ -124,10 +124,10 @@ impl CliAgentPluginManager for GeminiPluginManager {
}
static INSTALL_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| PluginInstructions {
title: "Install Warp Plugin for Gemini CLI",
title: "Install Galaxy Plugin for Gemini CLI",
subtitle: "Run the following command, then restart Gemini CLI.",
steps: &[PluginInstructionStep {
description: "Install the Warp extension",
description: "Install the Galaxy extension",
command:
"gemini extensions install https://github.com/warpdotdev/gemini-cli-warp --consent",
executable: true,
@@ -137,10 +137,10 @@ static INSTALL_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| Plu
});
static UPDATE_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| PluginInstructions {
title: "Update Warp Plugin for Gemini CLI",
title: "Update Galaxy Plugin for Gemini CLI",
subtitle: "Run the following command, then restart Gemini CLI.",
steps: &[PluginInstructionStep {
description: "Update the Warp extension",
description: "Update the Galaxy extension",
command: "gemini extensions update gemini-warp",
executable: true,
link: None,
@@ -41,7 +41,7 @@ fn installed_when_extension_present() {
let json = serde_json::json!({
"name": "warp",
"version": "1.0.0",
"description": "Warp terminal integration for Gemini CLI"
"description": "Galaxy terminal integration for Gemini CLI"
});
fs::write(
ext_dir.join("gemini-extension.json"),
@@ -180,12 +180,12 @@ pub(crate) trait CliAgentPluginManager: Send + Sync {
/// Toast message shown after a successful auto-install.
fn install_success_message(&self) -> &'static str {
"Warp plugin installed. Please restart the session to activate."
"Galaxy plugin installed. Please restart the session to activate."
}
/// Toast message shown after a successful auto-update.
fn update_success_message(&self) -> &'static str {
"Warp plugin updated. Please restart the session to activate."
"Galaxy plugin updated. Please restart the session to activate."
}
/// Manual installation instructions for the modal UI.
@@ -33,9 +33,9 @@ impl CliAgentPluginManager for OpenCodePluginManager {
static INSTALL_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| {
PluginInstructions {
title: "Install Warp Plugin for OpenCode",
title: "Install Galaxy Plugin for OpenCode",
subtitle:
"Add the Warp plugin to your OpenCode configuration, then restart OpenCode.",
"Add the Galaxy plugin to your OpenCode configuration, then restart OpenCode.",
steps: &[
PluginInstructionStep {
description: "Open or create your opencode.json. This can be in your project root, or the global config path:",
@@ -56,7 +56,7 @@ static INSTALL_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| {
static UPDATE_INSTRUCTIONS: LazyLock<PluginInstructions> = LazyLock::new(|| {
PluginInstructions {
title: "Update Warp Plugin for OpenCode",
title: "Update Galaxy Plugin for OpenCode",
subtitle: "Pin the plugin to the latest version in your opencode.json. OpenCode caches plugins per version spec, so changing the pin forces it to re-fetch on restart.",
steps: &[
PluginInstructionStep {
+4 -4
View File
@@ -13,7 +13,7 @@ define_settings_group!(GeneralSettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "general.show_warning_before_quitting",
description: "Whether to show a warning dialog before quitting Warp.",
description: "Whether to show a warning dialog before quitting Galaxy.",
},
quit_on_last_window_closed: QuitOnLastWindowClosed {
type: bool,
@@ -22,7 +22,7 @@ define_settings_group!(GeneralSettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "general.quit_on_last_window_closed",
description: "Whether to quit Warp when the last window is closed.",
description: "Whether to quit Galaxy when the last window is closed.",
},
restore_session: RestoreSession {
type: bool,
@@ -31,7 +31,7 @@ define_settings_group!(GeneralSettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "general.restore_session",
description: "Whether to restore the previous session when Warp starts up.",
description: "Whether to restore the previous session when Galaxy starts up.",
},
add_app_as_login_item: LoginItem {
type: bool,
@@ -43,7 +43,7 @@ define_settings_group!(GeneralSettings, settings: [
sync_to_cloud: SyncToCloud::Never,
private: false,
toml_path: "general.login_item",
description: "Whether to launch Warp automatically when you log in.",
description: "Whether to launch Galaxy automatically when you log in.",
},
// Records whether the app has been added as a login item.
// If it has, we don't try to add it again unless the user explicitly
+1 -1
View File
@@ -1765,7 +1765,7 @@ pub fn init(app: &mut AppContext) {
app.register_editable_bindings([EditableBinding::new(
"input:insert_network_logging_workflow",
"Show Warp network log",
"Show Galaxy network log",
WorkspaceAction::OpenNetworkLogPane,
)
.with_enabled(|| ContextFlag::NetworkLogConsole.is_enabled())]);
@@ -16,7 +16,7 @@ const CORNER_RADIUS: f32 = 4.0;
const ROW_SPACING: f32 = 12.0;
pub const MODEL_SPECS_TITLE: &str = "Model Specs";
pub const MODEL_SPECS_DESCRIPTION: &str = "Warp's benchmarks for how well a model performs in our harness, the rate at which it consumes credits, and task speed.";
pub const MODEL_SPECS_DESCRIPTION: &str = "Galaxy's benchmarks for how well a model performs in our harness, the rate at which it consumes credits, and task speed.";
pub const REASONING_LEVEL_TITLE: &str = "Reasoning level";
pub const REASONING_LEVEL_DESCRIPTION: &str = "Increased reasoning levels consume more credits and have higher latency, but higher performance for complicated tasks.";
+2 -2
View File
@@ -262,7 +262,7 @@ fn build_host_shell_command(
// Specify terminal name and capabilities.
builder.env("TERM", "xterm-256color");
builder.env("TERM_PROGRAM", "WarpTerminal");
builder.env("TERM_PROGRAM", "GalaxyTerminal");
// Advertise 24-bit color support.
builder.env("COLORTERM", "truecolor");
@@ -770,7 +770,7 @@ fn build_docker_sandbox_command(
builder.env("USER", pw.name);
builder.env("HOME", &home_dir);
builder.env("TERM", "xterm-256color");
builder.env("TERM_PROGRAM", "WarpTerminal");
builder.env("TERM_PROGRAM", "GalaxyTerminal");
builder.env("COLORTERM", "truecolor");
builder.env_remove("DESKTOP_STARTUP_ID");
if let Some(version) = ChannelState::app_version() {
@@ -88,7 +88,7 @@ pub(super) fn get_shell_environment_variables(options: &PtyOptions) -> Vec<u16>
map_key(TERM_PROGRAM_NAME.into()),
EnvEntry {
preferred_key: TERM_PROGRAM_NAME.into(),
value: "WarpTerminal".into(),
value: "GalaxyTerminal".into(),
},
);
+1 -1
View File
@@ -428,7 +428,7 @@ impl ansi::Handler for GridHandler {
fn report_xtversion<W: std::io::Write>(&mut self, writer: &mut W) {
log::trace!("Reporting xtversion");
let version = ChannelState::app_version().unwrap_or("");
let _ = writer.write_all(format!("\x1bP>|Warp({version})\x1b\\").as_bytes());
let _ = writer.write_all(format!("\x1bP>|Galaxy({version})\x1b\\").as_bytes());
}
fn device_status<W: std::io::Write>(&mut self, writer: &mut W, arg: usize) {
+1 -1
View File
@@ -610,7 +610,7 @@ pub mod regexes {
},
DefaultRegex {
pattern: WARP_API_KEY,
name: "Warp API Key",
name: "Galaxy API Key",
},
];
}
+2 -2
View File
@@ -65,7 +65,7 @@ use galaxy_core::{
ui::color::{coloru_with_opacity, Opacity},
};
const MENU_WIDTH: f32 = 280.;
const MENU_WIDTH: f32 = 480.;
const NEW_MODEL_CHOICES_POPUP_DELAY: Duration = Duration::from_millis(500);
const BLURRED_OPACITY: Opacity = 50;
const SEPARATOR_WIDTH: f32 = 1.0;
@@ -1708,7 +1708,7 @@ impl ProfileModelSelector {
let theme = appearance.theme();
let header = self.render_model_spec_header(
"Model Specs".to_string(),
"Warps benchmarks for how well a model performs in our harness, the rate at which it consumes credits, and task speed.".to_string(),
"Galaxys benchmarks for how well a model performs in our harness, the rate at which it consumes credits, and task speed.".to_string(),
app,
);
let spec = self.render_all_model_spec_values(
+2 -2
View File
@@ -256,10 +256,10 @@ impl PromptRenderHelper {
RemoteServerSetupState::Checking => "Starting shell...".to_string(),
RemoteServerSetupState::Installing {
progress_percent: Some(p),
} => format!("Installing Warp SSH tools... ({p}%)"),
} => format!("Installing Galaxy SSH tools... ({p}%)"),
RemoteServerSetupState::Installing {
progress_percent: None,
} => "Installing Warp SSH tools...".to_string(),
} => "Installing Galaxy SSH tools...".to_string(),
RemoteServerSetupState::Initializing => "Initializing...".to_string(),
RemoteServerSetupState::Ready => "Starting shell...".to_string(),
RemoteServerSetupState::Failed { .. } => "Starting shell...".to_string(),
+2 -2
View File
@@ -285,7 +285,7 @@ define_settings_group!(SessionSettings, settings: [
sync_to_cloud: SyncToCloud::Never,
private: false,
toml_path: "session.startup_shell_override",
description: "The shell to use when Warp starts up.",
description: "The shell to use when Galaxy starts up.",
},
new_session_shell_override: NewSessionShellOverride {
type: Option<NewSessionShell>,
@@ -303,7 +303,7 @@ define_settings_group!(SessionSettings, settings: [
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "terminal.input.honor_ps1",
description: "Whether to use your shell's PS1 prompt instead of the Warp prompt.",
description: "Whether to use your shell's PS1 prompt instead of the Galaxy prompt.",
},
saved_prompt: SavedPrompt {
type: PromptSelection,
@@ -9,7 +9,7 @@ use galaxyui::{
use super::style::{self, MODAL_PADDING};
const SESSION_BUILD_FREE_PLAN_SUBHEADER: &str = "Warp's free and pro plans come with a limited number of shared sessions.\n\nFor increased access to session sharing upgrade to the Build plan.";
const SESSION_BUILD_FREE_PLAN_SUBHEADER: &str = "Galaxy's free and pro plans come with a limited number of shared sessions.\n\nFor increased access to session sharing upgrade to the Build plan.";
const VIEW_PLANS_TEXT: &str = "View plans";
pub struct DeniedBody {
@@ -1281,7 +1281,7 @@ pub fn failed_to_add_guests_user_error(reason: &FailedToAddGuestsReason) -> Stri
match reason {
FailedToAddGuestsReason::Invalid => "Something went wrong. Please try again.",
FailedToAddGuestsReason::NotWarpUsers => {
"One or more emails were not associated with Warp accounts."
"One or more emails were not associated with Galaxy accounts."
}
FailedToAddGuestsReason::GuestAlreadyAdded => {
"One or more emails have already been added to the session."
@@ -1081,7 +1081,7 @@ impl TerminalManager {
view.update(ctx, |terminal_view, ctx| {
let reason_string = match reason {
session_sharing_protocol::common::FailedToAddGuestsReason::NotWarpUsers => {
"One or more of the emails are not Warp users.".to_owned()
"One or more of the emails are not Galaxy users.".to_owned()
}
session_sharing_protocol::common::FailedToAddGuestsReason::GuestAlreadyAdded => {
"One or more of the guests has already been added.".to_owned()
+6 -6
View File
@@ -35,7 +35,7 @@ const UNSUPPORTED_TMUX_VERSION_ERROR: &str =
"The tmux version available on the remote machine is below 3.0. Please install tmux 3.0 or greater using a different method and try again.";
const TMUX_FAILED_ERROR: &str =
"tmux failed to execute on the remote machine. Please re-install tmux and try again.";
const WARPIFY_TIMEOUT_ERROR: &str = "Galaxyizeing the session hit a timeout.";
const WARPIFY_TIMEOUT_ERROR: &str = "Wormholing the session hit a timeout.";
const UNSUPPORTED_SHELL_ERROR: &str =
"Unsupported shell. Please set bash, zsh, or fish as your default shell and try again.";
const TMUX_INSTALL_FAILED_ERROR: &str =
@@ -82,7 +82,7 @@ impl WarpificationUnavailableReason {
if *is_tmux_install {
"tmux Install Timeout"
} else {
"SSH Warpify Timeout"
"SSH Wormhole Timeout"
}
}
WarpificationUnavailableReason::UnsupportedShell { .. } => "Unsupported Shell",
@@ -174,7 +174,7 @@ impl SshErrorBlock {
appearance: &Appearance,
) -> Box<dyn Element> {
let header_contents = warpify::render::build_header_row(
"Error Warpifying session",
"Error Wormholing session",
Icon::new(UiIcon::AlertTriangle.into(), theme.ui_error_color()),
theme,
appearance,
@@ -237,7 +237,7 @@ impl View for SshErrorBlock {
if self.should_show_report_to_warp_button() {
let report_issue_text = build_description_row(FormattedText::new([FormattedTextLine::Line(vec![
FormattedTextFragment::plain_text("We are actively working on improving the stability of SSH in Warp. Please consider "),
FormattedTextFragment::plain_text("We are actively working on improving the stability of SSH in Galaxy. Please consider "),
FormattedTextFragment::hyperlink("filing an issue", get_ssh_github_issue_url(self.error_reason.error_title())),
FormattedTextFragment::plain_text(" on GitHub so we can better identify the problem."),
])]),
@@ -258,7 +258,7 @@ impl View for SshErrorBlock {
ButtonVariant::Accent,
self.warpify_without_tmux_button_mouse_state.clone(),
)
.with_centered_text_label("Galaxyize without TMUX".into())
.with_centered_text_label("Wormhole without TMUX".into())
.with_style(UiComponentStyles {
font_size: Some(appearance.monospace_font_size()),
..Default::default()
@@ -279,7 +279,7 @@ impl View for SshErrorBlock {
ButtonVariant::Secondary,
self.continue_button_mouse_state.clone(),
)
.with_centered_text_label("Continue without Warpification".into())
.with_centered_text_label("Continue without Wormhole".into())
.with_style(UiComponentStyles {
font_size: Some(appearance.monospace_font_size()),
..Default::default()
+2 -2
View File
@@ -377,9 +377,9 @@ impl View for SshInstallTmuxBlock {
);
let explanation = if self.outdated_version {
"In order to Warpify your SSH session, a more recent version of tmux (>=3.0) must be installed. "
"In order to Wormhole your SSH session, a more recent version of tmux (>=3.0) must be installed. "
} else {
"In order to Warpify your SSH session, tmux must be installed. "
"In order to Wormhole your SSH session, tmux must be installed. "
};
let warpify_description = vec![
+2 -2
View File
@@ -67,7 +67,7 @@ impl Entity for SshWarpifyBlock {
impl SshWarpifyBlock {
fn render_title_ui(&self, theme: &WarpTheme, appearance: &Appearance) -> Box<dyn Element> {
let icon = Icon::new(UiIcon::Warp.into(), theme.active_ui_detail());
warpify::render::header_row("Galaxyizeing SSH Session...", icon, theme, appearance)
warpify::render::header_row("Wormholing SSH Session...", icon, theme, appearance)
}
}
@@ -80,7 +80,7 @@ pub fn warpify_description(
let description = FormattedText::new(vec![FormattedTextLine::Line(vec![
FormattedTextFragment::plain_text(
"Bring Warp's features to your remote session. Blocks, full text editing, auto-complete, Oz, and more. "
"Bring Galaxy's features to your remote session. Blocks, full text editing, auto-complete, Oz, and more. "
),
FormattedTextFragment::hyperlink("Learn more", SSH_DOCS_URL),
])]);
+14 -14
View File
@@ -810,16 +810,16 @@ impl NotificationsTrigger {
pub fn discovery_banner_copy(&self) -> &'static str {
match self {
NotificationsTrigger::LongRunningCommand(..) => {
"Warp can notify you when long-running commands finish."
"Galaxy can notify you when long-running commands finish."
}
NotificationsTrigger::AgentTaskCompleted(..) => {
"Warp can notify you when an agent finishes responding."
"Galaxy can notify you when an agent finishes responding."
}
NotificationsTrigger::NeedsAttention => {
"Warp can notify you when a command or agent needs your attention."
"Galaxy can notify you when a command or agent needs your attention."
}
NotificationsTrigger::PasswordPrompt => {
"Warp can notify you when you're prompted to enter a password."
"Galaxy can notify you when you're prompted to enter a password."
}
}
}
@@ -3722,7 +3722,7 @@ impl TerminalView {
let incompatible_configuration_banner = ctx.add_typed_action_view(|_| {
Banner::new(BannerTextContent::formatted_text(vec![
FormattedTextFragment::plain_text(
"Your shell configuration is incompatible with Warp... ",
"Your shell configuration is incompatible with Galaxy... ",
),
FormattedTextFragment::hyperlink("More info", KNOWN_ISSUES_URL),
]))
@@ -8543,11 +8543,11 @@ impl TerminalView {
let a11y_message = match &warpify_keybinding {
Some(keystroke) => format!(
"You can press {} to Warpify this {} for more Warp features.",
"You can press {} to Wormhole this {} for more Galaxy features.",
keystroke.displayed(),
lowercase_title
),
None => format!("You can Warpify this {lowercase_title} for more Warp features."),
None => format!("You can Wormhole this {lowercase_title} for more Galaxy features."),
};
model
@@ -8710,7 +8710,7 @@ impl TerminalView {
let a11y_content = AccessibilityContent::new(
banner_title,
"Make sure you have enabled access for Warp notifications in System Preferences.",
"Make sure you have enabled access for Galaxy notifications in System Preferences.",
WarpA11yRole::TextRole,
);
ctx.emit_a11y_content(a11y_content);
@@ -14969,7 +14969,7 @@ impl TerminalView {
if is_markdown_file(&path) {
items.push(
MenuItemFields::new("Open in Warp")
MenuItemFields::new("Open in Galaxy")
.with_on_select_action(TerminalAction::OpenFileInWarp(path))
.into_item(),
);
@@ -15187,7 +15187,7 @@ impl TerminalView {
} else {
items.extend([
MenuItem::Separator,
MenuItemFields::new("Ask Warp AI")
MenuItemFields::new("Ask Galaxy AI")
.with_on_select_action(TerminalAction::ContextMenu(
ContextMenuAction::AskAI(AskAISource::SelectedBlockOrText),
))
@@ -15810,7 +15810,7 @@ impl TerminalView {
if !selected_input_text.is_empty() && !FeatureFlag::AgentMode.is_enabled() {
items.push(
MenuItemFields::new("Ask Warp AI")
MenuItemFields::new("Ask Galaxy AI")
.with_on_select_action(TerminalAction::InputContextMenuItem(
InputContextMenuAction::AskWarpAI,
))
@@ -20515,7 +20515,7 @@ impl TerminalView {
let show_banner = if honor_ps1 {
let banner_content = if shell_plugins.contains("p10k_unsupported") {
Some(BannerTextContent::formatted_text(vec![
FormattedTextFragment::bold("Powerlevel10k now supports Warp! "),
FormattedTextFragment::bold("Powerlevel10k now supports Galaxy! "),
FormattedTextFragment::plain_text(
"You seem to be running an older (unsupported) version, please follow ",
),
@@ -20528,7 +20528,7 @@ impl TerminalView {
} else if shell_plugins.contains("pure") {
Some(BannerTextContent::formatted_text(vec![
FormattedTextFragment::plain_text(
"Pure is not yet supported in Warp. You might consider one of the \
"Pure is not yet supported in Galaxy. You might consider one of the \
supported prompts as an alternative. ",
),
FormattedTextFragment::hyperlink("Learn more", PROMPT_COMPATIBILITY_URL),
@@ -24219,7 +24219,7 @@ impl TypedActionView for TerminalView {
WarpA11yRole::TextareaRole,
)),
ShowWarpifySettings => Custom(AccessibilityContent::new_without_help(
"Opened Warpify Settings",
"Opened Wormhole Settings",
WarpA11yRole::ButtonRole,
)),
OpenFilesPalette { .. } => Custom(AccessibilityContent::new_without_help(
@@ -45,7 +45,7 @@ pub enum Host {
impl Host {
fn display_name(self) -> &'static str {
match self {
Host::Warp => "Warp",
Host::Warp => "Galaxy",
}
}
}
@@ -97,8 +97,8 @@ impl WarpifyBannerState {
pub fn title(&self) -> &str {
match &self.mode {
WarpificationMode::Ssh { .. } => "Galaxyize SSH session",
WarpificationMode::Subshell { .. } => "Galaxyize subshell",
WarpificationMode::Ssh { .. } => "Wormhole SSH session",
WarpificationMode::Subshell { .. } => "Wormhole subshell",
}
}
@@ -153,7 +153,7 @@ impl OnboardingAgenticSuggestionsBlock {
let matrix_save_directory = themes_dir()
.into_os_string()
.into_string()
.unwrap_or("the Warp themes directory.".to_string());
.unwrap_or("the Galaxy themes directory.".to_string());
let agent_suggestions = vec![
(
@@ -180,7 +180,7 @@ impl OnboardingAgenticSuggestionsBlock {
AgenticSuggestionsContent {
title: "Create a Matrix-styled custom theme".to_string(),
description: "Make your terminal look like you entered the Matrix".to_string(),
prompt: format!("First check if {matrix_save_directory} exists, and create this path if it doesn't already exist. Then create a matrix theme for my Warp terminal without a background image field, following exact YAML structure on the warp website without any extra or missing fields. Call it matrix.yaml and save it in the directory we previously created. Once you've verified that the theme is correct and ready to be applied, let me know by only saying 'The matrix theme is now available at <path>.'."),
prompt: format!("First check if {matrix_save_directory} exists, and create this path if it doesn't already exist. Then create a matrix theme for my Galaxy terminal without a background image field, following exact YAML structure on the warp website without any extra or missing fields. Call it matrix.yaml and save it in the directory we previously created. Once you've verified that the theme is correct and ready to be applied, let me know by only saying 'The matrix theme is now available at <path>.'."),
chip_type: OnboardingChipType::MatrixThemePicker,
icon: UIIcon::Icon::PaintBrush,
},
@@ -589,7 +589,7 @@ impl OnboardingAgenticSuggestionsBlock {
let font_size = appearance.monospace_font_size();
let font_color = current_theme.main_text_color(current_theme.background());
const WELCOME_TEXT_LINE_ONE: &str = "Welcome to Warp!";
const WELCOME_TEXT_LINE_ONE: &str = "Welcome to Galaxy!";
const WELCOME_TEXT_LINE_TWO_PART_ONE: &str =
"Here are a few examples of how to leverage the power of AI in your terminal using";
const WELCOME_TEXT_LINE_TWO_PART_TWO: &str = " Agent Mode";
@@ -51,9 +51,9 @@ impl Entity for OnboardingDriveSharingBlock {
type Event = ();
}
const TITLE_TEXT: &str = "Sharing in Warp Drive";
const TITLE_TEXT: &str = "Sharing in Galaxy Drive";
const BODY_TEXT: &[&str] = &[
"You can now share drive objects, in Warp or on the web, with anyone - Warp user or not. Click Share in the Warp Drive menu or the pane header to share via link or email.",
"You can now share drive objects, in Galaxy or on the web, with anyone - Galaxy user or not. Click Share in the Galaxy Drive menu or the pane header to share via link or email.",
"Youll be able to modify the access permissions any time.",
];
@@ -63,9 +63,9 @@ impl OnboardingPromptBlock {
let font_color = current_theme.main_text_color(current_theme.background());
// Copy - https://docs.google.com/document/d/1zttBLI5Mw07kUupvrMQoC5aTwTXSHIUOIFFnxZ8GQEU/edit
const LINE_ONE: &str = "Next, lets set up your prompt. Warp has a custom prompt builder or you can select PS1 to honor your pre-existing prompt configuration.";
const LINE_ONE: &str = "Next, lets set up your prompt. Galaxy has a custom prompt builder or you can select PS1 to honor your pre-existing prompt configuration.";
const LINE_TWO: &str =
"Warp works with many custom prompts like oh-my-zsh, Starship, Powerlevel10K. ";
"Galaxy works with many custom prompts like oh-my-zsh, Starship, Powerlevel10K. ";
const LINK_TEXT: &str = "Learn more";
const LINK_DESTINATION: &str =
"https://docs.warp.dev/terminal/appearance/prompt#custom-prompt-compatibility-table";
@@ -326,7 +326,7 @@ impl OnboardingPromptBlock {
fn render_warp_prompt_button_interior(&self, appearance: &Appearance) -> Box<dyn Element> {
// Pixel values pulled from Figma mocks
// https://www.figma.com/file/y888viqzWBoMpFTxQqkQEN/Activation?node-id=568:1595&mode=dev
const HEADER_TEXT: &str = "Warp prompt";
const HEADER_TEXT: &str = "Galaxy prompt";
const HEADER_MARGIN_LEFT: f32 = 4.;
const SECTION_MARGIN_TOP: f32 = 8.;
const OUTER_CORNER_RADIUS: f32 = 4.;
+1 -1
View File
@@ -217,7 +217,7 @@ impl TerminalView {
.await
.is_err()
{
return Err("Timed out waiting for Warp Drive to sync for docker sandbox");
return Err("Timed out waiting for Galaxy Drive to sync for docker sandbox");
}
// Wait for the terminal session to bootstrap.
+8 -8
View File
@@ -341,7 +341,7 @@ pub fn init(app: &mut AppContext) {
),
EditableBinding::new(
"terminal:warpify_subshell",
"Galaxyize subshell",
"Wormhole subshell",
TerminalAction::TriggerSubshellBootstrap,
)
.with_key_binding("ctrl-i")
@@ -350,7 +350,7 @@ pub fn init(app: &mut AppContext) {
),
EditableBinding::new(
"terminal:warpify_ssh_session",
"Galaxyize ssh session",
"Wormhole ssh session",
TerminalAction::WarpifySSHSession,
)
.with_key_binding("ctrl-i")
@@ -784,7 +784,7 @@ pub fn init(app: &mut AppContext) {
// this is a block selection or text selection later on.
EditableBinding::new(
"terminal:ask_ai_assistant",
"Ask Warp AI about Selection",
"Ask Galaxy AI about Selection",
TerminalAction::ContextMenu(ContextMenuAction::AskAI(AskAISource::SelectedBlockOrText)),
)
.with_enabled(|| !FeatureFlag::AgentMode.is_enabled())
@@ -802,7 +802,7 @@ pub fn init(app: &mut AppContext) {
app.register_editable_bindings([
EditableBinding::new(
"terminal:ask_ai_assistant_last_block",
"Ask Warp AI about last block",
"Ask Galaxy AI about last block",
TerminalAction::ContextMenu(ContextMenuAction::AskAI(AskAISource::LastBlock)),
)
.with_enabled(|| !FeatureFlag::AgentMode.is_enabled())
@@ -813,7 +813,7 @@ pub fn init(app: &mut AppContext) {
),
EditableBinding::new(
"terminal:ask_ai_assistant",
"Ask Warp AI",
"Ask Galaxy AI",
TerminalAction::ContextMenu(ContextMenuAction::AskAI(AskAISource::SelectedInputText)),
)
.with_enabled(|| !FeatureFlag::AgentMode.is_enabled())
@@ -843,7 +843,7 @@ pub fn init(app: &mut AppContext) {
// UniversalInput callout debug bindings
EditableBinding::new(
"terminal:agent_onboarding_flow_legacy_terminal",
"[Debug] Onboarding Callout: WarpInput - Terminal",
"[Debug] Onboarding Callout: GalaxyInput - Terminal",
TerminalAction::OnboardingFlow(OnboardingVersion::Legacy),
)
.with_enabled(|| {
@@ -854,7 +854,7 @@ pub fn init(app: &mut AppContext) {
),
EditableBinding::new(
"terminal:agent_onboarding_flow_universal_input_project",
"[Debug] Onboarding Callout: WarpInput - Project",
"[Debug] Onboarding Callout: GalaxyInput - Project",
TerminalAction::OnboardingFlow(OnboardingVersion::Agent(
AgentOnboardingVersion::UniversalInput { has_project: true },
)),
@@ -867,7 +867,7 @@ pub fn init(app: &mut AppContext) {
),
EditableBinding::new(
"terminal:agent_onboarding_flow_universal_input_no_project",
"[Debug] Onboarding Callout: WarpInput - No Project",
"[Debug] Onboarding Callout: GalaxyInput - No Project",
TerminalAction::OnboardingFlow(OnboardingVersion::Agent(
AgentOnboardingVersion::UniversalInput { has_project: false },
)),

Some files were not shown because too many files have changed in this diff Show More