diff --git a/Makefile b/Makefile
index 66931c21..662c5c7a 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,16 @@ build:
watch:
DEV=1 ./node_modules/.bin/webpack --progress -w
+install-deps:
+ npm install
+ npm prune
+ for dir in app terminus-* ; do \
+ cd $$dir; \
+ npm --color always install 2>&1 | grep -v 'requires a peer'; \
+ npm --color always prune 2>&1 | grep -v 'requires a peer'; \
+ cd ..; \
+ done
+ make build-native
build-native:
./node_modules/.bin/electron-rebuild -f -w terminus-terminal/node_modules/node-pty -m terminus-terminal
diff --git a/package.json b/package.json
index b6176cee..f91dabe2 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,6 @@
{
"name": "term",
"devDependencies": {
- "angular2-perfect-scrollbar": "2.0.0",
"@types/fs-promise": "^1.0.1",
"@types/core-js": "^0.9.35",
"@types/electron": "1.4.34",
diff --git a/terminus-core/src/api/index.ts b/terminus-core/src/api/index.ts
index a88f1848..af554593 100644
--- a/terminus-core/src/api/index.ts
+++ b/terminus-core/src/api/index.ts
@@ -1,4 +1,4 @@
-export { BaseTabComponent } from '../components/baseTab'
+export { BaseTabComponent } from '../components/baseTab.component'
export { TabRecoveryProvider } from './tabRecovery'
export { ToolbarButtonProvider, IToolbarButton } from './toolbarButtonProvider'
export { ConfigProvider } from './configProvider'
@@ -6,10 +6,10 @@ export { HotkeyProvider, IHotkeyDescription } from './hotkeyProvider'
export { DefaultTabProvider } from './defaultTabProvider'
export { Theme } from './theme'
-export { AppService } from '../services/app'
-export { ConfigService } from '../services/config'
-export { DockingService } from '../services/docking'
-export { ElectronService } from '../services/electron'
-export { Logger, LogService } from '../services/log'
-export { HotkeysService } from '../services/hotkeys'
-export { HostAppService, Platform } from '../services/hostApp'
+export { AppService } from '../services/app.service'
+export { ConfigService } from '../services/config.service'
+export { DockingService } from '../services/docking.service'
+export { ElectronService } from '../services/electron.service'
+export { Logger, LogService } from '../services/log.service'
+export { HotkeysService } from '../services/hotkeys.service'
+export { HostAppService, Platform } from '../services/hostApp.service'
diff --git a/terminus-core/src/app.d.ts b/terminus-core/src/app.d.ts
deleted file mode 100644
index 8035f366..00000000
--- a/terminus-core/src/app.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-declare interface Window {
- require: any
- process: any
- __dirname: any
- __platform: any
-}
-
-declare var window: Window
diff --git a/terminus-core/src/components/appRoot.pug b/terminus-core/src/components/appRoot.component.pug
similarity index 100%
rename from terminus-core/src/components/appRoot.pug
rename to terminus-core/src/components/appRoot.component.pug
diff --git a/terminus-core/src/components/appRoot.scss b/terminus-core/src/components/appRoot.component.scss
similarity index 100%
rename from terminus-core/src/components/appRoot.scss
rename to terminus-core/src/components/appRoot.component.scss
diff --git a/terminus-core/src/components/appRoot.ts b/terminus-core/src/components/appRoot.component.ts
similarity index 86%
rename from terminus-core/src/components/appRoot.ts
rename to terminus-core/src/components/appRoot.component.ts
index 467c39c2..b174cee7 100644
--- a/terminus-core/src/components/appRoot.ts
+++ b/terminus-core/src/components/appRoot.component.ts
@@ -2,23 +2,23 @@ import { Component, Inject } from '@angular/core'
import { trigger, style, animate, transition, state } from '@angular/animations'
import { ToasterConfig } from 'angular2-toaster'
-import { ElectronService } from '../services/electron'
-import { HostAppService } from '../services/hostApp'
-import { HotkeysService } from '../services/hotkeys'
-import { Logger, LogService } from '../services/log'
-import { QuitterService } from '../services/quitter'
-import { ConfigService } from '../services/config'
-import { DockingService } from '../services/docking'
-import { TabRecoveryService } from '../services/tabRecovery'
-import { ThemesService } from '../services/themes'
+import { ElectronService } from '../services/electron.service'
+import { HostAppService } from '../services/hostApp.service'
+import { HotkeysService } from '../services/hotkeys.service'
+import { Logger, LogService } from '../services/log.service'
+import { QuitterService } from '../services/quitter.service'
+import { ConfigService } from '../services/config.service'
+import { DockingService } from '../services/docking.service'
+import { TabRecoveryService } from '../services/tabRecovery.service'
+import { ThemesService } from '../services/themes.service'
import { AppService, IToolbarButton, ToolbarButtonProvider } from '../api'
@Component({
selector: 'app-root',
- template: require('./appRoot.pug'),
- styles: [require('./appRoot.scss')],
+ template: require('./appRoot.component.pug'),
+ styles: [require('./appRoot.component.scss')],
animations: [
trigger('animateTab', [
state('in', style({
diff --git a/terminus-core/src/components/baseTab.ts b/terminus-core/src/components/baseTab.component.ts
similarity index 100%
rename from terminus-core/src/components/baseTab.ts
rename to terminus-core/src/components/baseTab.component.ts
diff --git a/terminus-core/src/components/startPage.pug b/terminus-core/src/components/startPage.component.pug
similarity index 100%
rename from terminus-core/src/components/startPage.pug
rename to terminus-core/src/components/startPage.component.pug
diff --git a/terminus-core/src/components/startPage.scss b/terminus-core/src/components/startPage.component.scss
similarity index 100%
rename from terminus-core/src/components/startPage.scss
rename to terminus-core/src/components/startPage.component.scss
diff --git a/terminus-core/src/components/startPage.ts b/terminus-core/src/components/startPage.component.ts
similarity index 85%
rename from terminus-core/src/components/startPage.ts
rename to terminus-core/src/components/startPage.component.ts
index 2fb2de87..407f4436 100644
--- a/terminus-core/src/components/startPage.ts
+++ b/terminus-core/src/components/startPage.component.ts
@@ -3,8 +3,8 @@ import { IToolbarButton, ToolbarButtonProvider } from '../api'
@Component({
selector: 'start-page',
- template: require('./startPage.pug'),
- styles: [require('./startPage.scss')],
+ template: require('./startPage.component.pug'),
+ styles: [require('./startPage.component.scss')],
})
export class StartPageComponent {
constructor(
diff --git a/terminus-core/src/components/tabBody.component.ts b/terminus-core/src/components/tabBody.component.ts
index 9073a444..045dacb7 100644
--- a/terminus-core/src/components/tabBody.component.ts
+++ b/terminus-core/src/components/tabBody.component.ts
@@ -1,5 +1,5 @@
import { Component, Input, ViewChild, HostBinding, ViewContainerRef } from '@angular/core'
-import { BaseTabComponent } from '../components/baseTab'
+import { BaseTabComponent } from '../components/baseTab.component'
@Component({
selector: 'tab-body',
diff --git a/terminus-core/src/components/tabHeader.pug b/terminus-core/src/components/tabHeader.component.pug
similarity index 100%
rename from terminus-core/src/components/tabHeader.pug
rename to terminus-core/src/components/tabHeader.component.pug
diff --git a/terminus-core/src/components/tabHeader.scss b/terminus-core/src/components/tabHeader.component.scss
similarity index 100%
rename from terminus-core/src/components/tabHeader.scss
rename to terminus-core/src/components/tabHeader.component.scss
diff --git a/terminus-core/src/components/tabHeader.ts b/terminus-core/src/components/tabHeader.component.ts
similarity index 70%
rename from terminus-core/src/components/tabHeader.ts
rename to terminus-core/src/components/tabHeader.component.ts
index 53fbe5dc..68ba373c 100644
--- a/terminus-core/src/components/tabHeader.ts
+++ b/terminus-core/src/components/tabHeader.component.ts
@@ -1,12 +1,10 @@
import { Component, Input, Output, EventEmitter, HostBinding } from '@angular/core'
-import { BaseTabComponent } from '../components/baseTab'
-
-import './tabHeader.scss'
+import { BaseTabComponent } from '../components/baseTab.component'
@Component({
selector: 'tab-header',
- template: require('./tabHeader.pug'),
- styles: [require('./tabHeader.scss')],
+ template: require('./tabHeader.component.pug'),
+ styles: [require('./tabHeader.component.scss')],
})
export class TabHeaderComponent {
@Input() index: number
diff --git a/terminus-core/src/components/titleBar.pug b/terminus-core/src/components/titleBar.component.pug
similarity index 100%
rename from terminus-core/src/components/titleBar.pug
rename to terminus-core/src/components/titleBar.component.pug
diff --git a/terminus-core/src/components/titleBar.scss b/terminus-core/src/components/titleBar.component.scss
similarity index 100%
rename from terminus-core/src/components/titleBar.scss
rename to terminus-core/src/components/titleBar.component.scss
diff --git a/terminus-core/src/components/titleBar.ts b/terminus-core/src/components/titleBar.component.ts
similarity index 65%
rename from terminus-core/src/components/titleBar.ts
rename to terminus-core/src/components/titleBar.component.ts
index dfd2fcd4..3bb32706 100644
--- a/terminus-core/src/components/titleBar.ts
+++ b/terminus-core/src/components/titleBar.component.ts
@@ -1,10 +1,10 @@
import { Component, HostBinding } from '@angular/core'
-import { HostAppService, Platform } from '../services/hostApp'
+import { HostAppService, Platform } from '../services/hostApp.service'
@Component({
selector: 'title-bar',
- template: require('./titleBar.pug'),
- styles: [require('./titleBar.scss')],
+ template: require('./titleBar.component.pug'),
+ styles: [require('./titleBar.component.scss')],
})
export class TitleBarComponent {
@HostBinding('class.inset-titlebar') insetTitlebar = false
diff --git a/terminus-core/src/index.ts b/terminus-core/src/index.ts
index 1c550587..194002a6 100644
--- a/terminus-core/src/index.ts
+++ b/terminus-core/src/index.ts
@@ -6,24 +6,24 @@ import { ToasterModule } from 'angular2-toaster'
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'
-import { AppService } from './services/app'
-import { ConfigService } from './services/config'
-import { ElectronService } from './services/electron'
-import { HostAppService } from './services/hostApp'
-import { LogService } from './services/log'
-import { HotkeysService, AppHotkeyProvider } from './services/hotkeys'
-import { NotifyService } from './services/notify'
-import { PluginsService } from './services/plugins'
-import { QuitterService } from './services/quitter'
-import { DockingService } from './services/docking'
-import { TabRecoveryService } from './services/tabRecovery'
-import { ThemesService } from './services/themes'
+import { AppService } from './services/app.service'
+import { ConfigService } from './services/config.service'
+import { ElectronService } from './services/electron.service'
+import { HostAppService } from './services/hostApp.service'
+import { LogService } from './services/log.service'
+import { HotkeysService, AppHotkeyProvider } from './services/hotkeys.service'
+import { NotifyService } from './services/notify.service'
+import { PluginsService } from './services/plugins.service'
+import { QuitterService } from './services/quitter.service'
+import { DockingService } from './services/docking.service'
+import { TabRecoveryService } from './services/tabRecovery.service'
+import { ThemesService } from './services/themes.service'
-import { AppRootComponent } from './components/appRoot'
+import { AppRootComponent } from './components/appRoot.component'
import { TabBodyComponent } from './components/tabBody.component'
-import { StartPageComponent } from './components/startPage'
-import { TabHeaderComponent } from './components/tabHeader'
-import { TitleBarComponent } from './components/titleBar'
+import { StartPageComponent } from './components/startPage.component'
+import { TabHeaderComponent } from './components/tabHeader.component'
+import { TitleBarComponent } from './components/titleBar.component'
import { HotkeyProvider } from './api/hotkeyProvider'
import { Theme } from './api/theme'
diff --git a/terminus-core/src/services/app.ts b/terminus-core/src/services/app.service.ts
similarity index 95%
rename from terminus-core/src/services/app.ts
rename to terminus-core/src/services/app.service.ts
index ce7d6c16..731ef7ab 100644
--- a/terminus-core/src/services/app.ts
+++ b/terminus-core/src/services/app.service.ts
@@ -1,8 +1,8 @@
import { Subject } from 'rxjs'
import { Injectable, ComponentFactoryResolver, Injector, Optional } from '@angular/core'
-import { Logger, LogService } from '../services/log'
import { DefaultTabProvider } from '../api/defaultTabProvider'
-import { BaseTabComponent } from '../components/baseTab'
+import { BaseTabComponent } from '../components/baseTab.component'
+import { Logger, LogService } from '../services/log.service'
export declare type TabComponentType = new (...args: any[]) => BaseTabComponent
diff --git a/terminus-core/src/services/config.ts b/terminus-core/src/services/config.service.ts
similarity index 97%
rename from terminus-core/src/services/config.ts
rename to terminus-core/src/services/config.service.ts
index 52c46833..8bcd5e1e 100644
--- a/terminus-core/src/services/config.ts
+++ b/terminus-core/src/services/config.service.ts
@@ -2,8 +2,8 @@ import * as yaml from 'js-yaml'
import * as path from 'path'
import * as fs from 'fs'
import { EventEmitter, Injectable, Inject } from '@angular/core'
-import { ElectronService } from '../services/electron'
import { ConfigProvider } from '../api/configProvider'
+import { ElectronService } from '../services/electron.service'
export class ConfigProxy {
diff --git a/terminus-core/src/services/docking.ts b/terminus-core/src/services/docking.service.ts
similarity index 92%
rename from terminus-core/src/services/docking.ts
rename to terminus-core/src/services/docking.service.ts
index 80264619..b2d8ca88 100644
--- a/terminus-core/src/services/docking.ts
+++ b/terminus-core/src/services/docking.service.ts
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core'
-import { HostAppService } from '../services/hostApp'
-import { ConfigService } from '../services/config'
-import { ElectronService } from '../services/electron'
+import { ConfigService } from '../services/config.service'
+import { ElectronService } from '../services/electron.service'
+import { HostAppService } from '../services/hostApp.service'
export interface IScreen {
diff --git a/terminus-core/src/services/electron.ts b/terminus-core/src/services/electron.service.ts
similarity index 100%
rename from terminus-core/src/services/electron.ts
rename to terminus-core/src/services/electron.service.ts
diff --git a/terminus-core/src/services/hostApp.ts b/terminus-core/src/services/hostApp.service.ts
similarity index 95%
rename from terminus-core/src/services/hostApp.ts
rename to terminus-core/src/services/hostApp.service.ts
index 7448f760..be1efe08 100644
--- a/terminus-core/src/services/hostApp.ts
+++ b/terminus-core/src/services/hostApp.service.ts
@@ -1,6 +1,6 @@
import { Injectable, NgZone, EventEmitter } from '@angular/core'
-import { ElectronService } from '../services/electron'
-import { Logger, LogService } from '../services/log'
+import { ElectronService } from '../services/electron.service'
+import { Logger, LogService } from '../services/log.service'
export enum Platform {
Linux, macOS, Windows,
diff --git a/terminus-core/src/services/hotkeys.ts b/terminus-core/src/services/hotkeys.service.ts
similarity index 98%
rename from terminus-core/src/services/hotkeys.ts
rename to terminus-core/src/services/hotkeys.service.ts
index 76f60dcd..78fad659 100644
--- a/terminus-core/src/services/hotkeys.ts
+++ b/terminus-core/src/services/hotkeys.service.ts
@@ -1,8 +1,8 @@
import { Injectable, Inject, NgZone, EventEmitter } from '@angular/core'
-import { ElectronService } from '../services/electron'
-import { ConfigService } from '../services/config'
-import { NativeKeyEvent, stringifyKeySequence } from './hotkeys.util'
import { IHotkeyDescription, HotkeyProvider } from '../api/hotkeyProvider'
+import { NativeKeyEvent, stringifyKeySequence } from './hotkeys.util'
+import { ConfigService } from '../services/config.service'
+import { ElectronService } from '../services/electron.service'
export interface PartialHotkeyMatch {
diff --git a/terminus-core/src/services/log.ts b/terminus-core/src/services/log.service.ts
similarity index 100%
rename from terminus-core/src/services/log.ts
rename to terminus-core/src/services/log.service.ts
diff --git a/terminus-core/src/services/notify.ts b/terminus-core/src/services/notify.service.ts
similarity index 100%
rename from terminus-core/src/services/notify.ts
rename to terminus-core/src/services/notify.service.ts
diff --git a/terminus-core/src/services/plugins.ts b/terminus-core/src/services/plugins.service.ts
similarity index 100%
rename from terminus-core/src/services/plugins.ts
rename to terminus-core/src/services/plugins.service.ts
diff --git a/terminus-core/src/services/quitter.ts b/terminus-core/src/services/quitter.service.ts
similarity index 84%
rename from terminus-core/src/services/quitter.ts
rename to terminus-core/src/services/quitter.service.ts
index 7922d23b..1ec06aac 100644
--- a/terminus-core/src/services/quitter.ts
+++ b/terminus-core/src/services/quitter.service.ts
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core'
-import { HostAppService } from '../services/hostApp'
+import { HostAppService } from '../services/hostApp.service'
@Injectable()
diff --git a/terminus-core/src/services/tabRecovery.ts b/terminus-core/src/services/tabRecovery.service.ts
similarity index 87%
rename from terminus-core/src/services/tabRecovery.ts
rename to terminus-core/src/services/tabRecovery.service.ts
index 858c0a1e..89eed40c 100644
--- a/terminus-core/src/services/tabRecovery.ts
+++ b/terminus-core/src/services/tabRecovery.service.ts
@@ -1,8 +1,8 @@
import { Injectable, Inject } from '@angular/core'
-import { Logger, LogService } from '../services/log'
-import { BaseTabComponent } from '../components/baseTab'
import { TabRecoveryProvider } from '../api/tabRecovery'
-import { AppService } from '../services/app'
+import { BaseTabComponent } from '../components/baseTab.component'
+import { Logger, LogService } from '../services/log.service'
+import { AppService } from '../services/app.service'
@Injectable()
diff --git a/terminus-core/src/services/themes.ts b/terminus-core/src/services/themes.service.ts
similarity index 94%
rename from terminus-core/src/services/themes.ts
rename to terminus-core/src/services/themes.service.ts
index 667cef1b..d9dd9a71 100644
--- a/terminus-core/src/services/themes.ts
+++ b/terminus-core/src/services/themes.service.ts
@@ -1,5 +1,5 @@
import { Inject, Injectable } from '@angular/core'
-import { ConfigService } from '../services/config'
+import { ConfigService } from '../services/config.service'
import { Theme } from '../api/theme'
diff --git a/terminus-settings/src/buttonProvider.ts b/terminus-settings/src/buttonProvider.ts
index 84c4ab17..24131614 100644
--- a/terminus-settings/src/buttonProvider.ts
+++ b/terminus-settings/src/buttonProvider.ts
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core'
import { ToolbarButtonProvider, IToolbarButton, AppService } from 'terminus-core'
-import { SettingsTabComponent } from './components/settingsTab'
+import { SettingsTabComponent } from './components/settingsTab.component'
@Injectable()
diff --git a/terminus-settings/src/components/hotkeyDisplay.pug b/terminus-settings/src/components/hotkeyDisplay.pug
deleted file mode 100644
index 2e35f05e..00000000
--- a/terminus-settings/src/components/hotkeyDisplay.pug
+++ /dev/null
@@ -1,7 +0,0 @@
-.stroke(*ngFor='let stroke of model')
- .key-container(
- *ngFor='let key of splitKeys(stroke); let isLast = last; trackBy: key',
- [@animateKey]='animate ? "in" : ""'
- )
- .key {{key}}
- .plus(*ngIf='!isLast') +
diff --git a/terminus-settings/src/components/hotkeyDisplay.scss b/terminus-settings/src/components/hotkeyDisplay.scss
deleted file mode 100644
index 46aecc74..00000000
--- a/terminus-settings/src/components/hotkeyDisplay.scss
+++ /dev/null
@@ -1,26 +0,0 @@
-:host {
- display: inline-block;
-
- .stroke {
- display: inline-block;
- margin: 0 5px;
- background: #222;
- border-radius: 2px;
- box-shadow: 0 1px 0 rgba(0,0,0,.5);
- text-shadow: 0 1px 0 rgba(0,0,0,.5);
-
- .key-container {
- display: inline-block;
-
- .key {
- display: inline-block;
- padding: 4px 5px;
- }
-
- .plus {
- display: inline-block;
- padding: 4px 2px;
- }
- }
- }
-}
diff --git a/terminus-settings/src/components/hotkeyDisplay.ts b/terminus-settings/src/components/hotkeyDisplay.ts
deleted file mode 100644
index ba6ef908..00000000
--- a/terminus-settings/src/components/hotkeyDisplay.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Component, Input, trigger, style, animate, transition } from '@angular/core'
-
-
-@Component({
- selector: 'hotkey-display',
- template: require('./hotkeyDisplay.pug'),
- styles: [require('./hotkeyDisplay.scss')],
- //changeDetection: ChangeDetectionStrategy.OnPush,
- animations: [
- trigger('animateKey', [
- transition('void => in', [
- style({
- transform: 'translateX(25px)',
- opacity: '0',
- }),
- animate('250ms ease-out', style({
- transform: 'translateX(0)',
- opacity: '1',
- }))
- ]),
- transition('in => void', [
- style({
- transform: 'translateX(0)',
- opacity: '1',
- }),
- animate('250ms ease-in', style({
- transform: 'translateX(25px)',
- opacity: '0',
- }))
- ])
- ])
- ]
-})
-export class HotkeyDisplayComponent {
- splitKeys(keys: string): string[] {
- return keys.split('+').map((x) => x.trim())
- }
-
- @Input() model: string[]
- @Input() animate = false
-}
diff --git a/terminus-settings/src/components/hotkeyInput.scss b/terminus-settings/src/components/hotkeyInput.scss
deleted file mode 100644
index 108b7809..00000000
--- a/terminus-settings/src/components/hotkeyInput.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-:host {
- display: inline-block;
- padding: 5px;
-
- transition: 0.125s all;
-
- &:hover:not(.active) {
- background: rgba(255, 255, 255, .033);
- }
-
- &:active:not(.active) {
- background: rgba(0, 0, 0, .1);
- }
-}
diff --git a/terminus-settings/src/components/hotkeyInput.ts b/terminus-settings/src/components/hotkeyInput.ts
deleted file mode 100644
index 7139a691..00000000
--- a/terminus-settings/src/components/hotkeyInput.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Component, Input, Output, EventEmitter, HostListener, ChangeDetectionStrategy } from '@angular/core'
-import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
-
-import { HotkeyInputModalComponent } from './hotkeyInputModal'
-
-
-@Component({
- selector: 'hotkey-input',
- template: `
-