diff --git a/terminus-terminal/package.json b/terminus-terminal/package.json index 55b49a12..fe718273 100644 --- a/terminus-terminal/package.json +++ b/terminus-terminal/package.json @@ -23,7 +23,8 @@ "@types/webpack-env": "1.13.0", "@types/winreg": "^1.2.30", "dataurl": "0.1.0", - "deep-equal": "1.0.1" + "deep-equal": "1.0.1", + "file-loader": "^0.11.2" }, "peerDependencies": { "@angular/common": "4.0.1", @@ -31,15 +32,16 @@ "@angular/forms": "4.0.1", "@angular/platform-browser": "4.0.1", "@ng-bootstrap/ng-bootstrap": "1.0.0-alpha.22", + "rxjs": "5.3.0", "terminus-core": "*", - "terminus-settings": "*", - "rxjs": "5.3.0" + "terminus-settings": "*" }, "dependencies": { "font-manager": "0.2.2", - "hterm-umdjs": "1.2.0", + "hterm-umdjs": "1.1.3", "mz": "^2.6.0", "node-pty": "0.6.8", + "runes": "^0.4.2", "winreg": "^1.2.3" }, "false": {} diff --git a/terminus-terminal/src/components/terminalTab.component.ts b/terminus-terminal/src/components/terminalTab.component.ts index d2286f08..9cb5d786 100644 --- a/terminus-terminal/src/components/terminalTab.component.ts +++ b/terminus-terminal/src/components/terminalTab.component.ts @@ -155,6 +155,8 @@ export class TerminalTabComponent extends BaseTabComponent { hterm.primaryScreen_.syncSelectionCaret = () => null hterm.alternateScreen_.syncSelectionCaret = () => null + hterm.primaryScreen_.terminal = hterm + hterm.alternateScreen_.terminal = hterm const _onPaste = hterm.scrollPort_.onPaste_.bind(hterm.scrollPort_) hterm.scrollPort_.onPaste_ = (event) => { @@ -244,7 +246,7 @@ export class TerminalTabComponent extends BaseTabComponent { async configure (): Promise { let config = this.config.store - preferenceManager.set('font-family', config.terminal.font) + preferenceManager.set('font-family', `"${config.terminal.font}", "monospace-fallback", monospace`) this.setFontSize() preferenceManager.set('enable-bold', true) preferenceManager.set('audible-bell-sound', '') diff --git a/terminus-terminal/src/fonts/Meslo.otf b/terminus-terminal/src/fonts/Meslo.otf new file mode 100644 index 00000000..710d5b1a Binary files /dev/null and b/terminus-terminal/src/fonts/Meslo.otf differ diff --git a/terminus-terminal/src/hterm.userCSS.scss b/terminus-terminal/src/hterm.userCSS.scss index 662fef2c..873124ff 100644 --- a/terminus-terminal/src/hterm.userCSS.scss +++ b/terminus-terminal/src/hterm.userCSS.scss @@ -9,3 +9,9 @@ a:hover { x-screen { transition: 0.125s ease background; } + +@font-face { + font-family: "monospace-fallback"; + src: url(fonts/Meslo.otf) format("opentype"), + url(fonts/UbuntuMono.woff2) format("woff2"); +} diff --git a/terminus-terminal/webpack.config.js b/terminus-terminal/webpack.config.js index 6eead6e0..3b79b3b0 100644 --- a/terminus-terminal/webpack.config.js +++ b/terminus-terminal/webpack.config.js @@ -34,6 +34,13 @@ module.exports = { { test: /\.pug$/, use: ['apply-loader', 'pug-loader'] }, { test: /\.scss$/, use: ['to-string-loader', 'css-loader', 'sass-loader'] }, { test: /\.css$/, use: ['to-string-loader', 'css-loader'] }, + { + test: /\.(ttf|eot|otf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/, + loader: "url-loader", + options: { + limit: 999999999999, + } + }, ] }, externals: [ diff --git a/terminus-terminal/yarn.lock b/terminus-terminal/yarn.lock new file mode 100644 index 00000000..8ff5d7f0 --- /dev/null +++ b/terminus-terminal/yarn.lock @@ -0,0 +1,119 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/deep-equal@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/deep-equal/-/deep-equal-1.0.0.tgz#9ebeaa73d1fc4791f038a5f1440e0449ea968495" + +"@types/mz@0.0.31": + version "0.0.31" + resolved "https://registry.yarnpkg.com/@types/mz/-/mz-0.0.31.tgz#a4d80c082fefe71e40a7c0f07d1e6555bbbc7b52" + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@7.0.12": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.12.tgz#ae5f67a19c15f752148004db07cbbb372e69efc9" + +"@types/webpack-env@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.13.0.tgz#3044381647e11ee973c5af2e925323930f691d80" + +"@types/winreg@^1.2.30": + version "1.2.30" + resolved "https://registry.yarnpkg.com/@types/winreg/-/winreg-1.2.30.tgz#91d6710e536d345b9c9b017c574cf6a8da64c518" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +dataurl@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dataurl/-/dataurl-0.1.0.tgz#1f4734feddec05ffe445747978d86759c4b33199" + +deep-equal@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +file-loader@^0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" + dependencies: + loader-utils "^1.0.2" + +font-manager@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/font-manager/-/font-manager-0.2.2.tgz#18a1c5b6ec7f91e22a17c71cbbaa0ea4e68e3a44" + dependencies: + nan "~2.2.0" + +hterm-umdjs@1.1.3: + version "1.1.3+1.58.sha.15ed490" + resolved "https://registry.yarnpkg.com/hterm-umdjs/-/hterm-umdjs-1.1.3.tgz#8b57bcaded5ba9541d6c8e32a82b34abb93e885e" + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +loader-utils@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +mz@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.6.0.tgz#c8b8521d958df0a4f2768025db69c719ee4ef1ce" + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8" + +nan@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.2.1.tgz#d68693f6b34bb41d66bc68b3a4f9defc79d7149b" + +node-pty@0.6.8: + version "0.6.8" + resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.6.8.tgz#a7b145397bef23a719128a75b20d4821726dfe90" + dependencies: + nan "2.5.0" + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +runes@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/runes/-/runes-0.4.2.tgz#1ddc1ea41de769cb32fc068a64fbbc45cd21052e" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + dependencies: + any-promise "^1.0.0" + +winreg@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b"