diff --git a/terminus-terminal/src/components/terminalTab.component.ts b/terminus-terminal/src/components/terminalTab.component.ts index f78c8e23f63c642d5fee83e89babc6b324548bed..b8fba14c04b039fdfe63ff507ec9e48919de7b3f 100644 --- a/terminus-terminal/src/components/terminalTab.component.ts +++ b/terminus-terminal/src/components/terminalTab.component.ts @@ -1,3 +1,4 @@ +const dataurl = require('dataurl') import { BehaviorSubject, Subject, Subscription } from 'rxjs' import 'rxjs/add/operator/bufferTime' import { Component, NgZone, Inject, Optional, ViewChild, HostBinding, Input } from '@angular/core' @@ -261,6 +262,28 @@ export class TerminalTabComponent extends BaseTabComponent { preferenceManager.set('cursor-color', config.terminal.colorScheme.cursor) } + let css = require('../hterm.userCSS.scss') + if (!config.terminal.ligatures) { + css += ` + * { + font-feature-settings: "liga" 0; + font-variant-ligatures: none; + } + ` + } else { + css += ` + * { + font-feature-settings: "liga" 1; + font-variant-ligatures: initial; + } + ` + } + preferenceManager.set('user-css', dataurl.convert({ + data: css, + mimetype: 'text/css', + charset: 'utf8', + })) + this.hterm.setBracketedPaste(config.terminal.bracketedPaste) } diff --git a/terminus-terminal/src/config.ts b/terminus-terminal/src/config.ts index 3569c83f4957aff4d14ce1f5f691aa665045d9da..914a8224122cd4a1c5802bd77eaf371a37635555 100644 --- a/terminus-terminal/src/config.ts +++ b/terminus-terminal/src/config.ts @@ -7,6 +7,7 @@ export class TerminalConfigProvider extends ConfigProvider { bell: 'off', bracketedPaste: false, background: 'theme', + ligatures: false, colorScheme: { __nonStructural: true, name: 'Material', diff --git a/terminus-terminal/src/hterm.ts b/terminus-terminal/src/hterm.ts index cbc92daf933e817fec346c2f207b4b016f421629..f0e6617f69d1b7c7b0cffbdc63831abced282027 100644 --- a/terminus-terminal/src/hterm.ts +++ b/terminus-terminal/src/hterm.ts @@ -1,4 +1,3 @@ -const dataurl = require('dataurl') export const hterm = require('hterm-umdjs') hterm.hterm.defaultStorage = new hterm.lib.Storage.Memory() export const preferenceManager = new hterm.hterm.PreferenceManager('default') @@ -16,11 +15,6 @@ hterm.hterm.VT.ESC['k'] = function (parseState) { parseState.func = parseOSC } -preferenceManager.set('user-css', dataurl.convert({ - data: require('./hterm.userCSS.scss'), - mimetype: 'text/css', - charset: 'utf8', -})) preferenceManager.set('background-color', '#1D272D') preferenceManager.set('color-palette-overrides', { 0: '#1D272D', diff --git a/terminus-terminal/src/hterm.userCSS.scss b/terminus-terminal/src/hterm.userCSS.scss index 010c55f3655b25372bfca2cfacf8593565180f75..662fef2c3b775087d6f7fb04e3bd890cf0695599 100644 --- a/terminus-terminal/src/hterm.userCSS.scss +++ b/terminus-terminal/src/hterm.userCSS.scss @@ -6,10 +6,6 @@ a:hover { text-decoration: underline; } -* { - font-feature-settings: "liga" 0; // disable ligatures (they break monospacing) -} - x-screen { transition: 0.125s ease background; }