mirror of
https://github.com/Eugeny/tabby.git
synced 2024-12-22 18:11:43 +03:00
.
This commit is contained in:
parent
137c100bbf
commit
00ff63f16f
1
terminus-core/@angular/animations.ts
Normal file
1
terminus-core/@angular/animations.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@angular/animations'
|
1
terminus-core/@angular/common.ts
Normal file
1
terminus-core/@angular/common.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@angular/common'
|
1
terminus-core/@angular/compiler.ts
Normal file
1
terminus-core/@angular/compiler.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@angular/compiler'
|
1
terminus-core/@angular/core.ts
Normal file
1
terminus-core/@angular/core.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@angular/core'
|
1
terminus-core/@angular/forms.ts
Normal file
1
terminus-core/@angular/forms.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@angular/forms'
|
1
terminus-core/@angular/platform-browser-dynamic.ts
Normal file
1
terminus-core/@angular/platform-browser-dynamic.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@angular/platform-browser-dynamic'
|
1
terminus-core/@angular/platform-browser.ts
Normal file
1
terminus-core/@angular/platform-browser.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@angular/platform-browser'
|
1
terminus-core/@ng-bootstrap/ng-bootstrap.ts
Normal file
1
terminus-core/@ng-bootstrap/ng-bootstrap.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from '@ng-bootstrap/ng-bootstrap'
|
1
terminus-core/rxjs.ts
Normal file
1
terminus-core/rxjs.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from 'rxjs'
|
1
terminus-core/zone.js.ts
Normal file
1
terminus-core/zone.js.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from 'zone.js'
|
@ -13,17 +13,22 @@ export class ColorPickerComponent {
|
||||
@Output() modelChange = new EventEmitter<string>()
|
||||
@ViewChild('popover') popover: NgbPopover
|
||||
@ViewChild('input') input
|
||||
isOpen: boolean
|
||||
|
||||
open () {
|
||||
setImmediate(() => {
|
||||
this.popover.open()
|
||||
setImmediate(() => {
|
||||
this.input.nativeElement.focus()
|
||||
this.isOpen = true
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@HostListener('document:click', ['$event']) onOutsideClick ($event) {
|
||||
if (!this.isOpen) {
|
||||
return
|
||||
}
|
||||
let windowRef = (<any>this.popover)._windowRef
|
||||
if (!windowRef) {
|
||||
return
|
||||
@ -31,6 +36,7 @@ export class ColorPickerComponent {
|
||||
if ($event.target !== windowRef.location.nativeElement &&
|
||||
!windowRef.location.nativeElement.contains($event.target)) {
|
||||
this.popover.close()
|
||||
this.isOpen = false
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,151 +0,0 @@
|
||||
.row
|
||||
.col-lg-6
|
||||
.form-group
|
||||
label Preview
|
||||
.appearance-preview(
|
||||
[style.font-family]='config.full().terminal.font',
|
||||
[style.font-size]='config.full().terminal.fontSize + "px"',
|
||||
[style.background-color]='(config.full().terminal.background == "theme") ? null : config.full().terminal.colorScheme.background',
|
||||
[style.color]='config.full().terminal.colorScheme.foreground',
|
||||
)
|
||||
div
|
||||
span john@doe-pc
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') $
|
||||
span webpack
|
||||
div
|
||||
span Asset Size
|
||||
div
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') main.js
|
||||
span 234 kB
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') [emitted]
|
||||
div
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[3]') big.js
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[3]') 1.2 MB
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') [emitted]
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[3]') [big]
|
||||
div
|
||||
span
|
||||
div
|
||||
span john@doe-pc
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') $
|
||||
span ls -l
|
||||
div
|
||||
span drwxr-xr-x 1 root root
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[4]') directory
|
||||
div
|
||||
span -rw-r--r-- 1 root root file
|
||||
div
|
||||
span -rwxr-xr-x 1 root root
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') executable
|
||||
div
|
||||
span -rwxr-xr-x 1 root root
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[6]') sym
|
||||
span ->
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') link
|
||||
div
|
||||
span
|
||||
div
|
||||
span john@doe-pc
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') $
|
||||
span rm -rf /
|
||||
span([style.background-color]='config.full().terminal.colorScheme.cursor')
|
||||
|
||||
|
||||
.col-lg-6
|
||||
.form-group
|
||||
label Font
|
||||
.row
|
||||
.col-8
|
||||
input.form-control(
|
||||
type='text',
|
||||
[ngbTypeahead]='fontAutocomplete',
|
||||
'[(ngModel)]'='config.store.terminal.font',
|
||||
(ngModelChange)='config.save()',
|
||||
)
|
||||
.col-4
|
||||
input.form-control(
|
||||
type='number',
|
||||
'[(ngModel)]'='config.store.terminal.fontSize',
|
||||
(ngModelChange)='config.save()',
|
||||
)
|
||||
small.form-text.text-muted Font to be used in the terminal
|
||||
|
||||
.form-group
|
||||
label Color scheme
|
||||
select.form-control(
|
||||
[compareWith]='equalComparator',
|
||||
'[(ngModel)]'='config.store.terminal.colorScheme',
|
||||
(ngModelChange)='config.save()',
|
||||
)
|
||||
option(*ngFor='let scheme of colorSchemes', [ngValue]='scheme') {{scheme.name}}
|
||||
|
||||
div(*ngIf='config.store.terminal.colorScheme.colors')
|
||||
color-picker(
|
||||
'[(model)]'='config.store.terminal.colorScheme.foreground',
|
||||
(modelChange)='config.save()',
|
||||
title='FG',
|
||||
)
|
||||
color-picker(
|
||||
'[(model)]'='config.store.terminal.colorScheme.background',
|
||||
(modelChange)='config.save()',
|
||||
title='BG',
|
||||
)
|
||||
color-picker(
|
||||
'[(model)]'='config.store.terminal.colorScheme.cursor',
|
||||
(modelChange)='config.save()',
|
||||
title='CU',
|
||||
)
|
||||
color-picker(
|
||||
*ngFor='let _ of config.store.terminal.colorScheme.colors; let idx = index',
|
||||
'[(model)]'='config.store.terminal.colorScheme.colors[idx]',
|
||||
(modelChange)='config.save()',
|
||||
[title]='idx',
|
||||
)
|
||||
|
||||
.form-group
|
||||
label Terminal background
|
||||
br
|
||||
div(
|
||||
'[(ngModel)]'='config.store.terminal.background',
|
||||
(ngModelChange)='config.save()',
|
||||
ngbRadioGroup
|
||||
)
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"theme"'
|
||||
)
|
||||
| From the app theme
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"colorScheme"'
|
||||
)
|
||||
| From the terminal colors
|
||||
|
||||
.form-group
|
||||
label Terminal bell
|
||||
br
|
||||
div(
|
||||
'[(ngModel)]'='config.store.terminal.bell',
|
||||
(ngModelChange)='config.save()',
|
||||
ngbRadioGroup
|
||||
)
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"off"'
|
||||
)
|
||||
| Off
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"visual"'
|
||||
)
|
||||
| Visual
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"audible"'
|
||||
)
|
||||
| Audible
|
223
terminus-terminal/src/components/terminalSettingsTab.pug
Normal file
223
terminus-terminal/src/components/terminalSettingsTab.pug
Normal file
@ -0,0 +1,223 @@
|
||||
.row
|
||||
.col-md-6
|
||||
.form-group
|
||||
label Preview
|
||||
.appearance-preview(
|
||||
[style.font-family]='config.full().terminal.font',
|
||||
[style.font-size]='config.full().terminal.fontSize + "px"',
|
||||
[style.background-color]='(config.full().terminal.background == "theme") ? null : config.full().terminal.colorScheme.background',
|
||||
[style.color]='config.full().terminal.colorScheme.foreground',
|
||||
)
|
||||
div
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[0]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[1]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[2]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[3]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[4]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[5]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[6]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[7]')
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[0]') B
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') R
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') G
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[3]') Y
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[4]') B
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[5]') M
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[6]') T
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[7]') W
|
||||
div
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[8]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[9]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[10]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[11]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[12]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[13]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[14]')
|
||||
span([style.background-color]='config.full().terminal.colorScheme.colors[15]')
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[8]') B
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[9]') R
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[10]') G
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[11]') Y
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[12]') B
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[13]') M
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[14]') T
|
||||
span
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[15]') W
|
||||
div
|
||||
span
|
||||
div
|
||||
span john@doe-pc
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') $
|
||||
span webpack
|
||||
div
|
||||
span Asset Size
|
||||
div
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') main.js
|
||||
span 234 kB
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') [emitted]
|
||||
div
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[3]') big.js
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[3]') 1.2 MB
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') [emitted]
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[3]') [big]
|
||||
div
|
||||
span
|
||||
div
|
||||
span john@doe-pc
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') $
|
||||
span ls -l
|
||||
div
|
||||
span drwxr-xr-x 1 root
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[4]') directory
|
||||
div
|
||||
span -rw-r--r-- 1 root file
|
||||
div
|
||||
span -rwxr-xr-x 1 root
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[2]') executable
|
||||
div
|
||||
span -rwxr-xr-x 1 root
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[6]') sym
|
||||
span ->
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') link
|
||||
div
|
||||
span
|
||||
div
|
||||
span john@doe-pc
|
||||
span([style.color]='config.full().terminal.colorScheme.colors[1]') $
|
||||
span rm -rf /
|
||||
span([style.background-color]='config.full().terminal.colorScheme.cursor')
|
||||
|
||||
|
||||
.col-md-6
|
||||
.form-group
|
||||
label Font
|
||||
.row
|
||||
.col-8
|
||||
input.form-control(
|
||||
type='text',
|
||||
[ngbTypeahead]='fontAutocomplete',
|
||||
'[(ngModel)]'='config.store.terminal.font',
|
||||
(ngModelChange)='config.save()',
|
||||
)
|
||||
.col-4
|
||||
input.form-control(
|
||||
type='number',
|
||||
'[(ngModel)]'='config.store.terminal.fontSize',
|
||||
(ngModelChange)='config.save()',
|
||||
)
|
||||
small.form-text.text-muted Font to be used in the terminal
|
||||
|
||||
.form-group(*ngIf='!editingColorScheme')
|
||||
label Color scheme
|
||||
.input-group
|
||||
select.form-control(
|
||||
[compareWith]='equalComparator',
|
||||
'[(ngModel)]'='config.store.terminal.colorScheme',
|
||||
(ngModelChange)='config.save()',
|
||||
)
|
||||
option(*ngFor='let scheme of config.full().terminal.customColorSchemes', [ngValue]='scheme') Custom: {{scheme.name}}
|
||||
option(*ngFor='let scheme of colorSchemes', [ngValue]='scheme') {{scheme.name}}
|
||||
.input-group-btn
|
||||
button.btn.btn-secondary((click)='editScheme(config.store.terminal.colorScheme)') Edit
|
||||
.input-group-btn
|
||||
button.btn.btn-outline-danger(
|
||||
(click)='deleteScheme(config.store.terminal.colorScheme)',
|
||||
*ngIf='isCustomScheme(config.store.terminal.colorScheme)'
|
||||
)
|
||||
i.fa.fa-trash-o
|
||||
|
||||
.form-group(*ngIf='editingColorScheme')
|
||||
label Editing
|
||||
.input-group
|
||||
input.form-control(type='text', '[(ngModel)]'='editingColorScheme.name')
|
||||
.input-group-btn
|
||||
button.btn.btn-secondary((click)='saveScheme()') Save
|
||||
.input-group-btn
|
||||
button.btn.btn-secondary((click)='cancelEditing()') Cancel
|
||||
|
||||
|
||||
.form-group(*ngIf='editingColorScheme')
|
||||
color-picker(
|
||||
'[(model)]'='editingColorScheme.foreground',
|
||||
(modelChange)='config.save(); schemeChanged = true',
|
||||
title='FG',
|
||||
)
|
||||
color-picker(
|
||||
'[(model)]'='editingColorScheme.background',
|
||||
(modelChange)='config.save(); schemeChanged = true',
|
||||
title='BG',
|
||||
)
|
||||
color-picker(
|
||||
'[(model)]'='editingColorScheme.cursor',
|
||||
(modelChange)='config.save(); schemeChanged = true',
|
||||
title='CU',
|
||||
)
|
||||
color-picker(
|
||||
*ngFor='let _ of editingColorScheme.colors; let idx = index; trackBy: colorsTrackBy',
|
||||
'[(model)]'='editingColorScheme.colors[idx]',
|
||||
(modelChange)='config.save(); schemeChanged = true',
|
||||
[title]='idx',
|
||||
)
|
||||
|
||||
.form-group
|
||||
label Terminal background
|
||||
br
|
||||
div(
|
||||
'[(ngModel)]'='config.store.terminal.background',
|
||||
(ngModelChange)='config.save()',
|
||||
ngbRadioGroup
|
||||
)
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"theme"'
|
||||
)
|
||||
| From the app theme
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"colorScheme"'
|
||||
)
|
||||
| From the terminal colors
|
||||
|
||||
.form-group
|
||||
label Terminal bell
|
||||
br
|
||||
div(
|
||||
'[(ngModel)]'='config.store.terminal.bell',
|
||||
(ngModelChange)='config.save()',
|
||||
ngbRadioGroup
|
||||
)
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"off"'
|
||||
)
|
||||
| Off
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"visual"'
|
||||
)
|
||||
| Visual
|
||||
label.btn.btn-secondary
|
||||
input(
|
||||
type='radio',
|
||||
[value]='"audible"'
|
||||
)
|
||||
| Audible
|
@ -1,6 +1,7 @@
|
||||
.appearance-preview {
|
||||
padding: 10px 20px;
|
||||
margin: 0 0 10px;
|
||||
overflow: hidden;
|
||||
span {
|
||||
white-space: pre;
|
||||
}
|
@ -2,24 +2,25 @@ import { Observable } from 'rxjs/Observable'
|
||||
import 'rxjs/add/operator/map'
|
||||
import 'rxjs/add/operator/debounceTime'
|
||||
import 'rxjs/add/operator/distinctUntilChanged'
|
||||
const equal = require('deep-equal')
|
||||
const fontManager = require('font-manager')
|
||||
const equal = require('deep-equal')
|
||||
|
||||
import { Component, Inject } from '@angular/core'
|
||||
import { ConfigService, HostAppService, Platform } from 'terminus-core'
|
||||
const { exec } = require('child-process-promise')
|
||||
|
||||
import { TerminalColorSchemeProvider, ITerminalColorScheme } from '../api'
|
||||
const { exec } = require('child-process-promise')
|
||||
|
||||
|
||||
@Component({
|
||||
template: require('./settings.pug'),
|
||||
styles: [require('./settings.scss')],
|
||||
template: require('./terminalSettingsTab.pug'),
|
||||
styles: [require('./terminalSettingsTab.scss')],
|
||||
})
|
||||
export class SettingsComponent {
|
||||
export class TerminalSettingsTabComponent {
|
||||
fonts: string[] = []
|
||||
colorSchemes: ITerminalColorScheme[] = []
|
||||
equalComparator = equal
|
||||
editingColorScheme: ITerminalColorScheme
|
||||
schemeChanged = false
|
||||
|
||||
constructor(
|
||||
public config: ConfigService,
|
||||
@ -54,5 +55,38 @@ export class SettingsComponent {
|
||||
.map(list => Array.from(new Set(list)))
|
||||
}
|
||||
|
||||
editScheme (scheme: ITerminalColorScheme) {
|
||||
this.editingColorScheme = scheme
|
||||
this.schemeChanged = false
|
||||
}
|
||||
|
||||
saveScheme () {
|
||||
let schemes = this.config.full().terminal.customColorSchemes
|
||||
schemes = schemes.filter(x => x !== this.editingColorScheme && x.name !== this.editingColorScheme.name)
|
||||
schemes.push(this.editingColorScheme)
|
||||
this.config.store.terminal.customColorSchemes = schemes
|
||||
this.config.save()
|
||||
this.cancelEditing()
|
||||
}
|
||||
|
||||
cancelEditing () {
|
||||
this.editingColorScheme = null
|
||||
}
|
||||
|
||||
deleteScheme (scheme: ITerminalColorScheme) {
|
||||
if (confirm(`Delete "${scheme.name}"?`)) {
|
||||
let schemes = this.config.full().terminal.customColorSchemes
|
||||
schemes = schemes.filter(x => x !== scheme)
|
||||
this.config.store.terminal.customColorSchemes = schemes
|
||||
this.config.save()
|
||||
}
|
||||
}
|
||||
|
||||
isCustomScheme (scheme: ITerminalColorScheme) {
|
||||
return this.config.full().terminal.customColorSchemes.some(x => equal(x, scheme))
|
||||
}
|
||||
|
||||
colorsTrackBy (index) {
|
||||
return index
|
||||
}
|
||||
}
|
@ -181,6 +181,7 @@ export class TerminalTabComponent extends BaseTabComponent {
|
||||
let config = this.config.full()
|
||||
preferenceManager.set('font-family', config.terminal.font)
|
||||
preferenceManager.set('font-size', config.terminal.fontSize)
|
||||
preferenceManager.set('enable-bold', true)
|
||||
preferenceManager.set('audible-bell-sound', '')
|
||||
preferenceManager.set('desktop-notification-bell', config.terminal.bell == 'notification')
|
||||
preferenceManager.set('enable-clipboard-notice', false)
|
||||
|
@ -15,6 +15,7 @@ export class TerminalConfigProvider extends ConfigProvider {
|
||||
cursor: null,
|
||||
colors: [],
|
||||
},
|
||||
customColorSchemes: []
|
||||
},
|
||||
hotkeys: {
|
||||
'new-tab': [
|
||||
|
@ -7,14 +7,14 @@ import { HostAppService, Platform, ToolbarButtonProvider, TabRecoveryProvider, C
|
||||
import { SettingsTabProvider } from 'terminus-settings'
|
||||
|
||||
import { TerminalTabComponent } from './components/terminalTab'
|
||||
import { SettingsComponent } from './components/settings'
|
||||
import { TerminalSettingsTabComponent } from './components/terminalSettingsTab'
|
||||
import { ColorPickerComponent } from './components/colorPicker'
|
||||
import { SessionsService } from './services/sessions'
|
||||
import { ScreenPersistenceProvider } from './persistenceProviders'
|
||||
import { ButtonProvider } from './buttonProvider'
|
||||
import { RecoveryProvider } from './recoveryProvider'
|
||||
import { SessionPersistenceProvider, TerminalColorSchemeProvider } from './api'
|
||||
import { TerminalSettingsProvider } from './settings'
|
||||
import { TerminalSettingsTabProvider } from './settings'
|
||||
import { TerminalConfigProvider } from './config'
|
||||
import { HyperColorSchemes } from './colorSchemes'
|
||||
import { hterm } from './hterm'
|
||||
@ -42,18 +42,18 @@ import { hterm } from './hterm'
|
||||
},
|
||||
deps: [HostAppService, ScreenPersistenceProvider],
|
||||
},
|
||||
{ provide: SettingsTabProvider, useClass: TerminalSettingsProvider, multi: true },
|
||||
{ provide: SettingsTabProvider, useClass: TerminalSettingsTabProvider, multi: true },
|
||||
{ provide: ConfigProvider, useClass: TerminalConfigProvider, multi: true },
|
||||
{ provide: TerminalColorSchemeProvider, useClass: HyperColorSchemes, multi: true },
|
||||
],
|
||||
entryComponents: [
|
||||
TerminalTabComponent,
|
||||
SettingsComponent,
|
||||
TerminalSettingsTabComponent,
|
||||
],
|
||||
declarations: [
|
||||
ColorPickerComponent,
|
||||
TerminalTabComponent,
|
||||
SettingsComponent,
|
||||
TerminalSettingsTabComponent,
|
||||
],
|
||||
})
|
||||
export default class TerminalModule {
|
||||
|
@ -47,7 +47,7 @@ export class ScreenPersistenceProvider extends SessionPersistenceProvider {
|
||||
altscreen on
|
||||
`, 'utf-8')
|
||||
let recoveryId = `term-tab-${Date.now()}`
|
||||
let args = ['-d', '-m', '-c', configPath, '-U', '-S', recoveryId, '--', options.command].concat(options.args || [])
|
||||
let args = ['-d', '-m', '-c', configPath, '-U', '-S', recoveryId, '-T', 'xterm-256color', '--', options.command].concat(options.args || [])
|
||||
await spawn('screen', args, {
|
||||
cwd: options.cwd,
|
||||
env: options.env || process.env,
|
||||
|
@ -1,14 +1,14 @@
|
||||
import { Injectable } from '@angular/core'
|
||||
import { SettingsTabProvider, ComponentType } from 'terminus-settings'
|
||||
|
||||
import { SettingsComponent } from './components/settings'
|
||||
import { TerminalSettingsTabComponent } from './components/terminalSettingsTab'
|
||||
|
||||
|
||||
@Injectable()
|
||||
export class TerminalSettingsProvider extends SettingsTabProvider {
|
||||
export class TerminalSettingsTabProvider extends SettingsTabProvider {
|
||||
title = 'Terminal'
|
||||
|
||||
getComponentType (): ComponentType {
|
||||
return SettingsComponent
|
||||
return TerminalSettingsTabComponent
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user