project rename

This commit is contained in:
Eugene Pankov 2021-06-29 23:57:04 +02:00
parent c61be3d52b
commit 43cd3318da
No known key found for this signature in database
GPG key ID: 5896FCBBDD1CF4F4
609 changed files with 510 additions and 530 deletions

View file

@ -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"

View file

@ -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

2
.gitignore vendored
View file

@ -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

View file

@ -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'

2
.vscode/launch.json vendored
View file

@ -8,7 +8,7 @@
"protocol": "inspector", "protocol": "inspector",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
"env": { "env": {
"TERMINUS_DEV": "1" "TABBY_DEV": "1"
}, },
"runtimeArgs": [ "runtimeArgs": [
"--remote-debugging-port=9223", "--remote-debugging-port=9223",

View file

@ -1,6 +1,6 @@
# 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
@ -34,7 +34,7 @@ Now, check if your build is working:
yarn run build yarn run build
``` ```
Start Terminus with Start Tabby with
``` ```
yarn start yarn start
@ -58,26 +58,26 @@ 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
@ -94,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.
@ -118,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 {
@ -143,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.

View file

@ -7,7 +7,7 @@
---- ----
**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
@ -29,7 +29,7 @@
# 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 +39,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 +84,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 +102,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)

View file

@ -1,4 +1,4 @@
owner: eugeny owner: eugeny
repo: terminus repo: terminus
provider: github provider: github
updaterCacheDirName: terminus-updater updaterCacheDirName: tabby-updater

View file

@ -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%')

View file

@ -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',

View file

@ -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 },
}) })

View file

@ -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'))

View file

@ -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()

View file

@ -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)

View file

@ -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,

View file

@ -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()
} }
}) })

View file

@ -1,5 +1,5 @@
{ {
"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/terminus",
@ -55,15 +55,15 @@
"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"

View file

@ -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)

View file

@ -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,10 +30,10 @@ 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',
] ]
@ -42,15 +42,15 @@ export type ProgressCallback = (current: number, total: number) => void // eslin
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) { 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(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 = {} const cachedBuiltinModules = {}
@ -79,7 +79,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 +102,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 +115,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
@ -129,7 +130,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
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

View file

@ -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;

View file

@ -27,7 +27,7 @@
"dist", "dist",
"node_modules", "node_modules",
"*/node_modules", "*/node_modules",
"terminus*", "tabby*",
"platforms" "platforms"
] ]
} }

View file

@ -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,
}, },

View file

@ -3,12 +3,12 @@ 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: {

View file

@ -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

View file

@ -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)) {

View file

@ -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"
@ -39,18 +39,18 @@ publish:
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'

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -64,13 +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 && webpack --color --config 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: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"

View file

@ -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() {

View file

@ -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,

View file

@ -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)

View file

@ -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',

View file

@ -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/

View file

@ -1,9 +1,9 @@
{ {
"name": "terminus-community-color-schemes", "name": "tabby-community-color-schemes",
"version": "1.0.140", "version": "1.0.140",
"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