Compare commits

...

277 Commits

Author SHA1 Message Date
Eugene Pankov
ff49b9e38a settings: added release notes 2021-07-18 16:48:13 +02:00
Eugene Pankov
439e407595 serial: fixed missing port names in builtin profiles 2021-07-18 15:22:46 +02:00
Eugene Pankov
1eed32f8d8 local: UI to support single "command line" in profiles 2021-07-18 15:22:35 +02:00
Eugene Pankov
66098b5c6d Update hostWindow.service.ts 2021-07-18 14:08:20 +02:00
Eugene Pankov
a725d25e46 web: added proper platform detection and hotkey handling 2021-07-17 16:39:08 +02:00
Eugene Pankov
4e42dfd46b plugin version bump 2021-07-17 00:54:38 +02:00
Eugene Pankov
c2657568a6 updated web demo for new profiles 2021-07-17 00:52:16 +02:00
Eugene Pankov
dbe7b8cf56 plugin version bump 2021-07-17 00:52:07 +02:00
Eugene Pankov
a82a65ed46 plugin version bump 2021-07-16 23:59:45 +02:00
Eugene Pankov
893d9a9887 fixed button discoloration 2021-07-16 23:59:12 +02:00
Eugeny
1facd46901 Merge pull request #4216 from Eugeny/all-contributors/add-KingMob 2021-07-16 23:54:00 +02:00
allcontributors[bot]
7af89e1d07 docs: update .all-contributorsrc [skip ci] 2021-07-16 21:53:41 +00:00
Eugeny
50b2040d16 Merge pull request #4215 from KingMob/bugfix/get-shell-names-correctly 2021-07-16 23:53:40 +02:00
allcontributors[bot]
a65505c498 docs: update README.md [skip ci] 2021-07-16 21:53:40 +00:00
Matthew Davidson
7e8c19e97b Correctly name profiles for shells outside /usr
Shells outside /usr get named incorrectly. E.g., if I add /usr/local/bin/fish
to /etc/shells, when Tabby starts up, it think the profile name should be "local".
2021-07-16 16:50:32 -04:00
Eugeny
8ac101cf9c Merge pull request #4213 from Eugeny/dependabot/npm_and_yarn/electron-13.1.7 2021-07-16 11:31:54 +02:00
dependabot[bot]
6297987e4f Bump electron from 13.1.6 to 13.1.7
Bumps [electron](https://github.com/electron/electron) from 13.1.6 to 13.1.7.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v13.1.6...v13.1.7)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-16 04:07:07 +00:00
Eugene Pankov
cbd7c7c02f remove outline buttons 2021-07-14 00:21:23 +02:00
Eugene Pankov
57a198b082 typing cleanup 2021-07-14 00:03:05 +02:00
Eugene Pankov
e245629c5a ui tweak 2021-07-13 23:53:43 +02:00
Eugene Pankov
760311ffa0 lint 2021-07-13 23:50:31 +02:00
Eugene Pankov
2f13f3a401 strongly typed partial profiles wip 2021-07-13 23:44:23 +02:00
Eugene Pankov
5ddf36d4c1 lint 2021-07-13 22:23:46 +02:00
Eugene Pankov
a632a599d3 WSL: fixed multiple distro detection 2021-07-13 22:20:59 +02:00
Eugene Pankov
ca9f11484c move terminal-tab to use .profile 2021-07-13 21:47:06 +02:00
Eugene Pankov
9d224cbce2 Merge branch 'master' of github.com:Eugeny/terminus 2021-07-13 20:37:20 +02:00
Eugeny
7df36b89c3 Merge pull request #4198 from Eugeny/dependabot/npm_and_yarn/typescript-eslint/parser-4.28.3
Bump @typescript-eslint/parser from 4.28.2 to 4.28.3
2021-07-13 20:19:47 +02:00
Eugene Pankov
8b62aa24ea Merge branch 'master' of github.com:Eugeny/terminus 2021-07-13 20:19:31 +02:00
Eugene Pankov
9502240480 reworked login scripts - fixes #1349 2021-07-13 20:19:28 +02:00
dependabot[bot]
31efa2f9c1 Bump @typescript-eslint/parser from 4.28.2 to 4.28.3
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.2 to 4.28.3.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.3/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 17:53:20 +00:00
Eugeny
b40192f2ad Merge pull request #4196 from Eugeny/dependabot/npm_and_yarn/style-loader-3.1.0
Bump style-loader from 3.0.0 to 3.1.0
2021-07-13 19:48:29 +02:00
Eugeny
489ea5f891 Merge pull request #4197 from Eugeny/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.28.3 2021-07-13 19:46:30 +02:00
Eugeny
05eb24cd99 Merge pull request #4191 from Eugeny/dependabot/npm_and_yarn/typedoc-0.21.4
Bump typedoc from 0.21.2 to 0.21.4
2021-07-13 19:46:21 +02:00
Eugene Pankov
5053743b1b fixed dynamic port forward listener not getting cleaned up - fixes #4200 2021-07-13 19:27:02 +02:00
Eugene Pankov
6d7f25870e Merge branch 'master' of github.com:Eugeny/terminus 2021-07-13 19:26:21 +02:00
Eugeny
6cdee22164 Delete clink.html 2021-07-13 16:04:26 +02:00
Eugene Pankov
c043d5bc83 delegate getDescription to ProfilesService 2021-07-13 10:28:27 +02:00
Eugene Pankov
d7741f07a1 fixed configproxy 2021-07-13 10:28:08 +02:00
dependabot[bot]
14c0b8891d Bump @typescript-eslint/eslint-plugin from 4.28.2 to 4.28.3
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.2 to 4.28.3.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.3/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 04:04:47 +00:00
dependabot[bot]
ea1d8e95f3 Bump style-loader from 3.0.0 to 3.1.0
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: style-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 04:04:14 +00:00
Eugene Pankov
50c20f08f8 fixed 'hide dock on blur' 2021-07-12 23:35:42 +02:00
Eugene Pankov
8f55333d23 fixed visual layout of readline prompts 2021-07-12 22:31:17 +02:00
Eugene Pankov
3be98e6244 fixed home/end keys in ssh sessions 2021-07-12 22:23:46 +02:00
Eugene Pankov
5e771534a8 wording 2021-07-12 21:29:38 +02:00
Eugene Pankov
ba33f18af7 fixed ssh connections 2021-07-12 21:29:34 +02:00
Eugene Pankov
82f3b61b5e bump 2021-07-12 21:29:28 +02:00
dependabot[bot]
f587fd279c Bump typedoc from 0.21.2 to 0.21.4
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.21.2 to 0.21.4.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.21.2...v0.21.4)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 04:05:50 +00:00
Eugene Pankov
8d13cb0fe8 bump 2021-07-11 23:04:48 +02:00
Eugene Pankov
d1a6baf858 bump 2021-07-11 23:03:55 +02:00
Eugene Pankov
25034342c3 bumped plugins 2021-07-11 23:02:27 +02:00
Eugene Pankov
379775bcd3 import fix 2021-07-11 23:02:23 +02:00
Eugene Pankov
ff18926bf9 WSA wip 2021-07-11 22:59:39 +02:00
Eugene Pankov
37e564130e web preload progress callback 2021-07-11 16:31:00 +02:00
Eugene Pankov
d8a8d41614 lint 2021-07-11 16:24:04 +02:00
Eugene Pankov
7db3335938 bump, include source maps in releases 2021-07-11 16:12:36 +02:00
Eugene Pankov
c1051379c1 add tabby-web-demo to the repo 2021-07-11 16:00:59 +02:00
Eugeny
f7a0fb488b Merge pull request #4175 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/xterm-addon-ligatures-0.5.1
Bump xterm-addon-ligatures from 0.5.0 to 0.5.1 in /tabby-terminal
2021-07-11 12:39:02 +02:00
Eugene Pankov
2706045cc2 tab context menu option to save split layouts as profiles - fixes #3468 2021-07-11 12:38:35 +02:00
Eugene Pankov
908f90cd52 automatically clean up defaults from the config file 2021-07-11 00:06:52 +02:00
Eugene Pankov
67bbbd7f65 allow renaming and replacing files in the vault - fixes #4110 2021-07-10 21:31:18 +02:00
Eugene Pankov
0008b2f022 preserve file modes for up- and downloads - fixes #4141 2021-07-10 20:39:45 +02:00
Eugene Pankov
3e61630c6a added a way to switch a pane's profile - fixes #1007, fixes #2963, fixes #3082, fixes #4151 2021-07-10 20:05:31 +02:00
Eugene Pankov
6f912dc12b make sure ssh ident goes out in a single packet - #4167 2021-07-10 17:51:37 +02:00
Eugene Pankov
e1f2e176ce actually implement telnet protocol - fixes #4164 2021-07-10 16:09:24 +02:00
Eugene Pankov
f39b4c6dbe Update buttonProvider.ts 2021-07-10 14:47:41 +02:00
Eugene Pankov
c49ff68ed6 avoid duplicate entries in recent profiles - fixes #4179 2021-07-10 14:30:33 +02:00
Eugene Pankov
891cf42338 make ssh the default quick-connect profile - fixes #4181 2021-07-10 14:10:55 +02:00
Eugene Pankov
b9763044ee close streamProcessor in telnet tabs 2021-07-09 10:31:12 +02:00
Eugene Pankov
46e0035327 sort profiles by groups - fixes #4163 2021-07-09 10:02:58 +02:00
Eugene Pankov
6df8707b6d Merge branch 'master' of github.com:Eugeny/terminus 2021-07-09 09:58:35 +02:00
Eugene Pankov
24b7922539 fixed high contrast appearance for theme previews 2021-07-09 09:58:31 +02:00
Eugene Pankov
485665d449 fixed toggle switch appearance in windows high contrast mode - fixes #4165 2021-07-09 09:47:51 +02:00
Eugene Pankov
e09a011c23 hint about ssh connections being moved to profiles 2021-07-09 09:47:09 +02:00
Eugene Pankov
833a348fdb fixed matchedHotkey deprecation - fixes #4153, fixes #4156 2021-07-09 09:46:54 +02:00
Eugene Pankov
26ff6f17e7 fixed toolbar state loading 2021-07-09 09:10:10 +02:00
dependabot[bot]
d026e634e5 Bump xterm-addon-ligatures from 0.5.0 to 0.5.1 in /tabby-terminal
Bumps [xterm-addon-ligatures](https://github.com/xtermjs/xterm.js) from 0.5.0 to 0.5.1.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

---
updated-dependencies:
- dependency-name: xterm-addon-ligatures
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-09 04:25:46 +00:00
Eugeny
356a2f38b6 Merge pull request #4160 from Eugeny/dependabot/npm_and_yarn/sentry/cli-1.67.1 2021-07-08 22:04:39 +02:00
Eugeny
bdb37a9a18 Merge pull request #4169 from Eugeny/all-contributors/add-cypherbits 2021-07-08 22:04:29 +02:00
allcontributors[bot]
22d89041f8 docs: update .all-contributorsrc [skip ci] 2021-07-08 20:04:20 +00:00
allcontributors[bot]
d5285cf268 docs: update README.md [skip ci] 2021-07-08 20:04:19 +00:00
Eugene Pankov
3db98aa421 expose more plugin loader apis 2021-07-08 22:03:41 +02:00
Eugene Pankov
47dba5b52c avoid including all of the util-decorators in the bundle 2021-07-08 22:03:25 +02:00
Eugene Pankov
72874a1e84 Update HACKING.md 2021-07-08 22:03:03 +02:00
Eugene Pankov
fc1deb67e8 Merge branch 'master' of github.com:Eugeny/terminus 2021-07-08 22:01:43 +02:00
Eugeny
d0bb3c731c Merge pull request #4168 from cypherbits/master 2021-07-08 22:01:34 +02:00
cypherbits
13e54a46d7 add Ubuntu 20.04 compile requeriments 2021-07-08 18:46:44 +02:00
Eugene Pankov
55a975bc8b Merge branch 'master' of github.com:Eugeny/terminus 2021-07-08 16:09:09 +02:00
Eugene Pankov
a62752efec bumped package versions 2021-07-08 16:07:45 +02:00
dependabot[bot]
4e97ce5117 Bump @sentry/cli from 1.64.2 to 1.67.1
Bumps [@sentry/cli](https://github.com/getsentry/sentry-cli) from 1.64.2 to 1.67.1.
- [Release notes](https://github.com/getsentry/sentry-cli/releases)
- [Changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-cli/compare/1.64.2...1.67.1)

---
updated-dependencies:
- dependency-name: "@sentry/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 11:36:24 +00:00
Eugeny
19a5f2dc2d Merge pull request #4161 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/node-16.0.1
Bump @types/node from 16.0.0 to 16.0.1 in /tabby-ssh
2021-07-08 13:32:41 +02:00
Eugeny
52433afd13 Merge pull request #4159 from Eugeny/dependabot/npm_and_yarn/types/node-16.0.1
Bump @types/node from 16.0.0 to 16.0.1
2021-07-08 13:32:26 +02:00
Eugeny
e1d9f50426 Merge pull request #4158 from Eugeny/dependabot/npm_and_yarn/sentry/electron-2.5.1
Bump @sentry/electron from 2.5.0 to 2.5.1
2021-07-08 13:32:19 +02:00
Eugeny
5837c61ac4 Merge pull request #4157 from Eugeny/dependabot/npm_and_yarn/app/types/node-16.0.1
Bump @types/node from 16.0.0 to 16.0.1 in /app
2021-07-08 13:32:11 +02:00
dependabot[bot]
8c03e5b1aa Bump @types/node from 16.0.0 to 16.0.1 in /tabby-ssh
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.0.0 to 16.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 04:24:47 +00:00
dependabot[bot]
66074e3eb6 Bump @types/node from 16.0.0 to 16.0.1
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.0.0 to 16.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 04:04:14 +00:00
dependabot[bot]
221746f3e7 Bump @sentry/electron from 2.5.0 to 2.5.1
Bumps [@sentry/electron](https://github.com/getsentry/sentry-electron) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/getsentry/sentry-electron/releases)
- [Changelog](https://github.com/getsentry/sentry-electron/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-electron/compare/2.5.0...2.5.1)

---
updated-dependencies:
- dependency-name: "@sentry/electron"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 04:03:47 +00:00
dependabot[bot]
2c59e30c39 Bump @types/node from 16.0.0 to 16.0.1 in /app
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.0.0 to 16.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 04:01:31 +00:00
Eugene Pankov
4e13a601cc tab padding fix 2021-07-07 21:33:35 +02:00
Eugene Pankov
a159890cba lint 2021-07-07 21:33:26 +02:00
Eugene Pankov
4534eefc1d lint 2021-07-07 21:03:55 +02:00
Eugene Pankov
e06c44f973 externals fix 2021-07-07 21:00:40 +02:00
Eugene Pankov
c1616b1a7a bumped eslint 2021-07-07 20:45:47 +02:00
Eugeny
5b34fa9371 Merge pull request #4146 from Eugeny/dependabot/npm_and_yarn/types/fs-extra-9.0.12
Bump @types/fs-extra from 9.0.11 to 9.0.12
2021-07-07 20:41:03 +02:00
Eugeny
956a923ea2 Merge pull request #4124 from Eugeny/dependabot/npm_and_yarn/app/types/node-16.0.0
Bump @types/node from 15.12.5 to 16.0.0 in /app
2021-07-07 20:40:58 +02:00
Eugene Pankov
224abcb2c4 new toolbar design 2021-07-07 20:11:38 +02:00
dependabot[bot]
e8af224f7b Bump @types/fs-extra from 9.0.11 to 9.0.12
Bumps [@types/fs-extra](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/fs-extra) from 9.0.11 to 9.0.12.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/fs-extra)

---
updated-dependencies:
- dependency-name: "@types/fs-extra"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 11:34:02 +00:00
dependabot[bot]
a1d39563c3 Bump @types/node from 15.12.5 to 16.0.0 in /app
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 15.12.5 to 16.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 11:29:45 +00:00
Eugeny
621536a078 Merge pull request #4150 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/ssh2-0.5.47
Bump @types/ssh2 from 0.5.46 to 0.5.47 in /tabby-ssh
2021-07-07 13:28:06 +02:00
Eugeny
3cf9353d08 Merge pull request #4149 from Eugeny/dependabot/npm_and_yarn/tabby-core/types/js-yaml-4.0.2
Bump @types/js-yaml from 4.0.1 to 4.0.2 in /tabby-core
2021-07-07 13:27:59 +02:00
dependabot[bot]
6a2fa7efa9 Bump @types/js-yaml from 4.0.1 to 4.0.2 in /tabby-core
Bumps [@types/js-yaml](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/js-yaml) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/js-yaml)

---
updated-dependencies:
- dependency-name: "@types/js-yaml"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 11:27:53 +00:00
Eugeny
6b0fe0e2d1 Merge pull request #4148 from Eugeny/dependabot/npm_and_yarn/tabby-plugin-manager/types/semver-7.3.7
Bump @types/semver from 7.3.6 to 7.3.7 in /tabby-plugin-manager
2021-07-07 13:27:34 +02:00
Eugeny
923876dc23 Merge pull request #4147 from Eugeny/dependabot/npm_and_yarn/webpack-5.43.0
Bump webpack from 5.42.1 to 5.43.0
2021-07-07 13:27:25 +02:00
Eugeny
233ae9cbe6 Merge pull request #4145 from Eugeny/dependabot/npm_and_yarn/types/js-yaml-4.0.2
Bump @types/js-yaml from 4.0.1 to 4.0.2
2021-07-07 13:26:56 +02:00
Eugeny
09daf8102d Merge pull request #4144 from Eugeny/dependabot/npm_and_yarn/app/types/mz-2.7.4
Bump @types/mz from 2.7.3 to 2.7.4 in /app
2021-07-07 13:26:48 +02:00
Eugene Pankov
fd7893e9f8 Update README.md 2021-07-07 10:48:24 +02:00
dependabot[bot]
cf5c3e71f6 Bump @types/ssh2 from 0.5.46 to 0.5.47 in /tabby-ssh
Bumps [@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2) from 0.5.46 to 0.5.47.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ssh2)

---
updated-dependencies:
- dependency-name: "@types/ssh2"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 04:27:47 +00:00
dependabot[bot]
5c30bbb7e4 Bump @types/semver from 7.3.6 to 7.3.7 in /tabby-plugin-manager
Bumps [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) from 7.3.6 to 7.3.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: "@types/semver"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 04:26:44 +00:00
dependabot[bot]
afce339187 Bump webpack from 5.42.1 to 5.43.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.42.1 to 5.43.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.42.1...v5.43.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 04:05:44 +00:00
dependabot[bot]
d528d1148b Bump @types/js-yaml from 4.0.1 to 4.0.2
Bumps [@types/js-yaml](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/js-yaml) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/js-yaml)

---
updated-dependencies:
- dependency-name: "@types/js-yaml"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 04:04:32 +00:00
dependabot[bot]
786b31e2a2 Bump @types/mz from 2.7.3 to 2.7.4 in /app
Bumps [@types/mz](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mz) from 2.7.3 to 2.7.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mz)

---
updated-dependencies:
- dependency-name: "@types/mz"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 04:01:47 +00:00
Eugene Pankov
0ad32fa79d moved profile settings view to settings plugin, web entry cleanup 2021-07-07 01:22:50 +02:00
Eugene Pankov
93a89e3c86 lint 2021-07-06 21:56:52 +02:00
Eugene Pankov
4e667edf9f lint 2021-07-06 21:50:40 +02:00
Eugene Pankov
403bafe0a2 lint 2021-07-06 21:47:15 +02:00
Eugene Pankov
40209dc60d bundle built-in modules together 2021-07-06 21:22:57 +02:00
Eugene Pankov
1ccd1df6e1 prevent duplication in available plugins 2021-07-06 21:03:10 +02:00
Eugene Pankov
800c1fa039 don't log cwd check failures as errors 2021-07-06 20:29:11 +02:00
Eugene Pankov
0a67987e3c use eval sourcemaps in dev mode on windows 2021-07-06 20:29:01 +02:00
Eugene Pankov
6c7a8092a4 fixed config reload race condition 2021-07-06 20:28:53 +02:00
Eugene Pankov
9f87886a9b ui tweaks 2021-07-06 19:34:00 +02:00
Eugene Pankov
0aa5df421d added auto detection for vs developer prompt 2021-07-06 19:33:53 +02:00
Eugene Pankov
d3498a6a46 make comspec setting optional - fixes #4143 2021-07-06 19:03:34 +02:00
Eugene Pankov
41a53a3e8e lint 2021-07-06 10:44:30 +02:00
Eugene Pankov
636942ff86 updated rxjs imports 2021-07-06 09:43:16 +02:00
Eugene Pankov
d1b874c191 Merge branch 'master' of github.com:Eugeny/terminus 2021-07-06 09:40:58 +02:00
Eugene Pankov
89f369abe6 es2021 compilation 2021-07-06 09:40:54 +02:00
Eugeny
f7cea92900 Merge pull request #4135 from Eugeny/dependabot/npm_and_yarn/app/rxjs-7.2.0
Bump rxjs from 7.1.0 to 7.2.0 in /app
2021-07-06 09:40:20 +02:00
Eugeny
9a611709d0 Merge pull request #4102 from Eugeny/dependabot/npm_and_yarn/tabby-core/core-js-3.15.2
Bump core-js from 3.14.0 to 3.15.2 in /tabby-core
2021-07-06 08:56:25 +02:00
dependabot[bot]
2094409d23 Bump core-js from 3.14.0 to 3.15.2 in /tabby-core
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.14.0 to 3.15.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.15.2/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 06:56:19 +00:00
Eugeny
2b061d3f77 Merge pull request #4129 from Eugeny/dependabot/npm_and_yarn/eslint-7.30.0
Bump eslint from 7.29.0 to 7.30.0
2021-07-06 08:56:16 +02:00
Eugeny
ed06c78a16 Merge pull request #4122 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/node-16.0.0 2021-07-06 08:56:03 +02:00
Eugeny
36a6af05c4 Merge pull request #4126 from Eugeny/dependabot/npm_and_yarn/types/node-16.0.0
Bump @types/node from 15.12.5 to 16.0.0
2021-07-06 08:55:57 +02:00
dependabot[bot]
64b4eed9c3 Bump @types/node from 14.14.31 to 16.0.0 in /tabby-ssh
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.31 to 16.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 06:55:14 +00:00
Eugeny
afc9270846 Merge pull request #4139 from Eugeny/dependabot/npm_and_yarn/electron-13.1.6
Bump electron from 13.1.5 to 13.1.6
2021-07-06 08:54:21 +02:00
Eugeny
2ea5edc101 Merge pull request #4138 from Eugeny/dependabot/npm_and_yarn/webpack-5.42.1
Bump webpack from 5.42.0 to 5.42.1
2021-07-06 08:54:06 +02:00
dependabot[bot]
869a7e866c Bump electron from 13.1.5 to 13.1.6
Bumps [electron](https://github.com/electron/electron) from 13.1.5 to 13.1.6.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v13.1.5...v13.1.6)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 04:06:39 +00:00
dependabot[bot]
1bd3b5301b Bump webpack from 5.42.0 to 5.42.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.42.0 to 5.42.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.42.0...v5.42.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 04:05:54 +00:00
dependabot[bot]
4ff66a39d8 Bump rxjs from 7.1.0 to 7.2.0 in /app
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/reactivex/rxjs/releases)
- [Changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactivex/rxjs/compare/7.1.0...7.2.0)

---
updated-dependencies:
- dependency-name: rxjs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 04:02:49 +00:00
dependabot[bot]
a3857d5dc8 Bump @types/node from 15.12.5 to 16.0.0
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 15.12.5 to 16.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 22:01:21 +00:00
Eugene Pankov
bf762cc4c7 moved login scripts processing into tabby-terminal 2021-07-05 23:56:38 +02:00
Eugene Pankov
461cd2bec7 deprecated matchedHotkey 2021-07-05 22:52:32 +02:00
Eugene Pankov
da599567f8 cleanup 2021-07-05 22:27:58 +02:00
Eugene Pankov
7f921c4d34 added a profile selector hotkey 2021-07-05 22:27:55 +02:00
Eugene Pankov
0eb006f297 Merge branch 'master' of github.com:Eugeny/terminus 2021-07-05 22:14:45 +02:00
Eugene Pankov
07095f3476 moved spinner intro baseTerminalTab 2021-07-05 22:14:42 +02:00
dependabot[bot]
59b283067b Bump eslint from 7.29.0 to 7.30.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.29.0 to 7.30.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.29.0...v7.30.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 13:09:45 +00:00
Eugeny
3635eee77d Merge pull request #4106 from Eugeny/dependabot/npm_and_yarn/app/ng-bootstrap/ng-bootstrap-10.0.0
Bump @ng-bootstrap/ng-bootstrap from 9.1.1 to 10.0.0 in /app
2021-07-05 15:01:34 +02:00
Eugeny
64df798dc1 Merge pull request #4130 from Eugeny/dependabot/npm_and_yarn/types/webpack-env-1.16.2
Bump @types/webpack-env from 1.16.0 to 1.16.2
2021-07-05 15:01:07 +02:00
Eugeny
f091206e37 Merge pull request #4104 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/utils-decorators-1.10.0
Bump utils-decorators from 1.8.3 to 1.10.0 in /tabby-terminal
2021-07-05 15:00:46 +02:00
Eugeny
3148927395 Merge pull request #4101 from Eugeny/dependabot/npm_and_yarn/tabby-local/utils-decorators-1.10.0 2021-07-05 15:00:41 +02:00
Eugeny
fb39bfd560 Merge pull request #4103 from Eugeny/dependabot/npm_and_yarn/tabby-settings/utils-decorators-1.10.0
Bump utils-decorators from 1.8.3 to 1.10.0 in /tabby-settings
2021-07-05 15:00:35 +02:00
Eugeny
f8cd9fcea7 Merge pull request #4134 from Eugeny/all-contributors/add-logicmachine123 2021-07-05 15:00:02 +02:00
Eugeny
f1148cc47f Merge pull request #4111 from Eugeny/dependabot/npm_and_yarn/electron-13.1.5
Bump electron from 13.1.4 to 13.1.5
2021-07-05 14:56:15 +02:00
Eugeny
ffcc0d549a Merge pull request #4097 from Eugeny/dependabot/github_actions/actions/setup-node-2.2.0
Bump actions/setup-node from 2.1.5 to 2.2.0
2021-07-05 14:55:51 +02:00
Eugeny
861dd8ef86 Merge pull request #4125 from Eugeny/dependabot/npm_and_yarn/webpack-5.42.0
Bump webpack from 5.41.0 to 5.42.0
2021-07-05 14:55:23 +02:00
Eugeny
1e5e46eae1 Merge pull request #4123 from Eugeny/dependabot/npm_and_yarn/ws-7.5.2
Bump ws from 7.4.4 to 7.5.2
2021-07-05 14:55:08 +02:00
Eugeny
d644eec56e Merge pull request #4092 from Eugeny/dependabot/npm_and_yarn/core-js-3.15.2
Bump core-js from 3.14.0 to 3.15.2
2021-07-05 14:54:51 +02:00
allcontributors[bot]
a656699afd docs: update .all-contributorsrc [skip ci] 2021-07-05 12:53:55 +00:00
allcontributors[bot]
93db8fa046 docs: update README.md [skip ci] 2021-07-05 12:53:54 +00:00
dependabot[bot]
05669046e9 Bump @types/webpack-env from 1.16.0 to 1.16.2
Bumps [@types/webpack-env](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webpack-env) from 1.16.0 to 1.16.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webpack-env)

---
updated-dependencies:
- dependency-name: "@types/webpack-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 04:06:00 +00:00
Eugene Pankov
025d2d1748 fixed relative symlink resolution - fixes #4119 2021-07-04 19:35:27 +02:00
Eugene Pankov
e17ba8c351 move createSession() into session 2021-07-04 17:11:21 +02:00
dependabot[bot]
d3dee44475 Bump webpack from 5.41.0 to 5.42.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.41.0 to 5.42.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.41.0...v5.42.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 14:54:10 +00:00
dependabot[bot]
0f0699d46a Bump @ng-bootstrap/ng-bootstrap from 9.1.1 to 10.0.0 in /app
Bumps [@ng-bootstrap/ng-bootstrap](https://github.com/ng-bootstrap/ng-bootstrap) from 9.1.1 to 10.0.0.
- [Release notes](https://github.com/ng-bootstrap/ng-bootstrap/releases)
- [Changelog](https://github.com/ng-bootstrap/ng-bootstrap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ng-bootstrap/ng-bootstrap/compare/9.1.1...10.0.0)

---
updated-dependencies:
- dependency-name: "@ng-bootstrap/ng-bootstrap"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 14:51:49 +00:00
dependabot[bot]
b7540e59a8 Bump ws from 7.4.4 to 7.5.2
Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.5.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.4...7.5.2)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 14:50:07 +00:00
Eugene Pankov
827345d899 added a telnet client - fixes #760 2021-07-04 16:48:48 +02:00
Eugene Pankov
59de67ca58 artifact names 2021-07-04 16:19:11 +02:00
Eugene Pankov
ccad826ca9 updated README links 2021-07-04 16:18:30 +02:00
dependabot[bot]
838acc0a23 Bump core-js from 3.14.0 to 3.15.2
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.14.0 to 3.15.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.15.2/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 13:15:14 +00:00
dependabot[bot]
804ae44ec8 Bump electron from 13.1.4 to 13.1.5
Bumps [electron](https://github.com/electron/electron) from 13.1.4 to 13.1.5.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v13.1.4...v13.1.5)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 13:13:52 +00:00
dependabot[bot]
5f04c3b74b Bump utils-decorators from 1.8.3 to 1.10.0 in /tabby-terminal
Bumps [utils-decorators](https://github.com/vlio20/utils-decorators) from 1.8.3 to 1.10.0.
- [Release notes](https://github.com/vlio20/utils-decorators/releases)
- [Commits](https://github.com/vlio20/utils-decorators/commits/1.10.0)

---
updated-dependencies:
- dependency-name: utils-decorators
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 13:10:28 +00:00
dependabot[bot]
4afd49e38c Bump utils-decorators from 1.8.3 to 1.10.0 in /tabby-local
Bumps [utils-decorators](https://github.com/vlio20/utils-decorators) from 1.8.3 to 1.10.0.
- [Release notes](https://github.com/vlio20/utils-decorators/releases)
- [Commits](https://github.com/vlio20/utils-decorators/commits/1.10.0)

---
updated-dependencies:
- dependency-name: utils-decorators
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 13:10:21 +00:00
dependabot[bot]
ba32c69001 Bump utils-decorators from 1.8.3 to 1.10.0 in /tabby-settings
Bumps [utils-decorators](https://github.com/vlio20/utils-decorators) from 1.8.3 to 1.10.0.
- [Release notes](https://github.com/vlio20/utils-decorators/releases)
- [Commits](https://github.com/vlio20/utils-decorators/commits/1.10.0)

---
updated-dependencies:
- dependency-name: utils-decorators
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 13:10:04 +00:00
dependabot[bot]
e9a3947488 Bump actions/setup-node from 2.1.5 to 2.2.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.1.5 to 2.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.1.5...v2.2.0)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-04 13:09:55 +00:00
Eugene Pankov
b2f4b44123 workflow update 2021-07-04 15:09:34 +02:00
Eugene Pankov
f4eacc1d66 build workflow update 2021-07-04 15:06:27 +02:00
Eugene Pankov
9155104662 moved stream processing into tabby-terminal 2021-07-04 14:05:25 +02:00
Eugene Pankov
cbbd38ca83 lint 2021-07-04 14:05:13 +02:00
Eugene Pankov
e5cf72e79b context menu dep fix 2021-07-04 14:04:40 +02:00
Eugene Pankov
a71d9c0727 fixed default profile names 2021-07-04 13:47:54 +02:00
Eugene Pankov
26e2c60265 option to always ask for baud rate 2021-07-04 13:47:38 +02:00
Eugene Pankov
a5a0546e68 config migration fix 2021-07-04 13:06:00 +02:00
Eugene Pankov
92b34fbc08 new profile system 2021-07-04 12:23:27 +02:00
Eugene Pankov
38b7e44f64 updated plugin links 2021-07-02 00:39:27 +02:00
Eugene Pankov
3aa957a3f5 updated to-string-loader 2021-07-02 00:39:17 +02:00
Eugene Pankov
cb06a8e493 handle legacy plugins in plugin loader 2021-07-02 00:09:32 +02:00
Eugene Pankov
4569126322 provide legacy requires for terminus-* modules 2021-07-01 23:57:21 +02:00
Eugene Pankov
db8c534d0a bumped plugin versions 2021-07-01 22:56:23 +02:00
Eugene Pankov
4ee4a7e5fa new ko-fi button 2021-07-01 22:25:08 +02:00
Eugene Pankov
bf6c75de2b title pic update 2021-07-01 22:15:58 +02:00
Eugene Pankov
ced8557517 new repo name 2021-07-01 22:10:12 +02:00
Eugene Pankov
093f79df4e Merge branch 'master' of github.com:Eugeny/terminus 2021-07-01 21:57:40 +02:00
Eugene Pankov
5a3a39e795 Update pluginManager.service.ts 2021-07-01 21:57:28 +02:00
Eugene Pankov
0cf4945175 back to stock node-pty 2021-06-30 18:32:18 +02:00
Eugene Pankov
43cd3318da project rename 2021-06-29 23:57:04 +02:00
Eugene
1c43eb94f6 Merge pull request #4078 from Eugeny/dependabot/npm_and_yarn/webpack-5.41.0
Bump webpack from 5.40.0 to 5.41.0
2021-06-29 09:04:09 +02:00
Eugene
972df1ac11 Merge pull request #4071 from Eugeny/dependabot/npm_and_yarn/types/node-15.12.5
Bump @types/node from 15.6.1 to 15.12.5
2021-06-29 09:03:49 +02:00
Eugene
79b15658b9 Merge pull request #4083 from Eugeny/all-contributors/add-bdr99 2021-06-29 09:03:43 +02:00
Eugene
ef65859c9a Merge pull request #4069 from Eugeny/dependabot/npm_and_yarn/app/types/node-15.12.5
Bump @types/node from 15.12.1 to 15.12.5 in /app
2021-06-29 09:03:35 +02:00
allcontributors[bot]
e932b07fc1 docs: update .all-contributorsrc [skip ci] 2021-06-29 07:03:04 +00:00
allcontributors[bot]
44f69d66e2 docs: update README.md [skip ci] 2021-06-29 07:03:03 +00:00
Eugene
de9d1f2aae Merge pull request #4077 from bdr99/patch-1 2021-06-29 09:02:50 +02:00
dependabot[bot]
ce584fa9b9 Bump webpack from 5.40.0 to 5.41.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.40.0 to 5.41.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.40.0...v5.41.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-29 04:04:26 +00:00
Brandon Rothweiler
2f03c7cea7 Update "maximized" icon to be more consistent with standard Windows UI
Thanks for fixing my issue https://github.com/Eugeny/terminus/issues/2712! I noticed that the icon has a horizontal bar which makes it look quite different from most Windows applications. This PR removes the bar to make the icon match most other Windows applications.
2021-06-28 22:40:15 -04:00
Eugene Pankov
c61be3d52b workflow fixes 2021-06-29 00:42:56 +02:00
Eugene
1d6e0ac2e7 Merge pull request #4070 from Eugeny/dependabot/npm_and_yarn/typedoc-0.21.2
Bump typedoc from 0.20.36 to 0.21.2
2021-06-28 22:45:45 +02:00
Eugene
758faf3189 Merge pull request #3997 from Eugeny/dependabot/npm_and_yarn/sentry/electron-2.5.0
Bump @sentry/electron from 2.4.1 to 2.5.0
2021-06-28 22:45:30 +02:00
Eugene Pankov
0452f42c41 added hotkeys to loop through panes - fixes #3417 2021-06-28 22:41:08 +02:00
Eugene Pankov
6197215500 support IPv6 in SSH quick connect field - fixes #3957 2021-06-28 22:30:55 +02:00
Eugene Pankov
6d0293975d properly broadcast ctrl-c - fixes #3961 2021-06-28 22:21:52 +02:00
Eugene Pankov
30a8a8d287 added SubscriptionContainer.isEmpty 2021-06-28 22:21:35 +02:00
Eugene Pankov
1198ede0fd prevent "history restored" popping up in ssh splits 2021-06-28 22:21:22 +02:00
Eugene Pankov
90affc3efb Update transfersMenu.component.ts 2021-06-28 22:10:46 +02:00
Eugene Pankov
3b25645154 sftp: added size and speed display 2021-06-28 22:08:40 +02:00
Eugene Pankov
30265699d4 fixed window-restore icon - fixes #2712 2021-06-28 21:50:16 +02:00
Eugene Pankov
63355d1a74 added an option to reuse private keys stored in the vault 2021-06-28 21:32:12 +02:00
Eugene Pankov
52c37f8988 added a vscode launch configuration 2021-06-27 19:29:43 +02:00
Eugene Pankov
0ed6575213 more Linux deps 2021-06-27 19:16:32 +02:00
Eugene Pankov
406baafd8d pass the web connector via an angular provider 2021-06-27 19:08:37 +02:00
Eugene Pankov
45e6844931 added info on Linux build deps 2021-06-27 19:08:18 +02:00
Eugene Pankov
4db4d49187 fixed doubled event handling - fixes #4054 2021-06-27 12:56:12 +02:00
Eugene Pankov
8a1a3ce002 fixed shell integration installed - fixes #4039 2021-06-27 11:27:45 +02:00
dependabot[bot]
987a02b2fe Bump @types/node from 15.6.1 to 15.12.5
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 15.6.1 to 15.12.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-27 09:17:27 +00:00
dependabot[bot]
0267b454d2 Bump @sentry/electron from 2.4.1 to 2.5.0
Bumps [@sentry/electron](https://github.com/getsentry/sentry-electron) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/getsentry/sentry-electron/releases)
- [Changelog](https://github.com/getsentry/sentry-electron/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-electron/compare/2.4.1...2.5.0)

---
updated-dependencies:
- dependency-name: "@sentry/electron"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-27 09:16:50 +00:00
dependabot[bot]
310e956ce8 Bump typedoc from 0.20.36 to 0.21.2
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.20.36 to 0.21.2.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.20.36...v0.21.2)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-27 09:15:58 +00:00
Eugene Pankov
77a2113411 fixed official plugins not being marked as such 2021-06-27 11:04:56 +02:00
Eugene Pankov
fce8565835 allow forcing ssh agent type 2021-06-27 10:46:59 +02:00
Eugene Pankov
5a894ebfd3 bumped sass-loader 2021-06-27 10:45:28 +02:00
Eugene
353b9b5ec8 Merge pull request #4067 from Eugeny/all-contributors/add-ydcool 2021-06-27 10:30:31 +02:00
dependabot[bot]
1fc73dca0b Bump @types/node from 15.12.1 to 15.12.5 in /app
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 15.12.1 to 15.12.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-27 08:21:26 +00:00
Eugene
009c2e9478 Merge pull request #4017 from Eugeny/dependabot/npm_and_yarn/app/serialport-9.2.0
Bump serialport from 9.1.0 to 9.2.0 in /app
2021-06-27 10:20:16 +02:00
Eugene
8ee2bff9a8 Merge pull request #4027 from Eugeny/dependabot/npm_and_yarn/typescript-eslint/parser-4.28.0
Bump @typescript-eslint/parser from 4.26.0 to 4.28.0
2021-06-27 10:20:02 +02:00
Eugene
395bcbc2cb Merge pull request #4028 from Eugeny/dependabot/npm_and_yarn/webpack-5.40.0
Bump webpack from 5.38.1 to 5.40.0
2021-06-27 10:19:49 +02:00
Eugene
9ef870e793 Merge pull request #4050 from Eugeny/dependabot/npm_and_yarn/node-sass-6.0.1
Bump node-sass from 6.0.0 to 6.0.1
2021-06-27 10:18:49 +02:00
Eugene
51eb616750 Merge pull request #3985 from Eugeny/dependabot/npm_and_yarn/tslib-2.3.0 2021-06-27 10:18:25 +02:00
Eugene
33c32d8c28 Merge pull request #4048 from Eugeny/dependabot/npm_and_yarn/app/fontmanager-redux-1.1.0 2021-06-27 10:17:26 +02:00
Eugene
e29e39b5e4 Merge pull request #4051 from Eugeny/dependabot/npm_and_yarn/style-loader-3.0.0
Bump style-loader from 2.0.0 to 3.0.0
2021-06-27 10:17:14 +02:00
Eugene Pankov
effe66f5b7 only sign builds on master branch 2021-06-27 10:16:53 +02:00
Eugene
a907978825 Merge pull request #4061 from ydcool/trim-ssh-host
fix #4060: trim spaces for ssh host
2021-06-27 10:13:30 +02:00
allcontributors[bot]
f42d4e0eb4 docs: update .all-contributorsrc [skip ci] 2021-06-27 08:13:28 +00:00
allcontributors[bot]
f0628e68d5 docs: update README.md [skip ci] 2021-06-27 08:13:27 +00:00
Dominic Yin
b3b6ca6f43 fix #4060: trim spaces for ssh host 2021-06-26 13:26:45 +08:00
Eugene Pankov
722f91da0c moved the last polyfills into we 2021-06-25 21:55:34 +02:00
Eugene Pankov
655079741a exclude ssh native deps from build 2021-06-25 19:42:07 +02:00
Eugene Pankov
307f598be0 compile ssh2 into the bundle again 2021-06-25 19:08:45 +02:00
Eugene Pankov
3aeac5610b potentially fix agent auth bug 2021-06-25 17:27:17 +02:00
Eugene Pankov
d1b10fefae only use bracketed paste when advertised by the shell - fixes #4042 2021-06-25 16:35:14 +02:00
Eugene Pankov
a1172cff6a Update macos.yml 2021-06-25 15:54:31 +02:00
Eugene Pankov
ab8d61067d kill cpu-features on arm64 mac 2021-06-25 15:53:20 +02:00
dependabot[bot]
f36c7e5e3f Bump style-loader from 2.0.0 to 3.0.0
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 2.0.0 to 3.0.0.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v2.0.0...v3.0.0)

---
updated-dependencies:
- dependency-name: style-loader
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-25 04:05:51 +00:00
dependabot[bot]
0839b51837 Bump node-sass from 6.0.0 to 6.0.1
Bumps [node-sass](https://github.com/sass/node-sass) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v6.0.0...v6.0.1)

---
updated-dependencies:
- dependency-name: node-sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-25 04:05:18 +00:00
dependabot[bot]
a9c36e695b Bump fontmanager-redux from 1.0.0 to 1.1.0 in /app
Bumps [fontmanager-redux](https://github.com/Eugeny/fontmanager-redux) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/Eugeny/fontmanager-redux/releases)
- [Commits](https://github.com/Eugeny/fontmanager-redux/compare/v1.0.0...v1.1.0)

---
updated-dependencies:
- dependency-name: fontmanager-redux
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-25 04:03:58 +00:00
dependabot[bot]
cdf8bb34fa Bump tslib from 2.2.0 to 2.3.0
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/2.2.0...2.3.0)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-23 10:51:17 +00:00
Eugene
fe3a1a58f6 Merge pull request #3994 from Eugeny/dependabot/npm_and_yarn/app/electron/remote-1.2.0
Bump @electron/remote from 1.0.4 to 1.2.0 in /app
2021-06-23 12:47:20 +02:00
Eugene
cedbadee39 Merge pull request #4011 from Eugeny/dependabot/npm_and_yarn/eslint-7.29.0 2021-06-23 12:46:12 +02:00
Eugene
55b1792720 Merge pull request #4035 from Eugeny/dependabot/npm_and_yarn/electron-13.1.4 2021-06-23 12:45:36 +02:00
dependabot[bot]
75db896e0b Bump electron from 13.1.1 to 13.1.4
Bumps [electron](https://github.com/electron/electron) from 13.1.1 to 13.1.4.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v13.1.1...v13.1.4)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-23 04:03:39 +00:00
Eugene Pankov
7cfed6ff23 web socket constructor 2021-06-22 11:51:52 +02:00
Eugene Pankov
49f1176591 Update yarn.lock 2021-06-22 11:51:47 +02:00
Eugene Pankov
e9e6211725 show blacklisted plugins in plugin manager 2021-06-22 11:51:45 +02:00
Eugene Pankov
170ef76721 fixed macOS Monterey compat 2021-06-22 11:51:30 +02:00
Eugene Pankov
e6d449894d bumped plugins 2021-06-22 11:51:19 +02:00
dependabot[bot]
acc4eddf8f Bump webpack from 5.38.1 to 5.40.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.38.1 to 5.40.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.38.1...v5.40.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-22 04:04:23 +00:00
dependabot[bot]
93f58bb7aa Bump @typescript-eslint/parser from 4.26.0 to 4.28.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.26.0 to 4.28.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-22 04:03:58 +00:00
dependabot[bot]
8cc934ad5f Bump serialport from 9.1.0 to 9.2.0 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 9.1.0 to 9.2.0.
- [Release notes](https://github.com/serialport/node-serialport/releases)
- [Changelog](https://github.com/serialport/node-serialport/blob/master/CHANGELOG.md)
- [Commits](https://github.com/serialport/node-serialport/compare/@serialport/bindings@9.1.0...@serialport/bindings@9.2.0)

---
updated-dependencies:
- dependency-name: serialport
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 04:03:08 +00:00
dependabot[bot]
a96745b2a7 Bump eslint from 7.27.0 to 7.29.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.27.0 to 7.29.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.27.0...v7.29.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-19 20:02:48 +00:00
dependabot[bot]
560045f69d Bump @electron/remote from 1.0.4 to 1.2.0 in /app
Bumps [@electron/remote](https://github.com/electron/remote) from 1.0.4 to 1.2.0.
- [Release notes](https://github.com/electron/remote/releases)
- [Changelog](https://github.com/electron/remote/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/remote/compare/v1.0.4...v1.2.0)

---
updated-dependencies:
- dependency-name: "@electron/remote"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-17 04:02:46 +00:00
723 changed files with 13081 additions and 10395 deletions

View File

@@ -388,10 +388,55 @@
"contributions": [
"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"
]
},
{
"login": "logicmachine123",
"name": "Logic Machine",
"avatar_url": "https://avatars.githubusercontent.com/u/63876444?v=4",
"profile": "https://git.io/JnP49",
"contributions": [
"doc"
]
},
{
"login": "cypherbits",
"name": "cypherbits",
"avatar_url": "https://avatars.githubusercontent.com/u/10424900?v=4",
"profile": "https://github.com/cypherbits",
"contributions": [
"doc"
]
},
{
"login": "KingMob",
"name": "Matthew Davidson",
"avatar_url": "https://avatars.githubusercontent.com/u/946421?v=4",
"profile": "https://modulolotus.net",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
"projectName": "terminus",
"projectName": "tabby",
"projectOwner": "Eugeny",
"repoType": "github",
"repoHost": "https://github.com",

View File

@@ -36,7 +36,9 @@ rules:
'@typescript-eslint/prefer-readonly': off
'@typescript-eslint/require-await': off
'@typescript-eslint/strict-boolean-expressions': off
'@typescript-eslint/no-misused-promises': off
'@typescript-eslint/no-misused-promises':
- error
- checksVoidReturn: false
'@typescript-eslint/typedef': off
'@typescript-eslint/consistent-type-imports': off
'@typescript-eslint/sort-type-union-intersection-members': off
@@ -95,7 +97,9 @@ rules:
- error
- single
- allowTemplateLiterals: true
'@typescript-eslint/no-confusing-void-expression': off
'@typescript-eslint/no-confusing-void-expression':
- error
- ignoreArrowShorthand: true
'@typescript-eslint/no-non-null-assertion': off
'@typescript-eslint/no-unnecessary-condition':
- error
@@ -116,3 +120,4 @@ rules:
'@typescript-eslint/no-var-requires': off
'@typescript-eslint/no-unsafe-argument': off
'@typescript-eslint/restrict-plus-operands': off
'@typescript-eslint/space-infix-ops': off

2
.github/FUNDING.yml vendored
View File

@@ -1,3 +1,3 @@
github: eugeny
open_collective: terminus
open_collective: tabby
ko_fi: eugeny

View File

@@ -13,55 +13,55 @@ updates:
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-core"
directory: "/tabby-core"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-settings"
directory: "/tabby-settings"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-terminal"
directory: "/tabby-terminal"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-local"
directory: "/tabby-local"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-community-color-schemes"
directory: "/tabby-community-color-schemes"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-electron"
directory: "/tabby-electron"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-web"
directory: "/tabby-web"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-plugin-manager"
directory: "/tabby-plugin-manager"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 20
- package-ecosystem: npm
directory: "/terminus-ssh"
directory: "/tabby-ssh"
schedule:
interval: daily
time: "04:00"

300
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,300 @@
name: Package-Build
on: [push, pull_request]
jobs:
Lint:
runs-on: macos-11.0
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.2.0
with:
node-version: 14
- name: Install deps
run: |
npm i -g yarn@1.19.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
- name: Build typings
run: yarn run build:typings
- name: Lint
run: yarn run lint
macOS-Build:
runs-on: macos-11.0
needs: Lint
strategy:
matrix:
include:
- arch: x86_64
- arch: arm64
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.2.0
with:
node-version: 14
- name: Install deps
run: |
sudo npm i -g yarn@1.22.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
- name: Build native deps
run: scripts/build-native.js
env:
ARCH: ${{matrix.arch}}
- name: Build native deps
run: |
rm -rf app/node_modules/cpu-features
rm -rf app/node_modules/ssh2/crypto/build
if: ${{ matrix.arch == 'arm64' }}
- name: Webpack
run: yarn run build
- name: Prepackage plugins
run: scripts/prepackage-plugins.js
env:
ARCH: ${{matrix.arch}}
- run: sed -i '' 's/updateInfo = await/\/\/updateInfo = await/g' node_modules/app-builder-lib/out/targets/ArchiveTarget.js
- name: Build and sign packages
run: scripts/build-macos.js
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
env:
ARCH: ${{matrix.arch}}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPSTORE_USERNAME: ${{ secrets.APPSTORE_USERNAME }}
APPSTORE_PASSWORD: ${{ secrets.APPSTORE_PASSWORD }}
USE_HARD_LINKS: false
# DEBUG: electron-builder,electron-builder:*
- name: Build packages without signing
run: scripts/build-macos.js
if: "! (github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
env:
ARCH: ${{matrix.arch}}
# DEBUG: electron-builder,electron-builder:*
- name: Upload symbols
run: |
sudo npm install -g @sentry/cli --unsafe-perm
./scripts/sentry-upload.js
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Package artifacts
run: |
mkdir artifact-pkg
mv dist/*.pkg artifact-pkg/
mkdir artifact-zip
mv dist/*.zip artifact-zip/
- uses: actions/upload-artifact@master
name: Upload PKG
with:
name: macOS .pkg (${{matrix.arch}})
path: artifact-pkg
- uses: actions/upload-artifact@master
name: Upload ZIP
with:
name: macOS .zip (${{matrix.arch}})
path: artifact-zip
Linux-Build:
runs-on: ubuntu-18.04
needs: Lint
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Install Node
uses: actions/setup-node@v2.2.0
with:
node-version: 14
- name: Install deps
run: |
sudo apt-get update
sudo apt-get install bsdtar zsh
npm i -g yarn@1.19.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
npm run patch
- name: Build native deps
run: scripts/build-native.js
- name: Webpack
run: yarn run build
- name: Prepackage plugins
run: scripts/prepackage-plugins.js
- name: Build packages
run: scripts/build-linux.js
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
USE_HARD_LINKS: false
# DEBUG: electron-builder,electron-builder:*
- name: Build web resources
run: zsh -c 'tar czf tabby-web.tar.gz (tabby-*|web)/dist'
- name: Upload symbols
run: |
sudo npm install -g @sentry/cli --unsafe-perm
./scripts/sentry-upload.js
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Package artifacts
run: |
mkdir artifact-deb
mv dist/*.deb artifact-deb/ || true
mkdir artifact-rpm
mv dist/*.rpm artifact-rpm/ || true
mkdir artifact-pacman
mv dist/*.pacman artifact-pacman/ || true
mkdir artifact-snap
mv dist/*.snap artifact-snap/ || true
mkdir artifact-tar.gz
mv dist/*.tar.gz artifact-tar.gz/ || true
mkdir artifact-web
mv tabby-web.tar.gz artifact-web/ || true
- uses: actions/upload-artifact@master
name: Upload DEB
with:
name: Linux DEB
path: artifact-deb
- uses: actions/upload-artifact@master
name: Upload RPM
with:
name: Linux RPM
path: artifact-rpm
- uses: actions/upload-artifact@master
name: Upload Pacman Package
with:
name: Linux Pacman
path: artifact-pacman
- uses: actions/upload-artifact@master
name: Upload Snap
with:
name: Linux Snap
path: artifact-snap
- uses: actions/upload-artifact@master
name: Upload Linux tarball
with:
name: Linux tarball
path: artifact-tar.gz
- uses: actions/upload-artifact@master
name: Upload web tarball
with:
name: Web tarball
path: artifact-web
Windows-Build:
runs-on: windows-2016
needs: Lint
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.2.0
with:
node-version: 14
- name: Build
shell: powershell
run: |
npm i -g yarn@1.19.1
yarn
node scripts/build-native.js
yarn run build
node scripts/prepackage-plugins.js
- name: Build and sign packages
run: node scripts/build-windows.js
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
# DEBUG: electron-builder,electron-builder:*
- name: Build packages without signing
run: node scripts/build-windows.js
if: "!(github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
- name: Upload symbols
run: |
npm install @sentry/cli
node scripts/sentry-upload.js
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Package artifacts
run: |
mkdir artifact-setup
mv dist/*-setup.exe artifact-setup/
mkdir artifact-portable
mv dist/*-portable.zip artifact-portable/
- uses: actions/upload-artifact@master
name: Upload installer
with:
name: Windows installer
path: artifact-setup
- uses: actions/upload-artifact@master
name: Upload portable build
with:
name: Windows portable build
path: artifact-portable

View File

@@ -12,7 +12,7 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.1.5
uses: actions/setup-node@v2.2.0
with:
node-version: 14

View File

@@ -1,31 +0,0 @@
name: Lint
on: [push, pull_request]
jobs:
build:
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.1.5
with:
node-version: 14
- name: Install deps
run: |
npm i -g yarn@1.19.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
- name: Build typings
run: yarn run build:typings
- name: Lint
run: yarn run lint

View File

@@ -1,107 +0,0 @@
name: Linux Build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-18.04
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Install Node
uses: actions/setup-node@v2.1.5
with:
node-version: 14
- name: Install deps
run: |
sudo apt-get update
sudo apt-get install bsdtar zsh
npm i -g yarn@1.19.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
npm run patch
- name: Build native deps
run: scripts/build-native.js
- name: Webpack
run: yarn run build
- name: Prepackage plugins
run: scripts/prepackage-plugins.js
- name: Build packages
run: scripts/build-linux.js
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
USE_HARD_LINKS: false
# DEBUG: electron-builder,electron-builder:*
- name: Build web resources
run: zsh -c 'tar czf terminus-web.tar.gz (terminus-*|web)/dist'
- name: Upload symbols
run: |
sudo npm install -g @sentry/cli --unsafe-perm
./scripts/sentry-upload.js
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Package artifacts
run: |
mkdir artifact-deb
mv dist/*.deb artifact-deb/ || true
mkdir artifact-rpm
mv dist/*.rpm artifact-rpm/ || true
mkdir artifact-pacman
mv dist/*.pacman artifact-pacman/ || true
mkdir artifact-snap
mv dist/*.snap artifact-snap/ || true
mkdir artifact-tar.gz
mv dist/*.tar.gz artifact-tar.gz/ || true
mkdir artifact-web
mv terminus-web.tar.gz artifact-web/ || true
- uses: actions/upload-artifact@master
name: Upload DEB
with:
name: Linux DEB
path: artifact-deb
- uses: actions/upload-artifact@master
name: Upload RPM
with:
name: Linux RPM
path: artifact-rpm
- uses: actions/upload-artifact@master
name: Upload Pacman Package
with:
name: Linux Pacman
path: artifact-pacman
- uses: actions/upload-artifact@master
name: Upload Snap
with:
name: Linux Snap
path: artifact-snap
- uses: actions/upload-artifact@master
name: Upload Linux tarball
with:
name: Linux tarball
path: artifact-tar.gz
- uses: actions/upload-artifact@master
name: Upload web tarball
with:
name: Web tarball
path: artifact-web

View File

@@ -1,93 +0,0 @@
name: macOS Build
on: [push, pull_request]
jobs:
build:
runs-on: macos-11.0
strategy:
matrix:
include:
- arch: x86_64
- arch: arm64
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.1.5
with:
node-version: 14
- name: Install deps
run: |
sudo npm i -g yarn@1.22.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
- name: Build native deps
run: scripts/build-native.js
env:
ARCH: ${{matrix.arch}}
- name: Webpack
run: yarn run build
- name: Prepackage plugins
run: scripts/prepackage-plugins.js
env:
ARCH: ${{matrix.arch}}
- run: sed -i '' 's/updateInfo = await/\/\/updateInfo = await/g' node_modules/app-builder-lib/out/targets/ArchiveTarget.js
- name: Build and sign packages
run: scripts/build-macos.js
if: github.repository == 'Eugeny/terminus' && github.event_name == 'push'
env:
ARCH: ${{matrix.arch}}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPSTORE_USERNAME: ${{ secrets.APPSTORE_USERNAME }}
APPSTORE_PASSWORD: ${{ secrets.APPSTORE_PASSWORD }}
USE_HARD_LINKS: false
# DEBUG: electron-builder,electron-builder:*
- name: Build packages without signing
run: scripts/build-macos.js
if: github.repository != 'Eugeny/terminus' || github.event_name != 'push'
env:
ARCH: ${{matrix.arch}}
# DEBUG: electron-builder,electron-builder:*
- name: Upload symbols
run: |
sudo npm install -g @sentry/cli --unsafe-perm
./scripts/sentry-upload.js
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Package artifacts
run: |
mkdir artifact-pkg
mv dist/*.pkg artifact-pkg/
mkdir artifact-zip
mv dist/*.zip artifact-zip/
- uses: actions/upload-artifact@master
name: Upload PKG
with:
name: macOS .pkg (${{matrix.arch}})
path: artifact-pkg
- uses: actions/upload-artifact@master
name: Upload ZIP
with:
name: macOS .zip (${{matrix.arch}})
path: artifact-zip

View File

@@ -1,66 +0,0 @@
name: Windows Build
on: [push, pull_request]
jobs:
build:
runs-on: windows-2016
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.1.5
with:
node-version: 14
- name: Build
shell: powershell
run: |
npm i -g yarn@1.19.1
yarn
node scripts/build-native.js
yarn run build
node scripts/prepackage-plugins.js
- name: Build and sign packages
run: node scripts/build-windows.js
if: github.repository == 'Eugeny/terminus' && github.event_name == 'push'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
# DEBUG: electron-builder,electron-builder:*
- name: Build packages without signing
run: node scripts/build-windows.js
if: github.repository != 'Eugeny/terminus' || github.event_name != 'push'
- name: Upload symbols
run: |
npm install @sentry/cli
node scripts/sentry-upload.js
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Package artifacts
run: |
mkdir artifact-setup
mv dist/*-setup.exe artifact-setup/
mkdir artifact-portable
mv dist/*-portable.zip artifact-portable/
- uses: actions/upload-artifact@master
name: Upload installer
with:
name: Installer
path: artifact-setup
- uses: actions/upload-artifact@master
name: Upload portable build
with:
name: Portable build
path: artifact-portable

2
.gitignore vendored
View File

@@ -32,5 +32,5 @@ docs/api
sentry.properties
sentry-symbols.js
terminus-ssh/util/pagent.exe
tabby-ssh/util/pagent.exe
*.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'

39
.vscode/launch.json vendored Normal file
View 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"
]
}
]
}

View File

@@ -1,18 +1,27 @@
# 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
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:
```
# macOS/Linux:
# macOS:
yarn
./scripts/build-native.js
```
```
# Linux (Debian/Ubuntu here as an example)
sudo apt install libfontconfig-dev libsecret-1-dev libarchive-tools libnss3 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm1 cmake
yarn
./scripts/build-native.js
```
```
# Windows:
npm -g install windows-build-tools
yarn
@@ -25,34 +34,50 @@ Now, check if your build is working:
yarn run build
```
Start Terminus with
Start Tabby with
```
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
```
terminus
tabby
├─ app # Electron app, just the bare essentials
| ├─ src # Electron renderer code
| └─ main.js # Electron main entry point
├─ build
├─ clink # Clink distributive, for Windows
├─ scripts # Maintenance scripts
├─ terminus-community-color-schemes # Plugin that provides color schemes
├─ terminus-core # Plugin that provides base UI and tab management
├─ terminus-electron # Plugin that provides Electron-specific functions
─ terminus-local # Plugin that provides local shells and profiles
├─ terminus-plugin-manager # Plugin that installs other plugins
├─ terminus-settings # Plugin that provides the settings tab
─ terminus-terminal # Plugin that provides terminal tabs
─ terminus-web # Plugin that provides web-specific functions
├─ tabby-community-color-schemes # Plugin that provides color schemes
├─ tabby-core # Plugin that provides base UI and tab management
├─ tabby-electron # Plugin that provides Electron-specific functions
─ tabby-local # Plugin that provides local shells and profiles
├─ tabby-plugin-manager # Plugin that installs other plugins
├─ tabby-settings # Plugin that provides the settings tab
─ tabby-terminal # Plugin that provides terminal tabs
─ tabby-web # Plugin that provides web-specific functions
```
# Plugin layout
```
terminus-pluginname
tabby-pluginname
├─ src # Typescript code
| ├─ components # Angular components
| | ├─ foo.component.ts # Code
@@ -69,11 +94,11 @@ terminus-pluginname
# 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.
@@ -93,7 +118,7 @@ Plugins provide functionality by exporting singular or multi providers:
```javascript
import { NgModule, Injectable } from '@angular/core'
import { ToolbarButtonProvider, ToolbarButton } from 'terminus-core'
import { ToolbarButtonProvider, ToolbarButton } from 'tabby-core'
@Injectable()
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.

117
README.md
View File

@@ -2,12 +2,18 @@
<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> &nbsp; <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> &nbsp; <a href="https://matrix.to/#/#tabby-general:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/tabby-general:matrix.org?logo=matrix&style=for-the-badge&color=magenta"></a>
</p>
<p align="center">
<a href="https://ko-fi.com/J3J8KWTF">
<img src="https://ko-fi.com/img/githubbutton_sm.svg">
</a>
</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 serial terminal
@@ -22,14 +28,12 @@
* Proper shell experience on Windows including tab completion (via Clink)
* Integrated encrypted container for SSH secrets and configuration
[![Buy me a coffee](https://github.com/Eugeny/terminus/raw/master/docs/kofi.png)](https://ko-fi.com/eugeny)
---
# 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)
- [SSH Client](#ssh-client)
- [Serial Terminal](#serial-terminal)
@@ -39,11 +43,11 @@
- [Contributing](#contributing)
<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>
# Terminal features
@@ -84,25 +88,25 @@
<a name="portable"></a>
# 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>
# 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/tabby-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
* [quick-cmds](https://github.com/Domain/terminus-quick-cmds) - quickly send commands to one or all terminal tabs
* [save-output](https://github.com/Eugeny/terminus-save-output) - record terminal output into a file
* [save-output](https://github.com/Eugeny/tabby-save-output) - record terminal output into a file
* [scrollbar](https://github.com/kbjr/terminus-scrollbar) - adds a scrollbar to hterm tabs
* [sync-config](https://github.com/starxg/terminus-sync-config) - sync the config to Gist or Gitee
<a name="themes"></a>
# Themes
* [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
* [hype](https://github.com/Eugeny/tabby-theme-hype) - a Hyper inspired theme
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - the Relaxed theme for Tabby
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox)
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10)
* [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!
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>
@@ -124,59 +128,66 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<!-- markdownlint-disable -->
<table>
<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.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="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/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/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/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="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/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/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/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/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/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>
</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://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://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://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/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/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.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="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="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://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/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/tabby/commits?author=mischah" title="Code">💻</a> <a href="#design-mischah" title="Design">🎨</a></td>
</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="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="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://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="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://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="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/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/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/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/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/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/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/tabby/commits?author=jack1142" title="Code">💻</a></td>
</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://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://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://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/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/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/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/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/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/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/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/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/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/tabby/commits?author=orin220444" title="Code">💻</a></td>
</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/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/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/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/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://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://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://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/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/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/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/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/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/tabby/commits?author=pinpins" title="Code">💻</a></td>
</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/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/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/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="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/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/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/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="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>
<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>
<td align="center"><a href="https://git.io/JnP49"><img src="https://avatars.githubusercontent.com/u/63876444?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Logic Machine</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=logicmachine123" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/cypherbits"><img src="https://avatars.githubusercontent.com/u/10424900?v=4?s=100" width="100px;" alt=""/><br /><sub><b>cypherbits</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cypherbits" title="Documentation">📖</a></td>
<td align="center"><a href="https://modulolotus.net"><img src="https://avatars.githubusercontent.com/u/946421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matthew Davidson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=KingMob" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
@@ -185,3 +196,5 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
<img src="https://ga-beacon.appspot.com/UA-3278102-18/github/readme" width="1"/>

View File

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

View File

@@ -1,5 +1,5 @@
doctype html
html.terminus
html.tabby
head
meta(charset='UTF-8')
base(href='index.html')
@@ -15,8 +15,8 @@ html.terminus
app-root
.preload-logo
div
.terminus-logo
h1.terminus-title Terminus
.tabby-logo
h1.tabby-title Tabby
sup α
.progress
.bar(style='width: 0%')

View File

@@ -154,7 +154,7 @@ export class Application {
this.tray.setContextMenu(contextMenu)
}
this.tray.setToolTip(`Terminus ${app.getVersion()}`)
this.tray.setToolTip(`Tabby ${app.getVersion()}`)
}
disableTray (): void {
@@ -195,7 +195,7 @@ export class Application {
{
label: 'Application',
submenu: [
{ role: 'about', label: 'About Terminus' },
{ role: 'about', label: 'About Tabby' },
{ type: 'separator' },
{
label: 'Preferences',
@@ -261,7 +261,7 @@ export class Application {
{
label: 'Website',
click () {
shell.openExternal('https://eugeny.github.io/terminus')
shell.openExternal('https://eugeny.github.io/tabby')
},
},
],

View File

@@ -6,7 +6,7 @@ export function parseArgs (argv: string[], cwd: string): any {
}
return require('yargs/yargs')(argv.slice(1))
.usage('terminus [command] [arguments]')
.usage('tabby [command] [arguments]')
.command('open [directory]', 'open a shell in a directory', {
directory: { type: 'string', 'default': cwd },
})
@@ -16,12 +16,6 @@ export function parseArgs (argv: string[], cwd: string): any {
.command('profile [profileName]', 'open a tab with specified profile', {
profileName: { type: 'string' },
})
.command('connect-ssh [connectionName]', 'open a tab for a saved SSH connection', {
connectionName: { type: 'string' },
})
.command('connect-serial [connectionName]', 'open a tab for a saved serial connection', {
connectionName: { type: 'string' },
})
.command('paste [text]', 'paste stdin into the active tab', yargs => {
return yargs.option('escape', {
alias: 'e',

View File

@@ -3,7 +3,20 @@ import * as path from 'path'
import * as yaml from 'js-yaml'
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 {
migrateConfig()
const configPath = path.join(app.getPath('userData'), 'config.yaml')
if (fs.existsSync(configPath)) {
return yaml.load(fs.readFileSync(configPath, 'utf8'))

View File

@@ -7,8 +7,8 @@ import { parseArgs } from './cli'
import { Application } from './app'
import electronDebug = require('electron-debug')
if (!process.env.TERMINUS_PLUGINS) {
process.env.TERMINUS_PLUGINS = ''
if (!process.env.TABBY_PLUGINS) {
process.env.TABBY_PLUGINS = ''
}
const application = new Application()

View File

@@ -4,9 +4,6 @@ import * as electron from 'electron'
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')
if (fs.existsSync(portableData)) {
console.log('reset user data to ' + portableData)

View File

@@ -1,4 +1,4 @@
import * as nodePTY from '@terminus-term/node-pty'
import * as nodePTY from 'node-pty'
import { StringDecoder } from './stringDecoder'
import { v4 as uuidv4 } from 'uuid'
import { ipcMain } from 'electron'

View File

@@ -8,7 +8,7 @@ try {
release = require('@electron/remote').app.getVersion()
}
if (!process.env.TERMINUS_DEV) {
if (!process.env.TABBY_DEV) {
init({
dsn: SENTRY_DSN,
release,

View File

@@ -1,7 +1,6 @@
import * as glasstron from 'glasstron'
import { Subject, Observable } from 'rxjs'
import { debounceTime } from 'rxjs/operators'
import { Subject, Observable, debounceTime } from 'rxjs'
import { BrowserWindow, app, ipcMain, Rectangle, Menu, screen, BrowserWindowConstructorOptions } from 'electron'
import ElectronConfig = require('electron-config')
import * as os from 'os'
@@ -56,7 +55,7 @@ export class Window {
const bwOptions: BrowserWindowConstructorOptions = {
width: 800,
height: 600,
title: 'Terminus',
title: 'Tabby',
minWidth: 400,
minHeight: 300,
webPreferences: {
@@ -118,7 +117,7 @@ export class Window {
})
this.window.on('blur', () => {
if (this.configStore.appearance.dock !== 'off' && this.configStore.appearance?.dockHideOnBlur) {
if ((this.configStore.appearance?.dock ?? 'off') !== 'off' && this.configStore.appearance?.dockHideOnBlur) {
this.hide()
}
})
@@ -304,17 +303,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 => {
if (!this.window || event.sender !== this.window.webContents) {
return
@@ -375,7 +363,7 @@ export class Window {
this.disableVibrancyWhileDragging = value
})
let moveEndedTimeout: number|null = null
let moveEndedTimeout: any = null
const onBoundsChange = () => {
if (!this.lastVibrancy?.enabled || !this.disableVibrancyWhileDragging) {
return

View File

@@ -1,8 +1,8 @@
{
"name": "terminus",
"name": "tabby",
"description": "A terminal for a modern age",
"private": true,
"repository": "https://github.com/eugeny/terminus",
"repository": "https://github.com/Eugeny/tabby",
"author": {
"name": "Eugene Pankov",
"email": "e@ajenti.org"
@@ -14,57 +14,46 @@
"watch": "webpack --progress --color --watch"
},
"dependencies": {
"@angular/animations": "^12.0.0",
"@angular/common": "^12.0.0",
"@angular/compiler": "^12.0.0",
"@angular/core": "^12.0.0",
"@angular/forms": "^12.0.0",
"@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.0.0",
"@electron/remote": "1.0.4",
"@ng-bootstrap/ng-bootstrap": "^9.1.1",
"@terminus-term/node-pty": "0.10.0-terminus.3",
"@electron/remote": "1.2.0",
"any-promise": "^1.3.0",
"electron-config": "2.0.0",
"electron-debug": "^3.2.0",
"electron-promise-ipc": "^2.2.4",
"fontmanager-redux": "1.0.0",
"fontmanager-redux": "1.1.0",
"glasstron": "0.0.7",
"js-yaml": "4.1.0",
"keytar": "^7.7.0",
"mz": "^2.7.0",
"native-process-working-directory": "^1.0.2",
"ngx-toastr": "^14.0.0",
"node-pty": "^0.10.1",
"npm": "6",
"rxjs": "^7.1.0",
"ssh2": "^1.1.0",
"yargs": "^17.0.1",
"zone.js": "^0.11.4"
"rxjs": "^7.2.0",
"source-map-support": "^0.5.19",
"yargs": "^17.0.1"
},
"optionalDependencies": {
"macos-native-processlist": "^2.0.0",
"serialport": "^9.1.0",
"serialport": "^9.2.0",
"windows-blurbehind": "^1.0.1",
"windows-native-registry": "^3.0.0",
"windows-native-registry": "^3.1.0",
"windows-process-tree": "^0.3.0"
},
"devDependencies": {
"@types/mz": "2.7.3",
"@types/node": "15.12.1",
"@types/mz": "2.7.4",
"@types/node": "16.0.1",
"ngx-filesize": "^2.0.16",
"node-abi": "^2.30.0",
"source-map-support": "^0.5.19"
"node-abi": "^2.30.0"
},
"peerDependencies": {
"terminus-community-color-schemes": "*",
"terminus-core": "*",
"terminus-electron": "*",
"terminus-local": "*",
"terminus-plugin-manager": "*",
"terminus-serial": "*",
"terminus-settings": "*",
"terminus-ssh": "*",
"terminus-terminal": "*"
"tabby-community-color-schemes": "*",
"tabby-core": "*",
"tabby-electron": "*",
"tabby-local": "*",
"tabby-plugin-manager": "*",
"tabby-serial": "*",
"tabby-settings": "*",
"tabby-ssh": "*",
"tabby-terminal": "*"
},
"resolutions": {
"*/node-abi": "^2.20.0"

View File

@@ -5,14 +5,16 @@ import 'rxjs'
import './global.scss'
import './toastr.scss'
// Importing before @angular/*
import { findPlugins, initModuleLookup, loadPlugins } from './plugins'
import { enableProdMode, NgModuleRef, ApplicationRef } from '@angular/core'
import { enableDebugTools } from '@angular/platform-browser'
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
import { ipcRenderer } from 'electron'
import { getRootModule } from './app.module'
import { findPlugins, initModuleLookup, loadPlugins } from './plugins'
import { BootstrapData, BOOTSTRAP_DATA } from '../../terminus-core/src/api/mainProcess'
import { BootstrapData, BOOTSTRAP_DATA, PluginInfo } from '../../tabby-core/src/api/mainProcess'
// Always land on the start view
location.hash = ''
@@ -23,18 +25,18 @@ if (process.platform === 'win32' && !('HOME' in process.env)) {
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')
} else {
enableProdMode()
}
async function bootstrap (bootstrapData: BootstrapData, safeMode = false): Promise<NgModuleRef<any>> {
async function bootstrap (bootstrapData: BootstrapData, plugins: PluginInfo[], safeMode = false): Promise<NgModuleRef<any>> {
if (safeMode) {
bootstrapData.installedPlugins = bootstrapData.installedPlugins.filter(x => x.isBuiltin)
plugins = plugins.filter(x => x.isBuiltin)
}
const pluginModules = await loadPlugins(bootstrapData.installedPlugins, (current, total) => {
const pluginModules = await loadPlugins(plugins, (current, total) => {
(document.querySelector('.progress .bar') as HTMLElement).style.width = `${100 * current / total}%` // eslint-disable-line
})
const module = getRootModule(pluginModules)
@@ -42,7 +44,7 @@ async function bootstrap (bootstrapData: BootstrapData, safeMode = false): Promi
const moduleRef = await platformBrowserDynamic([
{ provide: BOOTSTRAP_DATA, useValue: bootstrapData },
]).bootstrapModule(module)
if (process.env.TERMINUS_DEV) {
if (process.env.TABBY_DEV) {
const applicationRef = moduleRef.injector.get(ApplicationRef)
const componentRef = applicationRef.components[0]
enableDebugTools(componentRef)
@@ -56,21 +58,21 @@ ipcRenderer.once('start', async (_$event, bootstrapData: BootstrapData) => {
initModuleLookup(bootstrapData.userPluginsPath)
let plugins = await findPlugins()
bootstrapData.installedPlugins = plugins
if (bootstrapData.config.pluginBlacklist) {
plugins = plugins.filter(x => !bootstrapData.config.pluginBlacklist.includes(x.name))
}
plugins = plugins.filter(x => x.name !== 'web')
bootstrapData.installedPlugins = plugins
console.log('Starting with plugins:', plugins)
try {
await bootstrap(bootstrapData)
await bootstrap(bootstrapData, plugins)
} catch (error) {
console.error('Angular bootstrapping error:', error)
console.warn('Trying safe mode')
window['safeModeReason'] = error
try {
await bootstrap(bootstrapData, true)
await bootstrap(bootstrapData, plugins, true)
} catch (error2) {
console.error('Bootstrap failed:', error2)
}

View File

@@ -115,7 +115,8 @@ ngb-typeahead-window {
.hover-reveal-parent:hover &,
*:hover > &,
&:hover {
&:hover,
&.show {
opacity: 1;
}
}
@@ -158,3 +159,31 @@ ngb-typeahead-window {
text-overflow: ellipsis;
overflow: hidden;
}
.list-group-item > button {
margin: -7px 0;
}
// Windows high contrast mode
@media screen and (forced-colors: active) {
.custom-switch .custom-control-label::before {
background: buttonface;
}
.custom-switch .custom-control-label::after {
background: buttontext;
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
background: activetext;
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
background: canvas;
}
color-scheme-preview, terminaltab > .content {
forced-color-adjust: none;
}
}

View File

@@ -1,7 +1,7 @@
import * as fs from 'mz/fs'
import * as path from 'path'
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
@@ -16,70 +16,78 @@ function normalizePath (p: string): string {
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 cachedBuiltinModules = {
'@angular/animations': require('@angular/animations'),
'@angular/common': require('@angular/common'),
'@angular/compiler': require('@angular/compiler'),
'@angular/core': require('@angular/core'),
'@angular/forms': require('@angular/forms'),
'@angular/platform-browser': require('@angular/platform-browser'),
'@angular/platform-browser/animations': require('@angular/platform-browser/animations'),
'@angular/platform-browser-dynamic': require('@angular/platform-browser-dynamic'),
'@ng-bootstrap/ng-bootstrap': require('@ng-bootstrap/ng-bootstrap'),
'ngx-toastr': require('ngx-toastr'),
rxjs: require('rxjs'),
'rxjs/operators': require('rxjs/operators'),
'zone.js/dist/zone.js': require('zone.js/dist/zone.js'),
}
const builtinModules = [
'@angular/animations',
'@angular/common',
'@angular/compiler',
'@angular/core',
'@angular/forms',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@ng-bootstrap/ng-bootstrap',
'ngx-toastr',
'rxjs',
'rxjs/operators',
'terminus-core',
'terminus-local',
'terminus-settings',
'terminus-terminal',
'zone.js/dist/zone.js',
...Object.keys(cachedBuiltinModules),
'tabby-core',
'tabby-local',
'tabby-settings',
'tabby-terminal',
]
const originalRequire = (global as any).require
;(global as any).require = function (query: string) {
if (cachedBuiltinModules[query]) {
return cachedBuiltinModules[query]
}
return originalRequire.apply(this, [query])
}
const originalModuleRequire = nodeModule.prototype.require
nodeModule.prototype.require = function (query: string) {
if (cachedBuiltinModules[query]) {
return cachedBuiltinModules[query]
}
return originalModuleRequire.call(this, query)
}
export type ProgressCallback = (current: number, total: number) => void // eslint-disable-line @typescript-eslint/no-type-alias
export function initModuleLookup (userPluginsPath: string): void {
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(builtinPluginsPath)
nodeModule.globalPaths.unshift(path.join(userPluginsPath, 'node_modules'))
// nodeModule.globalPaths.unshift(path.join((process as any).resourcesPath, 'app.asar', 'node_modules'))
if (process.env.TERMINUS_PLUGINS) {
process.env.TERMINUS_PLUGINS.split(':').map(x => nodeModule.globalPaths.push(normalizePath(x)))
if (process.env.TABBY_PLUGINS) {
process.env.TABBY_PLUGINS.split(':').map(x => nodeModule.globalPaths.push(normalizePath(x)))
}
const cachedBuiltinModules = {}
builtinModules.forEach(m => {
cachedBuiltinModules[m] = nodeRequire(m)
if (!cachedBuiltinModules[m]) {
cachedBuiltinModules[m] = nodeRequire(m)
}
})
const originalRequire = (global as any).require
;(global as any).require = function (query: string) {
if (cachedBuiltinModules[query]) {
return cachedBuiltinModules[query]
}
return originalRequire.apply(this, [query])
}
const originalModuleRequire = nodeModule.prototype.require
nodeModule.prototype.require = function (query: string) {
if (cachedBuiltinModules[query]) {
return cachedBuiltinModules[query]
}
return originalModuleRequire.call(this, query)
}
}
export async function findPlugins (): Promise<PluginInfo[]> {
const paths = nodeModule.globalPaths
let foundPlugins: PluginInfo[] = []
const candidateLocations: { pluginDir: string, packageName: string }[] = []
const PREFIX = 'terminus-'
const PREFIX = 'tabby-'
const LEGACY_PREFIX = 'terminus-'
const processedPaths = []
@@ -101,7 +109,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
})
}
for (const packageName of pluginNames) {
if (packageName.startsWith(PREFIX)) {
if (packageName.startsWith(PREFIX) || packageName.startsWith(LEGACY_PREFIX)) {
candidateLocations.push({ pluginDir, packageName })
}
}
@@ -114,7 +122,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
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) {
continue
@@ -122,14 +130,20 @@ export async function findPlugins (): Promise<PluginInfo[]> {
console.log(`Found ${name} in ${pluginDir}`)
if (foundPlugins.some(x => x.name === name)) {
console.info(`Plugin ${packageName} already exists, overriding`)
foundPlugins = foundPlugins.filter(x => x.name !== name)
const existing = foundPlugins.find(x => x.name === name)
if (existing) {
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 {
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
}
let author = info.author
@@ -138,6 +152,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
name: name,
packageName: packageName,
isBuiltin: pluginDir === builtinPluginsPath,
isLegacy: info.keywords.includes('terminus-plugin') || info.keywords.includes('terminus-builtin-plugin'),
version: info.version,
description: info.description,
author,
@@ -150,6 +165,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
}
foundPlugins.sort((a, b) => a.name > b.name ? 1 : -1)
foundPlugins.sort((a, b) => a.isBuiltin < b.isBuiltin ? 1 : -1)
return foundPlugins
}
@@ -162,6 +178,9 @@ export async function loadPlugins (foundPlugins: PluginInfo[], progress: Progres
progress(index, foundPlugins.length)
try {
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
pluginModule.pluginName = foundPlugin.name
pluginModule.bootstrap = packageModule.bootstrap

View File

@@ -38,7 +38,7 @@
.terminus-logo {
.tabby-logo {
width: 120px;
height: 120px;
background: url('../assets/logo.svg');
@@ -48,7 +48,7 @@
}
.terminus-title {
.tabby-title {
color: #a1c5e4;
font-family: 'Source Sans Pro';
text-align: center;

View File

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

View File

@@ -2,7 +2,7 @@ const path = require('path')
const webpack = require('webpack')
module.exports = {
name: 'terminus',
name: 'tabby',
target: 'node',
entry: {
'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'),
bundle: path.resolve(__dirname, 'src/entry.ts'),
},
mode: process.env.TERMINUS_DEV ? 'development' : 'production',
mode: process.env.TABBY_DEV ? 'development' : 'production',
optimization:{
minimize: false,
},
@@ -31,9 +31,9 @@ module.exports = {
{
test: /\.ts$/,
use: {
loader: 'awesome-typescript-loader',
loader: 'ts-loader',
options: {
configFileName: path.resolve(__dirname, 'tsconfig.json'),
configFile: path.resolve(__dirname, 'tsconfig.json'),
},
},
},
@@ -60,23 +60,13 @@ module.exports = {
],
},
externals: {
'@angular/core': 'commonjs @angular/core',
'@angular/compiler': 'commonjs @angular/compiler',
'@angular/platform-browser': 'commonjs @angular/platform-browser',
'@angular/platform-browser-dynamic': 'commonjs @angular/platform-browser-dynamic',
'@angular/forms': 'commonjs @angular/forms',
'@angular/common': 'commonjs @angular/common',
'@ng-bootstrap/ng-bootstrap': 'commonjs @ng-bootstrap/ng-bootstrap',
'@electron/remote': 'commonjs @electron/remote',
child_process: 'commonjs child_process',
electron: 'commonjs electron',
fs: 'commonjs fs',
'ngx-toastr': 'commonjs ngx-toastr',
module: 'commonjs module',
mz: 'commonjs mz',
path: 'commonjs path',
rxjs: 'commonjs rxjs',
'zone.js': 'commonjs zone.js/dist/zone.js',
},
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),

View File

@@ -3,64 +3,61 @@ const webpack = require('webpack')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
module.exports = {
name: 'terminus-main',
target: 'electron-main',
entry: {
main: path.resolve(__dirname, 'lib/index.ts'),
},
mode: process.env.TERMINUS_DEV ? 'development' : 'production',
context: __dirname,
devtool: 'source-map',
output: {
path: path.join(__dirname, 'dist'),
pathinfo: true,
filename: '[name].js',
},
resolve: {
modules: ['lib/', 'node_modules', '../node_modules'].map(x => path.join(__dirname, x)),
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /\.ts$/,
use: {
loader: 'awesome-typescript-loader',
options: {
configFileName: path.resolve(__dirname, 'tsconfig.main.json'),
},
},
},
name: 'tabby-main',
target: 'electron-main',
entry: {
main: path.resolve(__dirname, 'lib/index.ts'),
},
mode: process.env.TABBY_DEV ? 'development' : 'production',
context: __dirname,
devtool: 'source-map',
output: {
path: path.join(__dirname, 'dist'),
pathinfo: true,
filename: '[name].js',
},
resolve: {
modules: ['lib/', 'node_modules', '../node_modules'].map(x => path.join(__dirname, x)),
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /\.ts$/,
use: {
loader: 'ts-loader',
options: {
configFile: 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',
fs: 'commonjs fs',
glasstron: 'commonjs glasstron',
mz: 'commonjs mz',
npm: 'commonjs npm',
'node-pty': 'commonjs node-pty',
path: 'commonjs path',
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) {

View File

@@ -2,59 +2,10 @@
# yarn lockfile v1
"@angular/animations@^12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-12.0.0.tgz#5f845b1a58ffb6f3ea6103edf0756ac65320b725"
integrity sha512-BG/Ksk3863I7GKUem73Kty4UeU289oN+iPo/0O0x2dJCzNcpafML0GJpz4lg/RT9l6UddFviI4q9NiopR+eJfw==
dependencies:
tslib "^2.1.0"
"@angular/common@^12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-12.0.0.tgz#a4b992f3af997e9e957500148100f3f2a90ad3e9"
integrity sha512-d6+WSnCFcxAHBsbCvBC3Rutmk+tB5CEdKhkTBY/vGe0A/MjbayzHR4IDv2i0+UZDLSgMJubqh3iCPUcSglXSEg==
dependencies:
tslib "^2.1.0"
"@angular/compiler@^12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-12.0.0.tgz#bb0d4f464fee4803dbda49d862474f771c31f633"
integrity sha512-7NdZNyxm9KLlRMmmtId6RfV6VbQIUMDxN44R+ax66BoWsuhdYXUDsDO554LwYwrjnnXXGkurDJhv7umeRwaZGw==
dependencies:
tslib "^2.1.0"
"@angular/core@^12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-12.0.0.tgz#d16a217f0919b3b161229118c52b1f703815eb71"
integrity sha512-fwXtF6qP8pr07+El/dg67RmgsI4Ubfi+E5YLjYKQ62gM8MzYyYGmLPakFzFnbzYrOr05zdprrbcVgGtMRHapMA==
dependencies:
tslib "^2.1.0"
"@angular/forms@^12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-12.0.0.tgz#faf5e3e36a8c4f57f42a5b3dd11786f39c94d693"
integrity sha512-/Z2AWd2k/9cs+WwXBlZ8yUqgGsHYcp8g6PUCehZQk1gd/4n4FOKvTIGiypajGUPwO4GOHJDzibfCsGw8MenCpQ==
dependencies:
tslib "^2.1.0"
"@angular/platform-browser-dynamic@^12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.0.0.tgz#295036e7b487b6dbe3b13db763a371675d391ee6"
integrity sha512-Rkxr/KVOZGuGSuIYo2XZYbOpyS2t2jpLPS65KUUcOEwktj4hSv5VZ2soZF18tG5ZNbx06C1QDW/j9HwmZjEh5g==
dependencies:
tslib "^2.1.0"
"@angular/platform-browser@^12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-12.0.0.tgz#097805ad9a5db044dc0a74c1294cdfa5122eca4c"
integrity sha512-h+uMMluRh4dqJIor7EpvwNKRjv4xCxpttizJlqbo3vfcoOoLDoc9SvEFiXxd+UVh3S0re8zBsyBIJl+gTVFKWQ==
dependencies:
tslib "^2.1.0"
"@electron/remote@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-1.0.4.tgz#f1c8cf3560bab762b462bfae9991919cced8bc33"
integrity sha512-kguDJRhL3ZynHrkbX8Tr7xoAzGsNgh4eqXkycXb6cgXbOgehGqkBVe+MnjSVMXz3QJykerGKPy28gqcM7AFGYw==
"@electron/remote@1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-1.2.0.tgz#772eb4c3ac17aaba5a9cf05a09092f6277f5671f"
integrity sha512-C774t2DFVJsa+dxU9Gc2nYzylRZoJ79I0Sxrh8T9cN69fBkntfGbyBEQiD9UfZopqL0CYLzk1anY2Ywhql6h1w==
"@iarna/cli@^1.2.0":
version "1.2.0"
@@ -65,13 +16,6 @@
update-notifier "^2.2.0"
yargs "^8.0.2"
"@ng-bootstrap/ng-bootstrap@^9.1.1":
version "9.1.1"
resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-9.1.1.tgz#5a629915ea93b4f9b4d61854cb6862d99a7c9ca4"
integrity sha512-m31qKJylYueXm+a3YEoOfnrJYR1lovb7WgaQwvXQz3dDmtaYRX4n8aPeCMp1VrI7hFfFITKWo0GxPaI3JIFk4w==
dependencies:
tslib "^2.0.0"
"@serialport/binding-abstract@^9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-9.0.7.tgz#d2c7ecea0f100bdf20187bfc0d34ba90f5504e1e"
@@ -79,7 +23,7 @@
dependencies:
debug "^4.3.1"
"@serialport/binding-mock@^9.0.7":
"@serialport/binding-mock@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-9.0.7.tgz#2fda427adc113320461f33f7426dfca73e8ad1de"
integrity sha512-aR8H+htZwwZZkVb1MdbnNvGWw8eXVRqQ2qPhkbKyx0N/LY5aVIgCgT98Kt1YylLsG7SzNG+Jbhd4wzwEuPVT5Q==
@@ -87,10 +31,10 @@
"@serialport/binding-abstract" "^9.0.7"
debug "^4.3.1"
"@serialport/bindings@^9.1.0":
version "9.1.0"
resolved "https://registry.yarnpkg.com/@serialport/bindings/-/bindings-9.1.0.tgz#bb4c2778118a4404fd38749b64c0fe533d72003a"
integrity sha512-X0GM5iZgrBkR1HwoSDsJ/AJ+M61end5Ttg5mqcaUkwGCKpgJSDW3STX6pvFNr9xNzvqS56yuhAcU/eNJ2xuDaA==
"@serialport/bindings@^9.2.0":
version "9.2.0"
resolved "https://registry.yarnpkg.com/@serialport/bindings/-/bindings-9.2.0.tgz#de6df688d0ff99bdbb86ea6db412562cb2d9ebe7"
integrity sha512-s9EKHDZjLHipHhypxy6pz2XsoI1fPiOGU+X13AIGdQfoe7I6piEyhJ2znNgXMugMe43OxNk0/CmuVMzzcw1lmQ==
dependencies:
"@serialport/binding-abstract" "^9.0.7"
"@serialport/parser-readline" "^9.0.7"
@@ -99,68 +43,61 @@
nan "^2.14.2"
prebuild-install "^6.0.1"
"@serialport/parser-byte-length@^9.0.7":
"@serialport/parser-byte-length@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-9.0.7.tgz#9e362bba70eeffcd2eb0804afeca4bb1dee59d5f"
integrity sha512-evf7oOOSBMBn2AZZbgBFMRIyEzlsyQkhqaPm7IBCPTxMDXRf4tKkFYJHYZB0/6d1W4eI0meH079UqmSsh/uoDA==
"@serialport/parser-cctalk@^9.0.7":
"@serialport/parser-cctalk@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-9.0.7.tgz#fa0e1539f067aced22a5ef7d64fdac14f1a6a4d3"
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"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-9.0.7.tgz#7bef2447d4282dd00dc659719b310edeb30ff294"
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"
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==
"@serialport/parser-readline@^9.0.7":
"@serialport/parser-readline@9.0.7", "@serialport/parser-readline@^9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-9.0.7.tgz#8b096028170fb2644bcf0f997d534a344cfd00e6"
integrity sha512-ydoLbgVQQPxWrwbe3Fhh4XnZexbkEQAC6M/qgRTzjnKvTjrD61CJNxLc3vyDaAPI9bJIhTiI7eTX3JB5jJv8Hg==
dependencies:
"@serialport/parser-delimiter" "^9.0.7"
"@serialport/parser-ready@^9.0.7":
"@serialport/parser-ready@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-9.0.7.tgz#d9eb9801c6003fdb1450c557f3e256a188a9f3be"
integrity sha512-3qYhI4cNUPAYqVYvdwV57Y+PVRl4dJf1fPBtMoWtwDgwopsAXTR93WCs49WuUq9JCyNW+8Hrfqv8x8eNAD5Dqg==
"@serialport/parser-regex@^9.0.7":
"@serialport/parser-regex@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-9.0.7.tgz#d8a02e3a169faa2f6604e8293832cc676b865f48"
integrity sha512-5XF+FXbhqQ/5bVKM4NaGs1m+E9KjfmeCx/obwsKaUZognQF67jwoTfjJJWNP/21jKfxdl8XoCYjZjASl3XKRAw==
"@serialport/stream@^9.0.7":
"@serialport/stream@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-9.0.7.tgz#0bf023eb0233a714fcc5a86de09e381e466d9882"
integrity sha512-c/h7HPAeFiryD9iTGlaSvPqHFHSZ0NMQHxC4rcmKS2Vu3qJuEtkBdTLABwsMp7iWEiSnI4KC3s7bHapaXP06FQ==
dependencies:
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":
version "2.7.3"
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-2.7.3.tgz#e42a21e73f5f9340fe4a176981fafb1eb8cc6c12"
integrity sha512-Zp1NUJ4Alh3gaun0a5rkF3DL7b2j1WB6rPPI5h+CJ98sQnxe9qwskClvupz/4bqChGR3L/BRhTjlaOwR+uiZJg==
"@types/mz@2.7.4":
version "2.7.4"
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-2.7.4.tgz#f9d1535cb5171199b28ae6abd6ec29e856551401"
integrity sha512-Zs0imXxyWT20j3Z2NwKpr0IO2LmLactBblNyLua5Az4UHuqOQ02V3jPTgyKwDkuc33/ahw+C3O1PIZdrhFMuQA==
dependencies:
"@types/node" "*"
"@types/node@*", "@types/node@15.12.1":
version "15.12.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.1.tgz#9b60797dee1895383a725f828a869c86c6caa5c2"
integrity sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw==
"@types/node@*", "@types/node@16.0.1":
version "16.0.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.0.1.tgz#70cedfda26af7a2ca073fdcc9beb2fff4aa693f8"
integrity sha512-hBOx4SUlEPKwRi6PrXuTGw1z6lz0fjsibcWCM378YxsSu/6+C30L6CR49zIBKHiwNWCYIcOLjg4OHKZaFeLAug==
JSONStream@^1.3.4, JSONStream@^1.3.5:
version "1.3.5"
@@ -295,7 +232,7 @@ asap@^2.0.0:
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz"
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
asn1@^0.2.4, asn1@~0.2.3:
asn1@~0.2.3:
version "0.2.4"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz"
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
@@ -332,7 +269,7 @@ base64-js@^1.3.1:
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2:
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
@@ -686,13 +623,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"
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:
version "3.0.2"
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
@@ -1088,10 +1018,10 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
fontmanager-redux@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/fontmanager-redux/-/fontmanager-redux-1.0.0.tgz"
integrity sha512-kXZel+PAWxS+bgFIlycUYWkmVpvN3SUodDeNaFNW7BloU5pqibBR395Ww+gLBnt51S9KnmHT2/+DzCMGbag0aw==
fontmanager-redux@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fontmanager-redux/-/fontmanager-redux-1.1.0.tgz#b1e97bc5c982df81749596fd48348f8318595bb3"
integrity sha512-cQtSfi7ZCW831XuGwoKIrO/cCBLhOvWK56adSr/Yl/fzB5omunW+XQmXlYHNKS7qWzOZe2Z6xQ8ZFt120Uj2lA==
dependencies:
node-addon-api "^3.0.2"
@@ -2088,7 +2018,7 @@ mz@^2.7.0:
object-assign "^4.0.1"
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"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
@@ -2113,13 +2043,6 @@ ngx-filesize@^2.0.16:
filesize ">= 4.0.0"
tslib "^2.0.0"
ngx-toastr@^14.0.0:
version "14.0.0"
resolved "https://registry.yarnpkg.com/ngx-toastr/-/ngx-toastr-14.0.0.tgz#20e4737ef330b892a453768cd98b980558aeb286"
integrity sha512-dnDzSY73pF6FvNyxdh6ftfvXvUg6SU7MAT3orPUCzA77t3ZcFslro06zk4NCA2g67RF7dBwM0OJ/y0SN6fdGYw==
dependencies:
tslib "^2.1.0"
node-abi@^2.20.0, node-abi@^2.30.0, node-abi@^2.7.0:
version "2.30.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.0.tgz#8be53bf3e7945a34eea10e0fc9a5982776cf550b"
@@ -2163,6 +2086,13 @@ node-gyp@^5.0.2, node-gyp@^5.1.0:
tar "^4.4.12"
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:
version "0.1.1"
resolved "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"
@@ -3023,10 +2953,10 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
rxjs@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.1.0.tgz#94202d27b19305ef7b1a4f330277b2065df7039e"
integrity sha512-gCFO5iHIbRPwznl6hAYuwNFld8W4S2shtSJIqG27ReWXo9IWrCyEICxUA+6vJHwSR/OakoenC4QsDxq50tzYmw==
rxjs@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.2.0.tgz#5cd12409639e9514a71c9f5f9192b2c4ae94de31"
integrity sha512-aX8w9OpKrQmiPKfT1bqETtUr9JygIz6GZ+gql8v7CijClsP0laoFUdKzxFAoWuRdSlOdU2+crss+cMf+cqMTnw==
dependencies:
tslib "~2.1.0"
@@ -3064,21 +2994,21 @@ serialize-error@^5.0.0:
dependencies:
type-fest "^0.8.0"
serialport@^9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-9.1.0.tgz#f8b9dc87e6713e1e0198752f6e2cce95aaf5a6ab"
integrity sha512-W17ji2TOotufIUCXIWcB6P+RztO1S4BcWsAc99jQn5BaH3Kw6xUyOX2ng0ZQ+hPjS/WWI2CdWynf4bKRJKD/+A==
serialport@^9.2.0:
version "9.2.0"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-9.2.0.tgz#17a8364979f3c06a54a7bf4e8cbb8ebc91e54511"
integrity sha512-C6AQ4jD4mre3tn3QA+atn++mEZDh4r40CIeh1sKhskKE+Q4eiIr/nzVMOiPxHb8gskrSNxujH+Br49tl3i9s9g==
dependencies:
"@serialport/binding-mock" "^9.0.7"
"@serialport/bindings" "^9.1.0"
"@serialport/parser-byte-length" "^9.0.7"
"@serialport/parser-cctalk" "^9.0.7"
"@serialport/parser-delimiter" "^9.0.7"
"@serialport/parser-inter-byte-timeout" "^9.0.7"
"@serialport/parser-readline" "^9.0.7"
"@serialport/parser-ready" "^9.0.7"
"@serialport/parser-regex" "^9.0.7"
"@serialport/stream" "^9.0.7"
"@serialport/binding-mock" "9.0.7"
"@serialport/bindings" "^9.2.0"
"@serialport/parser-byte-length" "9.0.7"
"@serialport/parser-cctalk" "9.0.7"
"@serialport/parser-delimiter" "9.0.7"
"@serialport/parser-inter-byte-timeout" "9.0.7"
"@serialport/parser-readline" "9.0.7"
"@serialport/parser-ready" "9.0.7"
"@serialport/parser-regex" "9.0.7"
"@serialport/stream" "9.0.7"
debug "^4.3.1"
set-blocking@^2.0.0, set-blocking@~2.0.0:
@@ -3207,17 +3137,6 @@ split-on-first@^1.0.0:
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
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:
version "1.16.1"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz"
@@ -3475,7 +3394,7 @@ tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
tslib@^2.0.0, tslib@^2.1.0:
tslib@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
@@ -3667,12 +3586,12 @@ windows-blurbehind@^1.0.1:
resolved "https://registry.yarnpkg.com/windows-blurbehind/-/windows-blurbehind-1.0.1.tgz#ff098713873304e38330b2c54cc41bb369b587b9"
integrity sha512-1HzHfCiM1ayrbACJu5qE9zELV24uX/tINT6kxaZwLY3rtQAoeav6x9z7LFHWoLaGDN/sYbnK+9Vk0cz7fsk5HQ==
windows-native-registry@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/windows-native-registry/-/windows-native-registry-3.0.0.tgz#82e715df7a59d5054c768547d81e0bfc81a59d2e"
integrity sha512-Mz/9a23UivwPc23DsTOL/ZCp/XXogT+6h/khk1psOfDDusXqpomBdxNdsBBE/BvIgOExjGom0XPOfEPiDnHy7A==
windows-native-registry@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/windows-native-registry/-/windows-native-registry-3.1.0.tgz#909ef3254519fdec57d2f149ac59a2c9dc84419a"
integrity sha512-WrDysn2V7dH+EYE6cS2RF+7r2P+M0pOYWtU8iBrjV2HaGkCLlUdGUWzOdzT0JPdWwz0BkVu3IOae2xmBajQqBA==
dependencies:
node-addon-api "^3.0.0"
node-addon-api "^3.1.0"
windows-process-tree@^0.3.0:
version "0.3.0"
@@ -3838,10 +3757,3 @@ yargs@^8.0.2:
which-module "^2.0.0"
y18n "^3.2.1"
yargs-parser "^7.0.0"
zone.js@^0.11.4:
version "0.11.4"
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.11.4.tgz#0f70dcf6aba80f698af5735cbb257969396e8025"
integrity sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==
dependencies:
tslib "^2.0.0"

View File

@@ -1,3 +1,3 @@
!macro customInit
nsExec::Exec '"$LOCALAPPDATA\terminus\Update.exe" --uninstall -s'
nsExec::Exec '"$LOCALAPPDATA\tabby\Update.exe" --uninstall -s'
!macroend

View File

@@ -11,7 +11,7 @@ module.exports = async function (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`)
if (!fs.existsSync(appPath)) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -1,6 +1,6 @@
---
appId: org.terminus
productName: Terminus
appId: org.tabby
productName: Tabby
compression: normal
npmRebuild: false
afterSign: "./build/mac/afterSignHook.js"
@@ -33,24 +33,24 @@ extraResources:
- builtin-plugins
- extras
asarUnpack:
- dist/*.map
- 'dist/*.map'
publish:
- provider: github
win:
icon: "./build/windows/icon.ico"
artifactName: terminus-${version}-portable.${ext}
artifactName: tabby-${version}-portable.${ext}
rfc3161TimeStampServer: http://sha256timestamp.ws.symantec.com/sha256/timestamp
nsis:
oneClick: false
artifactName: terminus-${version}-setup.${ext}
artifactName: tabby-${version}-setup.${ext}
installerIcon: "./build/windows/icon.ico"
allowToChangeInstallationDirectory: true
mac:
category: public.app-category.video
icon: "./build/mac/icon.icns"
artifactName: terminus-${version}-macos-${env.ARCH}.${ext}
artifactName: tabby-${version}-macos-${env.ARCH}.${ext}
hardenedRuntime: true
entitlements: "./build/mac/entitlements.plist"
entitlementsInherit: "./build/mac/entitlements.plist"
@@ -68,11 +68,11 @@ mac:
linux:
category: Utility
icon: "./build/icons"
artifactName: terminus-${version}-linux.${ext}
artifactName: tabby-${version}-linux.${ext}
executableArgs:
- "--no-sandbox"
desktop:
StartupWMClass: terminus
StartupWMClass: tabby
snap:
plugs:
- default
@@ -91,7 +91,7 @@ deb:
afterInstall: build/linux/after-install.tpl
fpm:
- '--replaces'
- 'terminus'
- 'terminus-terminal'
pacman:
depends:
- gnome-keyring
@@ -103,4 +103,4 @@ rpm:
- '--rpm-rpmbuild-define'
- '_build_id_links none'
- '--replaces'
- 'terminus'
- 'terminus-terminal'

View File

@@ -12,7 +12,7 @@
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>Open Terminus here</string>
<string>Open Tabby here</string>
</dict>
<key>NSMessage</key>
<string>runWorkflowAsService</string>

View File

@@ -59,7 +59,7 @@
<key>ActionParameters</key>
<dict>
<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>
<true/>
<key>inputMethod</key>

View File

@@ -12,7 +12,7 @@
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>Paste path into Terminus</string>
<string>Paste path into Tabby</string>
</dict>
<key>NSMessage</key>
<string>runWorkflowAsService</string>

View File

@@ -59,7 +59,7 @@
<key>ActionParameters</key>
<dict>
<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>
<true/>
<key>inputMethod</key>

File diff suppressed because it is too large Load Diff

View File

@@ -1,39 +1,51 @@
{
"devDependencies": {
"@angular/animations": "^12.0.0",
"@angular/common": "^12.0.0",
"@angular/compiler": "^12.0.0",
"@angular/core": "^12.0.0",
"@angular/forms": "^12.0.0",
"@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.0.0",
"@fortawesome/fontawesome-free": "^5.15.3",
"@sentry/cli": "^1.64.2",
"@sentry/electron": "^2.4.1",
"@terminus-term/to-string-loader": "1.1.7-beta.1",
"@ng-bootstrap/ng-bootstrap": "^10.0.0",
"@sentry/cli": "^1.67.1",
"@sentry/electron": "^2.5.1",
"@tabby-gang/to-string-loader": "^1.1.7-beta.2",
"@types/electron-config": "^3.2.2",
"@types/electron-debug": "^2.1.0",
"@types/fs-extra": "^9.0.11",
"@types/js-yaml": "^4.0.1",
"@types/node": "15.6.1",
"@types/webpack-env": "^1.16.0",
"@typescript-eslint/eslint-plugin": "^4.25.0",
"@typescript-eslint/parser": "^4.26.0",
"@types/fs-extra": "^9.0.12",
"@types/js-yaml": "^4.0.2",
"@types/node": "16.0.1",
"@types/sortablejs": "^1.10.7",
"@types/webpack-env": "^1.16.2",
"@typescript-eslint/eslint-plugin": "^4.28.3",
"@typescript-eslint/parser": "^4.28.3",
"apply-loader": "2.0.0",
"awesome-typescript-loader": "^5.2.1",
"axios": "^0.21.1",
"clone-deep": "^4.0.1",
"compare-versions": "^3.6.0",
"core-js": "^3.14.0",
"core-js": "^3.15.2",
"cross-env": "7.0.3",
"css-loader": "5.2.6",
"electron": "13.1.1",
"electron": "13.1.7",
"electron-builder": "22.10.5",
"electron-download": "^4.1.1",
"electron-installer-snap": "^5.1.0",
"electron-notarize": "^1.0.0",
"electron-rebuild": "^2.3.5",
"eslint": "^7.27.0",
"eslint": "^7.30.0",
"eslint-plugin-import": "^2.23.4",
"file-loader": "^6.2.0",
"graceful-fs": "^4.2.6",
"html-loader": "2.1.2",
"json-loader": "0.5.7",
"lru-cache": "^6.0.0",
"macos-release": "^2.4.1",
"macos-release": "^2.5.0",
"ngx-sortablejs": "^11.1.0",
"ngx-toastr": "^14.0.0",
"node-abi": "^2.30.0",
"node-sass": "^6.0.0",
"node-sass": "^6.0.1",
"npmlog": "4.1.2",
"npx": "^10.2.2",
"patch-package": "^6.4.7",
@@ -43,35 +55,42 @@
"pug-loader": "^2.4.0",
"pug-static-loader": "2.0.0",
"raw-loader": "4.0.2",
"sass-loader": "^12.0.0",
"sass-loader": "^12.1.0",
"shell-quote": "^1.7.2",
"shelljs": "0.8.4",
"slugify": "^1.5.3",
"sortablejs": "^1.14.0",
"source-code-pro": "^2.38.0",
"source-map-loader": "^3.0.0",
"source-sans-pro": "3.6.0",
"style-loader": "^2.0.0",
"ssh2": "^1.1.0",
"style-loader": "^3.1.0",
"svg-inline-loader": "^0.8.2",
"tslib": "^2.2.0",
"typedoc": "^0.20.36",
"typescript": "^4.2.4",
"ts-loader": "^9.2.3",
"tslib": "^2.3.0",
"typedoc": "^0.21.4",
"typescript": "^4.3.5",
"url-loader": "^4.1.1",
"val-loader": "4.0.0",
"webpack": "^5.38.1",
"webpack": "^5.43.0",
"webpack-bundle-analyzer": "^4.4.2",
"webpack-cli": "^4.7.0",
"yaml-loader": "0.6.0"
"yaml-loader": "0.6.0",
"zone.js": "^0.11.4"
},
"resolutions": {
"lzma-native": "^8.0.0",
"*/node-abi": "^2.30.0",
"**/graceful-fs": "^4.2.4"
},
"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:web": "webpack --color --config web/webpack.config.js",
"build": "npm run build:typings && node scripts/build-modules.js",
"build:typings": "node scripts/build-typings.js",
"watch": "cross-env TERMINUS_DEV=1 webpack --progress --color --watch",
"start": "cross-env TERMINUS_DEV=1 electron app --debug --inspect",
"watch": "cross-env TABBY_DEV=1 webpack --progress --color --watch",
"start": "cross-env TABBY_DEV=1 electron app --debug --inspect",
"start:prod": "electron app --debug",
"prod": "cross-env TERMINUS_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",
"prod": "cross-env TABBY_DEV=1 electron app",
"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",
"postinstall": "node ./scripts/install-deps.js",
"patch": "patch-package; cd web; patch-package"

View File

@@ -1,5 +1,5 @@
diff --git a/node_modules/app-builder-lib/out/appInfo.js b/node_modules/app-builder-lib/out/appInfo.js
index 25a159e..d8a0262 100644
index 25a159e..bfe0590 100644
--- a/node_modules/app-builder-lib/out/appInfo.js
+++ b/node_modules/app-builder-lib/out/appInfo.js
@@ -165,7 +165,7 @@ class AppInfo {
@@ -7,7 +7,7 @@ index 25a159e..d8a0262 100644
const name = this.name; // https://github.com/electron-userland/electron-builder/issues/2963
- return name.startsWith("@") ? this.sanitizedProductName : name;
+ return 'terminus-terminal'
+ return 'tabby-terminal';
}
get sanitizedName() {

15
patches/ssh2+1.1.0.patch Normal file
View File

@@ -0,0 +1,15 @@
diff --git a/node_modules/ssh2/lib/protocol/Protocol.js b/node_modules/ssh2/lib/protocol/Protocol.js
index b4d1ee0..1e3ac66 100644
--- a/node_modules/ssh2/lib/protocol/Protocol.js
+++ b/node_modules/ssh2/lib/protocol/Protocol.js
@@ -254,8 +254,8 @@ class Protocol {
);
if (greeting)
this._onWrite(greeting);
- this._onWrite(this._identRaw);
- this._onWrite(CRLF);
+ this._onWrite(Buffer.concat([this._identRaw, CRLF]));
+ // this._onWrite(CRLF);
});
}
_destruct(reason) {

18
scripts/build-modules.js Executable file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env node
const vars = require('./vars')
const log = require('npmlog')
const webpack = require('webpack')
const { promisify } = require('util')
const configs = [
'../app/webpack.main.config.js',
'../app/webpack.config.js',
...vars.allPackages.map(x => `../${x}/webpack.config.js`),
]
;(async () => {
for (const c of configs) {
log.info('build', c)
await promisify(webpack)(require(c))
}
})()

View File

@@ -4,7 +4,7 @@ const path = require('path')
const vars = require('./vars')
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({
buildPath: path.resolve(__dirname, '../' + dir),
electronVersion: vars.electronVersion,

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env node
const jsYaml = require('js-yaml')
const fs = require('fs')
const path = require('path')
const metadata = jsYaml.load(fs.readFileSync(path.resolve(__dirname, '../node_modules/@fortawesome/fontawesome-free/metadata/icons.yml')))
let result = {}
for (let key in metadata) {
result[key] = metadata[key].styles.map(x => x[0])
}
fs.writeFileSync(path.resolve(__dirname, '../tabby-core/src/icons.json'), JSON.stringify(result))

View File

@@ -4,8 +4,11 @@ const path = require('path')
const vars = require('./vars')
const log = require('npmlog')
const localBinPath = path.resolve(__dirname, '../node_modules/.bin');
const npx = `${localBinPath}/npx`;
const localBinPath = path.resolve(__dirname, '../node_modules/.bin')
const npx = `${localBinPath}/npx`
log.info('patch')
sh.exec(`${npx} patch-package`)
log.info('deps', 'app')
@@ -18,16 +21,16 @@ sh.exec(`${npx} yarn install --force`)
sh.cd('..')
vars.builtinPlugins.forEach(plugin => {
log.info('deps', plugin)
sh.cd(plugin)
sh.exec(`${npx} yarn install --force`)
sh.cd('..')
log.info('deps', plugin)
sh.cd(plugin)
sh.exec(`${npx} yarn install --force`)
sh.cd('..')
})
if (['darwin', 'linux'].includes(process.platform)) {
sh.cd('node_modules')
for (let x of vars.builtinPlugins) {
sh.ln('-fs', '../' + x, x)
}
sh.cd('..')
sh.cd('node_modules')
for (let x of vars.builtinPlugins) {
sh.ln('-fs', '../' + x, x)
}
sh.cd('..')
}

View File

@@ -11,7 +11,7 @@ sh.mkdir('-p', target)
fs.writeFileSync(path.join(target, 'package.json'), '{}')
sh.cd(target)
vars.builtinPlugins.forEach(plugin => {
if (plugin === 'terminus-web') {
if (plugin === 'tabby-web') {
return
}
log.info('install', plugin)

12
scripts/publish-plugins.js Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env node
const sh = require('shelljs')
const vars = require('./vars')
const log = require('npmlog')
vars.allPackages.forEach(plugin => {
log.info('bump', plugin)
sh.cd(plugin)
sh.exec('npm --no-git-tag-version version ' + vars.version)
sh.exec('npm publish')
sh.cd('..')
})

View File

@@ -9,7 +9,7 @@ sh.exec(`${sentryCli} releases new ${vars.version}`)
if (process.platform === 'darwin') {
for (const path of [
'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/macos-native-processlist/build/Release/native.node',
]) {

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env node
const sh = require('shelljs')
const vars = require('./vars')
const log = require('npmlog')
vars.builtinPlugins.forEach(plugin => {
log.info('bump', plugin)
sh.cd(plugin)
sh.exec('npm --no-git-tag-version version ' + vars.version)
sh.cd('..')
})

View File

@@ -5,28 +5,36 @@ const childProcess = require('child_process')
const electronInfo = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../node_modules/electron/package.json')))
exports.version = childProcess.execSync('git describe --tags', {encoding:'utf-8'})
exports.version = childProcess.execSync('git describe --tags', { encoding:'utf-8' })
exports.version = exports.version.substring(1).trim()
exports.version = exports.version.replace('-', '-c')
if (exports.version.includes('-c')) {
exports.version = semver.inc(exports.version, 'prepatch').replace('-0', '-nightly.0')
exports.version = semver.inc(exports.version, 'prepatch').replace('-0', `-nightly.${process.env.REV ?? 0}`)
}
exports.builtinPlugins = [
'terminus-core',
'terminus-settings',
'terminus-terminal',
'terminus-electron',
'terminus-local',
'terminus-web',
'terminus-community-color-schemes',
'terminus-plugin-manager',
'terminus-ssh',
'terminus-serial',
'tabby-core',
'tabby-settings',
'tabby-terminal',
'tabby-electron',
'tabby-local',
'tabby-web',
'tabby-community-color-schemes',
'tabby-plugin-manager',
'tabby-ssh',
'tabby-serial',
'tabby-telnet',
]
exports.allPackages = [
...exports.builtinPlugins,
'web',
'tabby-web-demo',
]
exports.bundledModules = [
'@angular',
'@ng-bootstrap',
'@angular',
'@ng-bootstrap',
]
exports.electronVersion = electronInfo.version

View File

@@ -1,26 +1,26 @@
name: terminus
name: tabby
version: '1.0.0'
summary: A terminal for a modern age
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
apps:
terminus:
command: opt/terminus/terminus
tabby:
command: opt/tabby/tabby
parts:
app:
plugin: nodejs
source: .
build-packages:
build-packages:
- libfontconfig-dev
override-build: |
yarn
./scripts/build-native.js
yarn run build
./scripts/build-linux.js
mkdir -p $SNAPCRAFT_PART_INSTALL/opt/terminus || true
cp -ar dist/linux-unpacked/* $SNAPCRAFT_PART_INSTALL/opt/terminus/
mkdir -p $SNAPCRAFT_PART_INSTALL/opt/tabby || true
cp -ar dist/linux-unpacked/* $SNAPCRAFT_PART_INSTALL/opt/tabby/

View File

@@ -1,9 +1,9 @@
{
"name": "terminus-community-color-schemes",
"version": "1.0.135-nightly.0",
"description": "Community color schemes for Terminus",
"name": "tabby-community-color-schemes",
"version": "1.0.148-nightly.2",
"description": "Community color schemes for Tabby",
"keywords": [
"terminus-builtin-plugin"
"tabby-builtin-plugin"
],
"main": "dist/index.js",
"typings": "typings/index.d.ts",
@@ -18,7 +18,7 @@
"license": "MIT",
"peerDependencies": {
"@angular/core": "^9.1.9",
"terminus-core": "*",
"terminus-terminal": "*"
"tabby-core": "*",
"tabby-terminal": "*"
}
}

Some files were not shown because too many files have changed in this diff Show More