From 8bcbfd63960120efa3cb770f8e07de1bb57e93b0 Mon Sep 17 00:00:00 2001
From: Adam <2363879+adamdotdevin@users.noreply.github.com>
Date: Tue, 6 Jan 2026 15:21:00 -0600
Subject: wip(app): settings
---
packages/app/src/components/dialog-settings.tsx | 87 +++++++++++++
packages/app/src/components/settings-agents.tsx | 12 ++
packages/app/src/components/settings-commands.tsx | 12 ++
packages/app/src/components/settings-general.tsx | 134 +++++++++++++++++++++
packages/app/src/components/settings-keybinds.tsx | 12 ++
packages/app/src/components/settings-mcp.tsx | 12 ++
packages/app/src/components/settings-models.tsx | 12 ++
.../app/src/components/settings-permissions.tsx | 12 ++
packages/app/src/components/settings-providers.tsx | 12 ++
9 files changed, 305 insertions(+)
create mode 100644 packages/app/src/components/dialog-settings.tsx
create mode 100644 packages/app/src/components/settings-agents.tsx
create mode 100644 packages/app/src/components/settings-commands.tsx
create mode 100644 packages/app/src/components/settings-general.tsx
create mode 100644 packages/app/src/components/settings-keybinds.tsx
create mode 100644 packages/app/src/components/settings-mcp.tsx
create mode 100644 packages/app/src/components/settings-models.tsx
create mode 100644 packages/app/src/components/settings-permissions.tsx
create mode 100644 packages/app/src/components/settings-providers.tsx
(limited to 'packages/app/src/components')
diff --git a/packages/app/src/components/dialog-settings.tsx b/packages/app/src/components/dialog-settings.tsx
new file mode 100644
index 000000000..872cc4c80
--- /dev/null
+++ b/packages/app/src/components/dialog-settings.tsx
@@ -0,0 +1,87 @@
+import { Component, createSignal } from "solid-js"
+import { Dialog } from "@opencode-ai/ui/dialog"
+import { Tabs } from "@opencode-ai/ui/tabs"
+import { Icon } from "@opencode-ai/ui/icon"
+import { TextField } from "@opencode-ai/ui/text-field"
+import { SettingsGeneral } from "./settings-general"
+import { SettingsKeybinds } from "./settings-keybinds"
+import { SettingsPermissions } from "./settings-permissions"
+import { SettingsProviders } from "./settings-providers"
+import { SettingsModels } from "./settings-models"
+import { SettingsAgents } from "./settings-agents"
+import { SettingsCommands } from "./settings-commands"
+import { SettingsMcp } from "./settings-mcp"
+
+export const DialogSettings: Component = () => {
+ const [search, setSearch] = createSignal("")
+
+ return (
+
+ )
+}
diff --git a/packages/app/src/components/settings-agents.tsx b/packages/app/src/components/settings-agents.tsx
new file mode 100644
index 000000000..892be152b
--- /dev/null
+++ b/packages/app/src/components/settings-agents.tsx
@@ -0,0 +1,12 @@
+import { Component } from "solid-js"
+
+export const SettingsAgents: Component = () => {
+ return (
+
+
+
Agents
+
Agent settings will be configurable here.
+
+
+ )
+}
diff --git a/packages/app/src/components/settings-commands.tsx b/packages/app/src/components/settings-commands.tsx
new file mode 100644
index 000000000..e98c0eeb0
--- /dev/null
+++ b/packages/app/src/components/settings-commands.tsx
@@ -0,0 +1,12 @@
+import { Component } from "solid-js"
+
+export const SettingsCommands: Component = () => {
+ return (
+
+
+
Commands
+
Command settings will be configurable here.
+
+
+ )
+}
diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx
new file mode 100644
index 000000000..e9965b0fa
--- /dev/null
+++ b/packages/app/src/components/settings-general.tsx
@@ -0,0 +1,134 @@
+import { Component, createMemo, type JSX } from "solid-js"
+import { Select } from "@opencode-ai/ui/select"
+import { Switch } from "@opencode-ai/ui/switch"
+import { useTheme, type ColorScheme } from "@opencode-ai/ui/theme"
+import { useSettings } from "@/context/settings"
+
+export const SettingsGeneral: Component = () => {
+ const theme = useTheme()
+ const settings = useSettings()
+
+ const themeOptions = createMemo(() =>
+ Object.entries(theme.themes()).map(([id, def]) => ({ id, name: def.name ?? id })),
+ )
+
+ const colorSchemeOptions: { value: ColorScheme; label: string }[] = [
+ { value: "system", label: "System setting" },
+ { value: "light", label: "Light" },
+ { value: "dark", label: "Dark" },
+ ]
+
+ const fontOptions = [
+ { value: "ibm-plex-mono", label: "IBM Plex Mono" },
+ { value: "fira-code", label: "Fira Code" },
+ { value: "jetbrains-mono", label: "JetBrains Mono" },
+ { value: "source-code-pro", label: "Source Code Pro" },
+ ]
+
+ return (
+
+ )
+}
+
+interface SettingsRowProps {
+ title: string
+ description: string | JSX.Element
+ children: JSX.Element
+}
+
+const SettingsRow: Component = (props) => {
+ return (
+
+
+ {props.title}
+ {props.description}
+
+
{props.children}
+
+ )
+}
diff --git a/packages/app/src/components/settings-keybinds.tsx b/packages/app/src/components/settings-keybinds.tsx
new file mode 100644
index 000000000..3688559bc
--- /dev/null
+++ b/packages/app/src/components/settings-keybinds.tsx
@@ -0,0 +1,12 @@
+import { Component } from "solid-js"
+
+export const SettingsKeybinds: Component = () => {
+ return (
+
+
+
Shortcuts
+
Keyboard shortcuts will be configurable here.
+
+
+ )
+}
diff --git a/packages/app/src/components/settings-mcp.tsx b/packages/app/src/components/settings-mcp.tsx
new file mode 100644
index 000000000..ea6bf350f
--- /dev/null
+++ b/packages/app/src/components/settings-mcp.tsx
@@ -0,0 +1,12 @@
+import { Component } from "solid-js"
+
+export const SettingsMcp: Component = () => {
+ return (
+
+
+
MCP
+
MCP settings will be configurable here.
+
+
+ )
+}
diff --git a/packages/app/src/components/settings-models.tsx b/packages/app/src/components/settings-models.tsx
new file mode 100644
index 000000000..5fbeb144e
--- /dev/null
+++ b/packages/app/src/components/settings-models.tsx
@@ -0,0 +1,12 @@
+import { Component } from "solid-js"
+
+export const SettingsModels: Component = () => {
+ return (
+
+
+
Models
+
Model settings will be configurable here.
+
+
+ )
+}
diff --git a/packages/app/src/components/settings-permissions.tsx b/packages/app/src/components/settings-permissions.tsx
new file mode 100644
index 000000000..67c3bfb62
--- /dev/null
+++ b/packages/app/src/components/settings-permissions.tsx
@@ -0,0 +1,12 @@
+import { Component } from "solid-js"
+
+export const SettingsPermissions: Component = () => {
+ return (
+
+
+
Permissions
+
Permission settings will be configurable here.
+
+
+ )
+}
diff --git a/packages/app/src/components/settings-providers.tsx b/packages/app/src/components/settings-providers.tsx
new file mode 100644
index 000000000..cf90b6c13
--- /dev/null
+++ b/packages/app/src/components/settings-providers.tsx
@@ -0,0 +1,12 @@
+import { Component } from "solid-js"
+
+export const SettingsProviders: Component = () => {
+ return (
+
+
+
Providers
+
Provider settings will be configurable here.
+
+
+ )
+}
--
cgit v1.2.3