Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
44e6cf5
feat: Add experimental.dialog_background_overlay setting
ariane-emory Mar 14, 2026
418b3f5
fix: Keep dialog centered in limited/none overlay modes
ariane-emory Mar 14, 2026
1561cf2
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Mar 20, 2026
92a42a0
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Mar 20, 2026
2ded8dd
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Mar 24, 2026
710c017
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Mar 24, 2026
db9071a
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Mar 24, 2026
9ee04ee
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Apr 3, 2026
4dcba75
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Apr 12, 2026
a62351f
Merge dev into feat/dialogue-background-overlay-setting
ariane-emory Apr 17, 2026
8043b2d
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Apr 23, 2026
180a57b
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory May 4, 2026
bcb46f9
Merge dev into feat/dialogue-background-overlay-setting
ariane-emory May 11, 2026
36fd113
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory May 18, 2026
45f374f
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory May 30, 2026
af85312
Merge branch 'dev' into feat/dialogue-background-overlay-setting
ariane-emory Jun 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/core/src/v1/config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,10 @@ export const Info = Schema.Struct({
mcp_timeout: Schema.optional(PositiveInt).annotate({
description: "Timeout in milliseconds for model context protocol (MCP) requests",
}),
dialog_background_overlay: Schema.optional(Schema.Literals(["full", "limited", "none"])).annotate({
description:
"Control dialog background overlay: 'full' = semi-transparent overlay (default), 'limited' = overlay only within dialog bounds, 'none' = no overlay",
}),
policies: Schema.optional(Schema.mutable(Schema.Array(ConfigExperimental.Policy))).annotate({
description: "Policy statements applied to supported resources, such as provider access",
}),
Expand Down
7 changes: 6 additions & 1 deletion packages/opencode/src/cli/cmd/tui/ui/dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { createStore } from "solid-js/store"
import { useToast } from "./toast"
import { Flag } from "@opencode-ai/core/flag/flag"
import * as Selection from "@tui/util/selection"
import { useSync } from "@tui/context/sync"
import { useBindings, useOpencodeModeStack } from "../keymap"

export function Dialog(
Expand All @@ -17,6 +18,10 @@ export function Dialog(
const dimensions = useTerminalDimensions()
const { theme } = useTheme()
const renderer = useRenderer()
const sync = useSync()

const overlayMode = () => sync.data.config.experimental?.dialog_background_overlay ?? "full"
const showOverlay = () => overlayMode() === "full"

let dismiss = false
const width = () => {
Expand Down Expand Up @@ -45,7 +50,7 @@ export function Dialog(
paddingTop={dimensions().height / 4}
left={0}
top={0}
backgroundColor={RGBA.fromInts(0, 0, 0, 150)}
backgroundColor={showOverlay() ? RGBA.fromInts(0, 0, 0, 150) : undefined}
>
<box
onMouseUp={(e: { stopPropagation(): void }) => {
Expand Down
4 changes: 4 additions & 0 deletions packages/sdk/js/src/v2/gen/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1975,6 +1975,10 @@ export type Config = {
primary_tools?: Array<string>
continue_loop_on_deny?: boolean
mcp_timeout?: number
/**
* Control dialog background overlay: 'full' = semi-transparent overlay (default), 'limited' = overlay only within dialog bounds, 'none' = no overlay
*/
dialog_background_overlay?: 'full' | 'limited' | 'none'
policies?: Array<ConfigV2ExperimentalPolicy>
}
}
Expand Down