diff --git a/tabby-terminal/src/api/baseTerminalTab.component.ts b/tabby-terminal/src/api/baseTerminalTab.component.ts index 6723e3fc..1084c0ae 100644 --- a/tabby-terminal/src/api/baseTerminalTab.component.ts +++ b/tabby-terminal/src/api/baseTerminalTab.component.ts @@ -309,10 +309,16 @@ export class BaseTerminalTabComponent

extends Bas case 'scroll-to-top': this.frontend?.scrollToTop() break - case 'scroll-up': + case 'scroll-page-up': this.frontend?.scrollPages(-1) break + case 'scroll-up': + this.frontend?.scrollLines(-1) + break case 'scroll-down': + this.frontend?.scrollLines(1) + break + case 'scroll-page-down': this.frontend?.scrollPages(1) break case 'scroll-to-bottom': diff --git a/tabby-terminal/src/config.ts b/tabby-terminal/src/config.ts index 2daf66f6..ddbae486 100644 --- a/tabby-terminal/src/config.ts +++ b/tabby-terminal/src/config.ts @@ -101,8 +101,10 @@ export class TerminalConfigProvider extends ConfigProvider { '⌘-⌥-Shift-I', ], 'scroll-to-top': ['Shift-PageUp'], - 'scroll-up': ['⌥-PageUp'], - 'scroll-down': ['⌥-PageDown'], + 'scroll-page-up': ['⌥-PageUp'], + 'scroll-up': ['Ctrl-Shift-Up'], + 'scroll-down': ['Ctrl-Shift-Down'], + 'scroll-page-down': ['⌥-PageDown'], 'scroll-to-bottom': ['Shift-PageDown'], }, }, @@ -152,8 +154,10 @@ export class TerminalConfigProvider extends ConfigProvider { 'Ctrl-Alt-Shift-I', ], 'scroll-to-top': ['Ctrl-PageUp'], - 'scroll-up': ['Alt-PageUp'], - 'scroll-down': ['Alt-PageDown'], + 'scroll-page-up': ['Alt-PageUp'], + 'scroll-up': ['Ctrl-Shift-Up'], + 'scroll-down': ['Ctrl-Shift-Down'], + 'scroll-page-down': ['Alt-PageDown'], 'scroll-to-bottom': ['Ctrl-PageDown'], }, }, @@ -201,8 +205,10 @@ export class TerminalConfigProvider extends ConfigProvider { 'Ctrl-Alt-Shift-I', ], 'scroll-to-top': ['Ctrl-PageUp'], - 'scroll-up': ['Alt-PageUp'], - 'scroll-down': ['Alt-PageDown'], + 'scroll-page-up': ['Alt-PageUp'], + 'scroll-up': ['Ctrl-Shift-Up'], + 'scroll-down': ['Ctrl-Shift-Down'], + 'scroll-page-down': ['Alt-PageDown'], 'scroll-to-bottom': ['Ctrl-PageDown'], }, }, diff --git a/tabby-terminal/src/frontends/frontend.ts b/tabby-terminal/src/frontends/frontend.ts index 138726a4..a7b2bba9 100644 --- a/tabby-terminal/src/frontends/frontend.ts +++ b/tabby-terminal/src/frontends/frontend.ts @@ -77,6 +77,7 @@ export abstract class Frontend { abstract visualBell (): void abstract scrollToTop (): void + abstract scrollLines (amount: number): void abstract scrollPages (pages: number): void abstract scrollToBottom (): void diff --git a/tabby-terminal/src/frontends/xtermFrontend.ts b/tabby-terminal/src/frontends/xtermFrontend.ts index 534e3bb7..9146fe51 100644 --- a/tabby-terminal/src/frontends/xtermFrontend.ts +++ b/tabby-terminal/src/frontends/xtermFrontend.ts @@ -357,6 +357,10 @@ export class XTermFrontend extends Frontend { this.xterm.scrollPages(pages) } + scrollLines (amount: number): void { + this.xterm.scrollLines(amount) + } + scrollToBottom (): void { this.xtermCore._scrollToBottom() } diff --git a/tabby-terminal/src/hotkeys.ts b/tabby-terminal/src/hotkeys.ts index 98974acf..efca8691 100644 --- a/tabby-terminal/src/hotkeys.ts +++ b/tabby-terminal/src/hotkeys.ts @@ -86,11 +86,19 @@ export class TerminalHotkeyProvider extends HotkeyProvider { name: this.translate.instant('Scroll terminal to top'), }, { - id: 'scroll-up', + id: 'scroll-page-up', name: this.translate.instant('Scroll terminal one page up'), }, + { + id: 'scroll-up', + name: this.translate.instant('Scroll terminal one line up'), + }, { id: 'scroll-down', + name: this.translate.instant('Scroll terminal one line down'), + }, + { + id: 'scroll-page-down', name: this.translate.instant('Scroll terminal one page down'), }, { @@ -113,3 +121,4 @@ export class TerminalHotkeyProvider extends HotkeyProvider { return this.hotkeys } } +