From a0cb487baa4ac31ef8b06fc1d6689f2e9e4affcb Mon Sep 17 00:00:00 2001 From: dbpolito Date: Thu, 8 Jan 2026 22:07:08 -0300 Subject: [PATCH] Desktop: Change Cursor to Bar and Stop Blinking when not focused --- packages/app/src/components/terminal.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx index 0faca0a23a1..770202f2630 100644 --- a/packages/app/src/components/terminal.tsx +++ b/packages/app/src/components/terminal.tsx @@ -45,6 +45,8 @@ export const Terminal = (props: TerminalProps) => { let serializeAddon: SerializeAddon let fitAddon: FitAddon let handleResize: () => void + let handleTextareaFocus: () => void + let handleTextareaBlur: () => void let reconnect: number | undefined let disposed = false @@ -105,6 +107,7 @@ export const Terminal = (props: TerminalProps) => { const t = new mod.Terminal({ cursorBlink: true, + cursorStyle: "bar", fontSize: 14, fontFamily: "IBM Plex Mono, monospace", allowTransparency: true, @@ -170,6 +173,17 @@ export const Terminal = (props: TerminalProps) => { t.open(container) container.addEventListener("pointerdown", handlePointerDown) + + handleTextareaFocus = () => { + t.options.cursorBlink = true + } + handleTextareaBlur = () => { + t.options.cursorBlink = false + } + + t.textarea?.addEventListener("focus", handleTextareaFocus) + t.textarea?.addEventListener("blur", handleTextareaBlur) + focusTerminal() if (local.pty.buffer) { @@ -242,6 +256,8 @@ export const Terminal = (props: TerminalProps) => { window.removeEventListener("resize", handleResize) } container.removeEventListener("pointerdown", handlePointerDown) + term?.textarea?.removeEventListener("focus", handleTextareaFocus) + term?.textarea?.removeEventListener("blur", handleTextareaBlur) const t = term if (serializeAddon && props.onCleanup && t) {