diff --git a/terminus-terminal/src/components/terminalTab.component.ts b/terminus-terminal/src/components/terminalTab.component.ts index f4da64e6c01d6c34c0f2b8cc6afdab747cd3991a..88432268d1024a630d23a0ecd5480866e6508342 100644 --- a/terminus-terminal/src/components/terminalTab.component.ts +++ b/terminus-terminal/src/components/terminalTab.component.ts @@ -93,6 +93,9 @@ export class TerminalTabComponent extends BaseTabComponent { case 'copy': this.hterm.copySelectionToClipboard() break + case 'paste': + this.paste() + break case 'clear': this.clear() break @@ -231,10 +234,7 @@ export class TerminalTabComponent extends BaseTabComponent { hterm.primaryScreen_.terminal = hterm hterm.alternateScreen_.terminal = hterm - const _onPaste = hterm.scrollPort_.onPaste_.bind(hterm.scrollPort_) hterm.scrollPort_.onPaste_ = (event) => { - hterm.scrollPort_.pasteTarget_.value = event.clipboardData.getData('text/plain').trim() - _onPaste() event.preventDefault() } @@ -336,7 +336,12 @@ export class TerminalTabComponent extends BaseTabComponent { } paste () { - this.sendInput(this.electron.clipboard.readText()) + let data = this.electron.clipboard.readText() + data = this.hterm.keyboard.encode(data) + if (this.hterm.options_.bracketedPaste) { + data = '\x1b[200~' + data + '\x1b[201~' + } + this.sendInput(data) } clear () { diff --git a/terminus-terminal/src/config.ts b/terminus-terminal/src/config.ts index 5afe183bb0dbdbd096397f531b68ddc3d1f20c23..74970cdfe42f0d49e6eb74a5bc344736a495f716 100644 --- a/terminus-terminal/src/config.ts +++ b/terminus-terminal/src/config.ts @@ -56,6 +56,9 @@ export class TerminalConfigProvider extends ConfigProvider { 'copy': [ '⌘-C', ], + 'paste': [ + '⌘-V', + ], 'clear': [ '⌘-K', ], @@ -96,6 +99,9 @@ export class TerminalConfigProvider extends ConfigProvider { 'copy': [ 'Ctrl-Shift-C', ], + 'paste': [ + 'Ctrl-Shift-V', + ], 'clear': [ 'Ctrl-L', ], @@ -133,6 +139,9 @@ export class TerminalConfigProvider extends ConfigProvider { 'copy': [ 'Ctrl-Shift-C', ], + 'paste': [ + 'Ctrl-Shift-V', + ], 'clear': [ 'Ctrl-L', ], diff --git a/terminus-terminal/src/hotkeys.ts b/terminus-terminal/src/hotkeys.ts index 53e01eada7a41a843e141f2f76acb4d9cf2fd5eb..39e5b579e5d55565802f4c885aa07de9672e7408 100644 --- a/terminus-terminal/src/hotkeys.ts +++ b/terminus-terminal/src/hotkeys.ts @@ -8,6 +8,10 @@ export class TerminalHotkeyProvider extends HotkeyProvider { id: 'copy', name: 'Copy to clipboard', }, + { + id: 'paste', + name: 'Paste from clipboard', + }, { id: 'home', name: 'Beginning of the line',