From 459ed105555436e8ffdea4c600fda41f921dd39a Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Mon, 2 Mar 2026 20:44:57 -0500 Subject: [PATCH 1/2] feat: add toggle for sidebar scrollbar visibility in command palette --- .../src/cli/cmd/tui/routes/session/index.tsx | 14 ++++++++++++-- .../src/cli/cmd/tui/routes/session/sidebar.tsx | 3 ++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index f20267e0820..d4e922041cb 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -153,6 +153,7 @@ export function Session() { const [showDetails, setShowDetails] = kv.signal("tool_details_visibility", true) const [showAssistantMetadata, setShowAssistantMetadata] = kv.signal("assistant_metadata_visibility", true) const [showScrollbar, setShowScrollbar] = kv.signal("scrollbar_visible", false) + const [showSidebarScrollbar, setShowSidebarScrollbar] = kv.signal("sidebar_scrollbar_visible", true) const [showHeader, setShowHeader] = kv.signal("header_visible", true) const [diffWrapMode] = kv.signal<"word" | "none">("diff_wrap_mode", "word") const [animationsEnabled, setAnimationsEnabled] = kv.signal("animations_enabled", true) @@ -596,6 +597,15 @@ export function Session() { dialog.clear() }, }, + { + title: showSidebarScrollbar() ? "Hide sidebar scrollbar" : "Show sidebar scrollbar", + value: "session.toggle.sidebar_scrollbar", + category: "System", + onSelect: (dialog) => { + setShowSidebarScrollbar((prev) => !prev) + dialog.clear() + }, + }, { title: showHeader() ? "Hide header" : "Show header", value: "session.toggle.header", @@ -1144,7 +1154,7 @@ export function Session() { - + - + diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx index 42ac5fbe080..23bd788fa2d 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx @@ -12,7 +12,7 @@ import { useDirectory } from "../../context/directory" import { useKV } from "../../context/kv" import { TodoItem } from "../../component/todo-item" -export function Sidebar(props: { sessionID: string; overlay?: boolean }) { +export function Sidebar(props: { sessionID: string; overlay?: boolean; showScrollbar?: boolean }) { const sync = useSync() const { theme } = useTheme() const session = createMemo(() => sync.session.get(props.sessionID)!) @@ -83,6 +83,7 @@ export function Sidebar(props: { sessionID: string; overlay?: boolean }) { Date: Fri, 6 Mar 2026 13:41:11 -0500 Subject: [PATCH 2/2] Move sidebar scrollbar toggle to app.tsx --- packages/opencode/src/cli/cmd/tui/app.tsx | 9 +++++++++ .../opencode/src/cli/cmd/tui/routes/session/index.tsx | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index 97c910a47d4..36a25839ec8 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -657,6 +657,15 @@ function App() { dialog.clear() }, }, + { + title: kv.get("sidebar_scrollbar_visible", true) ? "Hide sidebar scrollbar" : "Show sidebar scrollbar", + value: "app.toggle.sidebar_scrollbar", + category: "System", + onSelect: (dialog) => { + kv.set("sidebar_scrollbar_visible", !kv.get("sidebar_scrollbar_visible", true)) + dialog.clear() + }, + }, ]) createEffect(() => { diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 0e946a3ac45..e7ab3ef30be 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -621,15 +621,6 @@ export function Session() { dialog.clear() }, }, - { - title: showSidebarScrollbar() ? "Hide sidebar scrollbar" : "Show sidebar scrollbar", - value: "session.toggle.sidebar_scrollbar", - category: "System", - onSelect: (dialog) => { - setShowSidebarScrollbar((prev) => !prev) - dialog.clear() - }, - }, { title: showHeader() ? "Hide header" : "Show header", value: "session.toggle.header",