Fix View Options popup not responding to clicks
Remove duplicate popup rendering from render_vertical_tabs_panel. The popup was rendered both inside the panel's stack AND at the workspace level in a Dismiss overlay, causing event dispatch conflicts due to shared MouseStateHandle instances between the two identical popup trees.
This commit is contained in:
@@ -90,6 +90,19 @@ impl ResponseStream {
|
||||
|
||||
// Check if OpenAI/LiteLLM provider is enabled
|
||||
if *settings.openai_enabled.value() {
|
||||
// First, check if this specific model has a per-provider routing entry
|
||||
// (from the multi-provider `ai.providers[]` config or legacy `ai.openai.models`).
|
||||
use crate::ai::llms::LLMPreferences;
|
||||
let prefs = LLMPreferences::as_ref(ctx);
|
||||
if let Some(config) = prefs.openai_client_config_for_model(model_id) {
|
||||
return ProviderConfig::OpenAI(OpenAIClientConfig {
|
||||
base_url: config.base_url.clone(),
|
||||
api_key: config.api_key.clone(),
|
||||
model: Some(model_id.to_string()),
|
||||
});
|
||||
}
|
||||
|
||||
// Fall back to the legacy single-provider config
|
||||
let base_url = settings.openai_base_url.value().clone();
|
||||
let api_key = {
|
||||
let key = settings.openai_api_key.value().clone();
|
||||
@@ -99,8 +112,6 @@ impl ResponseStream {
|
||||
Some(key)
|
||||
}
|
||||
};
|
||||
// Use the model override from settings if set, otherwise use the selected model ID.
|
||||
// This allows LiteLLM models to pass through their actual model_id to the proxy.
|
||||
let model = {
|
||||
let m = settings.openai_model.value().clone();
|
||||
if m.is_empty() {
|
||||
|
||||
+117
-44
@@ -16,7 +16,10 @@ use crate::{
|
||||
network::{NetworkStatus, NetworkStatusEvent, NetworkStatusKind},
|
||||
report_error,
|
||||
server::server_api::ServerApiProvider,
|
||||
settings::ai::{AISettings, AISettingsChangedEvent, BedrockModelConfig, OpenAIModelConfig},
|
||||
settings::ai::{
|
||||
AISettings, AISettingsChangedEvent, BedrockModelConfig, OpenAIModelConfig,
|
||||
OpenAIProviderConfig,
|
||||
},
|
||||
workspaces::user_workspaces::{UserWorkspaces, UserWorkspacesEvent},
|
||||
};
|
||||
|
||||
@@ -512,6 +515,10 @@ pub struct LLMPreferences {
|
||||
models_by_feature: ModelsByFeature,
|
||||
last_update: Option<AvailableLLMsUpdate>,
|
||||
base_llm_for_terminal_view: HashMap<EntityId, LLMId>,
|
||||
/// Maps model IDs from OpenAI-compatible providers to their client configs.
|
||||
/// Used by `resolve_provider_config` to route requests to the correct endpoint.
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
openai_provider_routing: HashMap<String, super::openai::client::OpenAIClientConfig>,
|
||||
}
|
||||
|
||||
impl LLMPreferences {
|
||||
@@ -560,6 +567,7 @@ impl LLMPreferences {
|
||||
AISettingsChangedEvent::OpenAIEnabled { .. }
|
||||
| AISettingsChangedEvent::OpenAIModels { .. }
|
||||
| AISettingsChangedEvent::OpenAIBaseUrl { .. }
|
||||
| AISettingsChangedEvent::OpenAIProviders { .. }
|
||||
) {
|
||||
me.inject_openai_models(ctx);
|
||||
ctx.emit(LLMPreferencesEvent::UpdatedAvailableLLMs);
|
||||
@@ -572,6 +580,8 @@ impl LLMPreferences {
|
||||
models_by_feature,
|
||||
last_update: None,
|
||||
base_llm_for_terminal_view,
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
openai_provider_routing: HashMap::new(),
|
||||
};
|
||||
|
||||
// In agent mode eval builds, eagerly kick off a fetch of the model list from the server
|
||||
@@ -799,9 +809,18 @@ impl LLMPreferences {
|
||||
}
|
||||
}
|
||||
|
||||
/// Injects models from the OpenAI-compatible (LiteLLM) provider into the available model lists.
|
||||
/// Injects models from OpenAI-compatible providers into the available model lists.
|
||||
///
|
||||
/// Supports two configuration paths:
|
||||
/// 1. Legacy single-provider: `ai.openai.{base_url, api_key, models}`
|
||||
/// 2. Multi-provider: `ai.providers[]` (each with name, base_url, api_key, models)
|
||||
///
|
||||
/// Also populates `openai_provider_routing` so that `resolve_provider_config` can
|
||||
/// dispatch requests to the correct endpoint per model.
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
fn inject_openai_models(&mut self, ctx: &AppContext) {
|
||||
use super::openai::client::OpenAIClientConfig;
|
||||
|
||||
// Remove any previously injected LiteLLM models
|
||||
self.models_by_feature
|
||||
.agent_mode
|
||||
@@ -814,65 +833,119 @@ impl LLMPreferences {
|
||||
if let Some(ref mut cli) = self.models_by_feature.cli_agent {
|
||||
cli.choices.retain(|m| m.provider != LLMProvider::LiteLLM);
|
||||
}
|
||||
self.openai_provider_routing.clear();
|
||||
|
||||
let settings = AISettings::as_ref(ctx);
|
||||
if !*settings.openai_enabled.value() {
|
||||
return;
|
||||
}
|
||||
|
||||
let user_models: Vec<OpenAIModelConfig> = settings.openai_models.value().clone();
|
||||
if user_models.is_empty() {
|
||||
// Collect all (provider_name, base_url, api_key, models) tuples from both config paths.
|
||||
let mut provider_entries: Vec<(String, String, Option<String>, Vec<OpenAIModelConfig>)> =
|
||||
Vec::new();
|
||||
|
||||
// Path 1: Multi-provider `ai.providers[]`
|
||||
let providers: Vec<OpenAIProviderConfig> = settings.openai_providers.value().clone();
|
||||
for provider in providers {
|
||||
if provider.models.is_empty() {
|
||||
continue;
|
||||
}
|
||||
provider_entries.push((
|
||||
provider.name,
|
||||
provider.base_url,
|
||||
provider.api_key,
|
||||
provider.models,
|
||||
));
|
||||
}
|
||||
|
||||
// Path 2: Legacy single-provider `ai.openai.{base_url, models}`
|
||||
let legacy_models: Vec<OpenAIModelConfig> = settings.openai_models.value().clone();
|
||||
if !legacy_models.is_empty() {
|
||||
let base_url = settings.openai_base_url.value().clone();
|
||||
let api_key = {
|
||||
let key = settings.openai_api_key.value().clone();
|
||||
if key.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(key)
|
||||
}
|
||||
};
|
||||
let name =
|
||||
if base_url.contains("localhost") || base_url.contains("127.0.0.1") {
|
||||
"LiteLLM (local)".to_string()
|
||||
} else {
|
||||
"LiteLLM".to_string()
|
||||
};
|
||||
provider_entries.push((name, base_url, api_key, legacy_models));
|
||||
}
|
||||
|
||||
if provider_entries.is_empty() {
|
||||
return;
|
||||
}
|
||||
|
||||
let base_url = settings.openai_base_url.value().clone();
|
||||
let description_label = if base_url.contains("localhost") || base_url.contains("127.0.0.1")
|
||||
{
|
||||
"LiteLLM (local)".to_string()
|
||||
} else {
|
||||
"LiteLLM".to_string()
|
||||
};
|
||||
|
||||
for model in &user_models {
|
||||
let llm_info = LLMInfo {
|
||||
id: LLMId::from(model.model_id.as_str()),
|
||||
display_name: model.display_name.clone(),
|
||||
base_model_name: model.display_name.clone(),
|
||||
reasoning_level: None,
|
||||
usage_metadata: LLMUsageMetadata {
|
||||
request_multiplier: 1,
|
||||
credit_multiplier: None,
|
||||
},
|
||||
description: Some(description_label.clone()),
|
||||
disable_reason: None,
|
||||
vision_supported: model.vision_supported,
|
||||
spec: None,
|
||||
provider: LLMProvider::LiteLLM,
|
||||
host_configs: HashMap::from([(
|
||||
LLMModelHost::DirectApi,
|
||||
RoutingHostConfig {
|
||||
enabled: true,
|
||||
model_routing_host: LLMModelHost::DirectApi,
|
||||
},
|
||||
)]),
|
||||
discount_percentage: None,
|
||||
let mut total_injected = 0;
|
||||
for (provider_name, base_url, api_key, models) in provider_entries {
|
||||
let client_config = OpenAIClientConfig {
|
||||
base_url: base_url.clone(),
|
||||
api_key: api_key.clone(),
|
||||
model: None, // filled per-request from model_id
|
||||
};
|
||||
self.models_by_feature
|
||||
.agent_mode
|
||||
.choices
|
||||
.push(llm_info.clone());
|
||||
self.models_by_feature.coding.choices.push(llm_info.clone());
|
||||
if let Some(ref mut cli) = self.models_by_feature.cli_agent {
|
||||
cli.choices.push(llm_info);
|
||||
|
||||
for model in &models {
|
||||
// Register the routing entry
|
||||
self.openai_provider_routing
|
||||
.insert(model.model_id.clone(), client_config.clone());
|
||||
|
||||
let llm_info = LLMInfo {
|
||||
id: LLMId::from(model.model_id.as_str()),
|
||||
display_name: model.display_name.clone(),
|
||||
base_model_name: model.display_name.clone(),
|
||||
reasoning_level: None,
|
||||
usage_metadata: LLMUsageMetadata {
|
||||
request_multiplier: 1,
|
||||
credit_multiplier: None,
|
||||
},
|
||||
description: Some(provider_name.clone()),
|
||||
disable_reason: None,
|
||||
vision_supported: model.vision_supported,
|
||||
spec: None,
|
||||
provider: LLMProvider::LiteLLM,
|
||||
host_configs: HashMap::from([(
|
||||
LLMModelHost::DirectApi,
|
||||
RoutingHostConfig {
|
||||
enabled: true,
|
||||
model_routing_host: LLMModelHost::DirectApi,
|
||||
},
|
||||
)]),
|
||||
discount_percentage: None,
|
||||
};
|
||||
self.models_by_feature
|
||||
.agent_mode
|
||||
.choices
|
||||
.push(llm_info.clone());
|
||||
self.models_by_feature.coding.choices.push(llm_info.clone());
|
||||
if let Some(ref mut cli) = self.models_by_feature.cli_agent {
|
||||
cli.choices.push(llm_info);
|
||||
}
|
||||
total_injected += 1;
|
||||
}
|
||||
}
|
||||
|
||||
log::info!(
|
||||
"[openai/litellm] Injected {} model(s) into available choices",
|
||||
user_models.len()
|
||||
"[openai/litellm] Injected {total_injected} model(s) into available choices"
|
||||
);
|
||||
}
|
||||
|
||||
/// Returns the OpenAI client config for a given model ID, if it was injected
|
||||
/// from an OpenAI-compatible provider.
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
pub fn openai_client_config_for_model(
|
||||
&self,
|
||||
model_id: &str,
|
||||
) -> Option<&super::openai::client::OpenAIClientConfig> {
|
||||
self.openai_provider_routing.get(model_id)
|
||||
}
|
||||
|
||||
/// Returns the `LLMInfo` for the base LLM to be used for an Agent Mode request.
|
||||
pub fn get_active_base_model<'a>(
|
||||
&'a self,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use chrono::Utc;
|
||||
use galaxyui::{App, ModelHandle};
|
||||
use lazy_static::lazy_static;
|
||||
use settings::{RespectUserSyncSetting, SyncToCloud};
|
||||
use settings::{SyncToCloud};
|
||||
|
||||
use crate::auth::auth_manager::AuthManager;
|
||||
use crate::auth::user::TEST_USER_UID;
|
||||
@@ -507,7 +507,7 @@ fn test_create_json_object() {
|
||||
Preference::new(
|
||||
"test_storage_key".to_owned(),
|
||||
"{\"test_key\": \"test_value\"}",
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
)
|
||||
.expect("error creating preference"),
|
||||
),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use galaxy_core::features::FeatureFlag;
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use super::DriveSortOrder;
|
||||
@@ -12,7 +12,7 @@ define_settings_group!(WarpDriveSettings, settings: [
|
||||
type: DriveSortOrder,
|
||||
default: DriveSortOrder::ByObjectType,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warp_drive.sorting_choice",
|
||||
description: "The sort order for items in Galaxy Drive.",
|
||||
@@ -21,7 +21,7 @@ define_settings_group!(WarpDriveSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// Controls whether Warp Drive appears in the tools panel, command palette, and command search.
|
||||
@@ -29,7 +29,7 @@ define_settings_group!(WarpDriveSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warp_drive.enabled",
|
||||
description: "Whether Galaxy Drive is enabled.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(CommandSearchSettings, settings: [
|
||||
@@ -7,7 +7,7 @@ define_settings_group!(CommandSearchSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "workflows.show_global_workflows_in_universal_search",
|
||||
description: "Whether to show global workflows in universal search results.",
|
||||
|
||||
@@ -5,7 +5,7 @@ use futures_lite::future;
|
||||
use galaxy_core::features::FeatureFlag;
|
||||
use galaxy_graphql::{object_permissions::AccessLevel, scalars::time::ServerTimestamp};
|
||||
use galaxyui::{App, ModelHandle, SingletonEntity};
|
||||
use settings::{RespectUserSyncSetting, SyncToCloud};
|
||||
use settings::{SyncToCloud};
|
||||
|
||||
#[cfg(test)]
|
||||
use crate::server::server_api::object::MockObjectClient;
|
||||
@@ -745,7 +745,7 @@ fn test_sync_state_after_creation_item_not_in_sync_queue_generic_object() {
|
||||
Preference::new(
|
||||
"foo".to_owned(),
|
||||
"{\"test_key\": \"test_value\"}",
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
)
|
||||
.expect("error creating preference"),
|
||||
),
|
||||
@@ -1290,7 +1290,7 @@ fn test_bulk_create_generic_string_objects() {
|
||||
Preference::new(
|
||||
"storage_key_1".to_string(),
|
||||
"{\"test_key\": \"test_value_1\"}",
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
)
|
||||
.expect("error creating preference"),
|
||||
),
|
||||
@@ -1303,7 +1303,7 @@ fn test_bulk_create_generic_string_objects() {
|
||||
Preference::new(
|
||||
"storage_key_2".to_string(),
|
||||
"{\"test_key\": \"test_value_2\"}",
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
)
|
||||
.expect("error creating preference"),
|
||||
),
|
||||
@@ -1444,7 +1444,7 @@ fn test_sync_state_after_update_item_not_in_sync_queue_generic_string_object() {
|
||||
Preference::new(
|
||||
"foo".to_owned(),
|
||||
"{\"test_key\": \"test_value\"}",
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
)
|
||||
.expect("error creating preference"),
|
||||
),
|
||||
@@ -1458,7 +1458,7 @@ fn test_sync_state_after_update_item_not_in_sync_queue_generic_string_object() {
|
||||
Preference::new(
|
||||
"foo".to_owned(),
|
||||
"{\"test_key\": \"test_value_2\"}",
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
)
|
||||
.expect("error creating preference"),
|
||||
),
|
||||
@@ -2679,7 +2679,7 @@ fn test_pending_metadata_update_with_polling() {
|
||||
Preference::new(
|
||||
"test_storage_key".to_string(),
|
||||
"{\"test_key\": \"test_value\"}",
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
)
|
||||
.expect("error creating preference"),
|
||||
),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use galaxyui::accessibility::AccessibilityVerbosity;
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(AccessibilitySettings, settings: [
|
||||
@@ -8,7 +8,7 @@ define_settings_group!(AccessibilitySettings, settings: [
|
||||
type: AccessibilityVerbosity,
|
||||
default: AccessibilityVerbosity::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "AccessibilityVerbosity",
|
||||
toml_path: "accessibility.accessibility_verbosity",
|
||||
|
||||
+81
-77
@@ -25,7 +25,7 @@ use regex::Regex;
|
||||
use galaxy_core::execution_mode::AppExecutionMode;
|
||||
use galaxy_core::features::FeatureFlag;
|
||||
use settings::{
|
||||
define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use serde::{de::Deserializer, Deserialize, Serialize};
|
||||
@@ -311,7 +311,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
DefaultSessionMode,
|
||||
AISettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.default_session_mode",
|
||||
description: "The default mode for new terminal sessions.",
|
||||
@@ -361,7 +361,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
ThinkingDisplayMode,
|
||||
AISettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.thinking_display_mode",
|
||||
description: "Controls how agent thinking traces are displayed after streaming.",
|
||||
@@ -422,7 +422,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
BedrockAuthMethod,
|
||||
AISettings,
|
||||
SupportedPlatforms::DESKTOP,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.auth_method",
|
||||
description: "Authentication method for AWS Bedrock.",
|
||||
@@ -825,7 +825,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.is_any_ai_enabled",
|
||||
description: "Controls whether all AI features are enabled.",
|
||||
@@ -836,7 +836,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.enabled",
|
||||
description: "Controls whether proactive AI features like suggestions are enabled.",
|
||||
@@ -847,7 +847,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.ai_auto_detection_enabled",
|
||||
description: "Controls whether AI automatically detects natural language input.",
|
||||
@@ -861,7 +861,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.nld_in_terminal_enabled",
|
||||
description: "Controls whether natural language detection is enabled in the terminal input.",
|
||||
@@ -870,7 +870,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.ai_command_denylist",
|
||||
description: "Commands to exclude from AI natural language autodetection.",
|
||||
@@ -882,7 +882,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.use_local_model",
|
||||
description: "Use a locally downloaded AI model for command recognition and suggestions instead of Bedrock.",
|
||||
@@ -893,7 +893,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true, // TODO(roland): revisit this when launched to stable
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.intelligent_autosuggestions_enabled",
|
||||
description: "Controls whether AI-powered intelligent autosuggestions are enabled.",
|
||||
@@ -907,7 +907,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true, // TODO(advait): revisit this when launched to stable
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.agent_mode_query_suggestions_enabled",
|
||||
description: "Controls whether prompt suggestions are shown in agent mode.",
|
||||
@@ -919,7 +919,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.code_suggestions_enabled",
|
||||
description: "Controls whether AI code suggestions are enabled.",
|
||||
@@ -931,7 +931,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.natural_language_autosuggestions_enabled",
|
||||
description: "Controls whether ghosted text autosuggestions are shown for AI input queries.",
|
||||
@@ -944,7 +944,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.shared_block_title_generation_enabled",
|
||||
description: "Controls whether titles are auto-generated when sharing blocks.",
|
||||
@@ -955,7 +955,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.git_operations_autogen_enabled",
|
||||
description: "Controls whether AI auto-generates commit messages and PR title/body in the code review dialogs.",
|
||||
@@ -966,7 +966,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.rule_suggestions_enabled",
|
||||
description: "Controls whether the agent suggests rules to save after responses.",
|
||||
@@ -978,7 +978,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.voice.voice_input_enabled",
|
||||
description: "Controls whether voice input is enabled for AI interactions.",
|
||||
@@ -990,7 +990,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: usize,
|
||||
default: 0,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// Whether or not the user has manually dismissed the voice input new feature popup.
|
||||
@@ -998,7 +998,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// This field is used to store the key used for voice input toggling.
|
||||
@@ -1011,8 +1011,8 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
// Never sync to cloud to keep state separate across devices, since microphone access is per-device.
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never, // Never sync to cloud to keep state separate across devices, since microphone access is per-device.
|
||||
|
||||
private: true,
|
||||
},
|
||||
// Predicates that Agent Mode can use to decide if it can execute
|
||||
@@ -1024,7 +1024,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<AgentModeCommandExecutionPredicate>,
|
||||
default: DEFAULT_COMMAND_EXECUTION_ALLOWLIST.clone(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_command_execution_allowlist",
|
||||
description: "Commands that the agent can execute without explicit permission.",
|
||||
@@ -1038,7 +1038,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<AgentModeCommandExecutionPredicate>,
|
||||
default: DEFAULT_COMMAND_EXECUTION_DENYLIST.clone(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_command_execution_denylist",
|
||||
description: "Commands that the agent must always ask before executing.",
|
||||
@@ -1051,7 +1051,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_execute_readonly_commands",
|
||||
description: "Whether the agent can auto-execute read-only commands without asking.",
|
||||
@@ -1066,7 +1066,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: AgentModeCodingPermissionsType,
|
||||
default: AgentModeCodingPermissionsType::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_coding_permissions",
|
||||
description: "The file read permission level for the agent.",
|
||||
@@ -1082,7 +1082,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<PathBuf>,
|
||||
default: vec![],
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_coding_file_read_allowlist",
|
||||
description: "File paths the agent can read without asking for permission.",
|
||||
@@ -1095,7 +1095,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether or not we should show the speedbump for auto-executing readonly cmds.
|
||||
@@ -1106,7 +1106,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether or not we should show the speedbump for auto-writing to the PTY.
|
||||
@@ -1117,7 +1117,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether or not we should show the speedbump for auto-reading files.
|
||||
@@ -1128,7 +1128,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether direct Bedrock integration is enabled (client calls Bedrock API directly).
|
||||
@@ -1136,7 +1136,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.enabled",
|
||||
description: "Whether to use AWS Bedrock directly for AI requests.",
|
||||
@@ -1148,7 +1148,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: "default".to_string(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.profile",
|
||||
description: "The AWS profile name to use for Bedrock credentials.",
|
||||
@@ -1158,7 +1158,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.region",
|
||||
description: "AWS region for Bedrock API calls. Leave empty to auto-detect from profile.",
|
||||
@@ -1168,7 +1168,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.cross_region_inference",
|
||||
description: "Whether to automatically add cross-region inference prefixes to model IDs.",
|
||||
@@ -1178,7 +1178,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<BedrockModelConfig>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.models",
|
||||
description: "Custom AWS Bedrock model configurations.",
|
||||
@@ -1188,7 +1188,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.auto_login",
|
||||
description: "Whether to automatically run the login command when Bedrock credentials expire.",
|
||||
@@ -1198,7 +1198,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: "aws sso login".to_string(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.auth_refresh_command",
|
||||
description: "The command to run to refresh AWS credentials for Bedrock.",
|
||||
@@ -1208,7 +1208,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// AWS secret access key for static key authentication (stored in OS keychain).
|
||||
@@ -1216,7 +1216,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether the Bedrock login banner has been permanently dismissed.
|
||||
@@ -1224,7 +1224,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether the OpenAI-compatible (LiteLLM) provider is enabled.
|
||||
@@ -1232,17 +1232,18 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
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.
|
||||
// Never synced — machine-local infrastructure (e.g. localhost).
|
||||
openai_base_url: OpenAIBaseUrl {
|
||||
type: String,
|
||||
default: "http://localhost:4000/v1".to_string(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.openai.base_url",
|
||||
description: "Base URL for the OpenAI-compatible API endpoint (e.g. LiteLLM proxy).",
|
||||
@@ -1252,38 +1253,41 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
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.
|
||||
// Never synced — tied to the specific endpoint configuration.
|
||||
openai_model: OpenAIModel {
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
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).
|
||||
// Never synced to cloud — these are machine-local (tied to local endpoints).
|
||||
openai_models: OpenAIModels {
|
||||
type: Vec<OpenAIModelConfig>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
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.
|
||||
// Never synced to cloud — these are machine-local infrastructure configs.
|
||||
openai_providers: OpenAIProviders {
|
||||
type: Vec<OpenAIProviderConfig>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.providers",
|
||||
description: "Multiple OpenAI-compatible provider endpoints (e.g. LiteLLM, Ollama, local models).",
|
||||
@@ -1293,7 +1297,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.knowledge.rules_enabled",
|
||||
description: "Whether the agent uses your saved rules during requests.",
|
||||
@@ -1303,7 +1307,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.knowledge.warp_drive_context_enabled",
|
||||
description: "Whether Galaxy Drive context is included in AI requests.",
|
||||
@@ -1316,7 +1320,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<PathBuf>,
|
||||
default: vec![],
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1328,7 +1332,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<PathBuf>,
|
||||
default: vec![],
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1339,7 +1343,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1348,7 +1352,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: AIRequestQuotaInfo,
|
||||
default: AIRequestQuotaInfo::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
|
||||
@@ -1360,7 +1364,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1368,7 +1372,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Option<String>,
|
||||
default: None,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
|
||||
@@ -1381,7 +1385,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1394,7 +1398,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1406,7 +1410,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "cloud_platform.third_party_api_keys.can_use_warp_credits_with_byok",
|
||||
description: "Whether Galaxy credits can be used even when providing your own API key.",
|
||||
@@ -1416,7 +1420,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.should_render_use_agent_toolbar_for_user_commands",
|
||||
description: "Whether to show the \"Use Agent\" footer for terminal commands.",
|
||||
@@ -1428,7 +1432,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.should_render_cli_agent_toolbar",
|
||||
description: "Whether to show the CLI agent footer for coding agent commands.",
|
||||
@@ -1440,7 +1444,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.auto_toggle_composer",
|
||||
description: "Whether CLI agent Rich Input automatically closes and reopens based on the agent's blocked state.",
|
||||
@@ -1452,7 +1456,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.auto_open_composer_on_cli_agent_start",
|
||||
description: "Whether CLI agent Rich Input automatically opens when a CLI agent session starts.",
|
||||
@@ -1466,7 +1470,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.auto_dismiss_composer_after_submit",
|
||||
description: "Whether CLI agent Rich Input automatically closes after the user submits a prompt.",
|
||||
@@ -1480,7 +1484,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: ToolbarCommandMap,
|
||||
default: ToolbarCommandMap::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.cli_agent_toolbar_enabled_commands",
|
||||
max_table_depth: 1,
|
||||
@@ -1497,7 +1501,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1512,7 +1516,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1522,7 +1526,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1533,7 +1537,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1548,7 +1552,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.default_tab_config_path",
|
||||
}
|
||||
@@ -1561,7 +1565,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.mcp_servers.file_based_mcp_enabled",
|
||||
description: "Whether third-party file-based MCP servers are automatically detected.",
|
||||
@@ -1577,7 +1581,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.include_agent_commands_in_history",
|
||||
description: "Whether agent-executed commands are included in command history.",
|
||||
@@ -1588,7 +1592,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.show_conversation_history",
|
||||
description: "Whether conversation history appears in the tools panel.",
|
||||
@@ -1600,7 +1604,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.show_agent_notifications",
|
||||
description: "Whether agent notifications are shown.",
|
||||
@@ -1613,7 +1617,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: HashMap<String, bool>,
|
||||
default: HashMap::default(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1625,7 +1629,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: HashMap<String, String>,
|
||||
default: HashMap::default(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1637,7 +1641,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.agent_attribution_enabled",
|
||||
description: "Whether the Galaxy Agent adds an attribution co-author line to commit messages and pull requests it creates.",
|
||||
@@ -1650,7 +1654,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
]);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(AliasExpansionSettings, settings: [
|
||||
@@ -7,7 +7,7 @@ define_settings_group!(AliasExpansionSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.alias_expansion_enabled",
|
||||
description: "Whether shell alias expansion is enabled in the input.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
// Settings for visibility of non-user command blocks like the bootstrap block
|
||||
@@ -9,7 +9,7 @@ define_settings_group!(BlockVisibilitySettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.blocks.should_show_bootstrap_block",
|
||||
description: "Whether the bootstrap block is visible in the terminal.",
|
||||
@@ -18,7 +18,7 @@ define_settings_group!(BlockVisibilitySettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.blocks.should_show_in_band_command_blocks",
|
||||
description: "Whether in-band command blocks are visible in the terminal.",
|
||||
@@ -27,7 +27,7 @@ define_settings_group!(BlockVisibilitySettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.blocks.should_show_ssh_block",
|
||||
description: "Whether the SSH connection block is visible in the terminal.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(ChangelogSettings, settings: [
|
||||
@@ -7,7 +7,7 @@ define_settings_group!(ChangelogSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.show_changelog_after_update",
|
||||
description: "Whether the changelog is shown after an update.",
|
||||
|
||||
@@ -15,14 +15,14 @@ use crate::{
|
||||
};
|
||||
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
define_settings_group!(CloudPreferencesSettings, settings: [
|
||||
settings_sync_enabled: IsSettingsSyncEnabled {
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "account.is_settings_sync_enabled",
|
||||
description: "Whether settings are synced across devices via the cloud.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(CodeSettings, settings: [
|
||||
@@ -16,7 +16,7 @@ define_settings_group!(CodeSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "AgentModeCodebaseContext",
|
||||
toml_path: "code.indexing.agent_mode_codebase_context",
|
||||
@@ -26,7 +26,7 @@ define_settings_group!(CodeSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "AgentModeCodebaseContextAutoIndexing",
|
||||
toml_path: "code.indexing.agent_mode_codebase_context_auto_indexing",
|
||||
@@ -37,7 +37,7 @@ define_settings_group!(CodeSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// Controls whether the project explorer / file tree appears in the tools panel.
|
||||
@@ -45,7 +45,7 @@ define_settings_group!(CodeSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.show_project_explorer",
|
||||
description: "Whether the project explorer is shown in the tools panel.",
|
||||
@@ -55,7 +55,7 @@ define_settings_group!(CodeSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.show_global_search",
|
||||
description: "Whether global file search is shown in the tools panel.",
|
||||
|
||||
+10
-10
@@ -4,7 +4,7 @@ use enum_iterator::{all, Sequence};
|
||||
use galaxyui::ModelContext;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting as _, SupportedPlatforms,
|
||||
macros::define_settings_group, Setting as _, SupportedPlatforms,
|
||||
SyncToCloud,
|
||||
};
|
||||
|
||||
@@ -153,7 +153,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: CursorBlink,
|
||||
default: CursorBlink::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "CursorBlink",
|
||||
toml_path: "appearance.cursor.cursor_blink",
|
||||
@@ -163,7 +163,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: CursorDisplayType,
|
||||
default: CursorDisplayType::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "CursorDisplayType",
|
||||
toml_path: "appearance.cursor.cursor_display_type",
|
||||
@@ -173,7 +173,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "text_editing.vim_mode_enabled",
|
||||
description: "Whether Vim keybindings are enabled.",
|
||||
@@ -182,7 +182,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "text_editing.vim_unnamed_system_clipboard",
|
||||
description: "Whether the Vim unnamed register uses the system clipboard.",
|
||||
@@ -191,7 +191,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "text_editing.vim_status_bar",
|
||||
description: "Whether the Vim status bar is displayed.",
|
||||
@@ -200,7 +200,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "text_editing.autocomplete_symbols",
|
||||
description: "Whether matching symbols like brackets and quotes are auto-completed.",
|
||||
@@ -209,7 +209,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "Autosuggestions",
|
||||
toml_path: "terminal.input.autosuggestions.enabled",
|
||||
@@ -219,7 +219,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.autosuggestions.keybinding_hint",
|
||||
description: "Whether autosuggestion keybinding hints are displayed.",
|
||||
@@ -228,7 +228,7 @@ define_settings_group!(AppEditorSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.autosuggestions.show_ignore_button",
|
||||
description: "Whether the ignore button is shown for autosuggestions.",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::banner::BannerState;
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
// This isn't exactly a setting, but rather a record of a
|
||||
@@ -15,7 +15,7 @@ define_settings_group!(EmacsBindingsSettings, settings: [
|
||||
type: BannerState,
|
||||
default: BannerState::NotDismissed,
|
||||
supported_platforms: SupportedPlatforms::LINUX,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -3,7 +3,7 @@ use galaxyui::{fonts::Weight, rendering::ThinStrokes, AppContext, SingletonEntit
|
||||
|
||||
use galaxyui::elements::DEFAULT_UI_LINE_HEIGHT_RATIO;
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use super::EnforceMinimumContrast as EnforceMinimumContrastEnum;
|
||||
@@ -97,7 +97,7 @@ define_settings_group!(FontSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.text.match_notebook_to_monospace_font_size",
|
||||
description: "Whether the notebook font size matches the terminal font size.",
|
||||
@@ -106,7 +106,7 @@ define_settings_group!(FontSettings,
|
||||
type: EnforceMinimumContrastEnum,
|
||||
default: EnforceMinimumContrastEnum::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.text.enforce_minimum_contrast",
|
||||
description: "Whether to enforce minimum contrast for text readability.",
|
||||
|
||||
+15
-15
@@ -1,7 +1,7 @@
|
||||
use galaxyui::{AppContext, SingletonEntity};
|
||||
use serde::{Deserialize, Serialize};
|
||||
/// TODO: move alias_expansion setting into this group.
|
||||
use settings::{define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
|
||||
use settings::{define_settings_group, SupportedPlatforms, SyncToCloud};
|
||||
use std::collections::HashMap;
|
||||
|
||||
use crate::terminal::input::inline_menu::InlineMenuType;
|
||||
@@ -38,7 +38,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.show_hint_text",
|
||||
description: "Whether hint text is shown in the terminal input.",
|
||||
@@ -47,7 +47,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.classic_completions_mode",
|
||||
description: "Whether classic completions mode is enabled.",
|
||||
@@ -56,7 +56,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.completions_open_while_typing",
|
||||
description: "Whether the completions menu opens automatically while typing.",
|
||||
@@ -65,7 +65,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.error_underlining_enabled",
|
||||
description: "Whether command errors are underlined in the input.",
|
||||
@@ -74,7 +74,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.syntax_highlighting",
|
||||
description: "Whether syntax highlighting is enabled in the terminal input.",
|
||||
@@ -83,7 +83,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.command_corrections",
|
||||
description: "Whether command corrections are suggested for mistyped commands.",
|
||||
@@ -92,7 +92,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
storage_key: "WorkflowsBoxOpen",
|
||||
},
|
||||
@@ -100,14 +100,14 @@ define_settings_group!(InputSettings,
|
||||
type: i8,
|
||||
default: 0,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
input_box_type: InputBoxTypeSetting {
|
||||
type: InputBoxType,
|
||||
default: InputBoxType::Classic,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.input_box_type_setting",
|
||||
description: "The terminal input style.",
|
||||
@@ -116,7 +116,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.at_context_menu_in_terminal_mode",
|
||||
description: "Whether the @ context menu is available in terminal mode.",
|
||||
@@ -125,7 +125,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.enable_slash_commands_in_terminal",
|
||||
description: "Whether slash commands are available in the terminal input.",
|
||||
@@ -134,7 +134,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.outline_codebase_symbols_for_at_context_menu",
|
||||
description: "Whether codebase symbols appear in the @ context menu.",
|
||||
@@ -157,7 +157,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.show_agent_tips",
|
||||
description: "Whether agent tips are displayed in the input.",
|
||||
@@ -168,7 +168,7 @@ define_settings_group!(InputSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.show_terminal_input_message_bar",
|
||||
description: "Whether the terminal input message bar is shown.",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::terminal::block_list_viewport::InputMode;
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(InputModeSettings, settings: [
|
||||
@@ -10,7 +10,7 @@ define_settings_group!(InputModeSettings, settings: [
|
||||
// to set it to InputMode::Waterfall.
|
||||
default: InputMode::PinnedToBottom,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "InputMode",
|
||||
toml_path: "appearance.input.input_mode",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(PaneSettings, settings: [
|
||||
@@ -7,7 +7,7 @@ define_settings_group!(PaneSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.panes.should_dim_inactive_panes",
|
||||
description: "Whether inactive panes are visually dimmed.",
|
||||
@@ -16,7 +16,7 @@ define_settings_group!(PaneSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.panes.focus_pane_on_hover",
|
||||
description: "Whether panes are focused when hovered over.",
|
||||
|
||||
@@ -22,7 +22,7 @@ use crate::terminal::safe_mode_settings::SafeModeSettings;
|
||||
|
||||
use settings::{
|
||||
macros::{define_settings_group, maybe_define_setting, register_settings_events},
|
||||
RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -98,7 +98,7 @@ define_settings_group!(WarpDrivePrivacySettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "TelemetryEnabled",
|
||||
toml_path: "privacy.telemetry_enabled",
|
||||
@@ -108,7 +108,7 @@ define_settings_group!(WarpDrivePrivacySettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "CrashReportingEnabled",
|
||||
toml_path: "privacy.crash_reporting_enabled",
|
||||
@@ -118,7 +118,7 @@ define_settings_group!(WarpDrivePrivacySettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "CloudConversationStorageEnabled",
|
||||
toml_path: "agents.cloud_conversation_storage_enabled",
|
||||
@@ -130,7 +130,7 @@ maybe_define_setting!(CustomSecretRegexList, group: PrivacySettings, {
|
||||
type: Vec<CustomSecretRegex>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "privacy.custom_secret_regex_list",
|
||||
description: "Custom regex patterns for detecting and redacting secrets.",
|
||||
@@ -140,7 +140,7 @@ maybe_define_setting!(HasInitializedDefaultSecretRegexes, group: PrivacySettings
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use galaxy_core::define_settings_group;
|
||||
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
|
||||
use settings::{SupportedPlatforms, SyncToCloud};
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@@ -41,7 +41,7 @@ define_settings_group!(SameLinePromptBlockSettings, settings: [
|
||||
type: SLPBlockState,
|
||||
default: SLPBlockState::NotShown,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::ops::Not;
|
||||
use galaxyui::{clipboard::ClipboardContent, AppContext};
|
||||
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(SelectionSettings, settings: [
|
||||
@@ -11,7 +11,7 @@ define_settings_group!(SelectionSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.copy_on_select",
|
||||
description: "Whether text is automatically copied to the clipboard when selected.",
|
||||
@@ -20,7 +20,7 @@ define_settings_group!(SelectionSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::LINUX,
|
||||
sync_to_cloud: SyncToCloud::PerPlatform(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "system.linux_selection_clipboard",
|
||||
description: "Whether the Linux primary selection clipboard is used.",
|
||||
@@ -32,7 +32,7 @@ define_settings_group!(SelectionSettings, settings: [
|
||||
SupportedPlatforms::WINDOWS.into(),
|
||||
SupportedPlatforms::MAC.into()
|
||||
),
|
||||
sync_to_cloud: SyncToCloud::PerPlatform(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.middle_click_paste_enabled",
|
||||
description: "Whether middle-click pastes from the clipboard.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(SshSettings,
|
||||
@@ -8,7 +8,7 @@ define_settings_group!(SshSettings,
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "EnableSSHWrapper",
|
||||
toml_path: "warpify.ssh.enable_legacy_ssh_wrapper",
|
||||
|
||||
@@ -2,7 +2,7 @@ use galaxyui::{platform::SystemTheme, AppContext};
|
||||
|
||||
use crate::themes::theme::{RespectSystemTheme, SelectedSystemThemes, ThemeKind};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
// Settings group for themes related settings.
|
||||
@@ -18,7 +18,7 @@ define_settings_group!(ThemeSettings, settings: [
|
||||
// to set the default theme to Phenomenon.
|
||||
default: ThemeKind::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.themes.theme",
|
||||
max_table_depth: 0,
|
||||
@@ -28,7 +28,7 @@ define_settings_group!(ThemeSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "SystemTheme",
|
||||
toml_path: "appearance.themes.system_theme",
|
||||
@@ -38,7 +38,7 @@ define_settings_group!(ThemeSettings, settings: [
|
||||
type: SelectedSystemThemes,
|
||||
default: SelectedSystemThemes::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "SelectedSystemThemes",
|
||||
toml_path: "appearance.themes.selected_system_themes",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::banner::BannerState;
|
||||
use galaxy_core::define_settings_group;
|
||||
use settings::{RespectUserSyncSetting, SupportedPlatforms, SyncToCloud};
|
||||
use settings::{SupportedPlatforms, SyncToCloud};
|
||||
|
||||
// This isn't exactly a setting, but rather a record of a
|
||||
// user action that should be persisted the same way we would a setting.
|
||||
@@ -14,7 +14,7 @@ define_settings_group!(VimBannerSettings, settings: [
|
||||
type: BannerState,
|
||||
default: BannerState::NotDismissed,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(AltScreenReporting, settings: [
|
||||
@@ -7,7 +7,7 @@ define_settings_group!(AltScreenReporting, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.mouse_reporting_enabled",
|
||||
description: "Whether to forward mouse events to full-screen terminal applications.",
|
||||
@@ -16,7 +16,7 @@ define_settings_group!(AltScreenReporting, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.scroll_reporting_enabled",
|
||||
description: "Whether to forward scroll events to full-screen terminal applications.",
|
||||
@@ -25,7 +25,7 @@ define_settings_group!(AltScreenReporting, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.focus_reporting_enabled",
|
||||
description: "Whether to forward focus and blur events to full-screen terminal applications.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
// Settings for controlling the behavior of the block list.
|
||||
@@ -8,7 +8,7 @@ define_settings_group!(BlockListSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.blocks.show_jump_to_bottom_of_block_button",
|
||||
description: "Whether to show the jump-to-bottom button in long command output.",
|
||||
@@ -17,7 +17,7 @@ define_settings_group!(BlockListSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.snackbar_enabled",
|
||||
description: "Whether to show snackbar notifications.",
|
||||
@@ -26,7 +26,7 @@ define_settings_group!(BlockListSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.blocks.show_block_dividers",
|
||||
description: "Whether to show dividers between terminal blocks.",
|
||||
|
||||
@@ -2,7 +2,7 @@ use std::collections::HashSet;
|
||||
|
||||
use crate::{banner::BannerState, resource_center::Tip};
|
||||
use galaxy_core::settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(GeneralSettings, settings: [
|
||||
@@ -10,7 +10,7 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.show_warning_before_quitting",
|
||||
description: "Whether to show a warning dialog before quitting Galaxy.",
|
||||
@@ -19,7 +19,7 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::MAC,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.quit_on_last_window_closed",
|
||||
description: "Whether to quit Galaxy when the last window is closed.",
|
||||
@@ -28,7 +28,7 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.restore_session",
|
||||
description: "Whether to restore the previous session when Galaxy starts up.",
|
||||
@@ -64,7 +64,7 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.link_tooltip",
|
||||
description: "Whether to show a tooltip when hovering over links.",
|
||||
@@ -80,28 +80,28 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
agent_mode_onboarding_block_shown: AgentModeOnboardingBlockShown {
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
telemetry_banner_dismissed: TelemetryBannerDismissed {
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
user_default_shell_unsupported_banner_state: UserDefaultShellUnsupportedBannerState {
|
||||
type: BannerState,
|
||||
default: BannerState::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
open_in_warp_banner_dismissed_for_markdown: OpenInWarpBannerDismissedMarkdown {
|
||||
@@ -129,14 +129,14 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
build_plan_migration_modal_dismissed: BuildPlanMigrationModalDismissed {
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// One-time flag tracking whether the OpenWarp launch modal has already been
|
||||
@@ -146,7 +146,7 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
anonymous_user_ai_sign_up_banner_shown: AnonymousUserAISignUpBannerShown {
|
||||
@@ -160,7 +160,7 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.auto_open_code_review_pane_on_first_agent_change",
|
||||
description: "Whether to automatically open the code review pane when the agent makes its first change.",
|
||||
@@ -169,7 +169,7 @@ define_settings_group!(GeneralSettings, settings: [
|
||||
type: HashSet<String>,
|
||||
default: HashSet::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use galaxyui::{keymap::Keystroke, AppContext, DisplayIdx, ModelContext};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
@@ -17,7 +17,7 @@ define_settings_group!(KeysSettings, settings: [
|
||||
type: crate::settings::QuakeModeSettings,
|
||||
default: crate::settings::QuakeModeSettings::default(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "global_hotkey.dedicated_window.settings",
|
||||
max_table_depth: 2,
|
||||
@@ -27,7 +27,7 @@ define_settings_group!(KeysSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "global_hotkey.dedicated_window.enabled",
|
||||
description: "Whether the dedicated hotkey window is enabled. Mutually exclusive with `global_hotkey.toggle_all_windows.enabled`; only one should be true at a time.",
|
||||
@@ -36,7 +36,7 @@ define_settings_group!(KeysSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "global_hotkey.toggle_all_windows.enabled",
|
||||
description: "Whether the hotkey that toggles visibility of all windows is enabled. Mutually exclusive with `global_hotkey.dedicated_window.enabled`; only one should be true at a time.",
|
||||
@@ -45,7 +45,7 @@ define_settings_group!(KeysSettings, settings: [
|
||||
type: Option<Keystroke>,
|
||||
default: None,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "global_hotkey.toggle_all_windows.keybinding",
|
||||
description: "The keybinding used for the global activation hotkey. Format: modifiers (cmd, ctrl, alt, shift, meta) and a key joined by '-', e.g. \"cmd-shift-a\" or \"alt-enter\". Bindings are case-sensitive: when shift is present, the key must be its shifted form (e.g., \"ctrl-shift-E\", not \"ctrl-shift-e\").",
|
||||
@@ -54,7 +54,7 @@ define_settings_group!(KeysSettings, settings: [
|
||||
type: ExtraMetaKeysEnum,
|
||||
default: ExtraMetaKeysEnum::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.extra_meta_keys",
|
||||
description: "Controls which additional keys are treated as meta keys.",
|
||||
@@ -63,7 +63,7 @@ define_settings_group!(KeysSettings, settings: [
|
||||
type: CtrlTabBehavior,
|
||||
default: CtrlTabBehavior::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "keys.ctrl_tab_behavior_setting",
|
||||
description: "Controls the behavior of Ctrl+Tab.",
|
||||
|
||||
@@ -2,7 +2,7 @@ use crate::features::FeatureFlag;
|
||||
|
||||
use galaxyui::{AppContext, SingletonEntity};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(LigatureSettings, settings: [
|
||||
@@ -10,7 +10,7 @@ define_settings_group!(LigatureSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.text.ligature_rendering_enabled",
|
||||
description: "Whether to render font ligatures in the terminal.",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use galaxyui::{AppContext, SingletonEntity};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use crate::{terminal::model::ObfuscateSecrets, workspaces::user_workspaces::UserWorkspaces};
|
||||
@@ -75,7 +75,7 @@ define_settings_group!(SafeModeSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "privacy.secret_redaction.enabled",
|
||||
description: "Whether secret redaction is enabled to detect and obscure secrets in terminal output.",
|
||||
@@ -84,7 +84,7 @@ define_settings_group!(SafeModeSettings, settings: [
|
||||
type: SecretDisplayMode,
|
||||
default: SecretDisplayMode::Strikethrough,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "privacy.secret_redaction.secret_display_mode_setting",
|
||||
description: "Controls how detected secrets are visually displayed in the terminal.",
|
||||
@@ -94,7 +94,7 @@ define_settings_group!(SafeModeSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "privacy.secret_redaction.hide_secrets_in_block_list",
|
||||
description: "Whether to hide detected secrets in the block list using asterisks.",
|
||||
|
||||
@@ -10,7 +10,7 @@ pub use startup_shell::*;
|
||||
pub use working_directory_config::*;
|
||||
|
||||
use galaxy_core::settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use crate::ai::blocklist::agent_view::toolbar_item::AgentToolbarItemKind;
|
||||
@@ -300,7 +300,7 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.input.honor_ps1",
|
||||
description: "Whether to use your shell's PS1 prompt instead of the Galaxy prompt.",
|
||||
@@ -309,21 +309,21 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: PromptSelection,
|
||||
default: PromptSelection::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
should_add_agent_mode_chip: ShouldAddAgentModeChip {
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
should_confirm_close_session: ShouldConfirmCloseSession {
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.should_confirm_close_session",
|
||||
description: "Whether to show a confirmation dialog when closing a session.",
|
||||
@@ -333,14 +333,14 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
notifications: Notifications {
|
||||
type: NotificationsSettings,
|
||||
default: NotificationsSettings::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "notifications.preferences",
|
||||
max_table_depth: 1,
|
||||
@@ -353,7 +353,7 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
storage_key: "GitPromptDirtyIndicator",
|
||||
},
|
||||
@@ -364,7 +364,7 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.show_model_selectors_in_prompt",
|
||||
description: "Whether to show AI model selectors in the input prompt.",
|
||||
@@ -373,7 +373,7 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: AgentToolbarChipSelection,
|
||||
default: AgentToolbarChipSelection::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.agent_toolbar_chip_selection_setting",
|
||||
description: "Controls the layout of context chips in the Agent Mode toolbar.",
|
||||
@@ -382,7 +382,7 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: CLIAgentToolbarChipSelection,
|
||||
default: CLIAgentToolbarChipSelection::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.cli_agent_toolbar_chip_selection_setting",
|
||||
description: "Controls the layout of context chips in the CLI Agent toolbar.",
|
||||
@@ -391,7 +391,7 @@ define_settings_group!(SessionSettings, settings: [
|
||||
type: u64,
|
||||
default: 8,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "notifications.toast_duration_secs",
|
||||
description: "How long notification toasts are displayed, in seconds.",
|
||||
|
||||
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
|
||||
use crate::settings::{AISettings, InputSettings, TerminalSpacing};
|
||||
use galaxyui::{units::Pixels, AppContext, SingletonEntity};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
@@ -89,7 +89,7 @@ define_settings_group!(TerminalSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP, /* Audible bell is not supported on web */
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.use_audible_bell",
|
||||
description: "Whether to play an audible bell sound on terminal bell events.",
|
||||
@@ -98,7 +98,7 @@ define_settings_group!(TerminalSettings, settings: [
|
||||
type: SpacingMode,
|
||||
default: SpacingMode::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.spacing",
|
||||
description: "Controls the spacing between terminal blocks.",
|
||||
@@ -107,7 +107,7 @@ define_settings_group!(TerminalSettings, settings: [
|
||||
type: usize,
|
||||
default: 50_000,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.maximum_grid_size",
|
||||
description: "The maximum number of rows in the terminal grid.",
|
||||
@@ -116,7 +116,7 @@ define_settings_group!(TerminalSettings, settings: [
|
||||
type: AltScreenPaddingMode,
|
||||
default: AltScreenPaddingMode::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.full_screen_apps.alt_screen_padding",
|
||||
max_table_depth: 0,
|
||||
@@ -128,7 +128,7 @@ define_settings_group!(TerminalSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "terminal.show_terminal_zero_state_block",
|
||||
description: "Whether to show the AI zero-state block in new terminal sessions.",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::time::Duration;
|
||||
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(SharedSessionSettings, settings: [
|
||||
@@ -9,7 +9,7 @@ define_settings_group!(SharedSessionSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
inactivity_period_before_ending_session: InactivityPeriodBeforeEndingSession {
|
||||
@@ -17,7 +17,7 @@ define_settings_group!(SharedSessionSettings, settings: [
|
||||
// After a total of 30 min of inactivity, we will end the session
|
||||
default: Duration::from_secs(1800),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
inactivity_period_before_warning: InactivityPeriodBeforeWarning {
|
||||
@@ -25,7 +25,7 @@ define_settings_group!(SharedSessionSettings, settings: [
|
||||
// After a total of 25 min of inactivity, we will show a warning modal
|
||||
default: Duration::from_secs(1500),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
inactivity_period_before_revoking_roles: InactivityPeriodBeforeRevokingRoles {
|
||||
@@ -33,7 +33,7 @@ define_settings_group!(SharedSessionSettings, settings: [
|
||||
// After a total of 10 min of inactivity, we will revoke all executor roles
|
||||
default: Duration::from_secs(600),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// Killswitch: when false, the sharer ignores viewer terminal size reports.
|
||||
@@ -41,7 +41,7 @@ define_settings_group!(SharedSessionSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -6,7 +6,7 @@ use lazy_static::lazy_static;
|
||||
use regex::Regex;
|
||||
use settings::{
|
||||
macros::{maybe_define_setting, register_settings_events},
|
||||
ChangeEventReason, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
ChangeEventReason, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
use strum_macros::EnumIter;
|
||||
|
||||
@@ -17,7 +17,7 @@ maybe_define_setting!(AddedSubshellCommands, group: WarpifySettings, {
|
||||
type: Vec<String>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warpify.subshells.added_subshell_commands",
|
||||
description: "Additional regex patterns for commands that should be recognized as subshells.",
|
||||
@@ -27,7 +27,7 @@ maybe_define_setting!(SubshellCommandsDenylist, group: WarpifySettings, {
|
||||
type: Vec<String>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warpify.subshells.subshell_commands_denylist",
|
||||
description: "Commands that should not trigger the subshell warpification prompt.",
|
||||
@@ -37,7 +37,7 @@ maybe_define_setting!(SshHostsDenylist, group: WarpifySettings, {
|
||||
type: Vec<String>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warpify.ssh.ssh_hosts_denylist",
|
||||
description: "SSH hosts that should not trigger the warpification prompt.",
|
||||
@@ -47,7 +47,7 @@ maybe_define_setting!(EnableSshWarpification, group: WarpifySettings, {
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warpify.ssh.enable_ssh_warpification",
|
||||
description: "Whether to enable Galaxy features in SSH sessions.",
|
||||
@@ -57,7 +57,7 @@ maybe_define_setting!(UseSshTmuxWrapper, group: WarpifySettings, {
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::OR(SupportedPlatforms::MAC.into(), SupportedPlatforms::LINUX.into()),
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warpify.ssh.use_ssh_tmux_wrapper",
|
||||
description: "Whether to use a tmux-based wrapper for SSH warpification.",
|
||||
@@ -96,7 +96,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
SshExtensionInstallMode,
|
||||
WarpifySettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "warpify.ssh.ssh_extension_install_mode",
|
||||
description: "Controls SSH extension installation behavior.",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::time::Duration;
|
||||
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(UndoCloseSettings, settings: [
|
||||
@@ -9,7 +9,7 @@ define_settings_group!(UndoCloseSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.undo_close.enabled",
|
||||
description: "Whether the undo close feature is enabled.",
|
||||
@@ -18,7 +18,7 @@ define_settings_group!(UndoCloseSettings, settings: [
|
||||
type: Duration,
|
||||
default: Duration::from_secs(60),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.undo_close.grace_period",
|
||||
description: "How long after closing a tab you can still undo the close.",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
pub use crate::util::openable_file_type::EditorLayout;
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
@@ -92,7 +92,7 @@ define_settings_group!(EditorSettings, settings: [
|
||||
type: EditorLayout,
|
||||
default: EditorLayout::SplitPane,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.open_file_layout",
|
||||
description: "The layout used when opening files in the editor.",
|
||||
@@ -101,7 +101,7 @@ define_settings_group!(EditorSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.prefer_markdown_viewer",
|
||||
description: "Whether to use the Markdown viewer when opening Markdown files.",
|
||||
@@ -110,7 +110,7 @@ define_settings_group!(EditorSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.prefer_tabbed_editor_view",
|
||||
description: "Whether to prefer opening files in a tabbed editor view.",
|
||||
@@ -119,7 +119,7 @@ define_settings_group!(EditorSettings, settings: [
|
||||
type: OpenConversationPreference,
|
||||
default: OpenConversationPreference::NewTab,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.open_conversation_layout_preference",
|
||||
description: "Whether to open agent conversations in a new tab or a split pane.",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use galaxyui::{AppContext, WindowId};
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
define_settings_group!(WindowSettings, settings: [
|
||||
@@ -8,7 +8,7 @@ define_settings_group!(WindowSettings, settings: [
|
||||
type: u8,
|
||||
default: 1,
|
||||
supported_platforms: SupportedPlatforms::MAC,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "OverrideBlur",
|
||||
toml_path: "appearance.window.override_blur",
|
||||
@@ -18,7 +18,7 @@ define_settings_group!(WindowSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::WINDOWS,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "OverrideBlurTexture",
|
||||
toml_path: "appearance.window.override_blur_texture",
|
||||
@@ -28,7 +28,7 @@ define_settings_group!(WindowSettings, settings: [
|
||||
type: u8,
|
||||
default: 100,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
storage_key: "OverrideOpacity",
|
||||
toml_path: "appearance.window.override_opacity",
|
||||
@@ -38,7 +38,7 @@ define_settings_group!(WindowSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.window.open_windows_at_custom_size",
|
||||
description: "Whether to open new windows at a custom size instead of the default.",
|
||||
@@ -47,7 +47,7 @@ define_settings_group!(WindowSettings, settings: [
|
||||
type: u16,
|
||||
default: 80,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.window.new_windows_num_columns",
|
||||
description: "The number of columns for new windows when using a custom size.",
|
||||
@@ -56,7 +56,7 @@ define_settings_group!(WindowSettings, settings: [
|
||||
type: u16,
|
||||
default: 40,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.window.new_windows_num_rows",
|
||||
description: "The number of rows for new windows when using a custom size.",
|
||||
@@ -65,7 +65,7 @@ define_settings_group!(WindowSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.window.left_panel_visibility_across_tabs",
|
||||
description: "Whether the left panel visibility is shared across all tabs.",
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::collections::{HashMap, HashSet};
|
||||
use anyhow::Error;
|
||||
use galaxy_core::{
|
||||
define_settings_group,
|
||||
settings::{RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud},
|
||||
settings::{Setting, SupportedPlatforms, SyncToCloud},
|
||||
};
|
||||
use galaxyui::{AppContext, ModelContext, SingletonEntity};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -23,7 +23,7 @@ define_settings_group!(WorkflowAliases, settings: [
|
||||
type: Vec<WorkflowAlias>,
|
||||
default: vec![],
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
storage_key: "WorkflowAliases",
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::path::Path;
|
||||
|
||||
use galaxy_core::ui::theme::AnsiColorIdentifier;
|
||||
use settings::{
|
||||
macros::define_settings_group, RespectUserSyncSetting, SupportedPlatforms, SyncToCloud,
|
||||
macros::define_settings_group, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
@@ -62,7 +62,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
TabCloseButtonPosition,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.tabs.tab_close_button_position",
|
||||
description: "Position of the close button on tabs.",
|
||||
@@ -99,7 +99,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
WorkspaceDecorationVisibility,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.tabs.workspace_decoration_visibility",
|
||||
description: "When workspace decorations such as the tab bar are visible.",
|
||||
@@ -275,7 +275,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
HeaderToolbarChipSelection,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.tabs.header_toolbar_chip_selection",
|
||||
description: "Configuration for the header toolbar chips in the vertical tab panel header.",
|
||||
@@ -306,7 +306,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
VerticalTabsViewMode,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.view_mode",
|
||||
description: "Display mode for the vertical tab bar.",
|
||||
@@ -337,7 +337,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
VerticalTabsDisplayGranularity,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.display_granularity",
|
||||
description: "Granularity of rows displayed in the vertical tabs panel.",
|
||||
@@ -368,7 +368,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
VerticalTabsTabItemMode,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.tab_item_mode",
|
||||
description: "Tab item display mode in vertical tabs.",
|
||||
@@ -400,7 +400,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
VerticalTabsPrimaryInfo,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.primary_info",
|
||||
description: "The primary information displayed on vertical tabs.",
|
||||
@@ -432,7 +432,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
VerticalTabsCompactSubtitle,
|
||||
TabSettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.compact_subtitle",
|
||||
description: "Subtitle shown on compact vertical tabs.",
|
||||
@@ -443,7 +443,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.tabs.show_indicators_button",
|
||||
description: "Whether to show activity indicators on tabs.",
|
||||
@@ -452,7 +452,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.show_code_review_button",
|
||||
description: "Whether to show the code review button on tabs.",
|
||||
@@ -461,7 +461,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "code.editor.show_code_review_diff_stats",
|
||||
description: "Whether to show lines added/removed counts on the code review button.",
|
||||
@@ -470,7 +470,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.tabs.preserve_active_tab_color",
|
||||
description: "Whether to preserve the active tab's color when switching tabs.",
|
||||
@@ -479,7 +479,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.enabled",
|
||||
description: "Whether to display tabs vertically instead of horizontally.",
|
||||
@@ -488,7 +488,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.use_latest_prompt_as_title",
|
||||
description: "Whether vertical tab names for agent conversations use the latest user prompt.",
|
||||
@@ -502,7 +502,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.show_pr_link",
|
||||
description: "Whether to show PR links on vertical tabs.",
|
||||
@@ -511,7 +511,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.show_diff_stats",
|
||||
description: "Whether to show diff stats on vertical tabs.",
|
||||
@@ -520,7 +520,7 @@ define_settings_group!(TabSettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "appearance.vertical_tabs.show_details_on_hover",
|
||||
description: "Whether to show a details sidecar when hovering over a vertical tab.",
|
||||
|
||||
@@ -1448,23 +1448,10 @@ fn render_vertical_tabs_panel(
|
||||
.with_child(Shrinkable::new(1., scrollable_groups).finish())
|
||||
.finish();
|
||||
|
||||
let panel_with_popup: Box<dyn Element> = if state.show_settings_popup {
|
||||
let popup = render_settings_popup(state, app);
|
||||
let mut stack = Stack::new().with_child(panel_content);
|
||||
stack.add_positioned_overlay_child(
|
||||
popup,
|
||||
OffsetPositioning::offset_from_save_position_element(
|
||||
VERTICAL_TABS_SETTINGS_BUTTON_POSITION_ID,
|
||||
vec2f(0., 4.),
|
||||
PositionedElementOffsetBounds::WindowByPosition,
|
||||
PositionedElementAnchor::BottomLeft,
|
||||
ChildAnchor::TopLeft,
|
||||
),
|
||||
);
|
||||
stack.finish()
|
||||
} else {
|
||||
panel_content
|
||||
};
|
||||
// Note: the settings popup is rendered at the workspace level (in a Dismiss overlay)
|
||||
// rather than here, to ensure proper click-outside-to-dismiss behavior and avoid
|
||||
// event dispatch conflicts from duplicate popup rendering with shared mouse states.
|
||||
let panel_with_popup: Box<dyn Element> = panel_content;
|
||||
|
||||
let drag_side = match side {
|
||||
super::PanelPosition::Left => DragBarSide::Right,
|
||||
|
||||
Reference in New Issue
Block a user