mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-08 21:40:03 +00:00
sixel graphics support - fixes #6032
This commit is contained in:
parent
02fb0db9de
commit
f160353abe
@ -28,6 +28,7 @@
|
|||||||
"runes": "^0.4.2",
|
"runes": "^0.4.2",
|
||||||
"xterm": "npm:@tabby-gang/xterm@^4.19.0-beta.4",
|
"xterm": "npm:@tabby-gang/xterm@^4.19.0-beta.4",
|
||||||
"xterm-addon-fit": "^0.6.0-beta.8",
|
"xterm-addon-fit": "^0.6.0-beta.8",
|
||||||
|
"xterm-addon-image": "^0.1.0",
|
||||||
"xterm-addon-ligatures": "^0.6.0-beta.14",
|
"xterm-addon-ligatures": "^0.6.0-beta.14",
|
||||||
"xterm-addon-search": "^0.9.0-beta.18",
|
"xterm-addon-search": "^0.9.0-beta.18",
|
||||||
"xterm-addon-serialize": "^0.7.0-beta.12",
|
"xterm-addon-serialize": "^0.7.0-beta.12",
|
||||||
|
@ -31,6 +31,15 @@ div
|
|||||||
(ngModelChange)='config.save()'
|
(ngModelChange)='config.save()'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
.form-line
|
||||||
|
.header
|
||||||
|
.title(translate) Sixel graphics support (experimental)
|
||||||
|
.description(translate) Display images via Sixel escape sequences
|
||||||
|
toggle(
|
||||||
|
[(ngModel)]='config.store.terminal.sixel',
|
||||||
|
(ngModelChange)='config.save(); config.requestRestart()'
|
||||||
|
)
|
||||||
|
|
||||||
div.mt-4
|
div.mt-4
|
||||||
h3(translate) Keyboard
|
h3(translate) Keyboard
|
||||||
|
|
||||||
|
@ -68,6 +68,7 @@ export class TerminalConfigProvider extends ConfigProvider {
|
|||||||
detectProgress: true,
|
detectProgress: true,
|
||||||
scrollbackLines: 25000,
|
scrollbackLines: 25000,
|
||||||
drawBoldTextInBrightColors: true,
|
drawBoldTextInBrightColors: true,
|
||||||
|
sixel: true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ import { ISearchOptions, SearchAddon } from 'xterm-addon-search'
|
|||||||
import { WebglAddon } from 'xterm-addon-webgl'
|
import { WebglAddon } from 'xterm-addon-webgl'
|
||||||
import { Unicode11Addon } from 'xterm-addon-unicode11'
|
import { Unicode11Addon } from 'xterm-addon-unicode11'
|
||||||
import { SerializeAddon } from 'xterm-addon-serialize'
|
import { SerializeAddon } from 'xterm-addon-serialize'
|
||||||
|
import { ImageAddon } from 'xterm-addon-image'
|
||||||
import './xterm.css'
|
import './xterm.css'
|
||||||
import deepEqual from 'deep-equal'
|
import deepEqual from 'deep-equal'
|
||||||
import { Attributes } from 'xterm/src/common/buffer/Constants'
|
import { Attributes } from 'xterm/src/common/buffer/Constants'
|
||||||
@ -124,6 +125,17 @@ export class XTermFrontend extends Frontend {
|
|||||||
this.xterm.loadAddon(new Unicode11Addon())
|
this.xterm.loadAddon(new Unicode11Addon())
|
||||||
this.xterm.unicode.activeVersion = '11'
|
this.xterm.unicode.activeVersion = '11'
|
||||||
|
|
||||||
|
if (this.configService.store.terminal.sixel) {
|
||||||
|
this.xterm.loadAddon(new ImageAddon(
|
||||||
|
URL.createObjectURL(
|
||||||
|
new Blob(
|
||||||
|
[require('xterm-addon-image/lib/xterm-addon-image-worker.js')],
|
||||||
|
{ type: 'application/javascript' },
|
||||||
|
),
|
||||||
|
),
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
const keyboardEventHandler = (name: string, event: KeyboardEvent) => {
|
const keyboardEventHandler = (name: string, event: KeyboardEvent) => {
|
||||||
if (this.isAlternateScreenActive()) {
|
if (this.isAlternateScreenActive()) {
|
||||||
let modifiers = 0
|
let modifiers = 0
|
||||||
|
@ -5,5 +5,11 @@ module.exports = config({
|
|||||||
externals: [
|
externals: [
|
||||||
'opentype.js',
|
'opentype.js',
|
||||||
],
|
],
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /lib[\\/]xterm-addon-image-worker.js$/i,
|
||||||
|
type: 'asset/source',
|
||||||
|
},
|
||||||
|
],
|
||||||
})
|
})
|
||||||
module.exports.resolve.modules.push('node_modules/xterm/src')
|
module.exports.resolve.modules.push('node_modules/xterm/src')
|
||||||
|
@ -162,6 +162,11 @@ xterm-addon-fit@^0.6.0-beta.8:
|
|||||||
resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.6.0-beta.9.tgz#55d550b7e8f3b90ee0781fdddf876b8502a31540"
|
resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.6.0-beta.9.tgz#55d550b7e8f3b90ee0781fdddf876b8502a31540"
|
||||||
integrity sha512-QrlwItVFiapkiJ2YL2rj2drtOvFmr8luDyV286MCrVSK4iGxSnsOdT+NcjeNig1lqYmy5FAo8iuP4FPY//NDog==
|
integrity sha512-QrlwItVFiapkiJ2YL2rj2drtOvFmr8luDyV286MCrVSK4iGxSnsOdT+NcjeNig1lqYmy5FAo8iuP4FPY//NDog==
|
||||||
|
|
||||||
|
xterm-addon-image@^0.1.0:
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.1.0.tgz#ead96aa224f5fcbfb45da2907f02368fe92985e6"
|
||||||
|
integrity sha512-xMvcEQ2rVUIXbbj5BRhznrZU24CRaMiSo8l2HH/E1FeE+G+KKduoF6mwja856/n4ekZ7K0ALZmmyDsbZODhDqQ==
|
||||||
|
|
||||||
xterm-addon-ligatures@^0.6.0-beta.14:
|
xterm-addon-ligatures@^0.6.0-beta.14:
|
||||||
version "0.6.0-beta.14"
|
version "0.6.0-beta.14"
|
||||||
resolved "https://registry.yarnpkg.com/xterm-addon-ligatures/-/xterm-addon-ligatures-0.6.0-beta.14.tgz#392b8df0e32dcfc87f43b79901ec1c2abc997ae7"
|
resolved "https://registry.yarnpkg.com/xterm-addon-ligatures/-/xterm-addon-ligatures-0.6.0-beta.14.tgz#392b8df0e32dcfc87f43b79901ec1c2abc997ae7"
|
||||||
@ -190,10 +195,10 @@ xterm-addon-webgl@^0.12.0-beta.27:
|
|||||||
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.36.tgz#460f80829a78c979a448d5b764699af3f0366ff1"
|
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.36.tgz#460f80829a78c979a448d5b764699af3f0366ff1"
|
||||||
integrity sha512-sgX7OHSGZQZE5b4xtPqd/5NEcll0Z+00tnTVxKZlXf5XEENcG0tnBF4I4f+k9K3cmjE1UIUVG2yYPrqWlYCdpA==
|
integrity sha512-sgX7OHSGZQZE5b4xtPqd/5NEcll0Z+00tnTVxKZlXf5XEENcG0tnBF4I4f+k9K3cmjE1UIUVG2yYPrqWlYCdpA==
|
||||||
|
|
||||||
"xterm@npm:@tabby-gang/xterm@^4.19.0-beta.3":
|
"xterm@npm:@tabby-gang/xterm@^4.19.0-beta.4":
|
||||||
version "4.19.0-beta.3"
|
version "4.19.0-beta.5"
|
||||||
resolved "https://registry.yarnpkg.com/@tabby-gang/xterm/-/xterm-4.19.0-beta.3.tgz#a45e5fb81383cf24fe9f2b75a9aa3cbcbe27f311"
|
resolved "https://registry.yarnpkg.com/@tabby-gang/xterm/-/xterm-4.19.0-beta.5.tgz#aa7a4509148a31ac4e4e55475c950f8572616899"
|
||||||
integrity sha512-PC30FqxOsIbZs5JLThAe0KNwm1OGn/mHKpCTZDpBfdk4be9ia+BzaSf6xcOXxiiPcQwBQ+uQn40XK1J+tGtVig==
|
integrity sha512-8Vn92qMHDT2Q8TLPTFqalbwdS8ev3AmtLfPs2PRoMlJA/XzrcGUD5BNuAau5bn9lF5iEueX1gYqsJxzk5aYDbQ==
|
||||||
|
|
||||||
yallist@^4.0.0:
|
yallist@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
|
@ -56,7 +56,7 @@ module.exports = options => {
|
|||||||
{
|
{
|
||||||
test: /\.js$/,
|
test: /\.js$/,
|
||||||
enforce: 'pre',
|
enforce: 'pre',
|
||||||
use: {
|
use: {
|
||||||
loader: 'source-map-loader',
|
loader: 'source-map-loader',
|
||||||
options: {
|
options: {
|
||||||
filterSourceMappingUrl: (url, resourcePath) => {
|
filterSourceMappingUrl: (url, resourcePath) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user