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:
@@ -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
@@ -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,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,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 {
|
||||
|
||||
@@ -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,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,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,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;
|
||||
|
||||
@@ -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,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,5 +1,5 @@
|
||||
use settings::macros::define_settings_group;
|
||||
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
|
||||
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
|
||||
|
||||
use crate::banner::BannerState;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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")]
|
||||
|
||||
@@ -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::{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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,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,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: [
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,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,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,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,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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,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 {
|
||||
|
||||
@@ -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,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: [
|
||||
|
||||
@@ -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,5 +1,5 @@
|
||||
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
|
||||
use galaxy_core::define_settings_group;
|
||||
use settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud};
|
||||
|
||||
use crate::banner::BannerState;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user