+ {/* Sub-Tabs Pill Strip */}
+
+
+
+
+
+
+ {/* MCPs Sub-Tab */}
+
+
+
+
+ {language.t("settings.extensions.availableAll")}
+
+ {language.t("settings.extensions.manageConfig")}
+
+
+
+ {(item) => (
+
+
+
+ {item.name}
+
+
handleMcpToggle(item, checked)}
+ hideLabel
+ >
+ {item.name}
+
+
+ )}
+
+
+
+
+
+ {/* Plugins Sub-Tab */}
+
+
+
+
+ {language.t("settings.extensions.availableAll")}
+
+ {language.t("settings.extensions.manageConfig")}
+
+
+
+ {(plugin) => (
+
+ )}
+
+
+
+
+
+ {/* Skills Sub-Tab */}
+
+
+
+
+ {language.t("settings.extensions.availableAll")}
+
+
+ {language.t("settings.extensions.addSkills")}
+
+
+
+
+ {(skill) => (
+
+ )}
+
+
+
+
+
+ >
+ )
+}
diff --git a/packages/app/src/components/settings-v2/general.tsx b/packages/app/src/components/settings-v2/general.tsx
index b41da107ed6..b0bb6a5cf29 100644
--- a/packages/app/src/components/settings-v2/general.tsx
+++ b/packages/app/src/components/settings-v2/general.tsx
@@ -1,74 +1,25 @@
-import { Component, Show, createMemo, createResource } from "solid-js"
+import { Component, Show, createMemo } from "solid-js"
import { createMediaQuery } from "@solid-primitives/media"
import { ButtonV2 } from "@opencode-ai/ui/v2/button-v2"
import { SelectV2 } from "@opencode-ai/ui/v2/select-v2"
import { Switch } from "@opencode-ai/ui/v2/switch-v2"
-import { TextInputV2 } from "@opencode-ai/ui/v2/text-input-v2"
import { useDialog } from "@opencode-ai/ui/context/dialog"
import { useLanguage } from "@/context/language"
import { usePlatform } from "@/context/platform"
import { useUpdaterAction } from "../updater-action"
import { useSettings } from "@/context/settings"
-import { ExternalLink } from "../external-link"
import { SettingsListV2 } from "./parts/list"
import { SettingsRowV2 } from "./parts/row"
import { LayoutRetirementNotice, LayoutTransitionToggle } from "./interface-transition"
import {
- createAppearanceSettingsController,
createPermissionScopeController,
createShellOptions,
createShellSettingsController,
- createSoundSettingsController,
- soundOptions,
- type AppearanceSettingsController,
type PermissionScopeController,
type ShellSettingsController,
- type SoundSettingsController,
} from "./general-controllers"
import "./settings-v2.css"
-const schemeOptions: ("system" | "light" | "dark")[] = ["system", "light", "dark"]
-const fontSettings = {
- ui: {
- action: "settings-ui-font",
- title: "settings.general.row.uiFont.title",
- description: "settings.general.row.uiFont.description",
- font: "ui",
- input: "setUI",
- },
- code: {
- action: "settings-code-font",
- title: "settings.general.row.font.title",
- description: "settings.general.row.font.description",
- font: "code",
- input: "setCode",
- },
- terminal: {
- action: "settings-terminal-font",
- title: "settings.general.row.terminalFont.title",
- description: "settings.general.row.terminalFont.description",
- font: "terminal",
- input: "setTerminal",
- },
-} as const
-const soundSettings = {
- agent: {
- action: "settings-sounds-agent",
- title: "settings.general.sounds.agent.title",
- description: "settings.general.sounds.agent.description",
- },
- permissions: {
- action: "settings-sounds-permissions",
- title: "settings.general.sounds.permissions.title",
- description: "settings.general.sounds.permissions.description",
- },
- errors: {
- action: "settings-sounds-errors",
- title: "settings.general.sounds.errors.title",
- description: "settings.general.sounds.errors.description",
- },
-} as const
-
const PermissionScopeSetting: Component<{ controller: PermissionScopeController }> = (props) => {
const language = useLanguage()
return (
@@ -119,130 +70,6 @@ const ShellSetting: Component<{ controller: ShellSettingsController }> = (props)
)
}
-const AppearanceSection: Component<{ controller: AppearanceSettingsController }> = (props) => {
- const language = useLanguage()
- return (
-