summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorfranlol <[email protected]>2025-12-05 21:49:05 +0100
committerGitHub <[email protected]>2025-12-05 14:49:05 -0600
commitb03b9b9017dafcf64244207a263414baaf0f812e (patch)
treeba90a8b480592b6f4f45b498400e93759b8ff9f2
parent73258c619369fbc9dc0250a1ea19f0e7ae03d7e7 (diff)
downloadopencode-b03b9b9017dafcf64244207a263414baaf0f812e.tar.gz
opencode-b03b9b9017dafcf64244207a263414baaf0f812e.zip
feat: add optional scrollbar to the session chat (#5116)
Co-authored-by: Sebastian <[email protected]> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: rekram1-node <[email protected]>
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/index.tsx21
-rw-r--r--packages/opencode/src/config/config.ts1
2 files changed, 19 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 507b2186e..b28010ac6 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
@@ -120,6 +120,7 @@ export function Session() {
const [showTimestamps, setShowTimestamps] = createSignal(kv.get("timestamps", "hide") === "show")
const [usernameVisible, setUsernameVisible] = createSignal(kv.get("username_visible", true))
const [showDetails, setShowDetails] = createSignal(kv.get("tool_details_visibility", true))
+ const [showScrollbar, setShowScrollbar] = createSignal(kv.get("scrollbar_visible", false))
const [diffWrapMode, setDiffWrapMode] = createSignal<"word" | "none">("word")
const wide = createMemo(() => dimensions().width > 120)
@@ -495,6 +496,20 @@ export function Session() {
},
},
{
+ title: "Toggle session scrollbar",
+ value: "session.toggle.scrollbar",
+ keybind: "scrollbar_toggle",
+ category: "Session",
+ onSelect: (dialog) => {
+ setShowScrollbar((prev) => {
+ const next = !prev
+ kv.set("scrollbar_visible", next)
+ return next
+ })
+ dialog.clear()
+ },
+ },
+ {
title: "Page up",
value: "session.page.up",
keybind: "messages_page_up",
@@ -840,9 +855,9 @@ export function Session() {
</Show>
<scrollbox
ref={(r) => (scroll = r)}
- scrollbarOptions={{
- paddingLeft: 2,
- visible: false,
+ verticalScrollbarOptions={{
+ paddingLeft: 1,
+ visible: showScrollbar(),
trackOptions: {
backgroundColor: theme.backgroundElement,
foregroundColor: theme.border,
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts
index d30b20860..d38de8a94 100644
--- a/packages/opencode/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
@@ -404,6 +404,7 @@ export namespace Config {
editor_open: z.string().optional().default("<leader>e").describe("Open external editor"),
theme_list: z.string().optional().default("<leader>t").describe("List available themes"),
sidebar_toggle: z.string().optional().default("<leader>b").describe("Toggle sidebar"),
+ scrollbar_toggle: z.string().optional().default("none").describe("Toggle session scrollbar"),
username_toggle: z.string().optional().default("none").describe("Toggle username visibility"),
status_view: z.string().optional().default("<leader>s").describe("View status"),
session_export: z.string().optional().default("<leader>x").describe("Export session to editor"),