From 06b60b86f2ba5faab4717cfdd824817f91418fb1 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Mon, 3 Jul 2017 18:21:12 +0200 Subject: [PATCH] emoji support (fixes #35) --- terminus-terminal/src/hterm.ts | 9 +++++++++ terminus-terminal/src/services/sessions.service.ts | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/terminus-terminal/src/hterm.ts b/terminus-terminal/src/hterm.ts index 5e03c23c..cbc92daf 100644 --- a/terminus-terminal/src/hterm.ts +++ b/terminus-terminal/src/hterm.ts @@ -27,3 +27,12 @@ preferenceManager.set('color-palette-overrides', { }) hterm.hterm.Terminal.prototype.showOverlay = () => null + +const oldCharWidthDisregardAmbiguous = hterm.lib.wc.charWidthDisregardAmbiguous +hterm.lib.wc.charWidthDisregardAmbiguous = codepoint => { + if ((codepoint >= 0x1f300 && codepoint <= 0x1f64f) || + (codepoint >= 0x1f680 && codepoint <= 0x1f6ff)) { + return 2 + } + return oldCharWidthDisregardAmbiguous(codepoint) +} diff --git a/terminus-terminal/src/services/sessions.service.ts b/terminus-terminal/src/services/sessions.service.ts index f8d64cec..bc66370a 100644 --- a/terminus-terminal/src/services/sessions.service.ts +++ b/terminus-terminal/src/services/sessions.service.ts @@ -72,7 +72,7 @@ export class Session { } write (data) { - this.pty.write(data) + this.pty.write(Buffer.from(data, 'utf-8')) } kill (signal?: string) {