Fix cursor focus and selection in input box, add AWS env var warning box, and remove AWS Bedrock login banner

This commit is contained in:
2026-07-02 14:54:15 -05:00
parent 4770ac06b5
commit 3769646ca6
1194 changed files with 5312 additions and 8032 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use galaxyui::accessibility::AccessibilityVerbosity;
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(AccessibilitySettings, settings: [
a11y_verbosity: AccessibilityVerbosityState {
+194 -4
View File
@@ -11,17 +11,18 @@ pub use cloud_object_models::{
AgentModeCommandExecutionPredicate, DEFAULT_COMMAND_EXECUTION_ALLOWLIST,
DEFAULT_COMMAND_EXECUTION_DENYLIST,
};
use galaxy_core::execution_mode::AppExecutionMode;
use galaxy_core::features::FeatureFlag;
use indexmap::IndexMap;
use regex::Regex;
use serde::de::Deserializer;
use serde::{Deserialize, Serialize};
use settings::{
define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
define_settings_group, ChangeEventReason, RespectUserSyncSetting, Setting, SupportedPlatforms,
SyncToCloud,
};
use strum::IntoEnumIterator;
use strum_macros::EnumIter;
use galaxy_core::execution_mode::AppExecutionMode;
use galaxy_core::features::FeatureFlag;
use warpui::platform::keyboard::KeyCode;
use warpui::platform::OperatingSystem;
use warpui::{AppContext, Entity, ModelContext, SingletonEntity, UpdateModel};
@@ -768,6 +769,122 @@ impl settings_value::SettingsValue for ToolbarCommandMap {
}
}
#[derive(
Default,
Debug,
Clone,
Copy,
PartialEq,
Eq,
Serialize,
Deserialize,
EnumIter,
schemars::JsonSchema,
settings_value::SettingsValue,
)]
#[schemars(
description = "Authentication method for AWS Bedrock.",
rename_all = "snake_case"
)]
pub enum BedrockAuthMethod {
#[default]
#[serde(alias = "profile")]
Profile,
#[serde(alias = "static_keys")]
StaticKeys,
#[serde(alias = "sso")]
Sso,
}
settings::macros::implement_setting_for_enum!(
BedrockAuthMethod,
AISettings,
SupportedPlatforms::DESKTOP,
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "ai.bedrock.auth_method",
description: "Authentication method for AWS Bedrock.",
);
impl BedrockAuthMethod {
pub fn display_name(&self) -> &'static str {
match self {
BedrockAuthMethod::Profile => "AWS Profile",
BedrockAuthMethod::StaticKeys => "Static Keys",
BedrockAuthMethod::Sso => "SSO",
}
}
}
/// Configuration for a single Bedrock model.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, schemars::JsonSchema)]
#[schemars(description = "Configuration for a single AWS Bedrock model.")]
pub struct BedrockModelConfig {
#[schemars(
description = "The Bedrock model ID (e.g. anthropic.claude-sonnet-4-20250514-v1:0)."
)]
pub model_id: String,
#[schemars(description = "Display name shown in the model picker.")]
pub display_name: String,
#[serde(default)]
#[schemars(description = "Whether the model supports image/vision input.")]
pub vision_supported: bool,
}
impl settings_value::SettingsValue for BedrockModelConfig {}
fn default_context_size() -> u32 {
200_000
}
/// Configuration for a single OpenAI-compatible (LiteLLM) model.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, schemars::JsonSchema)]
#[schemars(description = "Configuration for a single OpenAI-compatible model (e.g. via LiteLLM).")]
pub struct OpenAIModelConfig {
#[schemars(
description = "The model ID to send in the API request (e.g. claude-sonnet-4-20250514)."
)]
pub model_id: String,
#[schemars(description = "Display name shown in the model picker.")]
pub display_name: String,
#[serde(default)]
#[schemars(description = "Whether the model supports image/vision input.")]
pub vision_supported: bool,
#[serde(default = "default_context_size")]
#[schemars(description = "Maximum context window size in tokens.")]
pub context_size: u32,
#[serde(default)]
#[schemars(
description = "Optional provider hint (e.g. anthropic, openai, google) for icon display."
)]
pub provider: Option<String>,
}
impl settings_value::SettingsValue for OpenAIModelConfig {}
/// Configuration for a single OpenAI-compatible provider endpoint.
///
/// Multiple providers can be configured simultaneously (e.g. LiteLLM for cloud models,
/// Ollama for local models, etc.). Each provider has its own endpoint, credentials, and model list.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, schemars::JsonSchema)]
#[schemars(
description = "Configuration for an OpenAI-compatible provider endpoint (e.g. LiteLLM, Ollama, vLLM)."
)]
pub struct OpenAIProviderConfig {
#[schemars(description = "Display name for this provider (shown in model picker).")]
pub name: String,
#[schemars(description = "Base URL for the OpenAI-compatible API endpoint.")]
pub base_url: String,
#[serde(default)]
#[schemars(description = "API key for this endpoint (optional if the proxy handles auth).")]
pub api_key: Option<String>,
#[serde(default)]
#[schemars(description = "Models available from this provider.")]
pub models: Vec<OpenAIModelConfig>,
}
impl settings_value::SettingsValue for OpenAIProviderConfig {}
define_settings_group!(AISettings, settings: [
// If `false`, all AI features are disabled.
is_any_ai_enabled: IsAnyAIEnabled {
@@ -1094,7 +1211,7 @@ define_settings_group!(AISettings, settings: [
private: true,
}
// Whether to use locally loaded AWS credentials for Bedrock-enabled requests.
aws_bedrock_credentials_enabled: AwsBedrockCredentialsEnabled {
bedrock_enabled: BedrockEnabled {
type: bool,
default: true,
supported_platforms: SupportedPlatforms::DESKTOP,
@@ -1203,6 +1320,67 @@ define_settings_group!(AISettings, settings: [
toml_path: "cloud_platform.third_party_api_keys.gemini_enterprise_credentials_enabled",
description: "Whether Warp should route eligible requests through your workspace's Gemini Enterprise Google Cloud project.",
}
// Whether the OpenAI-compatible (LiteLLM) provider is enabled.
openai_enabled: OpenAIEnabled {
type: bool,
default: false,
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "ai.openai.enabled",
description: "Whether to use an OpenAI-compatible endpoint (e.g. LiteLLM) for AI requests.",
}
// Base URL for the OpenAI-compatible API endpoint.
openai_base_url: OpenAIBaseUrl {
type: String,
default: "http://localhost:4000/v1".to_string(),
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "ai.openai.base_url",
description: "Base URL for the OpenAI-compatible API endpoint (e.g. LiteLLM proxy).",
}
// API key for the OpenAI-compatible endpoint (optional if proxy handles auth).
openai_api_key: OpenAIApiKey {
type: String,
default: String::new(),
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Never,
private: false,
toml_path: "ai.openai.api_key",
description: "API key for the OpenAI-compatible endpoint (optional if proxy handles auth).",
}
// Model name to send to the OpenAI-compatible endpoint. Empty = use selected model ID.
openai_model: OpenAIModel {
type: String,
default: String::new(),
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "ai.openai.model",
description: "Model name to send to the OpenAI-compatible endpoint. Leave empty to use the selected model ID.",
}
// Custom OpenAI-compatible model configurations (fetched from LiteLLM or manually configured).
openai_models: OpenAIModels {
type: Vec<OpenAIModelConfig>,
default: Vec::new(),
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "ai.openai.models",
description: "Custom OpenAI-compatible model configurations (e.g. from LiteLLM).",
}
// Multiple OpenAI-compatible provider endpoints (LiteLLM, Ollama, vLLM, etc.).
// Each provider has its own name, base_url, api_key, and model list.
openai_providers: OpenAIProviders {
type: Vec<OpenAIProviderConfig>,
default: Vec::new(),
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "ai.providers",
description: "Multiple OpenAI-compatible provider endpoints (e.g. LiteLLM, Ollama, local models).",
}
// Whether or not the user wants agent mode requests to use their saved rules.
memory_enabled: MemoryEnabled {
type: bool,
@@ -1349,6 +1527,18 @@ define_settings_group!(AISettings, settings: [
private: true,
}
// Used to determine whether the "What's new in Oz" section of the agent view
// zero state is shown or hidden.
should_show_oz_updates_in_zero_state: ShouldShowOzUpdatesInZeroState {
type: bool,
default: true,
supported_platforms: SupportedPlatforms::ALL,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "agents.warp_agent.other.should_show_oz_updates_in_zero_state",
description: "Whether the \"What's new\" section is shown in the agent view.",
}
// Whether or not the user has enabled fallback to Warp credits for user-provided models.
+1 -3
View File
@@ -1,6 +1,7 @@
use chrono::Utc;
use galaxy_graphql::scalars::time::ServerTimestamp;
use galaxyui::{App, SingletonEntity};
use settings_value::SettingsValue;
use super::*;
use crate::ai::request_usage_model::{RequestLimitInfo, RequestLimitRefreshDuration};
@@ -315,7 +316,6 @@ fn test_toolbar_command_map_from_file_value_map_format() {
#[test]
fn test_toolbar_command_map_from_file_value_legacy_array() {
// Patterns are intentionally non-alphabetical to verify insertion order is preserved.
let value = serde_json::json!(["^zebra", "^alpha", "^middle"]);
let map = ToolbarCommandMap::from_file_value(&value).unwrap();
@@ -329,14 +329,12 @@ fn test_toolbar_command_map_from_file_value_legacy_array() {
#[test]
fn test_toolbar_command_map_from_file_value_invalid() {
let value = serde_json::json!(42);
assert!(ToolbarCommandMap::from_file_value(&value).is_none());
}
#[test]
fn test_toolbar_command_map_roundtrip() {
let mut inner = IndexMap::new();
inner.insert("^claude".to_string(), "Claude".to_string());
inner.insert("^custom".to_string(), String::new());
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(AliasExpansionSettings, settings: [
alias_expansion_enabled: AliasExpansionEnabled {
+2 -3
View File
@@ -1,9 +1,8 @@
use enum_iterator::Sequence;
use galaxy_core::settings::{macros::define_settings_group, SupportedPlatforms, SyncToCloud};
use serde::{Deserialize, Serialize};
use galaxy_core::channel::{Channel, ChannelState};
use galaxy_core::settings::macros::define_settings_group;
use galaxy_core::settings::{SupportedPlatforms, SyncToCloud};
use galaxy_core::settings::{Setting, SupportedPlatforms, SyncToCloud};
use serde::{Deserialize, Serialize};
/// The app icon to use (mac-only).
///
@@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use settings::macros::define_settings_group;
use settings::{SupportedPlatforms, SyncToCloud};
use settings::{Setting, SupportedPlatforms, SyncToCloud};
#[derive(
Clone,
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
// Settings for visibility of non-user command blocks like the bootstrap block
// and in-band command blocks.
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(ChangelogSettings, settings: [
show_changelog_after_update: ShowChangelogAfterUpdate {
+1 -1
View File
@@ -1,6 +1,6 @@
pub use cloud_object_models::{CloudPreference, CloudPreferenceModel, Platform, Preference};
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use crate::cloud_object::model::generic_string_model::StringModel;
use crate::cloud_object::model::json_model::JsonModel;
+2 -2
View File
@@ -4,8 +4,6 @@ use std::sync::Arc;
use std::time::Duration;
use cloud_object_models::JsonSerializer;
use lazy_static::lazy_static;
use settings::{Setting as _, SyncToCloud};
use galaxy_core::execution_mode::AppExecutionMode;
use galaxy_core::r#async::debounce;
use galaxy_core::settings::ChangeEventReason;
@@ -13,6 +11,8 @@ use galaxy_core::user_preferences::GetUserPreferences;
use galaxyui::r#async::Timer;
use galaxyui::{Entity, ModelContext, ModelHandle, SingletonEntity};
use galaxyui_extras::user_preferences::toml_backed::TomlBackedUserPreferences;
use lazy_static::lazy_static;
use settings::{Setting as _, SyncToCloud};
use super::cloud_preferences::{CloudPreferencesSettings, CloudPreferencesSettingsChangedEvent};
use super::manager::SettingsEvent;
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(CodeSettings, settings: [
code_as_default_editor: CodeAsDefaultEditor {
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use crate::banner::BannerState;
+2 -2
View File
@@ -1,10 +1,10 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use galaxy_core::ui::builder::MIN_FONT_SIZE;
use galaxyui::elements::DEFAULT_UI_LINE_HEIGHT_RATIO;
use galaxyui::fonts::Weight;
use galaxyui::rendering::ThinStrokes;
use galaxyui::{AppContext, SingletonEntity};
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use super::EnforceMinimumContrast as EnforceMinimumContrastEnum;
+2 -2
View File
@@ -1,6 +1,6 @@
use settings::macros::define_settings_group;
use settings::{SupportedPlatforms, SyncToCloud};
use galaxyui::platform::GraphicsBackend;
use settings::macros::define_settings_group;
use settings::{Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(GPUSettings, settings: [
prefer_low_power_gpu: PreferLowPowerGPU {
+3 -3
View File
@@ -4,11 +4,11 @@ use std::path::PathBuf;
use async_recursion::async_recursion;
use async_trait::async_trait;
use galaxy_core::ui::color::hex_color::coloru_from_hex_string;
use galaxy_core::ui::theme::{AnsiColor, AnsiColors, GalaxyTheme, TerminalColors};
use galaxyui::fonts::FontInfo;
use pathfinder_color::ColorU;
use serde::Deserialize;
use galaxy_core::ui::color::hex_color::coloru_from_hex_string;
use galaxy_core::ui::theme::{AnsiColor, AnsiColors, TerminalColors, WarpTheme};
use galaxyui::fonts::FontInfo;
use super::config::{
calculate_accent_color, Config, ConfigError, ImportableSetting, ParseableConfig, SettingType,
@@ -1,8 +1,7 @@
use async_io::block_on;
use galaxy_core::ui::{color::hex_color::coloru_from_hex_string, theme::AnsiColor};
use virtual_fs::{Stub, VirtualFS};
use galaxy_core::ui::color::hex_color::coloru_from_hex_string;
use galaxy_core::ui::theme::AnsiColor;
use virtual_fs::{Stub, VirtualFS};
use super::{
AlacrittyColors, AlacrittyConfig, AlacrittyTheme, PrimaryAlacrittyColors, RecursivelyParseable,
+5 -5
View File
@@ -2,15 +2,15 @@ use std::path::PathBuf;
use std::sync::Arc;
use async_trait::async_trait;
use galaxy_core::ui::color::hex_color::HexColorError as UiHexColorError;
use galaxy_core::ui::theme::{AnsiColors, GalaxyTheme};
use galaxyui::fonts::FontInfo;
use galaxyui::keymap::Keystroke;
use galaxyui::DisplayIdx;
use pathfinder_color::ColorU;
use serde::Serialize;
use strum_macros::EnumIter;
use thiserror::Error;
use galaxy_core::ui::color::hex_color::HexColorError as UiHexColorError;
use galaxy_core::ui::theme::{AnsiColors, WarpTheme};
use galaxyui::fonts::FontInfo;
use galaxyui::keymap::Keystroke;
use galaxyui::DisplayIdx;
use super::alacritty_parser::AlacrittyConfig;
#[cfg(target_os = "macos")]
+4 -8
View File
@@ -3,18 +3,14 @@ use std::path::PathBuf;
use async_trait::async_trait;
use bitflags::bitflags;
use galaxy_core::ui::theme::{AnsiColors, GalaxyTheme, TerminalColors};
use galaxyui::{
fonts::FontInfo, keymap::Keystroke, platform::mac::utils::unicode_char_to_key, DisplayIdx,
};
use itertools::Itertools;
use palette::Srgba;
use pathfinder_color::ColorU;
use plist::{Dictionary, Value};
use galaxy_core::ui::theme::{AnsiColors, TerminalColors, WarpTheme};
use galaxyui::fonts::FontInfo;
use galaxyui::keymap::Keystroke;
use galaxyui::platform::mac::utils::unicode_char_to_key;
use galaxyui::DisplayIdx;
use itertools::Itertools;
use palette::Srgba;
use pathfinder_color::ColorU;
use plist::{Dictionary, Value};
use super::config::{
calculate_accent_color, Config, ConfigError, GlobalHotkey, ImportableSetting, ImportedFont,
@@ -1,12 +1,10 @@
use async_io::block_on;
use galaxy_core::ui::theme::{Fill, GalaxyTheme};
use galaxyui::{fonts::FontInfo, keymap::Keystroke};
use galaxyui::fonts::FontInfo;
use galaxyui::keymap::Keystroke;
use pathfinder_color::ColorU;
use plist::{Dictionary, Value};
use virtual_fs::{Stub, VirtualFS};
use galaxy_core::ui::theme::{Fill, WarpTheme};
use galaxyui::fonts::FontInfo;
use galaxyui::keymap::Keystroke;
use super::{color_dictionary_to_coloru, ITermTheme, ITermThemeType};
use crate::settings::import::config::{
+2 -2
View File
@@ -1,10 +1,10 @@
use std::collections::HashMap;
use galaxy_core::features::FeatureFlag;
use galaxyui::{Entity, ModelContext, SingletonEntity};
use serde::Serialize;
use strum::IntoEnumIterator;
use strum_macros::{EnumDiscriminants, EnumIter};
use galaxy_core::features::FeatureFlag;
use galaxyui::{Entity, ModelContext, SingletonEntity};
#[cfg(target_os = "macos")]
use super::config::HotkeyError;
+2 -3
View File
@@ -1,5 +1,3 @@
use galaxy_core::{settings::Setting, ui::appearance::Appearance};
use itertools::Itertools;
use galaxy_core::settings::Setting;
use galaxy_core::ui::appearance::Appearance;
use galaxyui::elements::{
@@ -14,6 +12,7 @@ use galaxyui::ui_components::radio_buttons::{self, RadioButtonItem, RadioButtonS
use galaxyui::{
Element, Entity, ModelContext, ModelHandle, SingletonEntity, TypedActionView, View, ViewContext,
};
use itertools::Itertools;
use super::config::{QuakeModeWindow, ThemeType};
use crate::settings::import::config::{Config, ParsedTerminalSetting, SettingType};
@@ -27,7 +26,7 @@ use crate::terminal::keys_settings::KeysSettings;
use crate::terminal::session_settings::SessionSettings;
use crate::themes::theme::{CustomTheme, SelectedSystemThemes, ThemeKind};
use crate::ui_components::blended_colors;
use crate::user_config::{self, WarpConfig};
use crate::user_config::{self, GalaxyConfig};
use crate::window_settings::WindowSettings;
use crate::{
report_if_error, send_telemetry_from_ctx, GlobalResourceHandlesProvider, TelemetryEvent,
+2 -2
View File
@@ -1,11 +1,12 @@
use std::path::Path;
use settings::{Setting as _, SettingsManager};
use galaxy_core::features::FeatureFlag;
use galaxy_core::semantic_selection::SemanticSelection;
use galaxy_core::user_preferences::GetUserPreferences;
use galaxyui::rendering::GPUPowerPreference;
use galaxyui::{AppContext, SingletonEntity};
use galaxyui_extras::user_preferences;
use settings::{Setting as _, SettingsManager};
use super::app_icon::AppIconSettings;
use super::app_installation_detection::UserAppInstallDetectionSettings;
@@ -363,7 +364,6 @@ fn needs_settings_file_migration_for_path(ctx: &AppContext, settings_file_path:
/// the in-memory setting, and writes to the TOML file with the correct
/// hierarchy, `serialize_for_file` transforms, and `max_table_depth`.
fn migrate_native_settings_to_settings_file(ctx: &mut AppContext) {
log::info!("Migrating public settings from native store to settings.toml");
// Collect the storage keys for all public settings.
+5 -4
View File
@@ -1,13 +1,12 @@
use galaxy_core::features::FeatureFlag;
use galaxy_core::settings::{macros::define_settings_group, SupportedPlatforms, SyncToCloud};
use galaxy_core::settings::macros::define_settings_group;
use galaxy_core::settings::{SupportedPlatforms, SyncToCloud};
use galaxy_core::user_preferences::GetUserPreferences as _;
use galaxyui::SingletonEntity;
use galaxyui_extras::user_preferences;
use instant::Duration;
use settings::{PrivatePreferences, PublicPreferences, Setting, SettingsManager};
use settings_value::SettingsValue;
use galaxy_core::settings::macros::define_settings_group;
use galaxy_core::settings::{SupportedPlatforms, SyncToCloud};
use super::{
migrate_native_settings_to_settings_file, needs_settings_file_migration_for_path,
@@ -373,7 +372,9 @@ fn test_migration_with_multiple_setting_types() {
// serde fallback is never reached and values are lost.
mod notifications_migration {
use settings::{PrivatePreferences, PublicPreferences, SettingsManager};
use galaxy_core::settings::{SupportedPlatforms, SyncToCloud};
use galaxyui_extras::user_preferences;
use settings::{PrivatePreferences, PublicPreferences, Setting, SettingsManager};
use crate::terminal::session_settings::NotificationsSettings;
+1 -1
View File
@@ -1,10 +1,10 @@
use std::collections::HashMap;
use galaxyui::{AppContext, SingletonEntity};
use serde::{Deserialize, Serialize};
use settings::Setting as _;
/// TODO: move alias_expansion setting into this group.
use settings::{define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use galaxyui::{AppContext, SingletonEntity};
use crate::terminal::input::inline_menu::InlineMenuType;
use crate::terminal::session_settings::SessionSettings;
+1 -1
View File
@@ -1,6 +1,6 @@
use galaxyui::platform::linux;
use settings::macros::define_settings_group;
use settings::{SupportedPlatforms, SyncToCloud};
use galaxyui::platform::linux;
define_settings_group!(LinuxAppConfiguration,
settings: [
+2 -2
View File
@@ -4,12 +4,12 @@
//! persisted through Warp's secure storage provider. It is the authoritative
//! enablement bit for local control.
use anyhow::Result;
use galaxy_core::channel::{Channel, ChannelState};
use galaxyui_extras::secure_storage;
use serde::{Deserialize, Serialize};
use settings::macros::define_settings_group;
use settings::{SecureSetting, Setting, SupportedPlatforms, SyncToCloud};
use galaxy_core::channel::{Channel, ChannelState};
use warpui::{AppContext, ModelContext};
use galaxyui_extras::secure_storage;
const LOCAL_CONTROL_MODE_STORAGE_KEY: &str = "LocalControlMode";
+2 -2
View File
@@ -1,11 +1,11 @@
use std::collections::HashMap;
use std::sync::Mutex;
use settings::{PrivatePreferences, PublicPreferences, Setting as _, SettingsManager, SyncToCloud};
use galaxy_core::channel::{Channel, ChannelState};
use warpui::SingletonEntity as _;
use galaxyui_extras::secure_storage::{self, AppContextExt as _};
use galaxyui_extras::user_preferences;
use settings::{PrivatePreferences, PublicPreferences, Setting as _, SettingsManager, SyncToCloud};
use warpui::SingletonEntity as _;
use super::{
default_mode_for_channel, LocalControlMode, LocalControlModeSetting, LocalControlSettings,
+6 -6
View File
@@ -121,21 +121,21 @@ use std::collections::HashMap;
use std::ops::Mul;
use std::path::PathBuf;
use galaxy_core::features::FeatureFlag;
use galaxyui::elements::DEFAULT_UI_LINE_HEIGHT_RATIO;
use galaxyui::keymap::Keystroke;
use galaxyui::{AppContext, DisplayIdx, SingletonEntity};
use lazy_static::lazy_static;
use pathfinder_geometry::rect::RectF;
use pathfinder_geometry::vector::Vector2F;
use serde::{Deserialize, Serialize};
use serde_json::{json, Value};
use settings::Setting as _;
use galaxy_core::features::FeatureFlag;
use galaxyui::elements::DEFAULT_UI_LINE_HEIGHT_RATIO;
use galaxyui::keymap::Keystroke;
use galaxyui::{AppContext, DisplayIdx, SingletonEntity};
use crate::root_view::QuakeModePinPosition;
use crate::terminal::{BlockListSettings, BlockPadding};
use crate::themes::theme::{ThemeKind, WarpTheme};
use crate::user_config::WarpConfig;
use crate::themes::theme::{GalaxyTheme, ThemeKind};
use crate::user_config::GalaxyConfig;
// The following are user preferences keys.
pub const CHANGELOG_VERSIONS: &str = "ChangelogVersions";
+1 -1
View File
@@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use settings::macros::define_settings_group;
use settings::{SupportedPlatforms, SyncToCloud};
use settings::{Setting, SupportedPlatforms, SyncToCloud};
#[derive(
Clone,
+1 -1
View File
@@ -1,7 +1,7 @@
use galaxy_core::features::FeatureFlag;
use onboarding::slides::{AgentAutonomy, AgentDevelopmentSettings};
use onboarding::{SelectedSettings, SessionDefault, UICustomizationSettings};
use settings::Setting as _;
use galaxy_core::features::FeatureFlag;
use warpui::{AppContext, SingletonEntity as _};
use crate::ai::execution_profiles::profiles::AIExecutionProfilesModel;
+1 -1
View File
@@ -1,9 +1,9 @@
use ai::LLMId;
use chrono::{DateTime, Utc};
use galaxy_core::features::FeatureFlag;
use galaxyui::{App, SingletonEntity};
use onboarding::slides::{AgentAutonomy, AgentDevelopmentSettings, ProjectOnboardingSettings};
use onboarding::SelectedSettings;
use galaxy_core::features::FeatureFlag;
use crate::ai::execution_profiles::profiles::AIExecutionProfilesModel;
use crate::ai::execution_profiles::{
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(PaneSettings, settings: [
should_dim_inactive_panes: ShouldDimInactivePanes {
+4 -2
View File
@@ -5,12 +5,14 @@ use anyhow::Result;
use galaxy_core::features::FeatureFlag;
use galaxy_core::report_if_error;
use galaxy_core::user_preferences::GetUserPreferences as _;
use galaxy_graphql::mutations::update_user_settings::UpdateUserSettingsInput;
use galaxyui::{AppContext, Entity, ModelContext, SingletonEntity, UpdateModel};
use regex::Regex;
use serde::{Deserialize, Serialize};
use settings::macros::{define_settings_group, maybe_define_setting, register_settings_events};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use galaxy_graphql::mutations::update_user_settings::UpdateUserSettingsInput;
use settings::{
ChangeEventReason, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
};
use super::cloud_preferences_syncer::CloudPreferencesSyncer;
use crate::ai::blocklist::telemetry_banner::should_collect_ai_ugc_telemetry;
+2 -2
View File
@@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use galaxy_core::define_settings_group;
use serde::{Deserialize, Serialize};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
#[derive(
Debug,
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{SupportedPlatforms, SyncToCloud};
use settings::{Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(ScrollSettings, settings: [
mouse_scroll_multiplier: MouseScrollMultiplier {
+2 -2
View File
@@ -1,9 +1,9 @@
use std::ops::Not;
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use galaxyui::clipboard::ClipboardContent;
use galaxyui::AppContext;
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(SelectionSettings, settings: [
copy_on_select: CopyOnSelect {
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
define_settings_group!(SshSettings,
settings: [
+2 -2
View File
@@ -1,7 +1,7 @@
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use galaxyui::platform::SystemTheme;
use galaxyui::AppContext;
use settings::macros::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use crate::themes::theme::{RespectSystemTheme, SelectedSystemThemes, ThemeKind};
+1 -1
View File
@@ -1,5 +1,5 @@
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
use galaxy_core::define_settings_group;
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
use crate::banner::BannerState;