mirror of
https://github.com/Eugeny/tabby.git
synced 2025-08-29 12:41:51 +00:00
Compare commits
69 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cb06a8e493 | ||
![]() |
4569126322 | ||
![]() |
db8c534d0a | ||
![]() |
4ee4a7e5fa | ||
![]() |
bf6c75de2b | ||
![]() |
ced8557517 | ||
![]() |
093f79df4e | ||
![]() |
5a3a39e795 | ||
![]() |
0cf4945175 | ||
![]() |
43cd3318da | ||
![]() |
1c43eb94f6 | ||
![]() |
972df1ac11 | ||
![]() |
79b15658b9 | ||
![]() |
ef65859c9a | ||
![]() |
e932b07fc1 | ||
![]() |
44f69d66e2 | ||
![]() |
de9d1f2aae | ||
![]() |
ce584fa9b9 | ||
![]() |
2f03c7cea7 | ||
![]() |
c61be3d52b | ||
![]() |
1d6e0ac2e7 | ||
![]() |
758faf3189 | ||
![]() |
0452f42c41 | ||
![]() |
6197215500 | ||
![]() |
6d0293975d | ||
![]() |
30a8a8d287 | ||
![]() |
1198ede0fd | ||
![]() |
90affc3efb | ||
![]() |
3b25645154 | ||
![]() |
30265699d4 | ||
![]() |
63355d1a74 | ||
![]() |
52c37f8988 | ||
![]() |
0ed6575213 | ||
![]() |
406baafd8d | ||
![]() |
45e6844931 | ||
![]() |
4db4d49187 | ||
![]() |
8a1a3ce002 | ||
![]() |
987a02b2fe | ||
![]() |
0267b454d2 | ||
![]() |
310e956ce8 | ||
![]() |
77a2113411 | ||
![]() |
fce8565835 | ||
![]() |
5a894ebfd3 | ||
![]() |
353b9b5ec8 | ||
![]() |
1fc73dca0b | ||
![]() |
009c2e9478 | ||
![]() |
8ee2bff9a8 | ||
![]() |
395bcbc2cb | ||
![]() |
9ef870e793 | ||
![]() |
51eb616750 | ||
![]() |
33c32d8c28 | ||
![]() |
e29e39b5e4 | ||
![]() |
effe66f5b7 | ||
![]() |
a907978825 | ||
![]() |
f42d4e0eb4 | ||
![]() |
f0628e68d5 | ||
![]() |
b3b6ca6f43 | ||
![]() |
722f91da0c | ||
![]() |
655079741a | ||
![]() |
307f598be0 | ||
![]() |
3aeac5610b | ||
![]() |
d1b10fefae | ||
![]() |
f36c7e5e3f | ||
![]() |
0839b51837 | ||
![]() |
a9c36e695b | ||
![]() |
cdf8bb34fa | ||
![]() |
acc4eddf8f | ||
![]() |
93f58bb7aa | ||
![]() |
8cc934ad5f |
@@ -388,10 +388,28 @@
|
|||||||
"contributions": [
|
"contributions": [
|
||||||
"design"
|
"design"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "ydcool",
|
||||||
|
"name": "Dominic Yin",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/5668295?v=4",
|
||||||
|
"profile": "https://github.com/ydcool",
|
||||||
|
"contributions": [
|
||||||
|
"code"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "bdr99",
|
||||||
|
"name": "Brandon Rothweiler",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/2292715?v=4",
|
||||||
|
"profile": "https://github.com/bdr99",
|
||||||
|
"contributions": [
|
||||||
|
"design"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"contributorsPerLine": 7,
|
"contributorsPerLine": 7,
|
||||||
"projectName": "terminus",
|
"projectName": "tabby",
|
||||||
"projectOwner": "Eugeny",
|
"projectOwner": "Eugeny",
|
||||||
"repoType": "github",
|
"repoType": "github",
|
||||||
"repoHost": "https://github.com",
|
"repoHost": "https://github.com",
|
||||||
|
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -1,3 +1,3 @@
|
|||||||
github: eugeny
|
github: eugeny
|
||||||
open_collective: terminus
|
open_collective: tabby
|
||||||
ko_fi: eugeny
|
ko_fi: eugeny
|
||||||
|
18
.github/dependabot.yml
vendored
18
.github/dependabot.yml
vendored
@@ -13,55 +13,55 @@ updates:
|
|||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-core"
|
directory: "/tabby-core"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-settings"
|
directory: "/tabby-settings"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-terminal"
|
directory: "/tabby-terminal"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-local"
|
directory: "/tabby-local"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-community-color-schemes"
|
directory: "/tabby-community-color-schemes"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-electron"
|
directory: "/tabby-electron"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-web"
|
directory: "/tabby-web"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-plugin-manager"
|
directory: "/tabby-plugin-manager"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/terminus-ssh"
|
directory: "/tabby-ssh"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
|
4
.github/workflows/linux.yml
vendored
4
.github/workflows/linux.yml
vendored
@@ -44,7 +44,7 @@ jobs:
|
|||||||
# DEBUG: electron-builder,electron-builder:*
|
# DEBUG: electron-builder,electron-builder:*
|
||||||
|
|
||||||
- name: Build web resources
|
- name: Build web resources
|
||||||
run: zsh -c 'tar czf terminus-web.tar.gz (terminus-*|web)/dist'
|
run: zsh -c 'tar czf tabby-web.tar.gz (tabby-*|web)/dist'
|
||||||
|
|
||||||
- name: Upload symbols
|
- name: Upload symbols
|
||||||
run: |
|
run: |
|
||||||
@@ -68,7 +68,7 @@ jobs:
|
|||||||
mkdir artifact-tar.gz
|
mkdir artifact-tar.gz
|
||||||
mv dist/*.tar.gz artifact-tar.gz/ || true
|
mv dist/*.tar.gz artifact-tar.gz/ || true
|
||||||
mkdir artifact-web
|
mkdir artifact-web
|
||||||
mv terminus-web.tar.gz artifact-web/ || true
|
mv tabby-web.tar.gz artifact-web/ || true
|
||||||
|
|
||||||
- uses: actions/upload-artifact@master
|
- uses: actions/upload-artifact@master
|
||||||
name: Upload DEB
|
name: Upload DEB
|
||||||
|
4
.github/workflows/macos.yml
vendored
4
.github/workflows/macos.yml
vendored
@@ -52,7 +52,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and sign packages
|
- name: Build and sign packages
|
||||||
run: scripts/build-macos.js
|
run: scripts/build-macos.js
|
||||||
if: github.repository == 'Eugeny/terminus' && github.event_name == 'push'
|
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -65,7 +65,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build packages without signing
|
- name: Build packages without signing
|
||||||
run: scripts/build-macos.js
|
run: scripts/build-macos.js
|
||||||
if: github.repository != 'Eugeny/terminus' || github.event_name != 'push'
|
if: "! (github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
# DEBUG: electron-builder,electron-builder:*
|
# DEBUG: electron-builder,electron-builder:*
|
||||||
|
4
.github/workflows/windows.yml
vendored
4
.github/workflows/windows.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and sign packages
|
- name: Build and sign packages
|
||||||
run: node scripts/build-windows.js
|
run: node scripts/build-windows.js
|
||||||
if: github.repository == 'Eugeny/terminus' && github.event_name == 'push'
|
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
|
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
|
||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build packages without signing
|
- name: Build packages without signing
|
||||||
run: node scripts/build-windows.js
|
run: node scripts/build-windows.js
|
||||||
if: github.repository != 'Eugeny/terminus' || github.event_name != 'push'
|
if: "!(github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
||||||
|
|
||||||
- name: Upload symbols
|
- name: Upload symbols
|
||||||
run: |
|
run: |
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -32,5 +32,5 @@ docs/api
|
|||||||
sentry.properties
|
sentry.properties
|
||||||
sentry-symbols.js
|
sentry-symbols.js
|
||||||
|
|
||||||
terminus-ssh/util/pagent.exe
|
tabby-ssh/util/pagent.exe
|
||||||
*.psd
|
*.psd
|
||||||
|
36
.travis.yml
36
.travis.yml
@@ -1,36 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
node_js: 15
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- Build
|
|
||||||
- name: Docs
|
|
||||||
if: branch = master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
include:
|
|
||||||
- stage: 'Docs'
|
|
||||||
os: linux
|
|
||||||
if: branch = master
|
|
||||||
script:
|
|
||||||
- '[ -z "${encrypted_4e2fb4889ef8_iv}" ] && exit 0 || true'
|
|
||||||
- set -e
|
|
||||||
- openssl aes-256-cbc -K $encrypted_4e2fb4889ef8_key -iv $encrypted_4e2fb4889ef8_iv -in .travis.ssh.key.enc -out .travis.ssh.key -d
|
|
||||||
- eval "$(ssh-agent -s)"
|
|
||||||
- chmod 600 .travis.ssh.key
|
|
||||||
- ssh-add .travis.ssh.key
|
|
||||||
- yarn
|
|
||||||
- yarn run docs
|
|
||||||
- rsync -e "ssh -o StrictHostKeyChecking=no" -arv docs/api/ root@ajenti.org:/srv/terminus-docs/
|
|
||||||
|
|
||||||
dist: xenial
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- rpm
|
|
||||||
- yarn
|
|
||||||
- libsecret-1-dev
|
|
||||||
sources:
|
|
||||||
- sourceline: 'deb https://dl.yarnpkg.com/debian/ stable main'
|
|
||||||
key_url: 'https://dl.yarnpkg.com/debian/pubkey.gpg'
|
|
39
.vscode/launch.json
vendored
Normal file
39
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "Electron: Main",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
|
||||||
|
"env": {
|
||||||
|
"TABBY_DEV": "1"
|
||||||
|
},
|
||||||
|
"runtimeArgs": [
|
||||||
|
"--remote-debugging-port=9223",
|
||||||
|
"app"
|
||||||
|
],
|
||||||
|
"windows": {
|
||||||
|
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Electron: Renderer",
|
||||||
|
"type": "pwa-chrome",
|
||||||
|
"request": "attach",
|
||||||
|
"port": 9223,
|
||||||
|
"webRoot": "${workspaceFolder}",
|
||||||
|
"timeout": 30000
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"compounds": [
|
||||||
|
{
|
||||||
|
"name": "Electron: All",
|
||||||
|
"configurations": [
|
||||||
|
"Electron: Main",
|
||||||
|
"Electron: Renderer"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
65
HACKING.md
65
HACKING.md
@@ -1,18 +1,27 @@
|
|||||||
# Some background
|
# Some background
|
||||||
|
|
||||||
Terminus is an Electron app, with the frontend written in Typescript with the help of Angular framework. It's built using Webpack.
|
Tabby is an Electron app, with the frontend written in Typescript with the help of Angular framework. It's built using Webpack.
|
||||||
|
|
||||||
# Getting started
|
# Getting started
|
||||||
|
|
||||||
First of all, clone this repository. You'll also need a recent version of Node installed.
|
First of all, clone this repository. You'll also need Node.js 14 or newer and Yarn.
|
||||||
|
|
||||||
First, install the dependencies:
|
First, install the dependencies:
|
||||||
|
|
||||||
```
|
```
|
||||||
# macOS/Linux:
|
# macOS:
|
||||||
yarn
|
yarn
|
||||||
./scripts/build-native.js
|
./scripts/build-native.js
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
# Linux (Debian here as an example)
|
||||||
|
sudo apt install libfontconfig-dev libsecret-1-dev bsdtar libnss3 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm1
|
||||||
|
yarn
|
||||||
|
./scripts/build-native.js
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
# Windows:
|
# Windows:
|
||||||
npm -g install windows-build-tools
|
npm -g install windows-build-tools
|
||||||
yarn
|
yarn
|
||||||
@@ -25,34 +34,50 @@ Now, check if your build is working:
|
|||||||
yarn run build
|
yarn run build
|
||||||
```
|
```
|
||||||
|
|
||||||
Start Terminus with
|
Start Tabby with
|
||||||
|
|
||||||
```
|
```
|
||||||
yarn start
|
yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Building an installer
|
||||||
|
|
||||||
|
To build an installer, first complete a "normal" build as described above and then run:
|
||||||
|
|
||||||
|
```
|
||||||
|
node scripts/prepackage-plugins.js
|
||||||
|
|
||||||
|
node scripts/build-windows.js
|
||||||
|
# or
|
||||||
|
node scripts/build-linux.js
|
||||||
|
# or
|
||||||
|
node scripts/build-macos.js
|
||||||
|
```
|
||||||
|
|
||||||
|
The artifacts will be produced in the `dist` folder.
|
||||||
|
|
||||||
# Project layout
|
# Project layout
|
||||||
```
|
```
|
||||||
terminus
|
tabby
|
||||||
├─ app # Electron app, just the bare essentials
|
├─ app # Electron app, just the bare essentials
|
||||||
| ├─ src # Electron renderer code
|
| ├─ src # Electron renderer code
|
||||||
| └─ main.js # Electron main entry point
|
| └─ main.js # Electron main entry point
|
||||||
├─ build
|
├─ build
|
||||||
├─ clink # Clink distributive, for Windows
|
├─ clink # Clink distributive, for Windows
|
||||||
├─ scripts # Maintenance scripts
|
├─ scripts # Maintenance scripts
|
||||||
├─ terminus-community-color-schemes # Plugin that provides color schemes
|
├─ tabby-community-color-schemes # Plugin that provides color schemes
|
||||||
├─ terminus-core # Plugin that provides base UI and tab management
|
├─ tabby-core # Plugin that provides base UI and tab management
|
||||||
├─ terminus-electron # Plugin that provides Electron-specific functions
|
├─ tabby-electron # Plugin that provides Electron-specific functions
|
||||||
└─ terminus-local # Plugin that provides local shells and profiles
|
├─ tabby-local # Plugin that provides local shells and profiles
|
||||||
├─ terminus-plugin-manager # Plugin that installs other plugins
|
├─ tabby-plugin-manager # Plugin that installs other plugins
|
||||||
├─ terminus-settings # Plugin that provides the settings tab
|
├─ tabby-settings # Plugin that provides the settings tab
|
||||||
└─ terminus-terminal # Plugin that provides terminal tabs
|
├─ tabby-terminal # Plugin that provides terminal tabs
|
||||||
├─ terminus-web # Plugin that provides web-specific functions
|
└─ tabby-web # Plugin that provides web-specific functions
|
||||||
```
|
```
|
||||||
|
|
||||||
# Plugin layout
|
# Plugin layout
|
||||||
```
|
```
|
||||||
terminus-pluginname
|
tabby-pluginname
|
||||||
├─ src # Typescript code
|
├─ src # Typescript code
|
||||||
| ├─ components # Angular components
|
| ├─ components # Angular components
|
||||||
| | ├─ foo.component.ts # Code
|
| | ├─ foo.component.ts # Code
|
||||||
@@ -69,11 +94,11 @@ terminus-pluginname
|
|||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
|
|
||||||
The app will load all plugins from the source checkout in the dev mode, from the user's plugins directory at all times (click `Open Plugins Directory` under `Settings` > `Plugins`) and from the directory specified by the `TERMINUS_PLUGINS` environment var.
|
The app will load all plugins from the source checkout in the dev mode, from the user's plugins directory at all times (click `Open Plugins Directory` under `Settings` > `Plugins`) and from the directory specified by the `TABBY_PLUGINS` environment var.
|
||||||
|
|
||||||
Only modules whose `package.json` file contains a `terminus-plugin` keyword will be loaded.
|
Only modules whose `package.json` file contains a `tabby-plugin` keyword will be loaded.
|
||||||
|
|
||||||
If you're currently in your plugin's directory, start Terminus as `TERMINUS_PLUGINS=$(pwd) terminus --debug`
|
If you're currently in your plugin's directory, start Tabby as `TABBY_PLUGINS=$(pwd) tabby --debug`
|
||||||
|
|
||||||
A plugin should only provide a default export, which should be a `NgModule` class (or a `NgModuleWithDependencies` where applicable). This module will be injected as a dependency to the app's root module.
|
A plugin should only provide a default export, which should be a `NgModule` class (or a `NgModuleWithDependencies` where applicable). This module will be injected as a dependency to the app's root module.
|
||||||
|
|
||||||
@@ -93,7 +118,7 @@ Plugins provide functionality by exporting singular or multi providers:
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import { NgModule, Injectable } from '@angular/core'
|
import { NgModule, Injectable } from '@angular/core'
|
||||||
import { ToolbarButtonProvider, ToolbarButton } from 'terminus-core'
|
import { ToolbarButtonProvider, ToolbarButton } from 'tabby-core'
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class MyButtonProvider extends ToolbarButtonProvider {
|
export class MyButtonProvider extends ToolbarButtonProvider {
|
||||||
@@ -118,6 +143,6 @@ export default class MyModule { }
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
See `terminus-core/src/api.ts`, `terminus-settings/src/api.ts`, `terminus-local/src/api.ts` and `terminus-terminal/src/api.ts` for the available extension points.
|
See `tabby-core/src/api.ts`, `tabby-settings/src/api.ts`, `tabby-local/src/api.ts` and `tabby-terminal/src/api.ts` for the available extension points.
|
||||||
|
|
||||||
Publish your plugin on NPM with a `terminus-plugin` keyword to make it appear in the Plugin Manager.
|
Publish your plugin on NPM with a `tabby-plugin` keyword to make it appear in the Plugin Manager.
|
||||||
|
106
README.md
106
README.md
@@ -2,12 +2,18 @@
|
|||||||
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/Eugeny/terminus/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/terminus/total.svg?label=RELEASE&logo=github&style=for-the-badge"></a> <a href="https://nightly.link/Eugeny/terminus/workflows/windows/master"><img src="https://shields.io/badge/-Nightly-blue?logo=windows&style=for-the-badge"/></a> <a href="https://nightly.link/Eugeny/terminus/workflows/macos/master"><img src="https://shields.io/badge/-Nightly-black?logo=apple&style=for-the-badge"/></a> <a href="https://nightly.link/Eugeny/terminus/workflows/linux/master"><img src="https://shields.io/badge/-Nightly-orange?logo=linux&style=for-the-badge"/></a> <a href="https://gitter.im/terminus-terminal/community"><img alt="Gitter" src="https://img.shields.io/gitter/room/terminus/community.svg?color=magenta&logo=gitter&style=for-the-badge"></a>
|
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=RELEASE&logo=github&style=for-the-badge"></a> <a href="https://nightly.link/Eugeny/tabby/workflows/windows/master"><img src="https://shields.io/badge/-Nightly-blue?logo=windows&style=for-the-badge"/></a> <a href="https://nightly.link/Eugeny/tabby/workflows/macos/master"><img src="https://shields.io/badge/-Nightly-black?logo=apple&style=for-the-badge"/></a> <a href="https://nightly.link/Eugeny/tabby/workflows/linux/master"><img src="https://shields.io/badge/-Nightly-orange?logo=linux&style=for-the-badge"/></a> <a href="https://gitter.im/terminus-terminal/community"><img alt="Gitter" src="https://img.shields.io/gitter/room/terminus/community.svg?color=magenta&logo=gitter&style=for-the-badge"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://ko-fi.com/J3J8KWTF">
|
||||||
|
<img src="https://ko-fi.com/img/githubbutton_sm.svg">
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
**Terminus** is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux
|
**Tabby** (formerly **Terminus**) is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux
|
||||||
|
|
||||||
* Integrated SSH client and connection manager
|
* Integrated SSH client and connection manager
|
||||||
* Integrated serial terminal
|
* Integrated serial terminal
|
||||||
@@ -22,14 +28,12 @@
|
|||||||
* Proper shell experience on Windows including tab completion (via Clink)
|
* Proper shell experience on Windows including tab completion (via Clink)
|
||||||
* Integrated encrypted container for SSH secrets and configuration
|
* Integrated encrypted container for SSH secrets and configuration
|
||||||
|
|
||||||
[](https://ko-fi.com/eugeny)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Contents
|
# Contents
|
||||||
|
|
||||||
- [Contents](#contents)
|
- [Contents](#contents)
|
||||||
- [What Terminus is and isn't](#what-terminus-is-and-isnt)
|
- [What Tabby is and isn't](#what-tabby-is-and-isnt)
|
||||||
- [Terminal features](#terminal-features)
|
- [Terminal features](#terminal-features)
|
||||||
- [SSH Client](#ssh-client)
|
- [SSH Client](#ssh-client)
|
||||||
- [Serial Terminal](#serial-terminal)
|
- [Serial Terminal](#serial-terminal)
|
||||||
@@ -39,11 +43,11 @@
|
|||||||
- [Contributing](#contributing)
|
- [Contributing](#contributing)
|
||||||
|
|
||||||
<a name="about"></a>
|
<a name="about"></a>
|
||||||
# What Terminus is and isn't
|
# What Tabby is and isn't
|
||||||
|
|
||||||
* **Terminus is** an alternative to Windows' standard terminal (conhost), PowerShell ISE, PuTTY or iTerm
|
* **Tabby is** an alternative to Windows' standard terminal (conhost), PowerShell ISE, PuTTY or iTerm
|
||||||
|
|
||||||
* **Terminus is not** a new shell or a MinGW or Cygwin replacement. Neither is it lightweight - if RAM usage is of importance, consider [Conemu](https://conemu.github.io) or [Alacritty](https://github.com/jwilm/alacritty)
|
* **Tabby is not** a new shell or a MinGW or Cygwin replacement. Neither is it lightweight - if RAM usage is of importance, consider [Conemu](https://conemu.github.io) or [Alacritty](https://github.com/jwilm/alacritty)
|
||||||
|
|
||||||
<a name="terminal"></a>
|
<a name="terminal"></a>
|
||||||
# Terminal features
|
# Terminal features
|
||||||
@@ -84,12 +88,12 @@
|
|||||||
<a name="portable"></a>
|
<a name="portable"></a>
|
||||||
# Portable
|
# Portable
|
||||||
|
|
||||||
Terminus will run as a portable app on Windows, if you create a `data` folder in the same location where `Terminus.exe` lives.
|
Tabby will run as a portable app on Windows, if you create a `data` folder in the same location where `Tabby.exe` lives.
|
||||||
|
|
||||||
<a name="plugins"></a>
|
<a name="plugins"></a>
|
||||||
# Plugins
|
# Plugins
|
||||||
|
|
||||||
Plugins and themes can be installed directly from the Settings view inside Terminus.
|
Plugins and themes can be installed directly from the Settings view inside Tabby.
|
||||||
|
|
||||||
* [clickable-links](https://github.com/Eugeny/terminus-clickable-links) - makes paths and URLs in the terminal clickable
|
* [clickable-links](https://github.com/Eugeny/terminus-clickable-links) - makes paths and URLs in the terminal clickable
|
||||||
* [title-control](https://github.com/kbjr/terminus-title-control) - allows modifying the title of the terminal tabs by providing a prefix, suffix, and/or strings to be removed
|
* [title-control](https://github.com/kbjr/terminus-title-control) - allows modifying the title of the terminal tabs by providing a prefix, suffix, and/or strings to be removed
|
||||||
@@ -102,7 +106,7 @@ Plugins and themes can be installed directly from the Settings view inside Termi
|
|||||||
# Themes
|
# Themes
|
||||||
|
|
||||||
* [hype](https://github.com/Eugeny/terminus-theme-hype) - a Hyper inspired theme
|
* [hype](https://github.com/Eugeny/terminus-theme-hype) - a Hyper inspired theme
|
||||||
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - the Relaxed theme for Terminus
|
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - the Relaxed theme for Tabby
|
||||||
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox)
|
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox)
|
||||||
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10)
|
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10)
|
||||||
* [altair](https://github.com/yxuko/terminus-altair)
|
* [altair](https://github.com/yxuko/terminus-altair)
|
||||||
@@ -112,7 +116,7 @@ Plugins and themes can be installed directly from the Settings view inside Termi
|
|||||||
|
|
||||||
Pull requests and plugins are welcome!
|
Pull requests and plugins are welcome!
|
||||||
|
|
||||||
See [HACKING.md](https://github.com/Eugeny/terminus/blob/master/HACKING.md) and [API docs](http://ajenti.org/terminus-docs/) for information of how the project is laid out, and a very brief plugin development tutorial.
|
See [HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md) and [API docs](http://ajenti.org/terminus-docs/) for information of how the project is laid out, and a very brief plugin development tutorial.
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="contributors"></a>
|
<a name="contributors"></a>
|
||||||
@@ -124,59 +128,63 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|||||||
<!-- markdownlint-disable -->
|
<!-- markdownlint-disable -->
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><a href="http://www.russellmyers.com"><img src="https://avatars2.githubusercontent.com/u/184085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Russell Myers</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=mezner" title="Code">💻</a></td>
|
<td align="center"><a href="http://www.russellmyers.com"><img src="https://avatars2.githubusercontent.com/u/184085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Russell Myers</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mezner" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="http://www.morwire.com"><img src="https://avatars1.githubusercontent.com/u/3991658?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Austin Warren</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=ehwarren" title="Code">💻</a></td>
|
<td align="center"><a href="http://www.morwire.com"><img src="https://avatars1.githubusercontent.com/u/3991658?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Austin Warren</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ehwarren" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/Drachenkaetzchen"><img src="https://avatars1.githubusercontent.com/u/162974?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Felicia Hummel</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=Drachenkaetzchen" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/Drachenkaetzchen"><img src="https://avatars1.githubusercontent.com/u/162974?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Felicia Hummel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Drachenkaetzchen" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/mikemaccana"><img src="https://avatars2.githubusercontent.com/u/172594?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mike MacCana</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=mikemaccana" title="Tests">⚠️</a> <a href="#design-mikemaccana" title="Design">🎨</a></td>
|
<td align="center"><a href="https://github.com/mikemaccana"><img src="https://avatars2.githubusercontent.com/u/172594?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mike MacCana</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mikemaccana" title="Tests">⚠️</a> <a href="#design-mikemaccana" title="Design">🎨</a></td>
|
||||||
<td align="center"><a href="https://github.com/yxuko"><img src="https://avatars1.githubusercontent.com/u/1786317?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yacine Kanzari</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=yxuko" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/yxuko"><img src="https://avatars1.githubusercontent.com/u/1786317?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yacine Kanzari</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yxuko" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/BBJip"><img src="https://avatars2.githubusercontent.com/u/32908927?v=4?s=100" width="100px;" alt=""/><br /><sub><b>BBJip</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=BBJip" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/BBJip"><img src="https://avatars2.githubusercontent.com/u/32908927?v=4?s=100" width="100px;" alt=""/><br /><sub><b>BBJip</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BBJip" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/Futagirl"><img src="https://avatars2.githubusercontent.com/u/33533958?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Futagirl</b></sub></a><br /><a href="#design-Futagirl" title="Design">🎨</a></td>
|
<td align="center"><a href="https://github.com/Futagirl"><img src="https://avatars2.githubusercontent.com/u/33533958?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Futagirl</b></sub></a><br /><a href="#design-Futagirl" title="Design">🎨</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><a href="https://www.levrik.io"><img src="https://avatars3.githubusercontent.com/u/9491603?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Levin Rickert</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=levrik" title="Code">💻</a></td>
|
<td align="center"><a href="https://www.levrik.io"><img src="https://avatars3.githubusercontent.com/u/9491603?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Levin Rickert</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=levrik" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://kwonoj.github.io"><img src="https://avatars2.githubusercontent.com/u/1210596?v=4?s=100" width="100px;" alt=""/><br /><sub><b>OJ Kwon</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=kwonoj" title="Code">💻</a></td>
|
<td align="center"><a href="https://kwonoj.github.io"><img src="https://avatars2.githubusercontent.com/u/1210596?v=4?s=100" width="100px;" alt=""/><br /><sub><b>OJ Kwon</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=kwonoj" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/Domain"><img src="https://avatars2.githubusercontent.com/u/903197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>domain</b></sub></a><br /><a href="#plugin-Domain" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/terminus/commits?author=Domain" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/Domain"><img src="https://avatars2.githubusercontent.com/u/903197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>domain</b></sub></a><br /><a href="#plugin-Domain" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Domain" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="http://www.jbrumond.me"><img src="https://avatars1.githubusercontent.com/u/195127?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Brumond</b></sub></a><br /><a href="#plugin-kbjr" title="Plugin/utility libraries">🔌</a></td>
|
<td align="center"><a href="http://www.jbrumond.me"><img src="https://avatars1.githubusercontent.com/u/195127?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Brumond</b></sub></a><br /><a href="#plugin-kbjr" title="Plugin/utility libraries">🔌</a></td>
|
||||||
<td align="center"><a href="http://www.growingwiththeweb.com"><img src="https://avatars0.githubusercontent.com/u/2193314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Imms</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=Tyriar" title="Code">💻</a> <a href="#plugin-Tyriar" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/terminus/commits?author=Tyriar" title="Tests">⚠️</a></td>
|
<td align="center"><a href="http://www.growingwiththeweb.com"><img src="https://avatars0.githubusercontent.com/u/2193314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Imms</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Code">💻</a> <a href="#plugin-Tyriar" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Tests">⚠️</a></td>
|
||||||
<td align="center"><a href="https://github.com/baflo"><img src="https://avatars2.githubusercontent.com/u/834350?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Florian Bachmann</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=baflo" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/baflo"><img src="https://avatars2.githubusercontent.com/u/834350?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Florian Bachmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=baflo" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="http://michael-kuehnel.de"><img src="https://avatars2.githubusercontent.com/u/441011?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Kühnel</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=mischah" title="Code">💻</a> <a href="#design-mischah" title="Design">🎨</a></td>
|
<td align="center"><a href="http://michael-kuehnel.de"><img src="https://avatars2.githubusercontent.com/u/441011?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Kühnel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mischah" title="Code">💻</a> <a href="#design-mischah" title="Design">🎨</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><a href="https://github.com/NieLeben"><img src="https://avatars3.githubusercontent.com/u/47182955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tilmann Meyer</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=NieLeben" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/NieLeben"><img src="https://avatars3.githubusercontent.com/u/47182955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tilmann Meyer</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NieLeben" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="http://www.jubeat.net"><img src="https://avatars3.githubusercontent.com/u/11289158?v=4?s=100" width="100px;" alt=""/><br /><sub><b>PM Extra</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/issues?q=author%3APMExtra" title="Bug reports">🐛</a></td>
|
<td align="center"><a href="http://www.jubeat.net"><img src="https://avatars3.githubusercontent.com/u/11289158?v=4?s=100" width="100px;" alt=""/><br /><sub><b>PM Extra</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/issues?q=author%3APMExtra" title="Bug reports">🐛</a></td>
|
||||||
<td align="center"><a href="https://jjuhas.keybase.pub//"><img src="https://avatars1.githubusercontent.com/u/6438760?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=IgnusG" title="Code">💻</a></td>
|
<td align="center"><a href="https://jjuhas.keybase.pub//"><img src="https://avatars1.githubusercontent.com/u/6438760?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=IgnusG" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://hans-koch.me"><img src="https://avatars0.githubusercontent.com/u/1093709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hans Koch</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=hammster" title="Code">💻</a></td>
|
<td align="center"><a href="https://hans-koch.me"><img src="https://avatars0.githubusercontent.com/u/1093709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hans Koch</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hammster" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="http://thepuzzlemaker.info"><img src="https://avatars3.githubusercontent.com/u/12666617?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dak Smyth</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=ThePuzzlemaker" title="Code">💻</a></td>
|
<td align="center"><a href="http://thepuzzlemaker.info"><img src="https://avatars3.githubusercontent.com/u/12666617?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dak Smyth</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ThePuzzlemaker" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="http://yfwz100.github.io"><img src="https://avatars2.githubusercontent.com/u/983211?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Wang Zhi</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=yfwz100" title="Code">💻</a></td>
|
<td align="center"><a href="http://yfwz100.github.io"><img src="https://avatars2.githubusercontent.com/u/983211?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Wang Zhi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yfwz100" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/jack1142"><img src="https://avatars0.githubusercontent.com/u/6032823?v=4?s=100" width="100px;" alt=""/><br /><sub><b>jack1142</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=jack1142" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/jack1142"><img src="https://avatars0.githubusercontent.com/u/6032823?v=4?s=100" width="100px;" alt=""/><br /><sub><b>jack1142</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=jack1142" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><a href="https://github.com/hdougie"><img src="https://avatars1.githubusercontent.com/u/450799?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Howie Douglas</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=hdougie" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/hdougie"><img src="https://avatars1.githubusercontent.com/u/450799?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Howie Douglas</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hdougie" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://chriskaczor.com"><img src="https://avatars2.githubusercontent.com/u/180906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Kaczor</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=ckaczor" title="Code">💻</a></td>
|
<td align="center"><a href="https://chriskaczor.com"><img src="https://avatars2.githubusercontent.com/u/180906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Kaczor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ckaczor" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://www.boxmein.net"><img src="https://avatars1.githubusercontent.com/u/358714?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Johannes Kadak</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=boxmein" title="Code">💻</a></td>
|
<td align="center"><a href="https://www.boxmein.net"><img src="https://avatars1.githubusercontent.com/u/358714?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Johannes Kadak</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boxmein" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/LeSeulArtichaut"><img src="https://avatars1.githubusercontent.com/u/38361244?v=4?s=100" width="100px;" alt=""/><br /><sub><b>LeSeulArtichaut</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=LeSeulArtichaut" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/LeSeulArtichaut"><img src="https://avatars1.githubusercontent.com/u/38361244?v=4?s=100" width="100px;" alt=""/><br /><sub><b>LeSeulArtichaut</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LeSeulArtichaut" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/CyrilTaylor"><img src="https://avatars0.githubusercontent.com/u/12631466?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cyril Taylor</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=CyrilTaylor" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/CyrilTaylor"><img src="https://avatars0.githubusercontent.com/u/12631466?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cyril Taylor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=CyrilTaylor" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/nstefanou"><img src="https://avatars3.githubusercontent.com/u/51129173?v=4?s=100" width="100px;" alt=""/><br /><sub><b>nstefanou</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=nstefanou" title="Code">💻</a> <a href="#plugin-nstefanou" title="Plugin/utility libraries">🔌</a></td>
|
<td align="center"><a href="https://github.com/nstefanou"><img src="https://avatars3.githubusercontent.com/u/51129173?v=4?s=100" width="100px;" alt=""/><br /><sub><b>nstefanou</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=nstefanou" title="Code">💻</a> <a href="#plugin-nstefanou" title="Plugin/utility libraries">🔌</a></td>
|
||||||
<td align="center"><a href="https://github.com/orin220444"><img src="https://avatars3.githubusercontent.com/u/30747229?v=4?s=100" width="100px;" alt=""/><br /><sub><b>orin220444</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=orin220444" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/orin220444"><img src="https://avatars3.githubusercontent.com/u/30747229?v=4?s=100" width="100px;" alt=""/><br /><sub><b>orin220444</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=orin220444" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><a href="https://github.com/Goobles"><img src="https://avatars3.githubusercontent.com/u/8776771?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gobius Dolhain</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=Goobles" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/Goobles"><img src="https://avatars3.githubusercontent.com/u/8776771?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gobius Dolhain</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Goobles" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/3l0w"><img src="https://avatars2.githubusercontent.com/u/37798980?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gwilherm Folliot</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=3l0w" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/3l0w"><img src="https://avatars2.githubusercontent.com/u/37798980?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gwilherm Folliot</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=3l0w" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/Dimitory"><img src="https://avatars0.githubusercontent.com/u/475955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dmitry Pronin</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=dimitory" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/Dimitory"><img src="https://avatars0.githubusercontent.com/u/475955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dmitry Pronin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=dimitory" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/JonathanBeverley"><img src="https://avatars1.githubusercontent.com/u/20328966?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan Beverley</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=JonathanBeverley" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/JonathanBeverley"><img src="https://avatars1.githubusercontent.com/u/20328966?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan Beverley</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=JonathanBeverley" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/zend"><img src="https://avatars1.githubusercontent.com/u/25160?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zenghai Liang</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=zend" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/zend"><img src="https://avatars1.githubusercontent.com/u/25160?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zenghai Liang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=zend" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://about.me/matishadow"><img src="https://avatars0.githubusercontent.com/u/9083085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mateusz Tracz</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=matishadow" title="Code">💻</a></td>
|
<td align="center"><a href="https://about.me/matishadow"><img src="https://avatars0.githubusercontent.com/u/9083085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mateusz Tracz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=matishadow" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://zergpool.com"><img src="https://avatars3.githubusercontent.com/u/36234677?v=4?s=100" width="100px;" alt=""/><br /><sub><b>pinpin</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=pinpins" title="Code">💻</a></td>
|
<td align="center"><a href="https://zergpool.com"><img src="https://avatars3.githubusercontent.com/u/36234677?v=4?s=100" width="100px;" alt=""/><br /><sub><b>pinpin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=pinpins" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><a href="https://github.com/TakuroOnoda"><img src="https://avatars0.githubusercontent.com/u/1407926?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Takuro Onoda</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=TakuroOnoda" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/TakuroOnoda"><img src="https://avatars0.githubusercontent.com/u/1407926?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Takuro Onoda</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TakuroOnoda" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/frauhottelmann"><img src="https://avatars2.githubusercontent.com/u/902705?v=4?s=100" width="100px;" alt=""/><br /><sub><b>frauhottelmann</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=frauhottelmann" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/frauhottelmann"><img src="https://avatars2.githubusercontent.com/u/902705?v=4?s=100" width="100px;" alt=""/><br /><sub><b>frauhottelmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=frauhottelmann" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="http://patalong.pl"><img src="https://avatars.githubusercontent.com/u/29167842?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piotr Patalong</b></sub></a><br /><a href="#design-VectorKappa" title="Design">🎨</a></td>
|
<td align="center"><a href="http://patalong.pl"><img src="https://avatars.githubusercontent.com/u/29167842?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piotr Patalong</b></sub></a><br /><a href="#design-VectorKappa" title="Design">🎨</a></td>
|
||||||
<td align="center"><a href="https://github.com/clarkwang"><img src="https://avatars.githubusercontent.com/u/157076?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Clark Wang</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=clarkwang" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/clarkwang"><img src="https://avatars.githubusercontent.com/u/157076?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Clark Wang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=clarkwang" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/iamchating"><img src="https://avatars.githubusercontent.com/u/7088153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>iamchating</b></sub></a><br /><a href="https://github.com/Eugeny/terminus/commits?author=iamchating" title="Code">💻</a></td>
|
<td align="center"><a href="https://github.com/iamchating"><img src="https://avatars.githubusercontent.com/u/7088153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>iamchating</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=iamchating" title="Code">💻</a></td>
|
||||||
<td align="center"><a href="https://github.com/starxg"><img src="https://avatars.githubusercontent.com/u/34997494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>starxg</b></sub></a><br /><a href="#plugin-starxg" title="Plugin/utility libraries">🔌</a></td>
|
<td align="center"><a href="https://github.com/starxg"><img src="https://avatars.githubusercontent.com/u/34997494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>starxg</b></sub></a><br /><a href="#plugin-starxg" title="Plugin/utility libraries">🔌</a></td>
|
||||||
<td align="center"><a href="http://hashnote.net/"><img src="https://avatars.githubusercontent.com/u/546312?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alisue</b></sub></a><br /><a href="#design-lambdalisue" title="Design">🎨</a></td>
|
<td align="center"><a href="http://hashnote.net/"><img src="https://avatars.githubusercontent.com/u/546312?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alisue</b></sub></a><br /><a href="#design-lambdalisue" title="Design">🎨</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center"><a href="https://github.com/ydcool"><img src="https://avatars.githubusercontent.com/u/5668295?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dominic Yin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ydcool" title="Code">💻</a></td>
|
||||||
|
<td align="center"><a href="https://github.com/bdr99"><img src="https://avatars.githubusercontent.com/u/2292715?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brandon Rothweiler</b></sub></a><br /><a href="#design-bdr99" title="Design">🎨</a></td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<!-- markdownlint-restore -->
|
<!-- markdownlint-restore -->
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
owner: eugeny
|
owner: eugeny
|
||||||
repo: terminus
|
repo: tabby
|
||||||
provider: github
|
provider: github
|
||||||
updaterCacheDirName: terminus-updater
|
updaterCacheDirName: tabby-updater
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
doctype html
|
doctype html
|
||||||
html.terminus
|
html.tabby
|
||||||
head
|
head
|
||||||
meta(charset='UTF-8')
|
meta(charset='UTF-8')
|
||||||
base(href='index.html')
|
base(href='index.html')
|
||||||
@@ -15,8 +15,8 @@ html.terminus
|
|||||||
app-root
|
app-root
|
||||||
.preload-logo
|
.preload-logo
|
||||||
div
|
div
|
||||||
.terminus-logo
|
.tabby-logo
|
||||||
h1.terminus-title Terminus
|
h1.tabby-title Tabby
|
||||||
sup α
|
sup α
|
||||||
.progress
|
.progress
|
||||||
.bar(style='width: 0%')
|
.bar(style='width: 0%')
|
||||||
|
@@ -154,7 +154,7 @@ export class Application {
|
|||||||
this.tray.setContextMenu(contextMenu)
|
this.tray.setContextMenu(contextMenu)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.tray.setToolTip(`Terminus ${app.getVersion()}`)
|
this.tray.setToolTip(`Tabby ${app.getVersion()}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
disableTray (): void {
|
disableTray (): void {
|
||||||
@@ -195,7 +195,7 @@ export class Application {
|
|||||||
{
|
{
|
||||||
label: 'Application',
|
label: 'Application',
|
||||||
submenu: [
|
submenu: [
|
||||||
{ role: 'about', label: 'About Terminus' },
|
{ role: 'about', label: 'About Tabby' },
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
{
|
{
|
||||||
label: 'Preferences',
|
label: 'Preferences',
|
||||||
@@ -261,7 +261,7 @@ export class Application {
|
|||||||
{
|
{
|
||||||
label: 'Website',
|
label: 'Website',
|
||||||
click () {
|
click () {
|
||||||
shell.openExternal('https://eugeny.github.io/terminus')
|
shell.openExternal('https://eugeny.github.io/tabby')
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@@ -6,7 +6,7 @@ export function parseArgs (argv: string[], cwd: string): any {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return require('yargs/yargs')(argv.slice(1))
|
return require('yargs/yargs')(argv.slice(1))
|
||||||
.usage('terminus [command] [arguments]')
|
.usage('tabby [command] [arguments]')
|
||||||
.command('open [directory]', 'open a shell in a directory', {
|
.command('open [directory]', 'open a shell in a directory', {
|
||||||
directory: { type: 'string', 'default': cwd },
|
directory: { type: 'string', 'default': cwd },
|
||||||
})
|
})
|
||||||
|
@@ -3,7 +3,20 @@ import * as path from 'path'
|
|||||||
import * as yaml from 'js-yaml'
|
import * as yaml from 'js-yaml'
|
||||||
import { app } from 'electron'
|
import { app } from 'electron'
|
||||||
|
|
||||||
|
export function migrateConfig (): void {
|
||||||
|
const configPath = path.join(app.getPath('userData'), 'config.yaml')
|
||||||
|
const legacyConfigPath = path.join(app.getPath('userData'), '../terminus', 'config.yaml')
|
||||||
|
if (fs.existsSync(legacyConfigPath) && (
|
||||||
|
!fs.existsSync(configPath) ||
|
||||||
|
fs.statSync(configPath).mtime < fs.statSync(legacyConfigPath).mtime
|
||||||
|
)) {
|
||||||
|
fs.writeFileSync(configPath, fs.readFileSync(legacyConfigPath))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function loadConfig (): any {
|
export function loadConfig (): any {
|
||||||
|
migrateConfig()
|
||||||
|
|
||||||
const configPath = path.join(app.getPath('userData'), 'config.yaml')
|
const configPath = path.join(app.getPath('userData'), 'config.yaml')
|
||||||
if (fs.existsSync(configPath)) {
|
if (fs.existsSync(configPath)) {
|
||||||
return yaml.load(fs.readFileSync(configPath, 'utf8'))
|
return yaml.load(fs.readFileSync(configPath, 'utf8'))
|
||||||
|
@@ -7,8 +7,8 @@ import { parseArgs } from './cli'
|
|||||||
import { Application } from './app'
|
import { Application } from './app'
|
||||||
import electronDebug = require('electron-debug')
|
import electronDebug = require('electron-debug')
|
||||||
|
|
||||||
if (!process.env.TERMINUS_PLUGINS) {
|
if (!process.env.TABBY_PLUGINS) {
|
||||||
process.env.TERMINUS_PLUGINS = ''
|
process.env.TABBY_PLUGINS = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
const application = new Application()
|
const application = new Application()
|
||||||
|
@@ -4,9 +4,6 @@ import * as electron from 'electron'
|
|||||||
|
|
||||||
const appPath = path.dirname(electron.app.getPath('exe'))
|
const appPath = path.dirname(electron.app.getPath('exe'))
|
||||||
|
|
||||||
if (fs.existsSync(path.join(appPath, 'terminus-data'))) {
|
|
||||||
fs.renameSync(path.join(appPath, 'terminus-data'), path.join(appPath, 'data'))
|
|
||||||
}
|
|
||||||
const portableData = path.join(appPath, 'data')
|
const portableData = path.join(appPath, 'data')
|
||||||
if (fs.existsSync(portableData)) {
|
if (fs.existsSync(portableData)) {
|
||||||
console.log('reset user data to ' + portableData)
|
console.log('reset user data to ' + portableData)
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import * as nodePTY from '@terminus-term/node-pty'
|
import * as nodePTY from 'node-pty'
|
||||||
import { StringDecoder } from './stringDecoder'
|
import { StringDecoder } from './stringDecoder'
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
import { ipcMain } from 'electron'
|
import { ipcMain } from 'electron'
|
||||||
|
@@ -8,7 +8,7 @@ try {
|
|||||||
release = require('@electron/remote').app.getVersion()
|
release = require('@electron/remote').app.getVersion()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!process.env.TERMINUS_DEV) {
|
if (!process.env.TABBY_DEV) {
|
||||||
init({
|
init({
|
||||||
dsn: SENTRY_DSN,
|
dsn: SENTRY_DSN,
|
||||||
release,
|
release,
|
||||||
|
@@ -56,7 +56,7 @@ export class Window {
|
|||||||
const bwOptions: BrowserWindowConstructorOptions = {
|
const bwOptions: BrowserWindowConstructorOptions = {
|
||||||
width: 800,
|
width: 800,
|
||||||
height: 600,
|
height: 600,
|
||||||
title: 'Terminus',
|
title: 'Tabby',
|
||||||
minWidth: 400,
|
minWidth: 400,
|
||||||
minHeight: 300,
|
minHeight: 300,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
@@ -118,7 +118,7 @@ export class Window {
|
|||||||
})
|
})
|
||||||
|
|
||||||
this.window.on('blur', () => {
|
this.window.on('blur', () => {
|
||||||
if (this.configStore.appearance.dock !== 'off' && this.configStore.appearance?.dockHideOnBlur) {
|
if (this.configStore.appearance?.dock !== 'off' && this.configStore.appearance?.dockHideOnBlur) {
|
||||||
this.hide()
|
this.hide()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -304,17 +304,6 @@ export class Window {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-toggle-maximize', event => {
|
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (this.window.isMaximized()) {
|
|
||||||
this.window.unmaximize()
|
|
||||||
} else {
|
|
||||||
this.window.maximize()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
ipcMain.on('window-minimize', event => {
|
ipcMain.on('window-minimize', event => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
if (!this.window || event.sender !== this.window.webContents) {
|
||||||
return
|
return
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "terminus",
|
"name": "tabby",
|
||||||
"description": "A terminal for a modern age",
|
"description": "A terminal for a modern age",
|
||||||
"private": true,
|
"private": true,
|
||||||
"repository": "https://github.com/eugeny/terminus",
|
"repository": "https://github.com/Eugeny/tabby",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Eugene Pankov",
|
"name": "Eugene Pankov",
|
||||||
"email": "e@ajenti.org"
|
"email": "e@ajenti.org"
|
||||||
@@ -23,48 +23,47 @@
|
|||||||
"@angular/platform-browser-dynamic": "^12.0.0",
|
"@angular/platform-browser-dynamic": "^12.0.0",
|
||||||
"@electron/remote": "1.2.0",
|
"@electron/remote": "1.2.0",
|
||||||
"@ng-bootstrap/ng-bootstrap": "^9.1.1",
|
"@ng-bootstrap/ng-bootstrap": "^9.1.1",
|
||||||
"@terminus-term/node-pty": "0.10.0-terminus.3",
|
|
||||||
"any-promise": "^1.3.0",
|
"any-promise": "^1.3.0",
|
||||||
"electron-config": "2.0.0",
|
"electron-config": "2.0.0",
|
||||||
"electron-debug": "^3.2.0",
|
"electron-debug": "^3.2.0",
|
||||||
"electron-promise-ipc": "^2.2.4",
|
"electron-promise-ipc": "^2.2.4",
|
||||||
"fontmanager-redux": "1.0.0",
|
"fontmanager-redux": "1.1.0",
|
||||||
"glasstron": "0.0.7",
|
"glasstron": "0.0.7",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"keytar": "^7.7.0",
|
"keytar": "^7.7.0",
|
||||||
"mz": "^2.7.0",
|
"mz": "^2.7.0",
|
||||||
"native-process-working-directory": "^1.0.2",
|
"native-process-working-directory": "^1.0.2",
|
||||||
"ngx-toastr": "^14.0.0",
|
"ngx-toastr": "^14.0.0",
|
||||||
|
"node-pty": "^0.10.1",
|
||||||
"npm": "6",
|
"npm": "6",
|
||||||
"rxjs": "^7.1.0",
|
"rxjs": "^7.1.0",
|
||||||
"ssh2": "^1.1.0",
|
|
||||||
"yargs": "^17.0.1",
|
"yargs": "^17.0.1",
|
||||||
"zone.js": "^0.11.4"
|
"zone.js": "^0.11.4"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"macos-native-processlist": "^2.0.0",
|
"macos-native-processlist": "^2.0.0",
|
||||||
"serialport": "^9.1.0",
|
"serialport": "^9.2.0",
|
||||||
"windows-blurbehind": "^1.0.1",
|
"windows-blurbehind": "^1.0.1",
|
||||||
"windows-native-registry": "^3.0.0",
|
"windows-native-registry": "^3.0.0",
|
||||||
"windows-process-tree": "^0.3.0"
|
"windows-process-tree": "^0.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/mz": "2.7.3",
|
"@types/mz": "2.7.3",
|
||||||
"@types/node": "15.12.1",
|
"@types/node": "15.12.5",
|
||||||
"ngx-filesize": "^2.0.16",
|
"ngx-filesize": "^2.0.16",
|
||||||
"node-abi": "^2.30.0",
|
"node-abi": "^2.30.0",
|
||||||
"source-map-support": "^0.5.19"
|
"source-map-support": "^0.5.19"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"terminus-community-color-schemes": "*",
|
"tabby-community-color-schemes": "*",
|
||||||
"terminus-core": "*",
|
"tabby-core": "*",
|
||||||
"terminus-electron": "*",
|
"tabby-electron": "*",
|
||||||
"terminus-local": "*",
|
"tabby-local": "*",
|
||||||
"terminus-plugin-manager": "*",
|
"tabby-plugin-manager": "*",
|
||||||
"terminus-serial": "*",
|
"tabby-serial": "*",
|
||||||
"terminus-settings": "*",
|
"tabby-settings": "*",
|
||||||
"terminus-ssh": "*",
|
"tabby-ssh": "*",
|
||||||
"terminus-terminal": "*"
|
"tabby-terminal": "*"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"*/node-abi": "^2.20.0"
|
"*/node-abi": "^2.20.0"
|
||||||
|
@@ -12,7 +12,7 @@ import { ipcRenderer } from 'electron'
|
|||||||
|
|
||||||
import { getRootModule } from './app.module'
|
import { getRootModule } from './app.module'
|
||||||
import { findPlugins, initModuleLookup, loadPlugins } from './plugins'
|
import { findPlugins, initModuleLookup, loadPlugins } from './plugins'
|
||||||
import { BootstrapData, BOOTSTRAP_DATA, PluginInfo } from '../../terminus-core/src/api/mainProcess'
|
import { BootstrapData, BOOTSTRAP_DATA, PluginInfo } from '../../tabby-core/src/api/mainProcess'
|
||||||
|
|
||||||
// Always land on the start view
|
// Always land on the start view
|
||||||
location.hash = ''
|
location.hash = ''
|
||||||
@@ -23,7 +23,7 @@ if (process.platform === 'win32' && !('HOME' in process.env)) {
|
|||||||
process.env.HOME = `${process.env.HOMEDRIVE}${process.env.HOMEPATH}`
|
process.env.HOME = `${process.env.HOMEDRIVE}${process.env.HOMEPATH}`
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.TERMINUS_DEV && !process.env.TERMINUS_FORCE_ANGULAR_PROD) {
|
if (process.env.TABBY_DEV && !process.env.TABBY_FORCE_ANGULAR_PROD) {
|
||||||
console.warn('Running in debug mode')
|
console.warn('Running in debug mode')
|
||||||
} else {
|
} else {
|
||||||
enableProdMode()
|
enableProdMode()
|
||||||
@@ -42,7 +42,7 @@ async function bootstrap (bootstrapData: BootstrapData, plugins: PluginInfo[], s
|
|||||||
const moduleRef = await platformBrowserDynamic([
|
const moduleRef = await platformBrowserDynamic([
|
||||||
{ provide: BOOTSTRAP_DATA, useValue: bootstrapData },
|
{ provide: BOOTSTRAP_DATA, useValue: bootstrapData },
|
||||||
]).bootstrapModule(module)
|
]).bootstrapModule(module)
|
||||||
if (process.env.TERMINUS_DEV) {
|
if (process.env.TABBY_DEV) {
|
||||||
const applicationRef = moduleRef.injector.get(ApplicationRef)
|
const applicationRef = moduleRef.injector.get(ApplicationRef)
|
||||||
const componentRef = applicationRef.components[0]
|
const componentRef = applicationRef.components[0]
|
||||||
enableDebugTools(componentRef)
|
enableDebugTools(componentRef)
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import * as fs from 'mz/fs'
|
import * as fs from 'mz/fs'
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import * as remote from '@electron/remote'
|
import * as remote from '@electron/remote'
|
||||||
import { PluginInfo } from '../../terminus-core/src/api/mainProcess'
|
import { PluginInfo } from '../../tabby-core/src/api/mainProcess'
|
||||||
|
|
||||||
const nodeModule = require('module') // eslint-disable-line @typescript-eslint/no-var-requires
|
const nodeModule = require('module') // eslint-disable-line @typescript-eslint/no-var-requires
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ function normalizePath (p: string): string {
|
|||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
const builtinPluginsPath = process.env.TERMINUS_DEV ? path.dirname(remote.app.getAppPath()) : path.join((process as any).resourcesPath, 'builtin-plugins')
|
const builtinPluginsPath = process.env.TABBY_DEV ? path.dirname(remote.app.getAppPath()) : path.join((process as any).resourcesPath, 'builtin-plugins')
|
||||||
|
|
||||||
const builtinModules = [
|
const builtinModules = [
|
||||||
'@angular/animations',
|
'@angular/animations',
|
||||||
@@ -30,30 +30,32 @@ const builtinModules = [
|
|||||||
'ngx-toastr',
|
'ngx-toastr',
|
||||||
'rxjs',
|
'rxjs',
|
||||||
'rxjs/operators',
|
'rxjs/operators',
|
||||||
'terminus-core',
|
'tabby-core',
|
||||||
'terminus-local',
|
'tabby-local',
|
||||||
'terminus-settings',
|
'tabby-settings',
|
||||||
'terminus-terminal',
|
'tabby-terminal',
|
||||||
'zone.js/dist/zone.js',
|
'zone.js/dist/zone.js',
|
||||||
]
|
]
|
||||||
|
|
||||||
export type ProgressCallback = (current: number, total: number) => void // eslint-disable-line @typescript-eslint/no-type-alias
|
export type ProgressCallback = (current: number, total: number) => void // eslint-disable-line @typescript-eslint/no-type-alias
|
||||||
|
|
||||||
|
const cachedBuiltinModules = {}
|
||||||
|
|
||||||
export function initModuleLookup (userPluginsPath: string): void {
|
export function initModuleLookup (userPluginsPath: string): void {
|
||||||
global['module'].paths.map((x: string) => nodeModule.globalPaths.push(normalizePath(x)))
|
global['module'].paths.map((x: string) => nodeModule.globalPaths.push(normalizePath(x)))
|
||||||
|
|
||||||
if (process.env.TERMINUS_DEV) {
|
nodeModule.globalPaths.unshift(path.join(userPluginsPath, 'node_modules'))
|
||||||
|
|
||||||
|
if (process.env.TABBY_DEV) {
|
||||||
nodeModule.globalPaths.unshift(path.dirname(remote.app.getAppPath()))
|
nodeModule.globalPaths.unshift(path.dirname(remote.app.getAppPath()))
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeModule.globalPaths.unshift(builtinPluginsPath)
|
nodeModule.globalPaths.unshift(builtinPluginsPath)
|
||||||
nodeModule.globalPaths.unshift(path.join(userPluginsPath, 'node_modules'))
|
|
||||||
// nodeModule.globalPaths.unshift(path.join((process as any).resourcesPath, 'app.asar', 'node_modules'))
|
// nodeModule.globalPaths.unshift(path.join((process as any).resourcesPath, 'app.asar', 'node_modules'))
|
||||||
if (process.env.TERMINUS_PLUGINS) {
|
if (process.env.TABBY_PLUGINS) {
|
||||||
process.env.TERMINUS_PLUGINS.split(':').map(x => nodeModule.globalPaths.push(normalizePath(x)))
|
process.env.TABBY_PLUGINS.split(':').map(x => nodeModule.globalPaths.push(normalizePath(x)))
|
||||||
}
|
}
|
||||||
|
|
||||||
const cachedBuiltinModules = {}
|
|
||||||
builtinModules.forEach(m => {
|
builtinModules.forEach(m => {
|
||||||
cachedBuiltinModules[m] = nodeRequire(m)
|
cachedBuiltinModules[m] = nodeRequire(m)
|
||||||
})
|
})
|
||||||
@@ -79,7 +81,8 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
|||||||
const paths = nodeModule.globalPaths
|
const paths = nodeModule.globalPaths
|
||||||
let foundPlugins: PluginInfo[] = []
|
let foundPlugins: PluginInfo[] = []
|
||||||
const candidateLocations: { pluginDir: string, packageName: string }[] = []
|
const candidateLocations: { pluginDir: string, packageName: string }[] = []
|
||||||
const PREFIX = 'terminus-'
|
const PREFIX = 'tabby-'
|
||||||
|
const LEGACY_PREFIX = 'terminus-'
|
||||||
|
|
||||||
const processedPaths = []
|
const processedPaths = []
|
||||||
|
|
||||||
@@ -101,7 +104,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
for (const packageName of pluginNames) {
|
for (const packageName of pluginNames) {
|
||||||
if (packageName.startsWith(PREFIX)) {
|
if (packageName.startsWith(PREFIX) || packageName.startsWith(LEGACY_PREFIX)) {
|
||||||
candidateLocations.push({ pluginDir, packageName })
|
candidateLocations.push({ pluginDir, packageName })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,7 +117,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
const name = packageName.substring(PREFIX.length)
|
const name = packageName.startsWith(PREFIX) ? packageName.substring(PREFIX.length) : packageName.substring(LEGACY_PREFIX.length)
|
||||||
|
|
||||||
if (builtinModules.includes(packageName) && pluginDir !== builtinPluginsPath) {
|
if (builtinModules.includes(packageName) && pluginDir !== builtinPluginsPath) {
|
||||||
continue
|
continue
|
||||||
@@ -122,14 +125,20 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
|||||||
|
|
||||||
console.log(`Found ${name} in ${pluginDir}`)
|
console.log(`Found ${name} in ${pluginDir}`)
|
||||||
|
|
||||||
if (foundPlugins.some(x => x.name === name)) {
|
const existing = foundPlugins.find(x => x.name === name)
|
||||||
console.info(`Plugin ${packageName} already exists, overriding`)
|
if (existing) {
|
||||||
foundPlugins = foundPlugins.filter(x => x.name !== name)
|
if (existing.isLegacy) {
|
||||||
|
console.info(`Plugin ${packageName} already exists, overriding`)
|
||||||
|
foundPlugins = foundPlugins.filter(x => x.name !== name)
|
||||||
|
} else {
|
||||||
|
console.info(`Plugin ${packageName} already exists, skipping`)
|
||||||
|
continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const info = JSON.parse(await fs.readFile(infoPath, { encoding: 'utf-8' }))
|
const info = JSON.parse(await fs.readFile(infoPath, { encoding: 'utf-8' }))
|
||||||
if (!info.keywords || !(info.keywords.includes('terminus-plugin') || info.keywords.includes('terminus-builtin-plugin'))) {
|
if (!info.keywords || !(info.keywords.includes('terminus-plugin') || info.keywords.includes('terminus-builtin-plugin') || info.keywords.includes('tabby-plugin') || info.keywords.includes('tabby-builtin-plugin'))) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
let author = info.author
|
let author = info.author
|
||||||
@@ -138,6 +147,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
|||||||
name: name,
|
name: name,
|
||||||
packageName: packageName,
|
packageName: packageName,
|
||||||
isBuiltin: pluginDir === builtinPluginsPath,
|
isBuiltin: pluginDir === builtinPluginsPath,
|
||||||
|
isLegacy: info.keywords.includes('terminus-plugin') || info.keywords.includes('terminus-builtin-plugin'),
|
||||||
version: info.version,
|
version: info.version,
|
||||||
description: info.description,
|
description: info.description,
|
||||||
author,
|
author,
|
||||||
@@ -150,6 +160,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
foundPlugins.sort((a, b) => a.name > b.name ? 1 : -1)
|
foundPlugins.sort((a, b) => a.name > b.name ? 1 : -1)
|
||||||
|
foundPlugins.sort((a, b) => a.isBuiltin < b.isBuiltin ? 1 : -1)
|
||||||
return foundPlugins
|
return foundPlugins
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,6 +173,9 @@ export async function loadPlugins (foundPlugins: PluginInfo[], progress: Progres
|
|||||||
progress(index, foundPlugins.length)
|
progress(index, foundPlugins.length)
|
||||||
try {
|
try {
|
||||||
const packageModule = nodeRequire(foundPlugin.path)
|
const packageModule = nodeRequire(foundPlugin.path)
|
||||||
|
if (foundPlugin.packageName.startsWith('tabby-')) {
|
||||||
|
cachedBuiltinModules[foundPlugin.packageName.replace('tabby-', 'terminus-')] = packageModule
|
||||||
|
}
|
||||||
const pluginModule = packageModule.default.forRoot ? packageModule.default.forRoot() : packageModule.default
|
const pluginModule = packageModule.default.forRoot ? packageModule.default.forRoot() : packageModule.default
|
||||||
pluginModule.pluginName = foundPlugin.name
|
pluginModule.pluginName = foundPlugin.name
|
||||||
pluginModule.bootstrap = packageModule.bootstrap
|
pluginModule.bootstrap = packageModule.bootstrap
|
||||||
|
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.terminus-logo {
|
.tabby-logo {
|
||||||
width: 120px;
|
width: 120px;
|
||||||
height: 120px;
|
height: 120px;
|
||||||
background: url('../assets/logo.svg');
|
background: url('../assets/logo.svg');
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.terminus-title {
|
.tabby-title {
|
||||||
color: #a1c5e4;
|
color: #a1c5e4;
|
||||||
font-family: 'Source Sans Pro';
|
font-family: 'Source Sans Pro';
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
"dist",
|
"dist",
|
||||||
"node_modules",
|
"node_modules",
|
||||||
"*/node_modules",
|
"*/node_modules",
|
||||||
"terminus*",
|
"tabby*",
|
||||||
"platforms"
|
"platforms"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@ const path = require('path')
|
|||||||
const webpack = require('webpack')
|
const webpack = require('webpack')
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'terminus',
|
name: 'tabby',
|
||||||
target: 'node',
|
target: 'node',
|
||||||
entry: {
|
entry: {
|
||||||
'index.ignore': 'file-loader?name=index.html!pug-html-loader!' + path.resolve(__dirname, './index.pug'),
|
'index.ignore': 'file-loader?name=index.html!pug-html-loader!' + path.resolve(__dirname, './index.pug'),
|
||||||
@@ -10,7 +10,7 @@ module.exports = {
|
|||||||
preload: path.resolve(__dirname, 'src/entry.preload.ts'),
|
preload: path.resolve(__dirname, 'src/entry.preload.ts'),
|
||||||
bundle: path.resolve(__dirname, 'src/entry.ts'),
|
bundle: path.resolve(__dirname, 'src/entry.ts'),
|
||||||
},
|
},
|
||||||
mode: process.env.TERMINUS_DEV ? 'development' : 'production',
|
mode: process.env.TABBY_DEV ? 'development' : 'production',
|
||||||
optimization:{
|
optimization:{
|
||||||
minimize: false,
|
minimize: false,
|
||||||
},
|
},
|
||||||
|
@@ -3,64 +3,64 @@ const webpack = require('webpack')
|
|||||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'terminus-main',
|
name: 'tabby-main',
|
||||||
target: 'electron-main',
|
target: 'electron-main',
|
||||||
entry: {
|
entry: {
|
||||||
main: path.resolve(__dirname, 'lib/index.ts'),
|
main: path.resolve(__dirname, 'lib/index.ts'),
|
||||||
},
|
},
|
||||||
mode: process.env.TERMINUS_DEV ? 'development' : 'production',
|
mode: process.env.TABBY_DEV ? 'development' : 'production',
|
||||||
context: __dirname,
|
context: __dirname,
|
||||||
devtool: 'source-map',
|
devtool: 'source-map',
|
||||||
output: {
|
output: {
|
||||||
path: path.join(__dirname, 'dist'),
|
path: path.join(__dirname, 'dist'),
|
||||||
pathinfo: true,
|
pathinfo: true,
|
||||||
filename: '[name].js',
|
filename: '[name].js',
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
modules: ['lib/', 'node_modules', '../node_modules'].map(x => path.join(__dirname, x)),
|
modules: ['lib/', 'node_modules', '../node_modules'].map(x => path.join(__dirname, x)),
|
||||||
extensions: ['.ts', '.js'],
|
extensions: ['.ts', '.js'],
|
||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.ts$/,
|
test: /\.ts$/,
|
||||||
use: {
|
use: {
|
||||||
loader: 'awesome-typescript-loader',
|
loader: 'awesome-typescript-loader',
|
||||||
options: {
|
options: {
|
||||||
configFileName: path.resolve(__dirname, 'tsconfig.main.json'),
|
configFileName: path.resolve(__dirname, 'tsconfig.main.json'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
externals: {
|
||||||
|
'any-promise': 'commonjs any-promise',
|
||||||
|
electron: 'commonjs electron',
|
||||||
|
'electron-config': 'commonjs electron-config',
|
||||||
|
'electron-debug': 'commonjs electron-debug',
|
||||||
|
'electron-promise-ipc': 'commonjs electron-promise-ipc',
|
||||||
|
'electron-vibrancy': 'commonjs electron-vibrancy',
|
||||||
|
fs: 'commonjs fs',
|
||||||
|
glasstron: 'commonjs glasstron',
|
||||||
|
mz: 'commonjs mz',
|
||||||
|
npm: 'commonjs npm',
|
||||||
|
'node-pty': 'commonjs node-pty',
|
||||||
|
path: 'commonjs path',
|
||||||
|
rxjs: 'commonjs rxjs',
|
||||||
|
'rxjs/operators': 'commonjs rxjs/operators',
|
||||||
|
util: 'commonjs util',
|
||||||
|
'source-map-support': 'commonjs source-map-support',
|
||||||
|
'windows-swca': 'commonjs windows-swca',
|
||||||
|
'windows-native-registry': 'commonjs windows-native-registry',
|
||||||
|
'windows-blurbehind': 'commonjs windows-blurbehind',
|
||||||
|
'yargs/yargs': 'commonjs yargs/yargs',
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new webpack.optimize.ModuleConcatenationPlugin(),
|
||||||
|
new webpack.DefinePlugin({
|
||||||
|
'process.type': '"main"',
|
||||||
|
}),
|
||||||
],
|
],
|
||||||
},
|
|
||||||
externals: {
|
|
||||||
'any-promise': 'commonjs any-promise',
|
|
||||||
electron: 'commonjs electron',
|
|
||||||
'electron-config': 'commonjs electron-config',
|
|
||||||
'electron-debug': 'commonjs electron-debug',
|
|
||||||
'electron-promise-ipc': 'commonjs electron-promise-ipc',
|
|
||||||
'electron-vibrancy': 'commonjs electron-vibrancy',
|
|
||||||
fs: 'commonjs fs',
|
|
||||||
glasstron: 'commonjs glasstron',
|
|
||||||
mz: 'commonjs mz',
|
|
||||||
npm: 'commonjs npm',
|
|
||||||
'@terminus-term/node-pty': 'commonjs @terminus-term/node-pty',
|
|
||||||
path: 'commonjs path',
|
|
||||||
rxjs: 'commonjs rxjs',
|
|
||||||
'rxjs/operators': 'commonjs rxjs/operators',
|
|
||||||
util: 'commonjs util',
|
|
||||||
'source-map-support': 'commonjs source-map-support',
|
|
||||||
'windows-swca': 'commonjs windows-swca',
|
|
||||||
'windows-native-registry': 'commonjs windows-native-registry',
|
|
||||||
'windows-blurbehind': 'commonjs windows-blurbehind',
|
|
||||||
'yargs/yargs': 'commonjs yargs/yargs',
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new webpack.optimize.ModuleConcatenationPlugin(),
|
|
||||||
new webpack.DefinePlugin({
|
|
||||||
'process.type': '"main"',
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.BUNDLE_ANALYZER) {
|
if (process.env.BUNDLE_ANALYZER) {
|
||||||
|
108
app/yarn.lock
108
app/yarn.lock
@@ -79,7 +79,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
|
|
||||||
"@serialport/binding-mock@^9.0.7":
|
"@serialport/binding-mock@9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-9.0.7.tgz#2fda427adc113320461f33f7426dfca73e8ad1de"
|
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-9.0.7.tgz#2fda427adc113320461f33f7426dfca73e8ad1de"
|
||||||
integrity sha512-aR8H+htZwwZZkVb1MdbnNvGWw8eXVRqQ2qPhkbKyx0N/LY5aVIgCgT98Kt1YylLsG7SzNG+Jbhd4wzwEuPVT5Q==
|
integrity sha512-aR8H+htZwwZZkVb1MdbnNvGWw8eXVRqQ2qPhkbKyx0N/LY5aVIgCgT98Kt1YylLsG7SzNG+Jbhd4wzwEuPVT5Q==
|
||||||
@@ -87,10 +87,10 @@
|
|||||||
"@serialport/binding-abstract" "^9.0.7"
|
"@serialport/binding-abstract" "^9.0.7"
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
|
|
||||||
"@serialport/bindings@^9.1.0":
|
"@serialport/bindings@^9.2.0":
|
||||||
version "9.1.0"
|
version "9.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/bindings/-/bindings-9.1.0.tgz#bb4c2778118a4404fd38749b64c0fe533d72003a"
|
resolved "https://registry.yarnpkg.com/@serialport/bindings/-/bindings-9.2.0.tgz#de6df688d0ff99bdbb86ea6db412562cb2d9ebe7"
|
||||||
integrity sha512-X0GM5iZgrBkR1HwoSDsJ/AJ+M61end5Ttg5mqcaUkwGCKpgJSDW3STX6pvFNr9xNzvqS56yuhAcU/eNJ2xuDaA==
|
integrity sha512-s9EKHDZjLHipHhypxy6pz2XsoI1fPiOGU+X13AIGdQfoe7I6piEyhJ2znNgXMugMe43OxNk0/CmuVMzzcw1lmQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@serialport/binding-abstract" "^9.0.7"
|
"@serialport/binding-abstract" "^9.0.7"
|
||||||
"@serialport/parser-readline" "^9.0.7"
|
"@serialport/parser-readline" "^9.0.7"
|
||||||
@@ -99,57 +99,50 @@
|
|||||||
nan "^2.14.2"
|
nan "^2.14.2"
|
||||||
prebuild-install "^6.0.1"
|
prebuild-install "^6.0.1"
|
||||||
|
|
||||||
"@serialport/parser-byte-length@^9.0.7":
|
"@serialport/parser-byte-length@9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-9.0.7.tgz#9e362bba70eeffcd2eb0804afeca4bb1dee59d5f"
|
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-9.0.7.tgz#9e362bba70eeffcd2eb0804afeca4bb1dee59d5f"
|
||||||
integrity sha512-evf7oOOSBMBn2AZZbgBFMRIyEzlsyQkhqaPm7IBCPTxMDXRf4tKkFYJHYZB0/6d1W4eI0meH079UqmSsh/uoDA==
|
integrity sha512-evf7oOOSBMBn2AZZbgBFMRIyEzlsyQkhqaPm7IBCPTxMDXRf4tKkFYJHYZB0/6d1W4eI0meH079UqmSsh/uoDA==
|
||||||
|
|
||||||
"@serialport/parser-cctalk@^9.0.7":
|
"@serialport/parser-cctalk@9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-9.0.7.tgz#fa0e1539f067aced22a5ef7d64fdac14f1a6a4d3"
|
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-9.0.7.tgz#fa0e1539f067aced22a5ef7d64fdac14f1a6a4d3"
|
||||||
integrity sha512-ert5jhMkeiTfr44TkbdySC09J8UwAsf/RxBucVN5Mz5enG509RggnkfFi4mfj3UCG2vZ7qsmM6gtZ62DshY02Q==
|
integrity sha512-ert5jhMkeiTfr44TkbdySC09J8UwAsf/RxBucVN5Mz5enG509RggnkfFi4mfj3UCG2vZ7qsmM6gtZ62DshY02Q==
|
||||||
|
|
||||||
"@serialport/parser-delimiter@^9.0.7":
|
"@serialport/parser-delimiter@9.0.7", "@serialport/parser-delimiter@^9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-9.0.7.tgz#7bef2447d4282dd00dc659719b310edeb30ff294"
|
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-9.0.7.tgz#7bef2447d4282dd00dc659719b310edeb30ff294"
|
||||||
integrity sha512-Vb2NPeXPZ/28M4m5x4OAHFd8jRAeddNCgvL+Q+H/hqFPY1w47JcMLchC7pigRW8Cnt1fklmzfwdNQ8Fb+kMkxQ==
|
integrity sha512-Vb2NPeXPZ/28M4m5x4OAHFd8jRAeddNCgvL+Q+H/hqFPY1w47JcMLchC7pigRW8Cnt1fklmzfwdNQ8Fb+kMkxQ==
|
||||||
|
|
||||||
"@serialport/parser-inter-byte-timeout@^9.0.7":
|
"@serialport/parser-inter-byte-timeout@9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-9.0.7.tgz#55b315b49d8ad37f981ba69bb9443f25c96aec17"
|
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-9.0.7.tgz#55b315b49d8ad37f981ba69bb9443f25c96aec17"
|
||||||
integrity sha512-lUZ3cwgUluBvJ1jf+0LQsqoiPYAokDO6+fRCw9HCfnrF/OS60Gm4rxuyo2uQIueqZkJ7NIFP+ibKsULrA47AEA==
|
integrity sha512-lUZ3cwgUluBvJ1jf+0LQsqoiPYAokDO6+fRCw9HCfnrF/OS60Gm4rxuyo2uQIueqZkJ7NIFP+ibKsULrA47AEA==
|
||||||
|
|
||||||
"@serialport/parser-readline@^9.0.7":
|
"@serialport/parser-readline@9.0.7", "@serialport/parser-readline@^9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-9.0.7.tgz#8b096028170fb2644bcf0f997d534a344cfd00e6"
|
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-9.0.7.tgz#8b096028170fb2644bcf0f997d534a344cfd00e6"
|
||||||
integrity sha512-ydoLbgVQQPxWrwbe3Fhh4XnZexbkEQAC6M/qgRTzjnKvTjrD61CJNxLc3vyDaAPI9bJIhTiI7eTX3JB5jJv8Hg==
|
integrity sha512-ydoLbgVQQPxWrwbe3Fhh4XnZexbkEQAC6M/qgRTzjnKvTjrD61CJNxLc3vyDaAPI9bJIhTiI7eTX3JB5jJv8Hg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@serialport/parser-delimiter" "^9.0.7"
|
"@serialport/parser-delimiter" "^9.0.7"
|
||||||
|
|
||||||
"@serialport/parser-ready@^9.0.7":
|
"@serialport/parser-ready@9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-9.0.7.tgz#d9eb9801c6003fdb1450c557f3e256a188a9f3be"
|
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-9.0.7.tgz#d9eb9801c6003fdb1450c557f3e256a188a9f3be"
|
||||||
integrity sha512-3qYhI4cNUPAYqVYvdwV57Y+PVRl4dJf1fPBtMoWtwDgwopsAXTR93WCs49WuUq9JCyNW+8Hrfqv8x8eNAD5Dqg==
|
integrity sha512-3qYhI4cNUPAYqVYvdwV57Y+PVRl4dJf1fPBtMoWtwDgwopsAXTR93WCs49WuUq9JCyNW+8Hrfqv8x8eNAD5Dqg==
|
||||||
|
|
||||||
"@serialport/parser-regex@^9.0.7":
|
"@serialport/parser-regex@9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-9.0.7.tgz#d8a02e3a169faa2f6604e8293832cc676b865f48"
|
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-9.0.7.tgz#d8a02e3a169faa2f6604e8293832cc676b865f48"
|
||||||
integrity sha512-5XF+FXbhqQ/5bVKM4NaGs1m+E9KjfmeCx/obwsKaUZognQF67jwoTfjJJWNP/21jKfxdl8XoCYjZjASl3XKRAw==
|
integrity sha512-5XF+FXbhqQ/5bVKM4NaGs1m+E9KjfmeCx/obwsKaUZognQF67jwoTfjJJWNP/21jKfxdl8XoCYjZjASl3XKRAw==
|
||||||
|
|
||||||
"@serialport/stream@^9.0.7":
|
"@serialport/stream@9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-9.0.7.tgz#0bf023eb0233a714fcc5a86de09e381e466d9882"
|
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-9.0.7.tgz#0bf023eb0233a714fcc5a86de09e381e466d9882"
|
||||||
integrity sha512-c/h7HPAeFiryD9iTGlaSvPqHFHSZ0NMQHxC4rcmKS2Vu3qJuEtkBdTLABwsMp7iWEiSnI4KC3s7bHapaXP06FQ==
|
integrity sha512-c/h7HPAeFiryD9iTGlaSvPqHFHSZ0NMQHxC4rcmKS2Vu3qJuEtkBdTLABwsMp7iWEiSnI4KC3s7bHapaXP06FQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
|
|
||||||
"@terminus-term/node-pty@0.10.0-terminus.3":
|
|
||||||
version "0.10.0-terminus.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@terminus-term/node-pty/-/node-pty-0.10.0-terminus.3.tgz#9dbd64d52afda5079e66265a89d313fe42affab7"
|
|
||||||
integrity sha512-HvIOts22dnoBXhRfLiK9DyPasuixYVgEUvgqZmOr0B0Ki9tF8e074oYPUtzLRll6Y553QiUzTWhriCS99MChNQ==
|
|
||||||
dependencies:
|
|
||||||
nan "^2.14.0"
|
|
||||||
|
|
||||||
"@types/mz@2.7.3":
|
"@types/mz@2.7.3":
|
||||||
version "2.7.3"
|
version "2.7.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-2.7.3.tgz#e42a21e73f5f9340fe4a176981fafb1eb8cc6c12"
|
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-2.7.3.tgz#e42a21e73f5f9340fe4a176981fafb1eb8cc6c12"
|
||||||
@@ -157,10 +150,10 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/node@*", "@types/node@15.12.1":
|
"@types/node@*", "@types/node@15.12.5":
|
||||||
version "15.12.1"
|
version "15.12.5"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.1.tgz#9b60797dee1895383a725f828a869c86c6caa5c2"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.5.tgz#9a78318a45d75c9523d2396131bd3cca54b2d185"
|
||||||
integrity sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw==
|
integrity sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==
|
||||||
|
|
||||||
JSONStream@^1.3.4, JSONStream@^1.3.5:
|
JSONStream@^1.3.4, JSONStream@^1.3.5:
|
||||||
version "1.3.5"
|
version "1.3.5"
|
||||||
@@ -295,7 +288,7 @@ asap@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz"
|
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz"
|
||||||
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
|
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
|
||||||
|
|
||||||
asn1@^0.2.4, asn1@~0.2.3:
|
asn1@~0.2.3:
|
||||||
version "0.2.4"
|
version "0.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz"
|
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz"
|
||||||
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
|
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
|
||||||
@@ -332,7 +325,7 @@ base64-js@^1.3.1:
|
|||||||
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
|
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
|
||||||
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
||||||
|
|
||||||
bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2:
|
bcrypt-pbkdf@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
|
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
|
||||||
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
|
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
|
||||||
@@ -686,13 +679,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"
|
||||||
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||||
|
|
||||||
cpu-features@0.0.2:
|
|
||||||
version "0.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.2.tgz#9f636156f1155fd04bdbaa028bb3c2fbef3cea7a"
|
|
||||||
integrity sha512-/2yieBqvMcRj8McNzkycjW2v3OIUOibBfd2dLEJ0nWts8NobAxwiyw9phVNS6oDL8x8tz9F7uNVFEVpJncQpeA==
|
|
||||||
dependencies:
|
|
||||||
nan "^2.14.1"
|
|
||||||
|
|
||||||
create-error-class@^3.0.0:
|
create-error-class@^3.0.0:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
|
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
|
||||||
@@ -1088,10 +1074,10 @@ flush-write-stream@^1.0.0:
|
|||||||
inherits "^2.0.3"
|
inherits "^2.0.3"
|
||||||
readable-stream "^2.3.6"
|
readable-stream "^2.3.6"
|
||||||
|
|
||||||
fontmanager-redux@1.0.0:
|
fontmanager-redux@1.1.0:
|
||||||
version "1.0.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/fontmanager-redux/-/fontmanager-redux-1.0.0.tgz"
|
resolved "https://registry.yarnpkg.com/fontmanager-redux/-/fontmanager-redux-1.1.0.tgz#b1e97bc5c982df81749596fd48348f8318595bb3"
|
||||||
integrity sha512-kXZel+PAWxS+bgFIlycUYWkmVpvN3SUodDeNaFNW7BloU5pqibBR395Ww+gLBnt51S9KnmHT2/+DzCMGbag0aw==
|
integrity sha512-cQtSfi7ZCW831XuGwoKIrO/cCBLhOvWK56adSr/Yl/fzB5omunW+XQmXlYHNKS7qWzOZe2Z6xQ8ZFt120Uj2lA==
|
||||||
dependencies:
|
dependencies:
|
||||||
node-addon-api "^3.0.2"
|
node-addon-api "^3.0.2"
|
||||||
|
|
||||||
@@ -2088,7 +2074,7 @@ mz@^2.7.0:
|
|||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
thenify-all "^1.0.0"
|
thenify-all "^1.0.0"
|
||||||
|
|
||||||
nan@^2.13.2, nan@^2.14.0, nan@^2.14.1, nan@^2.14.2:
|
nan@^2.13.2, nan@^2.14.0, nan@^2.14.2:
|
||||||
version "2.14.2"
|
version "2.14.2"
|
||||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
|
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
|
||||||
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
|
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
|
||||||
@@ -2163,6 +2149,13 @@ node-gyp@^5.0.2, node-gyp@^5.1.0:
|
|||||||
tar "^4.4.12"
|
tar "^4.4.12"
|
||||||
which "^1.3.1"
|
which "^1.3.1"
|
||||||
|
|
||||||
|
node-pty@^0.10.1:
|
||||||
|
version "0.10.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.1.tgz#cd05d03a2710315ec40221232ec04186f6ac2c6d"
|
||||||
|
integrity sha512-JTdtUS0Im/yRsWJSx7yiW9rtpfmxqxolrtnyKwPLI+6XqTAPW/O2MjS8FYL4I5TsMbH2lVgDb2VMjp+9LoQGNg==
|
||||||
|
dependencies:
|
||||||
|
nan "^2.14.0"
|
||||||
|
|
||||||
noop-logger@^0.1.1:
|
noop-logger@^0.1.1:
|
||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
resolved "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"
|
resolved "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"
|
||||||
@@ -3064,21 +3057,21 @@ serialize-error@^5.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
type-fest "^0.8.0"
|
type-fest "^0.8.0"
|
||||||
|
|
||||||
serialport@^9.1.0:
|
serialport@^9.2.0:
|
||||||
version "9.1.0"
|
version "9.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/serialport/-/serialport-9.1.0.tgz#f8b9dc87e6713e1e0198752f6e2cce95aaf5a6ab"
|
resolved "https://registry.yarnpkg.com/serialport/-/serialport-9.2.0.tgz#17a8364979f3c06a54a7bf4e8cbb8ebc91e54511"
|
||||||
integrity sha512-W17ji2TOotufIUCXIWcB6P+RztO1S4BcWsAc99jQn5BaH3Kw6xUyOX2ng0ZQ+hPjS/WWI2CdWynf4bKRJKD/+A==
|
integrity sha512-C6AQ4jD4mre3tn3QA+atn++mEZDh4r40CIeh1sKhskKE+Q4eiIr/nzVMOiPxHb8gskrSNxujH+Br49tl3i9s9g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@serialport/binding-mock" "^9.0.7"
|
"@serialport/binding-mock" "9.0.7"
|
||||||
"@serialport/bindings" "^9.1.0"
|
"@serialport/bindings" "^9.2.0"
|
||||||
"@serialport/parser-byte-length" "^9.0.7"
|
"@serialport/parser-byte-length" "9.0.7"
|
||||||
"@serialport/parser-cctalk" "^9.0.7"
|
"@serialport/parser-cctalk" "9.0.7"
|
||||||
"@serialport/parser-delimiter" "^9.0.7"
|
"@serialport/parser-delimiter" "9.0.7"
|
||||||
"@serialport/parser-inter-byte-timeout" "^9.0.7"
|
"@serialport/parser-inter-byte-timeout" "9.0.7"
|
||||||
"@serialport/parser-readline" "^9.0.7"
|
"@serialport/parser-readline" "9.0.7"
|
||||||
"@serialport/parser-ready" "^9.0.7"
|
"@serialport/parser-ready" "9.0.7"
|
||||||
"@serialport/parser-regex" "^9.0.7"
|
"@serialport/parser-regex" "9.0.7"
|
||||||
"@serialport/stream" "^9.0.7"
|
"@serialport/stream" "9.0.7"
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
|
|
||||||
set-blocking@^2.0.0, set-blocking@~2.0.0:
|
set-blocking@^2.0.0, set-blocking@~2.0.0:
|
||||||
@@ -3207,17 +3200,6 @@ split-on-first@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
|
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
|
||||||
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
|
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
|
||||||
|
|
||||||
ssh2@^1.1.0:
|
|
||||||
version "1.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.1.0.tgz#43dd24930e15e317687f519d6b40270d9cd00d00"
|
|
||||||
integrity sha512-CidQLG2ZacoT0Z7O6dOyisj4JdrOrLVJ4KbHjVNz9yI1vO08FAYQPcnkXY9BP8zeYo+J/nBgY6Gg4R7w4WFWtg==
|
|
||||||
dependencies:
|
|
||||||
asn1 "^0.2.4"
|
|
||||||
bcrypt-pbkdf "^1.0.2"
|
|
||||||
optionalDependencies:
|
|
||||||
cpu-features "0.0.2"
|
|
||||||
nan "^2.14.2"
|
|
||||||
|
|
||||||
sshpk@^1.7.0:
|
sshpk@^1.7.0:
|
||||||
version "1.16.1"
|
version "1.16.1"
|
||||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz"
|
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz"
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
!macro customInit
|
!macro customInit
|
||||||
nsExec::Exec '"$LOCALAPPDATA\terminus\Update.exe" --uninstall -s'
|
nsExec::Exec '"$LOCALAPPDATA\tabby\Update.exe" --uninstall -s'
|
||||||
!macroend
|
!macroend
|
||||||
|
@@ -11,7 +11,7 @@ module.exports = async function (params) {
|
|||||||
}
|
}
|
||||||
console.log('afterSign hook triggered', params)
|
console.log('afterSign hook triggered', params)
|
||||||
|
|
||||||
let appId = 'org.terminus'
|
let appId = 'org.tabby'
|
||||||
|
|
||||||
let appPath = path.join(params.appOutDir, params._pathOverride || `${params.packager.appInfo.productFilename}.app`)
|
let appPath = path.join(params.appOutDir, params._pathOverride || `${params.packager.appInfo.productFilename}.app`)
|
||||||
if (!fs.existsSync(appPath)) {
|
if (!fs.existsSync(appPath)) {
|
||||||
|
BIN
docs/readme.png
BIN
docs/readme.png
Binary file not shown.
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
appId: org.terminus
|
appId: org.tabby
|
||||||
productName: Terminus
|
productName: Tabby
|
||||||
compression: normal
|
compression: normal
|
||||||
npmRebuild: false
|
npmRebuild: false
|
||||||
afterSign: "./build/mac/afterSignHook.js"
|
afterSign: "./build/mac/afterSignHook.js"
|
||||||
@@ -33,24 +33,24 @@ extraResources:
|
|||||||
- builtin-plugins
|
- builtin-plugins
|
||||||
- extras
|
- extras
|
||||||
asarUnpack:
|
asarUnpack:
|
||||||
- dist/*.map
|
- 'dist/*.map'
|
||||||
publish:
|
publish:
|
||||||
- provider: github
|
- provider: github
|
||||||
|
|
||||||
win:
|
win:
|
||||||
icon: "./build/windows/icon.ico"
|
icon: "./build/windows/icon.ico"
|
||||||
artifactName: terminus-${version}-portable.${ext}
|
artifactName: tabby-${version}-portable.${ext}
|
||||||
rfc3161TimeStampServer: http://sha256timestamp.ws.symantec.com/sha256/timestamp
|
rfc3161TimeStampServer: http://sha256timestamp.ws.symantec.com/sha256/timestamp
|
||||||
nsis:
|
nsis:
|
||||||
oneClick: false
|
oneClick: false
|
||||||
artifactName: terminus-${version}-setup.${ext}
|
artifactName: tabby-${version}-setup.${ext}
|
||||||
installerIcon: "./build/windows/icon.ico"
|
installerIcon: "./build/windows/icon.ico"
|
||||||
allowToChangeInstallationDirectory: true
|
allowToChangeInstallationDirectory: true
|
||||||
|
|
||||||
mac:
|
mac:
|
||||||
category: public.app-category.video
|
category: public.app-category.video
|
||||||
icon: "./build/mac/icon.icns"
|
icon: "./build/mac/icon.icns"
|
||||||
artifactName: terminus-${version}-macos-${env.ARCH}.${ext}
|
artifactName: tabby-${version}-macos-${env.ARCH}.${ext}
|
||||||
hardenedRuntime: true
|
hardenedRuntime: true
|
||||||
entitlements: "./build/mac/entitlements.plist"
|
entitlements: "./build/mac/entitlements.plist"
|
||||||
entitlementsInherit: "./build/mac/entitlements.plist"
|
entitlementsInherit: "./build/mac/entitlements.plist"
|
||||||
@@ -68,11 +68,11 @@ mac:
|
|||||||
linux:
|
linux:
|
||||||
category: Utility
|
category: Utility
|
||||||
icon: "./build/icons"
|
icon: "./build/icons"
|
||||||
artifactName: terminus-${version}-linux.${ext}
|
artifactName: tabby-${version}-linux.${ext}
|
||||||
executableArgs:
|
executableArgs:
|
||||||
- "--no-sandbox"
|
- "--no-sandbox"
|
||||||
desktop:
|
desktop:
|
||||||
StartupWMClass: terminus
|
StartupWMClass: tabby
|
||||||
snap:
|
snap:
|
||||||
plugs:
|
plugs:
|
||||||
- default
|
- default
|
||||||
@@ -91,7 +91,7 @@ deb:
|
|||||||
afterInstall: build/linux/after-install.tpl
|
afterInstall: build/linux/after-install.tpl
|
||||||
fpm:
|
fpm:
|
||||||
- '--replaces'
|
- '--replaces'
|
||||||
- 'terminus'
|
- 'terminus-terminal'
|
||||||
pacman:
|
pacman:
|
||||||
depends:
|
depends:
|
||||||
- gnome-keyring
|
- gnome-keyring
|
||||||
@@ -103,4 +103,4 @@ rpm:
|
|||||||
- '--rpm-rpmbuild-define'
|
- '--rpm-rpmbuild-define'
|
||||||
- '_build_id_links none'
|
- '_build_id_links none'
|
||||||
- '--replaces'
|
- '--replaces'
|
||||||
- 'terminus'
|
- 'terminus-terminal'
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
<key>NSMenuItem</key>
|
<key>NSMenuItem</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>default</key>
|
<key>default</key>
|
||||||
<string>Open Terminus here</string>
|
<string>Open Tabby here</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>NSMessage</key>
|
<key>NSMessage</key>
|
||||||
<string>runWorkflowAsService</string>
|
<string>runWorkflowAsService</string>
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -59,7 +59,7 @@
|
|||||||
<key>ActionParameters</key>
|
<key>ActionParameters</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>COMMAND_STRING</key>
|
<key>COMMAND_STRING</key>
|
||||||
<string>/Applications/Terminus.app/Contents/MacOS/terminus open "$1"</string>
|
<string>/Applications/Tabby.app/Contents/MacOS/tabby open "$1"</string>
|
||||||
<key>CheckedForUserDefaultShell</key>
|
<key>CheckedForUserDefaultShell</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>inputMethod</key>
|
<key>inputMethod</key>
|
@@ -12,7 +12,7 @@
|
|||||||
<key>NSMenuItem</key>
|
<key>NSMenuItem</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>default</key>
|
<key>default</key>
|
||||||
<string>Paste path into Terminus</string>
|
<string>Paste path into Tabby</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>NSMessage</key>
|
<key>NSMessage</key>
|
||||||
<string>runWorkflowAsService</string>
|
<string>runWorkflowAsService</string>
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -59,7 +59,7 @@
|
|||||||
<key>ActionParameters</key>
|
<key>ActionParameters</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>COMMAND_STRING</key>
|
<key>COMMAND_STRING</key>
|
||||||
<string>/Applications/Terminus.app/Contents/MacOS/terminus paste --escape "$1"</string>
|
<string>/Applications/Tabby.app/Contents/MacOS/tabby paste --escape "$1"</string>
|
||||||
<key>CheckedForUserDefaultShell</key>
|
<key>CheckedForUserDefaultShell</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>inputMethod</key>
|
<key>inputMethod</key>
|
29
package.json
29
package.json
@@ -2,16 +2,16 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fortawesome/fontawesome-free": "^5.15.3",
|
"@fortawesome/fontawesome-free": "^5.15.3",
|
||||||
"@sentry/cli": "^1.64.2",
|
"@sentry/cli": "^1.64.2",
|
||||||
"@sentry/electron": "^2.4.1",
|
"@sentry/electron": "^2.5.0",
|
||||||
"@terminus-term/to-string-loader": "1.1.7-beta.1",
|
"@terminus-term/to-string-loader": "1.1.7-beta.1",
|
||||||
"@types/electron-config": "^3.2.2",
|
"@types/electron-config": "^3.2.2",
|
||||||
"@types/electron-debug": "^2.1.0",
|
"@types/electron-debug": "^2.1.0",
|
||||||
"@types/fs-extra": "^9.0.11",
|
"@types/fs-extra": "^9.0.11",
|
||||||
"@types/js-yaml": "^4.0.1",
|
"@types/js-yaml": "^4.0.1",
|
||||||
"@types/node": "15.6.1",
|
"@types/node": "15.12.5",
|
||||||
"@types/webpack-env": "^1.16.0",
|
"@types/webpack-env": "^1.16.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.25.0",
|
"@typescript-eslint/eslint-plugin": "^4.25.0",
|
||||||
"@typescript-eslint/parser": "^4.26.0",
|
"@typescript-eslint/parser": "^4.28.0",
|
||||||
"apply-loader": "2.0.0",
|
"apply-loader": "2.0.0",
|
||||||
"awesome-typescript-loader": "^5.2.1",
|
"awesome-typescript-loader": "^5.2.1",
|
||||||
"compare-versions": "^3.6.0",
|
"compare-versions": "^3.6.0",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
"lru-cache": "^6.0.0",
|
"lru-cache": "^6.0.0",
|
||||||
"macos-release": "^2.5.0",
|
"macos-release": "^2.5.0",
|
||||||
"node-abi": "^2.30.0",
|
"node-abi": "^2.30.0",
|
||||||
"node-sass": "^6.0.0",
|
"node-sass": "^6.0.1",
|
||||||
"npmlog": "4.1.2",
|
"npmlog": "4.1.2",
|
||||||
"npx": "^10.2.2",
|
"npx": "^10.2.2",
|
||||||
"patch-package": "^6.4.7",
|
"patch-package": "^6.4.7",
|
||||||
@@ -43,18 +43,18 @@
|
|||||||
"pug-loader": "^2.4.0",
|
"pug-loader": "^2.4.0",
|
||||||
"pug-static-loader": "2.0.0",
|
"pug-static-loader": "2.0.0",
|
||||||
"raw-loader": "4.0.2",
|
"raw-loader": "4.0.2",
|
||||||
"sass-loader": "^12.0.0",
|
"sass-loader": "^12.1.0",
|
||||||
"shelljs": "0.8.4",
|
"shelljs": "0.8.4",
|
||||||
"source-code-pro": "^2.38.0",
|
"source-code-pro": "^2.38.0",
|
||||||
"source-sans-pro": "3.6.0",
|
"source-sans-pro": "3.6.0",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^3.0.0",
|
||||||
"svg-inline-loader": "^0.8.2",
|
"svg-inline-loader": "^0.8.2",
|
||||||
"tslib": "^2.2.0",
|
"tslib": "^2.3.0",
|
||||||
"typedoc": "^0.20.36",
|
"typedoc": "^0.21.2",
|
||||||
"typescript": "^4.2.4",
|
"typescript": "^4.2.4",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
"val-loader": "4.0.0",
|
"val-loader": "4.0.0",
|
||||||
"webpack": "^5.38.1",
|
"webpack": "^5.41.0",
|
||||||
"webpack-bundle-analyzer": "^4.4.2",
|
"webpack-bundle-analyzer": "^4.4.2",
|
||||||
"webpack-cli": "^4.7.0",
|
"webpack-cli": "^4.7.0",
|
||||||
"yaml-loader": "0.6.0"
|
"yaml-loader": "0.6.0"
|
||||||
@@ -64,14 +64,13 @@
|
|||||||
"**/graceful-fs": "^4.2.4"
|
"**/graceful-fs": "^4.2.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run build:typings && webpack --color --config app/webpack.main.config.js && webpack --color --config app/webpack.config.js && webpack --color --config terminus-core/webpack.config.js && webpack --color --config terminus-settings/webpack.config.js && webpack --color --config terminus-terminal/webpack.config.js && webpack --color --config terminus-local/webpack.config.js && webpack --color --config terminus-plugin-manager/webpack.config.js && webpack --color --config terminus-community-color-schemes/webpack.config.js && webpack --color --config terminus-ssh/webpack.config.js && webpack --color --config terminus-serial/webpack.config.js && webpack --color --config terminus-electron/webpack.config.js && webpack --color --config terminus-web/webpack.config.js",
|
"build": "npm run build:typings && webpack --color --config app/webpack.main.config.js && webpack --color --config app/webpack.config.js && webpack --color --config tabby-core/webpack.config.js && webpack --color --config tabby-settings/webpack.config.js && webpack --color --config tabby-terminal/webpack.config.js && webpack --color --config tabby-local/webpack.config.js && webpack --color --config tabby-plugin-manager/webpack.config.js && webpack --color --config tabby-community-color-schemes/webpack.config.js && webpack --color --config tabby-ssh/webpack.config.js && webpack --color --config tabby-serial/webpack.config.js && webpack --color --config tabby-electron/webpack.config.js && webpack --color --config tabby-web/webpack.config.js && webpack --color --config web/webpack.config.js",
|
||||||
"build:web": "webpack --color --config web/webpack.config.js",
|
|
||||||
"build:typings": "node scripts/build-typings.js",
|
"build:typings": "node scripts/build-typings.js",
|
||||||
"watch": "cross-env TERMINUS_DEV=1 webpack --progress --color --watch",
|
"watch": "cross-env TABBY_DEV=1 webpack --progress --color --watch",
|
||||||
"start": "cross-env TERMINUS_DEV=1 electron app --debug --inspect",
|
"start": "cross-env TABBY_DEV=1 electron app --debug --inspect",
|
||||||
"start:prod": "electron app --debug",
|
"start:prod": "electron app --debug",
|
||||||
"prod": "cross-env TERMINUS_DEV=1 electron app",
|
"prod": "cross-env TABBY_DEV=1 electron app",
|
||||||
"docs": "typedoc --out docs/api --tsconfig terminus-core/src/tsconfig.typings.json terminus-core/src/index.ts && typedoc --out docs/api/terminal --tsconfig terminus-terminal/tsconfig.typings.json terminus-terminal/src/index.ts && typedoc --out docs/api/local --tsconfig terminus-local/tsconfig.typings.json terminus-local/src/index.ts && typedoc --out docs/api/settings --tsconfig terminus-settings/tsconfig.typings.json terminus-settings/src/index.ts",
|
"docs": "typedoc --out docs/api --tsconfig tabby-core/src/tsconfig.typings.json tabby-core/src/index.ts && typedoc --out docs/api/terminal --tsconfig tabby-terminal/tsconfig.typings.json tabby-terminal/src/index.ts && typedoc --out docs/api/local --tsconfig tabby-local/tsconfig.typings.json tabby-local/src/index.ts && typedoc --out docs/api/settings --tsconfig tabby-settings/tsconfig.typings.json tabby-settings/src/index.ts",
|
||||||
"lint": "eslint --ext ts */src */lib",
|
"lint": "eslint --ext ts */src */lib",
|
||||||
"postinstall": "node ./scripts/install-deps.js",
|
"postinstall": "node ./scripts/install-deps.js",
|
||||||
"patch": "patch-package; cd web; patch-package"
|
"patch": "patch-package; cd web; patch-package"
|
||||||
|
@@ -5,9 +5,9 @@ index 25a159e..d8a0262 100644
|
|||||||
@@ -165,7 +165,7 @@ class AppInfo {
|
@@ -165,7 +165,7 @@ class AppInfo {
|
||||||
get linuxPackageName() {
|
get linuxPackageName() {
|
||||||
const name = this.name; // https://github.com/electron-userland/electron-builder/issues/2963
|
const name = this.name; // https://github.com/electron-userland/electron-builder/issues/2963
|
||||||
|
|
||||||
- return name.startsWith("@") ? this.sanitizedProductName : name;
|
- return name.startsWith("@") ? this.sanitizedProductName : name;
|
||||||
+ return 'terminus-terminal'
|
+ return 'tabby-terminal'
|
||||||
}
|
}
|
||||||
|
|
||||||
get sanitizedName() {
|
get sanitizedName() {
|
||||||
|
@@ -4,7 +4,7 @@ const path = require('path')
|
|||||||
const vars = require('./vars')
|
const vars = require('./vars')
|
||||||
|
|
||||||
let lifecycles = []
|
let lifecycles = []
|
||||||
for (let dir of ['app', 'terminus-core', 'terminus-local', 'terminus-ssh', 'terminus-terminal']) {
|
for (let dir of ['app', 'tabby-core', 'tabby-local', 'tabby-ssh', 'tabby-terminal']) {
|
||||||
const build = rebuild({
|
const build = rebuild({
|
||||||
buildPath: path.resolve(__dirname, '../' + dir),
|
buildPath: path.resolve(__dirname, '../' + dir),
|
||||||
electronVersion: vars.electronVersion,
|
electronVersion: vars.electronVersion,
|
||||||
|
@@ -11,7 +11,7 @@ sh.mkdir('-p', target)
|
|||||||
fs.writeFileSync(path.join(target, 'package.json'), '{}')
|
fs.writeFileSync(path.join(target, 'package.json'), '{}')
|
||||||
sh.cd(target)
|
sh.cd(target)
|
||||||
vars.builtinPlugins.forEach(plugin => {
|
vars.builtinPlugins.forEach(plugin => {
|
||||||
if (plugin === 'terminus-web') {
|
if (plugin === 'tabby-web') {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.info('install', plugin)
|
log.info('install', plugin)
|
||||||
|
@@ -4,8 +4,9 @@ const vars = require('./vars')
|
|||||||
const log = require('npmlog')
|
const log = require('npmlog')
|
||||||
|
|
||||||
vars.builtinPlugins.forEach(plugin => {
|
vars.builtinPlugins.forEach(plugin => {
|
||||||
log.info('bump', plugin)
|
log.info('bump', plugin)
|
||||||
sh.cd(plugin)
|
sh.cd(plugin)
|
||||||
sh.exec('npm --no-git-tag-version version ' + vars.version)
|
sh.exec('npm --no-git-tag-version version ' + vars.version)
|
||||||
sh.cd('..')
|
sh.exec('npm publish')
|
||||||
|
sh.cd('..')
|
||||||
})
|
})
|
@@ -9,7 +9,7 @@ sh.exec(`${sentryCli} releases new ${vars.version}`)
|
|||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin') {
|
||||||
for (const path of [
|
for (const path of [
|
||||||
'app/node_modules/@serialport/bindings/build/Release/bindings.node',
|
'app/node_modules/@serialport/bindings/build/Release/bindings.node',
|
||||||
'app/node_modules/@terminus-term/node-pty/build/Release/pty.node',
|
'app/node_modules/node-pty/build/Release/pty.node',
|
||||||
'app/node_modules/fontmanager-redux/build/Release/fontmanager.node',
|
'app/node_modules/fontmanager-redux/build/Release/fontmanager.node',
|
||||||
'app/node_modules/macos-native-processlist/build/Release/native.node',
|
'app/node_modules/macos-native-processlist/build/Release/native.node',
|
||||||
]) {
|
]) {
|
||||||
|
@@ -14,16 +14,16 @@ if (exports.version.includes('-c')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
exports.builtinPlugins = [
|
exports.builtinPlugins = [
|
||||||
'terminus-core',
|
'tabby-core',
|
||||||
'terminus-settings',
|
'tabby-settings',
|
||||||
'terminus-terminal',
|
'tabby-terminal',
|
||||||
'terminus-electron',
|
'tabby-electron',
|
||||||
'terminus-local',
|
'tabby-local',
|
||||||
'terminus-web',
|
'tabby-web',
|
||||||
'terminus-community-color-schemes',
|
'tabby-community-color-schemes',
|
||||||
'terminus-plugin-manager',
|
'tabby-plugin-manager',
|
||||||
'terminus-ssh',
|
'tabby-ssh',
|
||||||
'terminus-serial',
|
'tabby-serial',
|
||||||
]
|
]
|
||||||
exports.bundledModules = [
|
exports.bundledModules = [
|
||||||
'@angular',
|
'@angular',
|
||||||
|
@@ -1,26 +1,26 @@
|
|||||||
name: terminus
|
name: tabby
|
||||||
version: '1.0.0'
|
version: '1.0.0'
|
||||||
summary: A terminal for a modern age
|
summary: A terminal for a modern age
|
||||||
description: |
|
description: |
|
||||||
Terminus is a terminal heavily inspired by Hyper. It is, however, designed for people who need to get things done.
|
Tabby is a local, SSH and serial terminal heavily inspired by Hyper.
|
||||||
|
|
||||||
grade: devel
|
grade: devel
|
||||||
confinement: devmode
|
confinement: devmode
|
||||||
|
|
||||||
apps:
|
apps:
|
||||||
terminus:
|
tabby:
|
||||||
command: opt/terminus/terminus
|
command: opt/tabby/tabby
|
||||||
|
|
||||||
parts:
|
parts:
|
||||||
app:
|
app:
|
||||||
plugin: nodejs
|
plugin: nodejs
|
||||||
source: .
|
source: .
|
||||||
build-packages:
|
build-packages:
|
||||||
- libfontconfig-dev
|
- libfontconfig-dev
|
||||||
override-build: |
|
override-build: |
|
||||||
yarn
|
yarn
|
||||||
./scripts/build-native.js
|
./scripts/build-native.js
|
||||||
yarn run build
|
yarn run build
|
||||||
./scripts/build-linux.js
|
./scripts/build-linux.js
|
||||||
mkdir -p $SNAPCRAFT_PART_INSTALL/opt/terminus || true
|
mkdir -p $SNAPCRAFT_PART_INSTALL/opt/tabby || true
|
||||||
cp -ar dist/linux-unpacked/* $SNAPCRAFT_PART_INSTALL/opt/terminus/
|
cp -ar dist/linux-unpacked/* $SNAPCRAFT_PART_INSTALL/opt/tabby/
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "terminus-community-color-schemes",
|
"name": "tabby-community-color-schemes",
|
||||||
"version": "1.0.140",
|
"version": "1.0.144",
|
||||||
"description": "Community color schemes for Terminus",
|
"description": "Community color schemes for Tabby",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"terminus-builtin-plugin"
|
"tabby-builtin-plugin"
|
||||||
],
|
],
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "typings/index.d.ts",
|
"typings": "typings/index.d.ts",
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@angular/core": "^9.1.9",
|
"@angular/core": "^9.1.9",
|
||||||
"terminus-core": "*",
|
"tabby-core": "*",
|
||||||
"terminus-terminal": "*"
|
"tabby-terminal": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user