From 929555a4fd1c3ca0cc0ca8330fa4465a1e5cfc21 Mon Sep 17 00:00:00 2001 From: owine Date: Wed, 15 Apr 2026 15:36:22 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20terminal=20rendering=20iss?= =?UTF-8?q?ues=20on=20iOS=20Safari=20via=20DOM=20renderer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch ttyd's xterm.js renderer from the default WebGL/Canvas to the DOM renderer using --client-option rendererType=dom. WebGL rendering on iOS Safari is unreliable — it silently falls back or produces garbled/invisible output. The DOM renderer trades a small amount of rendering performance for broad browser compatibility. Fixes #1016, #1026, #1027 --- ssh/rootfs/etc/s6-overlay/s6-rc.d/ttyd/run | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ssh/rootfs/etc/s6-overlay/s6-rc.d/ttyd/run b/ssh/rootfs/etc/s6-overlay/s6-rc.d/ttyd/run index 0a0cac0f..1c997cf7 100755 --- a/ssh/rootfs/etc/s6-overlay/s6-rc.d/ttyd/run +++ b/ssh/rootfs/etc/s6-overlay/s6-rc.d/ttyd/run @@ -23,6 +23,11 @@ options+=(-i hassio) # We want to be able to use the terminal options+=(--writable) +# Use DOM renderer for xterm.js to ensure compatibility with iOS Safari +# and other browsers where WebGL/Canvas rendering causes display issues +# Fixes: #1016, #1026, #1027 +options+=(--client-option rendererType=dom) + # Get assigned Ingress port ingress_port=$(bashio::addon.ingress_port) options+=(-p "${ingress_port}")