summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/cli/cmd/tui/event.ts2
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/index.tsx22
-rw-r--r--packages/opencode/src/config/config.ts10
-rw-r--r--packages/opencode/src/server/routes/tui.ts2
-rw-r--r--packages/sdk/js/src/gen/types.gen.ts8
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts8
-rw-r--r--packages/sdk/openapi.json14
-rw-r--r--packages/web/src/content/docs/keybinds.mdx6
8 files changed, 66 insertions, 6 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/event.ts b/packages/opencode/src/cli/cmd/tui/event.ts
index 7c75523c1..9466ae54f 100644
--- a/packages/opencode/src/cli/cmd/tui/event.ts
+++ b/packages/opencode/src/cli/cmd/tui/event.ts
@@ -16,6 +16,8 @@ export const TuiEvent = {
"session.compact",
"session.page.up",
"session.page.down",
+ "session.line.up",
+ "session.line.down",
"session.half.page.up",
"session.half.page.down",
"session.first",
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 196cd3ba1..1842a955d 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
@@ -602,6 +602,28 @@ export function Session() {
},
},
{
+ title: "Line up",
+ value: "session.line.up",
+ keybind: "messages_line_up",
+ category: "Session",
+ disabled: true,
+ onSelect: (dialog) => {
+ scroll.scrollBy(-1)
+ dialog.clear()
+ },
+ },
+ {
+ title: "Line down",
+ value: "session.line.down",
+ keybind: "messages_line_down",
+ category: "Session",
+ disabled: true,
+ onSelect: (dialog) => {
+ scroll.scrollBy(1)
+ dialog.clear()
+ },
+ },
+ {
title: "Half page up",
value: "session.half.page.up",
keybind: "messages_half_page_up",
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts
index 5a2e086bf..ddb3af4b0 100644
--- a/packages/opencode/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
@@ -651,8 +651,14 @@ export namespace Config {
session_unshare: z.string().optional().default("none").describe("Unshare current session"),
session_interrupt: z.string().optional().default("escape").describe("Interrupt current session"),
session_compact: z.string().optional().default("<leader>c").describe("Compact the session"),
- messages_page_up: z.string().optional().default("pageup").describe("Scroll messages up by one page"),
- messages_page_down: z.string().optional().default("pagedown").describe("Scroll messages down by one page"),
+ messages_page_up: z.string().optional().default("pageup,ctrl+alt+b").describe("Scroll messages up by one page"),
+ messages_page_down: z
+ .string()
+ .optional()
+ .default("pagedown,ctrl+alt+f")
+ .describe("Scroll messages down by one page"),
+ messages_line_up: z.string().optional().default("ctrl+alt+y").describe("Scroll messages up by one line"),
+ messages_line_down: z.string().optional().default("ctrl+alt+e").describe("Scroll messages down by one line"),
messages_half_page_up: z.string().optional().default("ctrl+alt+u").describe("Scroll messages up by half page"),
messages_half_page_down: z
.string()
diff --git a/packages/opencode/src/server/routes/tui.ts b/packages/opencode/src/server/routes/tui.ts
index 0577429dd..8650a0ccc 100644
--- a/packages/opencode/src/server/routes/tui.ts
+++ b/packages/opencode/src/server/routes/tui.ts
@@ -275,6 +275,8 @@ export const TuiRoutes = lazy(() =>
session_compact: "session.compact",
messages_page_up: "session.page.up",
messages_page_down: "session.page.down",
+ messages_line_up: "session.line.up",
+ messages_line_down: "session.line.down",
messages_half_page_up: "session.half.page.up",
messages_half_page_down: "session.half.page.down",
messages_first: "session.first",
diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts
index 32f33f662..ca13e5e93 100644
--- a/packages/sdk/js/src/gen/types.gen.ts
+++ b/packages/sdk/js/src/gen/types.gen.ts
@@ -843,6 +843,14 @@ export type KeybindsConfig = {
*/
messages_page_down?: string
/**
+ * Scroll messages up by one line
+ */
+ messages_line_up?: string
+ /**
+ * Scroll messages down by one line
+ */
+ messages_line_down?: string
+ /**
* Scroll messages up by half page
*/
messages_half_page_up?: string
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index e47c4f5f7..40bbf3feb 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -1020,6 +1020,14 @@ export type KeybindsConfig = {
*/
messages_page_down?: string
/**
+ * Scroll messages up by one line
+ */
+ messages_line_up?: string
+ /**
+ * Scroll messages down by one line
+ */
+ messages_line_down?: string
+ /**
* Scroll messages up by half page
*/
messages_half_page_up?: string
diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json
index 0dc174c1b..6a3f5b2f4 100644
--- a/packages/sdk/openapi.json
+++ b/packages/sdk/openapi.json
@@ -8282,12 +8282,22 @@
},
"messages_page_up": {
"description": "Scroll messages up by one page",
- "default": "pageup",
+ "default": "pageup,ctrl+alt+b",
"type": "string"
},
"messages_page_down": {
"description": "Scroll messages down by one page",
- "default": "pagedown",
+ "default": "pagedown,ctrl+alt+f",
+ "type": "string"
+ },
+ "messages_line_up": {
+ "description": "Scroll messages up by one line",
+ "default": "ctrl+alt+y",
+ "type": "string"
+ },
+ "messages_line_down": {
+ "description": "Scroll messages down by one line",
+ "default": "ctrl+alt+e",
"type": "string"
},
"messages_half_page_up": {
diff --git a/packages/web/src/content/docs/keybinds.mdx b/packages/web/src/content/docs/keybinds.mdx
index 267d194c0..51508a4f8 100644
--- a/packages/web/src/content/docs/keybinds.mdx
+++ b/packages/web/src/content/docs/keybinds.mdx
@@ -31,8 +31,10 @@ OpenCode has a list of keybinds that you can customize through the OpenCode conf
"session_child_cycle": "<leader>right",
"session_child_cycle_reverse": "<leader>left",
"session_parent": "<leader>up",
- "messages_page_up": "pageup",
- "messages_page_down": "pagedown",
+ "messages_page_up": "pageup,ctrl+alt+b",
+ "messages_page_down": "pagedown,ctrl+alt+f",
+ "messages_line_up": "ctrl+alt+y",
+ "messages_line_down": "ctrl+alt+e",
"messages_half_page_up": "ctrl+alt+u",
"messages_half_page_down": "ctrl+alt+d",
"messages_first": "ctrl+g,home",