Compare commits

...

281 Commits

Author SHA1 Message Date
dependabot[bot]
00d2c26bc9 build(deps-dev): bump patch-package in /tabby-terminal
Bumps [patch-package](https://github.com/ds300/patch-package) from 6.5.0 to 8.0.0.
- [Release notes](https://github.com/ds300/patch-package/releases)
- [Changelog](https://github.com/ds300/patch-package/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ds300/patch-package/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-03 08:25:05 +00:00
Eugene
7572f3c26f Merge pull request #8751 from Eugeny/dependabot/npm_and_yarn/app/serialport-11.0.1 2023-08-03 10:23:48 +02:00
Eugene
326d8b3fb1 Merge pull request #8752 from Eugeny/dependabot/npm_and_yarn/app/atomically-2.0.2 2023-08-03 10:23:39 +02:00
Eugene
9b4f1a3a0d Merge pull request #8720 from Eugeny/dependabot/npm_and_yarn/word-wrap-1.2.4 2023-08-03 10:22:51 +02:00
Eugene
0d275595cf Merge pull request #8656 from Eugeny/dependabot/github_actions/actions/setup-node-3.7.0 2023-08-03 10:22:25 +02:00
dependabot[bot]
7860c73e49 build(deps-dev): bump atomically from 1.7.0 to 2.0.2 in /app
Bumps [atomically](https://github.com/fabiospampinato/atomically) from 1.7.0 to 2.0.2.
- [Commits](https://github.com/fabiospampinato/atomically/compare/v1.7.0...v2.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-27 04:54:46 +00:00
dependabot[bot]
fa9dea0f64 build(deps): bump serialport from 11.0.0 to 11.0.1 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 11.0.0 to 11.0.1.
- [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/v11.0.0...v11.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-27 04:54:31 +00:00
Eugene Pankov
0101ffddb6 Update build-macos.mjs 2023-07-19 10:21:00 +02:00
Eugene Pankov
726ad23a32 Update build.yml 2023-07-19 09:56:45 +02:00
Eugene Pankov
4fe2a45664 Update build-macos.mjs 2023-07-19 09:13:43 +02:00
Eugene Pankov
6f8d687529 Update build-macos.mjs 2023-07-19 09:08:21 +02:00
Eugene Pankov
9d05fbeb90 use native notarization 2023-07-19 00:03:58 +02:00
Eugene Pankov
299be86498 automatic dark/light theme - fixes #3934 2023-07-18 23:48:43 +02:00
Eugene Pankov
bd337a4197 updated patch 2023-07-18 23:18:54 +02:00
Eugene Pankov
a1cb0ff223 fix deprecation 2023-07-18 23:17:07 +02:00
Eugene Pankov
ae2f3f162e bumped electron-builder 2023-07-18 22:46:20 +02:00
dependabot[bot]
91cb9e5c63 Bump actions/setup-node from 3.6.0 to 3.7.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3.6.0...v3.7.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>
2023-07-18 20:07:17 +00:00
dependabot[bot]
e2cc9b98ee build(deps): bump word-wrap from 1.2.3 to 1.2.4
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-18 20:06:31 +00:00
Eugene Pankov
b8f2204d4f Update build.yml 2023-07-18 22:05:36 +02:00
Eugene Pankov
35bca545f8 Update README.md 2023-07-18 21:07:05 +02:00
Eugene
8b89db41d2 Merge pull request #8709 from Clem-Fern/feat#8680 2023-07-18 17:12:14 +02:00
Clem
d36b2b21c9 feat(settings): Eugeny/tabby#8680 configurable priotity on quick connect profile selector option 2023-07-18 14:10:31 +02:00
Eugene
2d8a0aff61 Merge pull request #8711 from Eugeny/all-contributors/add-FeroTheFox 2023-07-16 23:12:59 +02:00
allcontributors[bot]
db916c922a update README.id-ID.md [skip ci] 2023-07-16 21:09:41 +00:00
allcontributors[bot]
dfc438258d update .all-contributorsrc [skip ci] 2023-07-16 21:09:40 +00:00
allcontributors[bot]
6a714a746f update README.es-ES.md [skip ci] 2023-07-16 21:09:38 +00:00
allcontributors[bot]
54284741e0 update README.pt-BR.md [skip ci] 2023-07-16 21:04:18 +00:00
allcontributors[bot]
e4b545f231 update README.ja-JP.md [skip ci] 2023-07-16 21:04:17 +00:00
allcontributors[bot]
c27566a561 update README.de-DE.md [skip ci] 2023-07-16 21:03:44 +00:00
allcontributors[bot]
43121c33f2 update README.it-IT.md [skip ci] 2023-07-16 21:03:43 +00:00
allcontributors[bot]
4b34f76997 update README.ko-KR.md [skip ci] 2023-07-16 21:03:42 +00:00
allcontributors[bot]
24db1cb99a update README.ru-RU.md [skip ci] 2023-07-16 21:03:41 +00:00
allcontributors[bot]
147d22f386 update README.zh-CN.md [skip ci] 2023-07-16 21:03:40 +00:00
allcontributors[bot]
c04b93c56c update README.md [skip ci] 2023-07-16 21:03:39 +00:00
Eugene
ddab79d3ac Merge pull request #8707 from FeroTheFox/master 2023-07-16 23:02:58 +02:00
Evan / Fero
c501f541c8 fix: @input typo 2023-07-16 13:29:50 -07:00
Evan / Fero
8af3c95212 fix: linting 2023-07-16 12:06:11 -07:00
Evan / Fero
2fa612fe2c feat: use @input on titlebar component; chore: comment cleaning 2023-07-16 11:57:19 -07:00
Eugene
725bc225f1 Merge pull request #8710 from Eugeny/all-contributors/add-wljince007 2023-07-16 12:34:23 +02:00
allcontributors[bot]
8451848ba6 update .all-contributorsrc [skip ci] 2023-07-16 10:02:57 +00:00
allcontributors[bot]
186a4afa1c update README.id-ID.md [skip ci] 2023-07-16 09:59:26 +00:00
allcontributors[bot]
1d1b149ea8 update README.es-ES.md [skip ci] 2023-07-16 09:58:32 +00:00
allcontributors[bot]
b217aaf03b update README.pt-BR.md [skip ci] 2023-07-16 09:54:21 +00:00
allcontributors[bot]
c7471f737f update README.ja-JP.md [skip ci] 2023-07-16 09:53:23 +00:00
allcontributors[bot]
124d600bfd update README.de-DE.md [skip ci] 2023-07-16 09:50:34 +00:00
allcontributors[bot]
a3f2405092 update README.it-IT.md [skip ci] 2023-07-16 09:50:33 +00:00
allcontributors[bot]
a92f8956d4 update README.ko-KR.md [skip ci] 2023-07-16 09:50:32 +00:00
allcontributors[bot]
22fb2dbda2 update README.ru-RU.md [skip ci] 2023-07-16 09:50:31 +00:00
allcontributors[bot]
303eab2f0e update README.zh-CN.md [skip ci] 2023-07-16 09:50:30 +00:00
allcontributors[bot]
8a12e7c6d1 update README.md [skip ci] 2023-07-16 09:50:29 +00:00
Eugene
821dcbff69 Merge pull request #8693 from wljince007/v1.0.197_fixerror 2023-07-16 11:50:18 +02:00
wljince007
44d8c3f04b config of different configProviders combination merge together 2023-07-16 17:46:27 +08:00
Evan / Fero
af515e01cf Merge remote-tracking branch 'upstream/master' 2023-07-15 20:07:57 -07:00
Clem Fern
aba773b546 lint 2023-07-15 21:37:23 +02:00
Clem Fern
9ac5286017 fix(core): push all freeInputPattern into filteredOptions selectorModal 2023-07-15 21:35:01 +02:00
Clem Fern
555c7f7b20 feat(telnet): enable quick connect 2023-07-15 21:32:47 +02:00
Clem Fern
3857beb46b feat(core): Eugeny/tabby#8680 push all quick-connect provider into profile selector 2023-07-15 21:10:16 +02:00
Eugene Pankov
fcac52a844 fixed #5862 - configurable Backspace behaviour 2023-07-15 12:17:47 +02:00
Eugene Pankov
4736b11c62 bumped node-pty 2023-07-15 11:30:29 +02:00
Eugene Pankov
a128a647d9 renamed patch 2023-07-15 11:30:29 +02:00
Evan / Fero
9638be5349 Update appRoot.component.pug 2023-07-14 12:36:36 -07:00
Evan / Fero
9c863762c3 Fix: formatting err 2023-07-14 12:27:35 -07:00
Evan / Fero
539c213ef6 Fix: linting errors 2023-07-14 12:15:53 -07:00
Evan / Fero
d2bdb55c6d Fix: spacer div doesn't need full height 2023-07-14 12:14:05 -07:00
Evan / Fero
4edc0be280 Fix: wrong condition for spacer div 2023-07-14 12:07:51 -07:00
Evan / Fero
f10b8c0f35 Fix: spacer div should not appear in vertical tab layout 2023-07-14 12:04:32 -07:00
Evan / Fero
e38b826fd6 fix: WCO color, settings icon position 2023-07-14 11:57:27 -07:00
Evan / Fero
2f1c388a8b Feat: implement window controls overlay 2023-07-13 23:53:33 -07:00
Eugene
e7f7d9b024 Merge pull request #8663 from Clem-Fern/feat#5688 2023-07-11 20:01:10 +02:00
Clem
47a6e81998 fix Eugeny/tabby#8534 by @Eugeny 2023-07-11 19:00:27 +02:00
Clem
eea3ab9c74 Revert "fix Eugeny/tabby#8534 : skip yaml unacceptable kind of object to dump"
This reverts commit 82a262026f.
2023-07-11 18:49:53 +02:00
Clem
0313e872fd fix(core): new config migration to recover profile without ID 2023-07-10 18:03:14 +02:00
Eugene
84422d4453 Merge pull request #8678 from Eugeny/all-contributors/add-DehanLUO 2023-07-10 09:15:26 +02:00
allcontributors[bot]
32696cc047 update .all-contributorsrc [skip ci] 2023-07-10 07:06:10 +00:00
allcontributors[bot]
78485617e9 update README.ja-JP.md [skip ci] 2023-07-10 07:06:06 +00:00
allcontributors[bot]
56f6b88ac2 update README.es-ES.md [skip ci] 2023-07-10 07:05:52 +00:00
allcontributors[bot]
50fac29c5e update README.pt-BR.md [skip ci] 2023-07-10 07:05:50 +00:00
allcontributors[bot]
c13effeadc update README.id-ID.md [skip ci] 2023-07-10 07:05:47 +00:00
allcontributors[bot]
f0f0bbedf9 update README.de-DE.md [skip ci] 2023-07-10 07:05:38 +00:00
allcontributors[bot]
897d6167a9 update README.it-IT.md [skip ci] 2023-07-10 07:05:37 +00:00
allcontributors[bot]
a63011ca15 update README.ko-KR.md [skip ci] 2023-07-10 07:05:36 +00:00
allcontributors[bot]
eae2095787 update README.ru-RU.md [skip ci] 2023-07-10 07:05:36 +00:00
allcontributors[bot]
3efe6ce4cd update README.zh-CN.md [skip ci] 2023-07-10 07:05:34 +00:00
allcontributors[bot]
4966397fca update README.md [skip ci] 2023-07-10 07:05:33 +00:00
Eugene
57da067727 Merge pull request #8677 from DehanLUO/master 2023-07-10 09:05:32 +02:00
DehanLUO
fa50c7d9fa Stop local echo when remote echo is on 2023-07-10 02:10:54 -04:00
DehanLUO
9a82c4c5c0 Stop local echo when remote echo is on 2023-07-10 01:48:48 -04:00
Clem
a4136bec6e lint 2023-07-07 15:15:13 +02:00
Clem
82a262026f fix Eugeny/tabby#8534 : skip yaml unacceptable kind of object to dump 2023-07-07 15:06:47 +02:00
Clem
6709217a86 fix(tabby-terminal): save icon/color/group/dynamic title/behavior on session end with 'Save As' Profile 2023-07-07 15:03:57 +02:00
Clem
4bbf86a7a7 fix(tabby-terminal): create an ID for 'Save As' Profile 2023-07-07 11:23:19 +02:00
Clem
d98fbe8b44 feat(tabby-terminal): Eugeny/tabby#5688 add global Save As Profile context menu 2023-07-07 10:37:28 +02:00
Clem
3d9b15a82d ref(tabby-local): remove SaveAsProfile context menu 2023-07-07 10:35:03 +02:00
Eugene Pankov
77b74ad659 added Czech locale, updated other locales 2023-06-28 10:46:13 +02:00
Eugene Pankov
8de26cfeb8 updated contributors 2023-06-26 16:55:38 +02:00
Eugene Pankov
87a893480c Cross Compile linux armhf/arm64 artifacts #8613 by @Jai-JAP 2023-06-26 16:29:37 +02:00
Eugene
d6d6ec39c8 Merge pull request #8612 from qyecst/patch-1 2023-06-24 00:00:24 +02:00
qyecst
1579356d54 Update settingsTabBody.component.ts
increase the value of max-width to avoid shadowing the font size in the Settings (Settings - Appearance - Font).
2023-06-24 03:27:37 +08:00
Eugene Pankov
60a63d9c65 lint 2023-06-16 18:08:37 +02:00
Eugene
5e673106e9 Merge pull request #8589 from Clem-Fern/feat#6518 2023-06-16 18:08:11 +02:00
Clem
27c8b920ea refactoring Eugeny/tabby#8589 (shouldTabBeDestroyedOnSessionClose) 2023-06-16 16:23:30 +02:00
Eugene Pankov
bc8ac12aef fixed #8588 - hide hidden profiles in the "new profile" selector 2023-06-16 16:12:43 +02:00
Clem Fern
7f2340e701 feat: add disconnect tab hotkey 2023-06-15 21:34:41 +02:00
Clem Fern
b0350b6a35 feat: Eugeny/tabby#6518 add disconnect tab context menu item 2023-06-15 21:17:58 +02:00
Clem Fern
cea5cc73ff ref: Eugeny/tabby/pull#8416 2023-06-15 21:07:24 +02:00
Eugene
ad764d2f50 Merge pull request #7485 from Eugeny/dependabot/npm_and_yarn/tabby-web-demo/loader-utils-1.4.2 2023-06-14 23:41:43 +02:00
Eugene
1c8054ccb1 Merge pull request #7593 from Eugeny/dependabot/npm_and_yarn/app/decode-uri-component-0.2.2 2023-06-14 23:41:34 +02:00
Eugene
2de56e3c9b Merge pull request #7616 from Eugeny/dependabot/npm_and_yarn/qs-6.4.1 2023-06-14 23:41:21 +02:00
Eugene
b75174d248 Merge pull request #7629 from Eugeny/dependabot/npm_and_yarn/app/qs-6.5.3 2023-06-14 23:41:11 +02:00
Eugene
d200f1e3ef Merge pull request #7764 from Eugeny/dependabot/npm_and_yarn/tabby-web-demo/json5-1.0.2 2023-06-14 23:40:58 +02:00
Eugene
5c2ea50e8e Merge pull request #7749 from Eugeny/dependabot/github_actions/actions/setup-node-3.6.0 2023-06-14 23:39:59 +02:00
Eugene
b3b1e02cfc Merge pull request #8432 from Eugeny/dependabot/npm_and_yarn/tabby-settings/ngx-infinite-scroll-16.0.0 2023-06-14 23:39:50 +02:00
Eugene
c77c166b26 Merge pull request #8473 from Eugeny/dependabot/npm_and_yarn/sentry/cli-2.18.1 2023-06-14 23:39:42 +02:00
Eugene
deee2d3ad6 Merge pull request #8506 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/strip-ansi-7.1.0 2023-06-14 23:39:32 +02:00
Eugene
bb579303dc Merge pull request #8509 from Eugeny/dependabot/npm_and_yarn/tabby-electron/winston-3.9.0 2023-06-14 23:39:23 +02:00
dependabot[bot]
6cd9db2e2b Bump strip-ansi from 7.0.0 to 7.1.0 in /tabby-ssh
Bumps [strip-ansi](https://github.com/chalk/strip-ansi) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/chalk/strip-ansi/releases)
- [Commits](https://github.com/chalk/strip-ansi/compare/v7.0.0...v7.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-14 21:39:10 +00:00
Eugene
c0853b4f7c Merge pull request #8536 from Eugeny/dependabot/npm_and_yarn/app/electron/remote-2.0.10 2023-06-14 23:39:05 +02:00
Eugene
15c66139f9 Merge pull request #8539 from Eugeny/dependabot/npm_and_yarn/app/ngx-filesize-3.0.2 2023-06-14 23:38:53 +02:00
Eugene
aceb13598a Merge pull request #8564 from Eugeny/dependabot/npm_and_yarn/node-abi-3.45.0 2023-06-14 23:38:39 +02:00
Eugene
31359a1c1e Merge pull request #8566 from Eugeny/dependabot/npm_and_yarn/core-js-3.31.0 2023-06-14 23:38:31 +02:00
Eugene
67a3871a38 Merge pull request #8569 from Eugeny/dependabot/npm_and_yarn/app/types/node-20.3.1 2023-06-14 23:38:26 +02:00
Eugene
e40449b71e Merge pull request #8570 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/node-20.3.1 2023-06-14 23:38:18 +02:00
Eugene
275d140afb Merge pull request #8572 from Eugeny/dependabot/npm_and_yarn/types/node-20.3.1 2023-06-14 23:38:10 +02:00
Eugene
69ca03cbe7 Merge pull request #8577 from Eugeny/dependabot/npm_and_yarn/sass-1.63.4 2023-06-14 23:38:04 +02:00
Eugene
39bbb1c853 Merge pull request #8325 from Eugeny/dependabot/npm_and_yarn/app/yargs-17.7.2 2023-06-14 23:37:57 +02:00
Eugene
1e1e9af027 Merge pull request #8327 from Eugeny/dependabot/npm_and_yarn/axios-1.4.0 2023-06-14 23:37:48 +02:00
Eugene
1656e359ac Merge pull request #8340 from Eugeny/dependabot/npm_and_yarn/app/serialport-11.0.0 2023-06-14 23:37:34 +02:00
Eugene
d66b286570 Merge pull request #8390 from Eugeny/dependabot/npm_and_yarn/tabby-core/readable-stream-4.4.0 2023-06-14 23:37:21 +02:00
Eugene
c93431d8a6 Merge pull request #8350 from Eugeny/dependabot/npm_and_yarn/tabby-electron/which-3.0.1 2023-06-14 23:36:28 +02:00
Eugene
460cd4f606 Merge pull request #8425 from Eugeny/dependabot/npm_and_yarn/utils-decorators-2.0.6 2023-06-14 23:35:59 +02:00
Eugene
2c8e20b9bd Merge pull request #8426 from Eugeny/dependabot/npm_and_yarn/tabby-plugin-manager/semver-7.5.1 2023-06-14 23:35:48 +02:00
Eugene
2ff1141fe9 Merge pull request #8544 from Eugeny/dependabot/npm_and_yarn/webpack-5.86.0 2023-06-14 23:34:21 +02:00
Eugene Pankov
4d83848e8d lint 2023-06-14 23:34:05 +02:00
Eugene Pankov
1e9f5ca1dc bumped xterm to 5.2 2023-06-14 23:16:14 +02:00
dependabot[bot]
4a92fbd088 Bump webpack from 5.75.0 to 5.86.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.75.0 to 5.86.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.75.0...v5.86.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-14 16:03:12 +00:00
Eugene Pankov
2c0e50771f migrated to @electron/notarize 2023-06-14 17:57:25 +02:00
dependabot[bot]
515565b618 Bump sass from 1.58.0 to 1.63.4
Bumps [sass](https://github.com/sass/dart-sass) from 1.58.0 to 1.63.4.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.58.0...1.63.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-14 05:11:13 +00:00
dependabot[bot]
285dfa31d2 Bump @types/node from 16.0.1 to 20.3.1
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.0.1 to 20.3.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-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-13 05:00:45 +00:00
dependabot[bot]
5777cf81dd Bump @types/node from 16.0.1 to 20.3.1 in /tabby-ssh
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.0.1 to 20.3.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-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-13 04:59:23 +00:00
dependabot[bot]
30078a78ce Bump @types/node from 18.11.19 to 20.3.1 in /app
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.11.19 to 20.3.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-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-13 04:56:50 +00:00
dependabot[bot]
534401f0e2 Bump core-js from 3.21.1 to 3.31.0
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.21.1 to 3.31.0.
- [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.31.0/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>
2023-06-12 05:13:51 +00:00
dependabot[bot]
2533415f25 Bump node-abi from 3.33.0 to 3.45.0
Bumps [node-abi](https://github.com/electron/node-abi) from 3.33.0 to 3.45.0.
- [Release notes](https://github.com/electron/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/main/.releaserc.json)
- [Commits](https://github.com/electron/node-abi/compare/v3.33.0...v3.45.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 05:12:34 +00:00
dependabot[bot]
acc00c7eda Bump ngx-filesize from 3.0.1 to 3.0.2 in /app
Bumps [ngx-filesize](https://github.com/amitdahan/ngx-filesize/tree/HEAD/packages/ngx-filesize) from 3.0.1 to 3.0.2.
- [Commits](https://github.com/amitdahan/ngx-filesize/commits/HEAD/packages/ngx-filesize)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-07 04:57:43 +00:00
Eugene
3146668351 Merge pull request #8528 from Clem-Fern/refactoring-plugin 2023-06-06 12:35:45 +02:00
dependabot[bot]
6820ffedf9 Bump @electron/remote from 2.0.8 to 2.0.10 in /app
Bumps [@electron/remote](https://github.com/electron/remote) from 2.0.8 to 2.0.10.
- [Release notes](https://github.com/electron/remote/releases)
- [Changelog](https://github.com/electron/remote/blob/main/.releaserc.json)
- [Commits](https://github.com/electron/remote/compare/v2.0.8...v2.0.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-06 04:57:10 +00:00
Eugene Pankov
4c55e075bd Update README.md 2023-06-05 21:18:22 +02:00
Clem
ac596e323b Fix wrong usage of the progress bar 2023-06-05 11:44:43 +02:00
Eugene Pankov
c983743b57 fixed #7727 - allow hiding individual profiles from the selector 2023-06-04 21:22:05 +02:00
Eugene Pankov
e813133f12 fixed #8440 - multiple separate "ungrouped" groups 2023-06-04 20:55:44 +02:00
Eugene Pankov
86cff8d98a change the terminal.autoOpen default to true 2023-06-04 20:34:28 +02:00
Clem Fern
0c73ce847b fix unresolve promise in loadPlugins 2023-06-01 19:00:13 +02:00
Clem Fern
d45b98445f wip: trying to improve tabby startup time 2023-06-01 18:45:23 +02:00
dependabot[bot]
7cc7048b40 Bump winston from 3.7.2 to 3.9.0 in /tabby-electron
Bumps [winston](https://github.com/winstonjs/winston) from 3.7.2 to 3.9.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.7.2...v3.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 05:10:11 +00:00
dependabot[bot]
a64e9646e2 Bump @sentry/cli from 1.74.3 to 2.18.1
Bumps [@sentry/cli](https://github.com/getsentry/sentry-cli) from 1.74.3 to 2.18.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.74.3...2.18.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-23 05:00:25 +00:00
Eugene
c0352bceac Merge pull request #8472 from Eugeny/all-contributors/add-echo304 2023-05-22 17:48:44 +02:00
allcontributors[bot]
1fe961e1f1 update README.pt-BR.md [skip ci] 2023-05-22 15:26:23 +00:00
allcontributors[bot]
41bd8a6012 update .all-contributorsrc [skip ci] 2023-05-22 15:25:44 +00:00
allcontributors[bot]
5bfa72573b update README.es-ES.md [skip ci] 2023-05-22 15:25:41 +00:00
allcontributors[bot]
facd52ff4e update README.ja-JP.md [skip ci] 2023-05-22 15:24:43 +00:00
allcontributors[bot]
8826127913 update README.id-ID.md [skip ci] 2023-05-22 15:24:23 +00:00
allcontributors[bot]
fe58e4705c update README.de-DE.md [skip ci] 2023-05-22 15:24:14 +00:00
allcontributors[bot]
dcba109e07 update README.it-IT.md [skip ci] 2023-05-22 15:24:13 +00:00
allcontributors[bot]
a7e6fa7b1d update README.ko-KR.md [skip ci] 2023-05-22 15:24:12 +00:00
allcontributors[bot]
8e29b4ac97 update README.ru-RU.md [skip ci] 2023-05-22 15:24:11 +00:00
allcontributors[bot]
9379f91895 update README.zh-CN.md [skip ci] 2023-05-22 15:24:10 +00:00
allcontributors[bot]
d2a54d0d96 update README.md [skip ci] 2023-05-22 15:24:09 +00:00
Eugene
1d2c7ab905 Merge pull request #8471 from echo304/fix-additional-line-break-when-pane-maximize
Fire manual keyup event when key is not Enter
2023-05-22 17:24:08 +02:00
sangboak.lee
6eef2c97ee Fire manual keyup event when key is not Enter 2023-05-22 23:48:23 +09:00
Eugene
fac6ec572f Merge pull request #8416 from Clem-Fern/connectable-refactoring
Refactoring connectable tab
2023-05-16 21:35:21 +02:00
Clem Fern
539ad0bddc ref(tabby-terminal): remove deprecated Reconnectable interface 2023-05-16 19:13:00 +02:00
dependabot[bot]
9e4cb15c84 Bump ngx-infinite-scroll from 15.0.0 to 16.0.0 in /tabby-settings
Bumps [ngx-infinite-scroll](https://github.com/orizens/ngx-infinite-scroll) from 15.0.0 to 16.0.0.
- [Release notes](https://github.com/orizens/ngx-infinite-scroll/releases)
- [Commits](https://github.com/orizens/ngx-infinite-scroll/commits)

---
updated-dependencies:
- dependency-name: ngx-infinite-scroll
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-16 04:59:48 +00:00
dependabot[bot]
ad889de139 Bump yargs from 17.3.1 to 17.7.2 in /app
Bumps [yargs](https://github.com/yargs/yargs) from 17.3.1 to 17.7.2.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/compare/v17.3.1...v17.7.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-15 21:10:40 +00:00
Eugene Pankov
a494d9c800 fixed #8313 - recover tab icons and colors ealier during start 2023-05-15 23:09:13 +02:00
Eugene Pankov
5075c836f9 fixed #8263 - make placeholders more legible 2023-05-15 22:57:40 +02:00
Eugene Pankov
1112766ac0 fixed #8404 - missing SFTP progressbar 2023-05-15 22:55:05 +02:00
Eugene Pankov
b97c334660 fixed #8417 - ensure that serial output is chunked at utf8 char boundaries 2023-05-15 22:17:33 +02:00
Eugene Pankov
46a1dd39f0 fixed #8419 2023-05-15 21:58:53 +02:00
Eugene Pankov
9c68274d46 updated contributors 2023-05-15 17:17:09 +02:00
dependabot[bot]
fcada433c9 Bump semver from 7.3.5 to 7.5.1 in /tabby-plugin-manager
Bumps [semver](https://github.com/npm/node-semver) from 7.3.5 to 7.5.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.3.5...v7.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-15 05:00:10 +00:00
dependabot[bot]
4d3b2d73ad Bump utils-decorators from 1.10.4 to 2.0.6
Bumps [utils-decorators](https://github.com/vlio20/utils-decorators) from 1.10.4 to 2.0.6.
- [Release notes](https://github.com/vlio20/utils-decorators/releases)
- [Changelog](https://github.com/vlio20/utils-decorators/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vlio20/utils-decorators/commits/2.0.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-15 04:59:12 +00:00
Clem Fern
89b3f3892e ref(connectable tab) unused import 2023-05-12 20:32:58 +02:00
Clem Fern
37226f66e3 ref(connectable tab) ngOnInit logger 2023-05-12 20:27:58 +02:00
Clem Fern
38b8702373 ref(connectable tab) getRecoveryToken method 2023-05-12 20:06:40 +02:00
Clem Fern
bd4b11813c ref(connectable tab) on frontend ready 2023-05-12 20:01:06 +02:00
Clem Fern
38302622b8 lint 2023-05-12 19:46:43 +02:00
Clem Fern
312b365851 ref(connectable tab) on session destroyed 2023-05-12 19:39:44 +02:00
Clem Fern
2b5976f202 ref(connectable tab) reconnect context menu & hotkey n°2 2023-05-12 19:30:24 +02:00
Clem Fern
1e6f6af5ed ref(connectable tab) reconnect context menu & hotkey 2023-05-12 19:09:33 +02:00
Clem Fern
901181f681 ref(tabby-terminal): create ConnectableTerminalTabComponent class 2023-05-11 21:49:32 +02:00
Clem Fern
fd9505c18f ref(tabby-terminal): make Reconnectable interface deprecated 2023-05-11 21:17:12 +02:00
dependabot[bot]
fed3c78e79 Bump readable-stream from 4.2.0 to 4.4.0 in /tabby-core
Bumps [readable-stream](https://github.com/nodejs/readable-stream) from 4.2.0 to 4.4.0.
- [Release notes](https://github.com/nodejs/readable-stream/releases)
- [Commits](https://github.com/nodejs/readable-stream/compare/v4.2.0...v4.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-09 05:00:33 +00:00
dependabot[bot]
98965585cc Bump which from 3.0.0 to 3.0.1 in /tabby-electron
Bumps [which](https://github.com/npm/node-which) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/npm/node-which/releases)
- [Changelog](https://github.com/npm/node-which/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-which/compare/v3.0.0...v3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-02 04:58:52 +00:00
dependabot[bot]
3552333aed Bump serialport from 10.5.0 to 11.0.0 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 10.5.0 to 11.0.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/v10.5.0...v11.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 04:57:11 +00:00
Eugene Pankov
d6d273b2fb Merge branch 'master' of github.com:Eugeny/tabby 2023-04-29 23:01:21 -07:00
Eugene Pankov
d98ab296c7 #6096 export serialtab and serialsession classes 2023-04-29 23:01:17 -07:00
Eugene
fe6836d996 Merge pull request #8332 from Clem-Fern/fix#8297 2023-04-28 22:54:56 +02:00
Clem Fern
d3adbd03d4 fix(tabby-terminal): prevent copying on select when search find next/previous 2023-04-28 20:03:55 +02:00
Eugene
30b51e45bc Merge pull request #8331 from Clem-Fern/fix#8297 2023-04-28 18:42:48 +02:00
Clem Fern
bb6ed52291 fix(tabby-terminal): set selected text into search box on opening 2023-04-28 17:17:58 +02:00
dependabot[bot]
93be096a9d Bump axios from 0.27.2 to 1.4.0
Bumps [axios](https://github.com/axios/axios) from 0.27.2 to 1.4.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.27.2...v1.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-28 05:02:18 +00:00
Eugene
9978e0b86f Merge pull request #8321 from Eugeny/all-contributors/add-Kapocsi 2023-04-28 03:58:56 +02:00
allcontributors[bot]
632c248984 update README.es-ES.md [skip ci] 2023-04-27 23:55:23 +00:00
allcontributors[bot]
769070a630 update .all-contributorsrc [skip ci] 2023-04-27 23:55:22 +00:00
allcontributors[bot]
ee4c2718b5 update README.ja-JP.md [skip ci] 2023-04-27 23:55:21 +00:00
allcontributors[bot]
3794d41a45 update README.pt-BR.md [skip ci] 2023-04-27 23:55:20 +00:00
allcontributors[bot]
89fff28b11 update README.id-ID.md [skip ci] 2023-04-27 23:55:15 +00:00
allcontributors[bot]
f0dadd639e update README.de-DE.md [skip ci] 2023-04-27 23:54:46 +00:00
allcontributors[bot]
0e27af1203 update README.it-IT.md [skip ci] 2023-04-27 23:54:44 +00:00
allcontributors[bot]
311f59f59b update README.ko-KR.md [skip ci] 2023-04-27 23:54:43 +00:00
allcontributors[bot]
ffa23bc2c9 update README.ru-RU.md [skip ci] 2023-04-27 23:54:43 +00:00
allcontributors[bot]
9409c6ffa4 update README.zh-CN.md [skip ci] 2023-04-27 23:54:42 +00:00
allcontributors[bot]
6f63db799e update README.md [skip ci] 2023-04-27 23:54:41 +00:00
Eugene
aca7312141 Merge pull request #8320 from Kapocsi/master 2023-04-28 01:54:29 +02:00
Thomas Kapocsi
d81d942d7f Fix name of scripts in Hacking.md
Fixed mismatch in the naming scheme of scripts. 

All the scripts listed under building an installer use the extension `.js` whereas the files themselves use `.mjs`.
2023-04-27 17:26:14 -06:00
Eugene Pankov
da0a4569de ci: bumped ubuntu 2023-04-27 09:45:19 -07:00
Eugene Pankov
30a916de6d updated contributors 2023-04-27 08:05:26 -07:00
Eugene Pankov
b9b98bd949 Merge branch 'master' of github.com:Eugeny/tabby 2023-04-23 21:34:17 -07:00
Eugene
ff66f050e0 Merge pull request #8206 from Clem-Fern/feat#7751
[feature] add configurable behavior when session ends
2023-04-24 06:07:07 +02:00
Eugene Pankov
20479e9f27 bumped plugins 2023-04-23 10:22:38 -07:00
Eugene Pankov
e48b2032ad updated peerDependencies 2023-04-23 08:57:05 -07:00
Eugene Pankov
dc8ddfcd15 #8282 - updated package.json files 2023-04-23 08:40:17 -07:00
Clem
b1acfe2519 resolves Eugeny/tabby#7751, Eugeny/tabby#8062, Eugeny/tabby#6617 add behavior when session ends 2023-04-23 10:50:39 +02:00
Eugene Pankov
19d59a4cfb allow disabling individual providers and commands through config 2023-04-22 13:41:15 -07:00
Clem
f2a62413da ref(tabby-local): use setSession method in terminalTab component 2023-04-22 15:51:29 +02:00
Clem
6498c4f923 ref: implement recentInputs on baseTerminalTab 2023-04-22 15:23:59 +02:00
Clem
f423be1510 Revert "resolves Eugeny/tabby#7751, Eugeny/tabby#8062, Eugeny/tabby#6617 add configurable behavior when session ends"
This reverts commit 268af8806c.
2023-04-22 14:36:43 +02:00
Clem
8cb75e14a2 Revert "lint"
This reverts commit b0973791a8.
2023-04-22 14:36:14 +02:00
Eugene
6997c24dfa Merge pull request #8249 from mottcha/patch-1 2023-04-17 08:52:55 +02:00
mottcha
94c5133104 Update README.ja-JP.md
Added an advertisement about Warpgate
2023-04-17 14:51:29 +09:00
mottcha
98f20cfb5d Update README.ja-JP.md
Hi! I fixed some expressions in Japanese and translated newly text.
- Fixed some sentences to be more natural and polite expressions.
- Added new sponsor keygen
2023-04-17 10:27:37 +09:00
Eugene Pankov
1450e0436f include the default color scheme in the list 2023-04-16 18:03:10 +02:00
Eugene Pankov
65756a62bc ui: fixed secondary button contrast 2023-04-16 17:47:47 +02:00
Eugene Pankov
84b0e13dc8 fixed #7162, fixed #7309, fixed #6812 - "hide on focus loss" not working with multiple windows/modals 2023-04-16 14:08:27 +02:00
Eugene Pankov
b144331396 updated contributors 2023-04-14 15:56:06 +02:00
Clem
b0973791a8 lint 2023-04-12 23:52:25 +02:00
Clem
268af8806c resolves Eugeny/tabby#7751, Eugeny/tabby#8062, Eugeny/tabby#6617 add configurable behavior when session ends 2023-04-12 23:20:06 +02:00
Eugene
c5d79135ab Merge pull request #7808 from Eugeny/dependabot/npm_and_yarn/app/windows-process-tree-0.4.0 2023-04-12 09:43:46 +02:00
Eugene
f54908d603 Merge pull request #8003 from Eugeny/dependabot/npm_and_yarn/eslint-plugin-import-2.27.5 2023-04-12 09:43:23 +02:00
Eugene
1fee5fbc58 Merge pull request #8048 from Eugeny/dependabot/npm_and_yarn/typescript-eslint/parser-5.54.1 2023-04-12 09:43:07 +02:00
Eugene
ada47d0cfa Merge pull request #8201 from Clem-Fern/feat#7723 2023-04-12 09:42:50 +02:00
Clem
bbca7a6a84 feat: reconnect current tab hotkey 2023-04-11 23:47:24 +02:00
Clem
d1b45812d5 lint + refactor 2023-04-11 22:53:05 +02:00
Eugene Pankov
6a0c5f1e1f bumped angular 2023-04-10 21:26:01 +02:00
Eugene Pankov
3b8ca0d592 lint 2023-04-10 21:21:49 +02:00
Eugene Pankov
73fae43027 fixed #8133 - added active tab indicator, updated default color scheme 2023-04-10 20:53:45 +02:00
Eugene Pankov
34188debd4 lint 2023-04-10 20:38:59 +02:00
Eugene Pankov
9f050d8e0d updated locales 2023-04-10 20:14:21 +02:00
Clem
178e4a6527 resolve Eugeny/tabby#7723 reconnect command palette 2023-04-10 19:48:27 +02:00
Eugene Pankov
c0837febfe fixed #8171 - bumped xterm-addon-canvas 2023-04-10 19:30:12 +02:00
Eugene Pankov
dfc7a2cb94 fixed modal background color 2023-04-10 19:20:38 +02:00
Eugene
7da2a15bf7 Merge pull request #8198 from Clem-Fern/fix#8154
fix Eugeny/tabby#8154 : search panel counter starts from 0
2023-04-10 16:29:36 +02:00
Clem
8bcb7d443a Merge branch 'fix#8154' of https://github.com/Clem-Fern/tabby into fix#8154 2023-04-10 15:22:19 +02:00
Clem
ab593ac1f3 (corrected) fix Eugeny/tabby#8154 : search panel counter starts from 0 2023-04-10 15:18:51 +02:00
Clem
9835466e68 fix Eugeny/tabby#8154 : search panel counter starts from 0 2023-04-10 12:44:39 +02:00
Eugene Pankov
3e559832ec updated contributors 2023-04-06 15:00:41 +02:00
Eugene Pankov
01953ff064 ui: new theme contrast fixes - fixed #8128 2023-03-23 23:18:08 +01:00
Eugene Pankov
a22f9a8b43 lint 2023-03-23 22:24:09 +01:00
Eugene Pankov
b710c1711f ui: better contrast between active and inactive tabs 2023-03-23 21:31:39 +01:00
Eugene Pankov
4e6b1d2ed2 fixed #8134 - can't change serial session baudrate 2023-03-23 21:04:30 +01:00
Eugene Pankov
2a8b7c3e79 fixed #8124 - animation toggle didn't affect pane maximizing 2023-03-21 21:03:14 +01:00
Eugene Pankov
9a6e684f9e added minimum contrast ratio support to the theme 2023-03-21 20:55:31 +01:00
Eugene Pankov
1ebf29a977 Merge branch 'master' of github.com:Eugeny/tabby 2023-03-21 19:35:27 +01:00
Eugene Pankov
0cd856b51f replaced hashbin with which 2023-03-21 17:24:56 +01:00
Eugene Pankov
307b4ea266 removed unused ngbDropdown directives 2023-03-21 15:55:03 +01:00
Eugene Pankov
8116ab733f search panel layout fix 2023-03-21 12:51:49 +01:00
Eugene Pankov
92513814e4 lint 2023-03-21 10:36:40 +01:00
Eugene Pankov
0f71618cb8 fixed #8100 - search box layout issues in the new theme 2023-03-20 09:52:14 +01:00
Eugene Pankov
8cba805522 moved more electron stuff out of tabby-local 2023-03-19 13:20:30 +01:00
Eugene Pankov
35ca7015c8 moved electron-specific parts of tabby-local into tabby-electron 2023-03-19 12:39:31 +01:00
Eugene Pankov
2e72774548 fixed copying as HTML - fixes #8092, fixes #8091 2023-03-19 10:41:31 +01:00
Eugene Pankov
beb7c614bc fixed #8093 - SFTP panel visual issues 2023-03-19 10:09:43 +01:00
Eugene Pankov
ef3c9e3be0 fixed #8028 - ghost panes and missing pane drag handle 2023-03-18 20:01:28 +01:00
dependabot[bot]
1f2fa5cce7 Bump @typescript-eslint/parser from 5.45.0 to 5.54.1
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.45.0 to 5.54.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.54.1/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>
2023-03-07 05:00:13 +00:00
dependabot[bot]
344fd5d05a Bump eslint-plugin-import from 2.26.0 to 2.27.5
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.26.0 to 2.27.5.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 05:00:30 +00:00
dependabot[bot]
6225bceab4 Bump windows-process-tree from 0.3.4 to 0.4.0 in /app
Bumps [windows-process-tree](https://github.com/Microsoft/vscode-windows-process-tree) from 0.3.4 to 0.4.0.
- [Release notes](https://github.com/Microsoft/vscode-windows-process-tree/releases)
- [Commits](https://github.com/Microsoft/vscode-windows-process-tree/compare/0.3.4...0.4.0)

---
updated-dependencies:
- dependency-name: windows-process-tree
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-26 19:43:54 +00:00
dependabot[bot]
f252316c29 Bump qs from 6.4.0 to 6.4.1
Bumps [qs](https://github.com/ljharb/qs) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.4.0...v6.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-26 19:43:36 +00:00
dependabot[bot]
a0fd091383 Bump qs from 6.5.2 to 6.5.3 in /app
Bumps [qs](https://github.com/ljharb/qs) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.5.2...v6.5.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-26 19:43:32 +00:00
dependabot[bot]
21316a9655 Bump json5 from 1.0.1 to 1.0.2 in /tabby-web-demo
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-08 16:26:46 +00:00
dependabot[bot]
ca960e0849 Bump actions/setup-node from 3.5.1 to 3.6.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3.5.1...v3.6.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>
2023-01-06 04:03:45 +00:00
dependabot[bot]
757995d593 Bump decode-uri-component from 0.2.0 to 0.2.2 in /app
Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 12:39:23 +00:00
dependabot[bot]
751eb18fd2 Bump loader-utils from 1.2.3 to 1.4.2 in /tabby-web-demo
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.2.3 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.2.3...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-13 10:10:04 +00:00
250 changed files with 10769 additions and 6732 deletions

View File

@@ -1130,6 +1130,96 @@
"contributions": [
"code"
]
},
{
"login": "CryptoGnome",
"name": "Crypto Gnome",
"avatar_url": "https://avatars.githubusercontent.com/u/33667144?v=4",
"profile": "https://www.gnomegarden.io/",
"contributions": [
"financial"
]
},
{
"login": "rbukovansky",
"name": "Richard Bukovansky",
"avatar_url": "https://avatars.githubusercontent.com/u/1004491?v=4",
"profile": "https://github.com/rbukovansky",
"contributions": [
"financial"
]
},
{
"login": "pseudocc",
"name": "catlas",
"avatar_url": "https://avatars.githubusercontent.com/u/85104110?v=4",
"profile": "https://github.com/pseudocc",
"contributions": [
"financial"
]
},
{
"login": "Kapocsi",
"name": "Thomas Kapocsi",
"avatar_url": "https://avatars.githubusercontent.com/u/84490604?v=4",
"profile": "http://kapocsi.ca",
"contributions": [
"doc"
]
},
{
"login": "dylhack",
"name": "Dylan Hackworth",
"avatar_url": "https://avatars.githubusercontent.com/u/27179786?v=4",
"profile": "https://dylhack.dev/",
"contributions": [
"financial"
]
},
{
"login": "echo304",
"name": "Sangboak Lee",
"avatar_url": "https://avatars.githubusercontent.com/u/16456651?v=4",
"profile": "https://github.com/echo304",
"contributions": [
"code"
]
},
{
"login": "qyecst",
"name": "qyecst",
"avatar_url": "https://avatars.githubusercontent.com/u/13901864?v=4",
"profile": "https://github.com/qyecst",
"contributions": [
"code"
]
},
{
"login": "DehanLUO",
"name": "Han",
"avatar_url": "https://avatars.githubusercontent.com/u/53093688?v=4",
"profile": "https://github.com/DehanLUO",
"contributions": [
"code"
]
},
{
"login": "wljince007",
"name": "wljince007",
"avatar_url": "https://avatars.githubusercontent.com/u/88243938?v=4",
"profile": "https://github.com/wljince007",
"contributions": [
"code"
]
},
{
"login": "FeroTheFox",
"name": "fero",
"avatar_url": "https://avatars.githubusercontent.com/u/52982404?v=4",
"profile": "https://github.com/FeroTheFox",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
@@ -1138,5 +1228,6 @@
"repoType": "github",
"repoHost": "https://github.com",
"commitConvention": "none",
"skipCi": true
"skipCi": true,
"commitType": "docs"
}

View File

@@ -11,7 +11,7 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v3.5.1
uses: actions/setup-node@v3.7.0
with:
node-version: 16
@@ -47,7 +47,7 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v3.5.1
uses: actions/setup-node@v3.7.0
with:
node-version: 16
@@ -86,6 +86,7 @@ jobs:
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPSTORE_USERNAME: ${{ secrets.APPSTORE_USERNAME }}
APPSTORE_PASSWORD: ${{ secrets.APPSTORE_PASSWORD }}
USE_HARD_LINKS: false
@@ -127,11 +128,25 @@ jobs:
path: artifact-zip
Linux-Build:
runs-on: ubuntu-18.04 # build against an older glibc for compatibility
runs-on: ubuntu-20.04
needs: Lint
strategy:
matrix:
build-arch: [ x64, arm64, armv7l ]
include:
- build-arch: x64
arch: amd64
- build-arch: arm64
arch: arm64
triplet: aarch64-linux-gnu-
- build-arch: arm
arch: armhf
triplet: arm-linux-gnueabihf-
env:
CC: ${{matrix.triplet}}gcc
CXX: ${{matrix.triplet}}g++
ARCH: ${{matrix.build-arch}}
npm_config_arch: ${{matrix.build-arch}}
npm_config_target_arch: ${{matrix.build-arch}}
steps:
- name: Checkout
@@ -139,35 +154,66 @@ jobs:
with:
fetch-depth: 0
- name: Set up multiarch/qemu-user-static
run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
if: matrix.build-arch != 'x64'
- name: Install Node (x64)
uses: actions/setup-node@v3.5.1
- name: Install Node
uses: actions/setup-node@v3.7.0
with:
node-version: 16
if: matrix.build-arch == 'x64'
node-version: 18
- name: Install deps (x64)
- name: Install deps (amd64)
run: |
sudo apt-get update
sudo apt-get install libarchive-tools zsh
- name: Install npm_modules (amd64)
run: |
npm i -g yarn
yarn --network-timeout 1000000
if: matrix.build-arch == 'x64'
- name: Webpack (x64)
run: yarn run build
if: matrix.build-arch == 'x64'
- name: Setup Crossbuild (${{matrix.arch}})
run: |
sudo apt-get update -y && sudo apt-get install schroot sbuild debootstrap -y
sudo debootstrap --include=git,curl,gnupg,ca-certificates,crossbuild-essential-${{matrix.arch}},python-dev,python3-dev,libarchive-tools,cmake --variant=buildd --exclude=snapd --components=main,restricted,universe,multiverse --extractor=dpkg-deb bionic /build-chroot/
echo 'deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse' | sudo tee /build-chroot/etc/apt/sources.list >/dev/null
echo 'deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse' | sudo tee -a /build-chroot/etc/apt/sources.list >/dev/null
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee /build-chroot/etc/apt/trusted.gpg.d/nodesource.gpg >/dev/null
echo 'deb http://deb.nodesource.com/node_16.x bionic main' | sudo tee /build-chroot/etc/apt/sources.list.d/nodesource.list >/dev/null
echo "[build-chroot]
description=Ubuntu 18.04 Build chroot
type=directory
directory=/build-chroot
root-groups=root,sudo
profile=buildd
personality=linux
union-type=overlay" | sudo tee /etc/schroot/chroot.d/build-chroot.pref >/dev/null
echo "/home /home none rw,bind 0 0" | sudo tee -a /etc/schroot/buildd/fstab >/dev/null
- name: Prepackage plugins (x64)
if: matrix.build-arch != 'x64'
- name: Install node_modules & CrossBuild native modules for ${{matrix.arch}}
run: |
sudo schroot -c build-chroot -u root -- bash -c "apt-get update -y
dpkg --add-architecture ${{matrix.arch}}
apt-get install -y nodejs libfontconfig-dev:${{matrix.arch}} libsecret-1-dev:${{matrix.arch}} libnss3:${{matrix.arch}} libatk1.0-0:${{matrix.arch}} libatk-bridge2.0-0:${{matrix.arch}} libgdk-pixbuf2.0-0:${{matrix.arch}} libgtk-3-0:${{matrix.arch}} libgbm1:${{matrix.arch}}
export CC=${{matrix.triplet}}gcc CXX=${{matrix.triplet}}g++ LD=${{matrix.triplet}}ld
if [[ ${{matrix.arch}} == 'arm64' ]]; then
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/aarch64-linux-gnu/pkgconfig/
elif [[ ${{matrix.arch}} == 'armhf' ]]; then
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/arm-linux-gnueabihf/pkgconfig/
fi
export ARCH=${{matrix.build-arch}} npm_config_arch=${{matrix.build-arch}} npm_config_target_arch=${{matrix.build-arch}}
npm i -g yarn
yarn --network-timeout 1000000 --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}"
if: matrix.build-arch != 'x64'
- name: Webpack (${{matrix.arch}})
run: yarn run build --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}
- name: Prepackage plugins (${{matrix.arch}})
run: scripts/prepackage-plugins.mjs
if: ${{matrix.build-arch == 'x64'}}
- name: Build packages (x64)
- name: Build packages (${{matrix.arch}})
run: scripts/build-linux.mjs
if: ${{matrix.build-arch == 'x64'}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
@@ -178,54 +224,54 @@ jobs:
run: zsh -c 'tar czf tabby-web.tar.gz (tabby-*|web)/dist'
if: matrix.build-arch == 'x64'
- name: Install deps and Build (arm64)
uses: docker://multiarch/ubuntu-core:arm64-bionic
with:
args: >
bash -c
"apt update && apt install curl lsb-release gnupg -y &&
curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&
apt install make build-essential git ruby libarchive-tools nodejs rpm libsecret-1-dev libfontconfig1-dev -y &&
git config --global --add safe.directory /github/workspace &&
gem install public_suffix -v 4.0.7 &&
gem install fpm --no-document &&
npm i -g yarn &&
cd /github/workspace &&
yarn --network-timeout 1000000 &&
yarn run build &&
scripts/prepackage-plugins.mjs &&
USE_SYSTEM_FPM=true scripts/build-linux.mjs"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
USE_HARD_LINKS: false
if: matrix.build-arch == 'arm64' && github.repository == 'Eugeny/tabby' && startsWith(github.ref, 'refs/tags')
# - name: Install deps and Build (arm64)
# uses: docker://multiarch/ubuntu-core:arm64-bionic
# with:
# args: >
# bash -c
# "apt update && apt install curl lsb-release gnupg -y &&
# curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&
# apt install make build-essential git ruby libarchive-tools nodejs rpm libsecret-1-dev libfontconfig1-dev -y &&
# git config --global --add safe.directory /github/workspace &&
# gem install public_suffix -v 4.0.7 &&
# gem install fpm --no-document &&
# npm i -g yarn &&
# cd /github/workspace &&
# yarn --network-timeout 1000000 &&
# yarn run build &&
# scripts/prepackage-plugins.mjs &&
# USE_SYSTEM_FPM=true scripts/build-linux.mjs"
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
# USE_HARD_LINKS: false
# if: matrix.build-arch == 'arm64' && github.repository == 'Eugeny/tabby' && startsWith(github.ref, 'refs/tags')
- name: Install deps and Build (armv7l)
uses: docker://multiarch/ubuntu-core:armhf-bionic
with:
args: >
bash -c
"apt update && apt install curl lsb-release gnupg -y &&
curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&
apt install make build-essential git ruby libarchive-tools nodejs rpm libsecret-1-dev libfontconfig1-dev -y &&
git config --global --add safe.directory /github/workspace &&
gem install public_suffix -v 4.0.7 &&
gem install fpm --no-document &&
npm i -g yarn &&
cd /github/workspace &&
sed -i '/ \"electron\":/c\ \"electron\": \"17.0.0\",' package.json &&
yarn --network-timeout 1000000 &&
yarn run build &&
scripts/prepackage-plugins.mjs &&
USE_SYSTEM_FPM=true scripts/build-linux.mjs"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
USE_HARD_LINKS: false
if: matrix.build-arch == 'armv7l' && github.repository == 'Eugeny/tabby' && startsWith(github.ref, 'refs/tags')
# - name: Install deps and Build (armv7l)
# uses: docker://multiarch/ubuntu-core:armhf-bionic
# with:
# args: >
# bash -c
# "apt update && apt install curl lsb-release gnupg -y &&
# curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&
# apt install make build-essential git ruby libarchive-tools nodejs rpm libsecret-1-dev libfontconfig1-dev -y &&
# git config --global --add safe.directory /github/workspace &&
# gem install public_suffix -v 4.0.7 &&
# gem install fpm --no-document &&
# npm i -g yarn &&
# cd /github/workspace &&
# sed -i '/ \"electron\":/c\ \"electron\": \"17.0.0\",' package.json &&
# yarn --network-timeout 1000000 &&
# yarn run build &&
# scripts/prepackage-plugins.mjs &&
# USE_SYSTEM_FPM=true scripts/build-linux.mjs"
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
# USE_HARD_LINKS: false
# if: matrix.build-arch == 'arm' && github.repository == 'Eugeny/tabby' && startsWith(github.ref, 'refs/tags')
- name: Upload symbols
- name: Upload symbols (amd64 only)
run: |
sudo npm install -g @sentry/cli --unsafe-perm
./scripts/sentry-upload.mjs
@@ -245,31 +291,37 @@ jobs:
dir: 'dist'
- uses: actions/upload-artifact@master
name: Upload DEB
name: Upload AppImage (${{matrix.arch}})
with:
name: Linux DEB (${{matrix.build-arch}})
name: Linux AppImage (${{matrix.arch}})
path: dist/*.AppImage
- uses: actions/upload-artifact@master
name: Upload DEB (${{matrix.arch}})
with:
name: Linux DEB (${{matrix.arch}})
path: dist/*.deb
- uses: actions/upload-artifact@master
name: Upload RPM
name: Upload RPM (${{matrix.arch}})
with:
name: Linux RPM (${{matrix.build-arch}})
name: Linux RPM (${{matrix.arch}})
path: dist/*.rpm
- uses: actions/upload-artifact@master
name: Upload Pacman Package
name: Upload Pacman Package (${{matrix.arch}})
with:
name: Linux Pacman (${{matrix.build-arch}})
name: Linux Pacman (${{matrix.arch}})
path: dist/*.pacman
- uses: actions/upload-artifact@master
name: Upload Linux tarball
name: Upload Linux tarball (${{matrix.arch}})
with:
name: Linux tarball (${{matrix.build-arch}})
name: Linux tarball (${{matrix.arch}})
path: dist/*.tar.gz
- uses: actions/upload-artifact@master
name: Upload web tarball
name: Upload web tarball (amd64 only)
with:
name: Web tarball
path: tabby-web.tar.gz
@@ -293,7 +345,7 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v3.5.1
uses: actions/setup-node@v3.7.0
with:
node-version: 16

View File

@@ -12,7 +12,7 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v3.5.1
uses: actions/setup-node@v3.7.0
with:
node-version: 16

View File

@@ -17,8 +17,6 @@ First, from within the `tabby` directory install the dependencies via yarn:
yarn
```
**Note: For compiling for Linux armv7l, you need to downgrade electron to 17.0.0 in package.json present in root directory of tabby source**
```
# 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
@@ -42,13 +40,13 @@ yarn start
To build an installer, first complete a "normal" build as described above and then run:
```
node scripts/prepackage-plugins.js
node scripts/prepackage-plugins.mjs
node scripts/build-windows.js
node scripts/build-windows.mjs
# or
node scripts/build-linux.js
node scripts/build-linux.mjs
# or
node scripts/build-macos.js
node scripts/build-macos.mjs
```
The artifacts will be produced in the `dist` folder.

View File

@@ -313,6 +313,18 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -315,6 +315,18 @@ Gracias a estas maravillosas personas ([emoji key](https://allcontributors.org/d
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -312,6 +312,18 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -308,6 +308,18 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -11,17 +11,24 @@
</a>
</p>
---
> 👋 リモート環境の管理に困ってませんか? [WarpgateというSSH/HTTP/MySQL向けの便利な踏み台サーバー](https://github.com/warp-tech/warpgate)も作ってます。Tabbyとも相性ばっちりなので良かったらお試しください。
----
### ダウンロード:
* [Latest release](https://github.com/Eugeny/tabby/releases/latest)
* [Repositories](https://packagecloud.io/eugeny/tabby): [Debian/Ubuntu-based](https://packagecloud.io/eugeny/tabby/install#bash-deb), [RPM-based](https://packagecloud.io/eugeny/tabby/install#bash-rpm)
* [Latest nightly build](https://nightly.link/Eugeny/tabby/workflows/build/master)
* [最新のリリース](https://github.com/Eugeny/tabby/releases/latest)
* [リポジトリ](https://packagecloud.io/eugeny/tabby): [Debian/Ubuntu向け](https://packagecloud.io/eugeny/tabby/install#bash-deb), [RPM向け](https://packagecloud.io/eugeny/tabby/install#bash-rpm)
* [最新の開発ビルド版](https://nightly.link/Eugeny/tabby/workflows/build/master)
<br/>
<p align="center">
このREADMEは次の言語にも対応: <a href="./README.md">:gb: English</a> · <a href="./README.es-ES.md">:es: Spanish</a> · <a href="./README.ru-RU.md">:ru: Русский</a> · <a href="./README.ko-KR.md">:kr: 한국어</a> · <a href="./README.zh-CN.md">:cn: 简体中文</a> · <a href="./README.it-IT.md">:it: Italiano</a> · <a href="./README.de-DE.md">:de: Deutsch</a> · <a href="./README.id-ID.md">:id: Bahasa Indonesia</a> · <a href="./README.pt-BR.md">:br: Português</a>
このREADMEは次の言語でもご覧いただけます: <a href="./README.md">:gb: English</a> · <a href="./README.es-ES.md">:es: Spanish</a> · <a href="./README.ru-RU.md">:ru: Русский</a> · <a href="./README.ko-KR.md">:kr: 한국어</a> · <a href="./README.zh-CN.md">:cn: 简体中文</a> · <a href="./README.it-IT.md">:it: Italiano</a> · <a href="./README.de-DE.md">:de: Deutsch</a> · <a href="./README.id-ID.md">:id: Bahasa Indonesia</a> · <a href="./README.pt-BR.md">:br: Português</a>
</p>
----
@@ -40,7 +47,7 @@
* 大量の出力にも止まることはありません
* タブキーによる補完機能にも対応したWindows上での快適なシェル (Clink使用)
* SSHの機密性の高い情報と設定を保存する暗号化コンテナの搭載
* SSH、SFTP、Telnetクライアントが[Webアプリ](https://tabby.sh/app)として利用可能 ([セルフホスティング](https://github.com/Eugeny/tabby-web)も可能)
* SSH、SFTP、Telnetクライアントが[Webアプリ](https://tabby.sh/app)として利用できます ([セルフホスティング](https://github.com/Eugeny/tabby-web)も可能)
# コンテンツ <!-- omit in toc -->
@@ -87,7 +94,7 @@
* SSH2クライアントと接続マネージャー
* X11とポートフォワーディング
* 自動ジャンプサーバー管理
* エージェント転送(PageantとWindows標準OpenSSHエージェントを含む)
* エージェント転送PageantとWindows標準OpenSSHエージェントを含む
* ログインスクリプト
<a name="serial"></a>
@@ -104,7 +111,7 @@
# ポータブル機能
Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォルダを作成すれば、ポータブルアプリケーションとして実行することができます。
Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォルダを作成すれば、ポータブルアプリとして実行することができます。
<a name="plugins"></a>
@@ -116,10 +123,10 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
* [title-control](https://github.com/kbjr/terminus-title-control) - タブ名の前後に文字を入れたり指定した文字の削除をすることができます
* [quick-cmds](https://github.com/Domain/terminus-quick-cmds) - 一つもしくは複数のタブに手軽にコマンド送信することができます
* [save-output](https://github.com/Eugeny/tabby-save-output) - ターミナルの出力をファイルに保存することができます
* [sync-config](https://github.com/starxg/terminus-sync-config) - GistやGitee設定ファイルを同期することができます
* [clippy](https://github.com/Eugeny/tabby-clippy) - いつもあなたを悩ますプラグインの作例
* [sync-config](https://github.com/starxg/terminus-sync-config) - GistやGitee設定ファイルを同期することができます
* [clippy](https://github.com/Eugeny/tabby-clippy) - プラグインの作例として、いつも厄介なあいつが出てくるプラグイン
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) - 指定された設定からカスタマイズされたワークスペースを作成することができます
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) - Tabby内の端末で選択したテキストを標準の既定ブラウザで開くことができます。
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) - Tabby内の端末で選択したテキストを既定ブラウザで開くことができます。
<a name="themes"></a>
@@ -137,17 +144,21 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
[**packagecloud**](https://packagecloud.io)は、Debian/RPMリポジトリのホスティングを無償で提供しています
[![](https://user-images.githubusercontent.com/161476/200423885-7aba2202-fea7-4409-95b9-3a062ce902c7.png)](https://keygen.sh/?via=eugene)
[**keygen**](https://keygen.sh/?via=eugene)は、自動リリース機能および自動更新機能のホスティングを無償で提供しています
<a name="contributing"></a>
# コントリビュート
プルリクエストやプラグインは大歓迎です!
プロジェクトの構成や、ごく簡単なプラグイン開発のチュートリアルについては、[HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md)び、[API docs](https://docs.tabby.sh/)を参照してください。
プロジェクトの構成や、非常に簡単なプラグイン開発のチュートリアルについては、[HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md)および、[API docs](https://docs.tabby.sh/)を参照してください。
---
<a name="contributors"></a>
の素晴らしい人たち([emoji key](https://allcontributors.org/docs/en/emoji-key))に感謝します:
以下の素晴らしい方々([emoji key](https://allcontributors.org/docs/en/emoji-key))に感謝いたします:
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
@@ -312,6 +323,18 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>
@@ -321,4 +344,4 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
<!-- ALL-CONTRIBUTORS-LIST:END -->
このプロジェクトは[all-contributors](https://github.com/all-contributors/all-contributors)の仕様に準拠しています。どのような形の貢献でも歓迎します!
このプロジェクトは[all-contributors](https://github.com/all-contributors/all-contributors)の仕様に準拠しています。どのような形の貢献でも歓迎いたします

View File

@@ -302,6 +302,18 @@ Pull requests and plugins are welcome!
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -16,6 +16,8 @@
> 👋 Managing remote environments? Check out [Warpgate, my smart SSH/HTTP/MySQL bastion server](https://github.com/warp-tech/warpgate), it works great with Tabby, you'll love it.
> 👋 [Tabby-web](https://github.com/Eugeny/tabby-web) is looking for sponsors. As I can't afford to host it myself any longer, I'm looking for a sponsor to cover the hosting costs. If you're interested, please [get in touch](https://twitter.com/eugeeeeny)!
----
@@ -32,7 +34,7 @@ This README is also available in: <a href="./README.es-ES.md">:es: Spanish</a>
----
[**Tabby**](https://tabby.sh) (formerly **Terminus**) is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux
[**Tabby**](https://tabby.sh) (formerly **Terminus**) is a highly configurable terminal emulator, SSH and serial client for Windows 10, macOS and Linux
* Integrated SSH and Telnet client and connection manager
* Integrated serial terminal
@@ -322,6 +324,18 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -316,6 +316,18 @@ Obrigado vai para essas pessoas maravilhosas ([emoji key](https://allcontributor
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -308,6 +308,18 @@ Pull-запросы и плагины приветствуются!
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -307,6 +307,18 @@
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.gnomegarden.io/"><img src="https://avatars.githubusercontent.com/u/33667144?v=4?s=100" width="100px;" alt="Crypto Gnome"/><br /><sub><b>Crypto Gnome</b></sub></a><br /><a href="#financial-CryptoGnome" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rbukovansky"><img src="https://avatars.githubusercontent.com/u/1004491?v=4?s=100" width="100px;" alt="Richard Bukovansky"/><br /><sub><b>Richard Bukovansky</b></sub></a><br /><a href="#financial-rbukovansky" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pseudocc"><img src="https://avatars.githubusercontent.com/u/85104110?v=4?s=100" width="100px;" alt="catlas"/><br /><sub><b>catlas</b></sub></a><br /><a href="#financial-pseudocc" title="Financial">💵</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://kapocsi.ca"><img src="https://avatars.githubusercontent.com/u/84490604?v=4?s=100" width="100px;" alt="Thomas Kapocsi"/><br /><sub><b>Thomas Kapocsi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Kapocsi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dylhack.dev/"><img src="https://avatars.githubusercontent.com/u/27179786?v=4?s=100" width="100px;" alt="Dylan Hackworth"/><br /><sub><b>Dylan Hackworth</b></sub></a><br /><a href="#financial-dylhack" title="Financial">💵</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echo304"><img src="https://avatars.githubusercontent.com/u/16456651?v=4?s=100" width="100px;" alt="Sangboak Lee"/><br /><sub><b>Sangboak Lee</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=echo304" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qyecst"><img src="https://avatars.githubusercontent.com/u/13901864?v=4?s=100" width="100px;" alt="qyecst"/><br /><sub><b>qyecst</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=qyecst" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DehanLUO"><img src="https://avatars.githubusercontent.com/u/53093688?v=4?s=100" width="100px;" alt="Han"/><br /><sub><b>Han</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=DehanLUO" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wljince007"><img src="https://avatars.githubusercontent.com/u/88243938?v=4?s=100" width="100px;" alt="wljince007"/><br /><sub><b>wljince007</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=wljince007" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FeroTheFox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4?s=100" width="100px;" alt="fero"/><br /><sub><b>fero</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=FeroTheFox" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -1,4 +1,4 @@
import * as nodePTY from '@tabby-gang/node-pty'
import * as nodePTY from 'node-pty'
import { v4 as uuidv4 } from 'uuid'
import { ipcMain } from 'electron'
import { Application } from './app'

View File

@@ -92,8 +92,11 @@ export class Window {
if (this.configStore.appearance?.frame === 'native') {
bwOptions.frame = true
} else {
if (process.platform === 'darwin') {
bwOptions.titleBarStyle = 'hidden'
bwOptions.titleBarStyle = 'hidden'
if (process.platform === 'win32') {
bwOptions.titleBarOverlay = {
color: '#00000000',
}
}
}
@@ -125,7 +128,11 @@ export class Window {
})
this.window.on('blur', () => {
if ((this.configStore.appearance?.dock ?? 'off') !== 'off' && this.configStore.appearance?.dockHideOnBlur) {
if (
(this.configStore.appearance?.dock ?? 'off') !== 'off' &&
this.configStore.appearance?.dockHideOnBlur &&
!BrowserWindow.getFocusedWindow()
) {
this.hide()
}
})
@@ -380,6 +387,21 @@ export class Window {
this.setVibrancy(enabled, type)
})
ipcMain.on('window-set-window-controls-color', (event, theme) => {
if (!this.window || event.sender !== this.window.webContents) {
return
}
const symbolColor: string = theme.foreground
this.window.setTitleBarOverlay(
{
symbolColor: symbolColor,
height: 32,
},
)
})
ipcMain.on('window-set-title', (event, title) => {
if (!this.window || event.sender !== this.window.webContents) {
return
@@ -438,7 +460,7 @@ export class Window {
this.window.on('resize', onBoundsChange)
ipcMain.on('window-set-traffic-light-position', (_event, x, y) => {
this.window.setTrafficLightPosition({ x, y })
this.window.setWindowButtonPosition({ x, y })
})
ipcMain.on('window-set-opacity', (_event, opacity) => {

View File

@@ -15,8 +15,8 @@
"watch": "webpack --progress --color --watch"
},
"dependencies": {
"@electron/remote": "2.0.8",
"@tabby-gang/node-pty": "^0.11.0-beta.203",
"@electron/remote": "2.0.10",
"node-pty": "^1.0",
"any-promise": "^1.3.0",
"electron-config": "2.0.0",
"electron-debug": "^3.2.0",
@@ -32,24 +32,24 @@
"rxjs": "^7.5.7",
"source-map-support": "^0.5.20",
"v8-compile-cache": "^2.3.0",
"yargs": "^17.3.1"
"yargs": "^17.7.2"
},
"optionalDependencies": {
"@tabby-gang/windows-blurbehind": "^3.0.0",
"macos-native-processlist": "^2.1.0",
"patch-package": "^6.5.0",
"serialport": "10.5.0",
"serialport": "11.0.1",
"serialport-binding-webserialapi": "^1.0.3",
"windows-native-registry": "^3.2.1",
"windows-process-tree": "^0.3.4"
"windows-process-tree": "^0.4.0"
},
"devDependencies": {
"@ngx-translate/core": "^14.0.0",
"@types/mz": "2.7.4",
"@types/node": "18.11.19",
"atomically": "^1.7.0",
"@types/node": "20.3.1",
"atomically": "^2.0.2",
"filesize": "^9",
"ngx-filesize": "^3.0.1"
"ngx-filesize": "^3.0.2"
},
"peerDependencies": {
"tabby-community-color-schemes": "*",

View File

@@ -4,4 +4,6 @@ export const PLUGIN_BLACKLIST = [
'terminus-clickable-links', // now bundled with Tabby
'tabby-clickable-links', // now bundled with Tabby
'terminus-clickable-ips', // broken, functionality now bundled with Tabby
'terminus-elastic-quick-commands', // broken and abandoned, fork of quick-commands
'terminus-elastic-quick-cmds', // broken and abandoned, fork of quick-commands
]

View File

@@ -27,6 +27,8 @@ const cachedBuiltinModules = {
'@angular/compiler': require('@angular/compiler'),
'@angular/core': require('@angular/core'),
'@angular/forms': require('@angular/forms'),
'@angular/localize': require('@angular/localize'),
'@angular/localize/init': require('@angular/localize/init'),
'@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'),
@@ -90,12 +92,43 @@ export function initModuleLookup (userPluginsPath: string): void {
})
}
export async function findPlugins (): Promise<PluginInfo[]> {
const paths = nodeModule.globalPaths
let foundPlugins: PluginInfo[] = []
const PLUGIN_PREFIX = 'tabby-'
const LEGACY_PLUGIN_PREFIX = 'terminus-'
async function getCandidateLocationsInPluginDir (pluginDir: any): Promise<{ pluginDir: string, packageName: string }[]> {
const candidateLocations: { pluginDir: string, packageName: string }[] = []
const PREFIX = 'tabby-'
const LEGACY_PREFIX = 'terminus-'
if (await fs.exists(pluginDir)) {
const pluginNames = await fs.readdir(pluginDir)
if (await fs.exists(path.join(pluginDir, 'package.json'))) {
candidateLocations.push({
pluginDir: path.dirname(pluginDir),
packageName: path.basename(pluginDir),
})
}
const promises = []
for (const packageName of pluginNames) {
if ((packageName.startsWith(PLUGIN_PREFIX) || packageName.startsWith(LEGACY_PLUGIN_PREFIX)) && !PLUGIN_BLACKLIST.includes(packageName)) {
const pluginPath = path.join(pluginDir, packageName)
const infoPath = path.join(pluginPath, 'package.json')
promises.push(fs.exists(infoPath).then(result => {
if (result) {
candidateLocations.push({ pluginDir, packageName })
}
}))
}
}
await Promise.all(promises)
}
return candidateLocations
}
async function getPluginCandidateLocation (paths: any): Promise<{ pluginDir: string, packageName: string }[]> {
const candidateLocationsPromises: Promise<{ pluginDir: string, packageName: string }[]>[] = []
const processedPaths = []
@@ -106,69 +139,84 @@ export async function findPlugins (): Promise<PluginInfo[]> {
processedPaths.push(pluginDir)
pluginDir = normalizePath(pluginDir)
if (!await fs.exists(pluginDir)) {
continue
}
const pluginNames = await fs.readdir(pluginDir)
if (await fs.exists(path.join(pluginDir, 'package.json'))) {
candidateLocations.push({
pluginDir: path.dirname(pluginDir),
packageName: path.basename(pluginDir),
})
}
for (const packageName of pluginNames) {
if ((packageName.startsWith(PREFIX) || packageName.startsWith(LEGACY_PREFIX)) && !PLUGIN_BLACKLIST.includes(packageName)) {
candidateLocations.push({ pluginDir, packageName })
}
}
candidateLocationsPromises.push(getCandidateLocationsInPluginDir(pluginDir))
}
for (const { pluginDir, packageName } of candidateLocations) {
const pluginPath = path.join(pluginDir, packageName)
const infoPath = path.join(pluginPath, 'package.json')
if (!await fs.exists(infoPath)) {
continue
const candidateLocations: { pluginDir: string, packageName: string }[] = []
for (const pluginCandidateLocations of await Promise.all(candidateLocationsPromises)) {
candidateLocations.push(...pluginCandidateLocations)
}
return candidateLocations
}
async function parsePluginInfo (pluginDir: string, packageName: string): Promise<PluginInfo|null> {
const pluginPath = path.join(pluginDir, packageName)
const infoPath = path.join(pluginPath, 'package.json')
const name = packageName.startsWith(PLUGIN_PREFIX) ? packageName.substring(PLUGIN_PREFIX.length) : packageName.substring(LEGACY_PLUGIN_PREFIX.length)
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') || info.keywords.includes('tabby-plugin') || info.keywords.includes('tabby-builtin-plugin'))) {
return null
}
const name = packageName.startsWith(PREFIX) ? packageName.substring(PREFIX.length) : packageName.substring(LEGACY_PREFIX.length)
let author = info.author
author = author.name || author
console.log(`Found ${name} in ${pluginDir}`)
return {
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,
path: pluginPath,
info,
}
} catch (error) {
console.error('Cannot load package info for', packageName)
return null
}
}
export async function findPlugins (): Promise<PluginInfo[]> {
const paths = nodeModule.globalPaths
let foundPlugins: PluginInfo[] = []
const candidateLocations: { pluginDir: string, packageName: string }[] = await getPluginCandidateLocation(paths)
const foundPluginsPromises: Promise<PluginInfo|null>[] = []
for (const { pluginDir, packageName } of candidateLocations) {
if (builtinModules.includes(packageName) && pluginDir !== builtinPluginsPath) {
continue
}
console.log(`Found ${name} in ${pluginDir}`)
foundPluginsPromises.push(parsePluginInfo(pluginDir, packageName))
}
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
for (const pluginInfo of await Promise.all(foundPluginsPromises)) {
if (pluginInfo) {
const existing = foundPlugins.find(x => x.name === pluginInfo.name)
if (existing) {
if (existing.isLegacy) {
console.info(`Plugin ${pluginInfo.packageName} already exists, overriding`)
foundPlugins = foundPlugins.filter(x => x.name !== pluginInfo.name)
} else {
console.info(`Plugin ${pluginInfo.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') || info.keywords.includes('tabby-plugin') || info.keywords.includes('tabby-builtin-plugin'))) {
continue
}
let author = info.author
author = author.name || author
foundPlugins.push({
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,
path: pluginPath,
info,
})
} catch (error) {
console.error('Cannot load package info for', packageName)
foundPlugins.push(pluginInfo)
}
}
@@ -179,26 +227,36 @@ export async function findPlugins (): Promise<PluginInfo[]> {
export async function loadPlugins (foundPlugins: PluginInfo[], progress: ProgressCallback): Promise<any[]> {
const plugins: any[] = []
progress(0, 1)
const pluginsPromises: Promise<any>[] = []
let index = 0
for (const foundPlugin of foundPlugins) {
console.info(`Loading ${foundPlugin.name}: ${nodeRequire.resolve(foundPlugin.path)}`)
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
plugins.push(pluginModule)
await new Promise(x => setTimeout(x, 50))
} catch (error) {
console.error(`Could not load ${foundPlugin.name}:`, error)
}
const setProgress = function () {
index++
progress(index, foundPlugins.length)
}
progress(0, 1)
for (const foundPlugin of foundPlugins) {
pluginsPromises.push(new Promise(x => {
console.info(`Loading ${foundPlugin.name}: ${nodeRequire.resolve(foundPlugin.path)}`)
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
plugins.push(pluginModule)
} catch (error) {
console.error(`Could not load ${foundPlugin.name}:`, error)
}
setProgress()
setTimeout(x, 50)
}))
}
await Promise.all(pluginsPromises)
progress(1, 1)
return plugins
}

View File

@@ -47,7 +47,7 @@ const config = {
mz: 'commonjs mz',
npm: 'commonjs npm',
'node:os': 'commonjs os',
'@tabby-gang/node-pty': 'commonjs @tabby-gang/node-pty',
'node-pty': 'commonjs node-pty',
path: 'commonjs path',
util: 'commonjs util',
'source-map-support': 'commonjs source-map-support',

View File

@@ -2,10 +2,10 @@
# yarn lockfile v1
"@electron/remote@2.0.8":
version "2.0.8"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.8.tgz#85ff321f0490222993207106e2f720273bb1a5c3"
integrity sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==
"@electron/remote@2.0.10":
version "2.0.10"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.10.tgz#133e2f607b1861ac249bd78b5abd1e961feed713"
integrity sha512-3SFKKaQXcyWgwmibud+UqJl/XlHOgLcI3fwtB9pNelPSJAcTxocOJrF6FaxBIQaj1+R05Di6xuAswZpXAW7xhA==
"@iarna/cli@^1.2.0":
version "1.2.0"
@@ -38,16 +38,16 @@
"@serialport/bindings-interface" "^1.2.1"
debug "^4.3.3"
"@serialport/bindings-cpp@10.8.0":
version "10.8.0"
resolved "https://registry.yarnpkg.com/@serialport/bindings-cpp/-/bindings-cpp-10.8.0.tgz#79507b57022ac264e963e7fbf3647a3821569a20"
integrity sha512-OMQNJz5kJblbmZN5UgJXLwi2XNtVLxSKmq5VyWuXQVsUIJD4l9UGHnLPqM5LD9u3HPZgDI5w7iYN7gxkQNZJUw==
"@serialport/bindings-cpp@11.0.3":
version "11.0.3"
resolved "https://registry.yarnpkg.com/@serialport/bindings-cpp/-/bindings-cpp-11.0.3.tgz#ab4d4826ef657e326b6c99d6b8a113d834378a93"
integrity sha512-xgNDJ7pHHZCJMoDsEH+D8q5CV+V3RGN4/jLEG9SQ7q6kh+o03axV0l/upPHZ0HW4tTXpGgqPIGbXOTrD4RGQQA==
dependencies:
"@serialport/bindings-interface" "1.2.2"
"@serialport/parser-readline" "^10.2.1"
debug "^4.3.2"
node-addon-api "^5.0.0"
node-gyp-build "^4.3.0"
"@serialport/parser-readline" "11.0.0"
debug "4.3.4"
node-addon-api "6.1.0"
node-gyp-build "4.6.0"
"@serialport/bindings-interface@1.2.2":
version "1.2.2"
@@ -59,65 +59,77 @@
resolved "https://registry.yarnpkg.com/@serialport/bindings-interface/-/bindings-interface-1.2.1.tgz#1ee80b0951ef4e4fd8a5a186621feff046aa2faf"
integrity sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==
"@serialport/parser-byte-length@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-10.5.0.tgz#f3d4c1c7923222df2f3d3c7c8aaaa207fe373b49"
integrity sha512-eHhr4lHKboq1OagyaXAqkemQ1XyoqbLQC8XJbvccm95o476TmEdW5d7AElwZV28kWprPW68ZXdGF2VXCkJgS2w==
"@serialport/parser-byte-length@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-11.0.1.tgz#26e4f3b2d66aaac0859b18a57c648d0eec78392a"
integrity sha512-UsffR5b3NHwhjJzsWv5fZMkoq3wGNyUcRTA9jlu02w+2kMlBRJPzlPVB5szVX0VWUEqkCg+3VaU2XWuYr+uAUA==
"@serialport/parser-cctalk@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-10.5.0.tgz#0ee88db0768a361b7cfb9a394b74e480c38e1992"
integrity sha512-Iwsdr03xmCKAiibLSr7b3w6ZUTBNiS+PwbDQXdKU/clutXjuoex83XvsOtYVcNZmwJlVNhAUbkG+FJzWwIa4DA==
"@serialport/parser-cctalk@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-11.0.1.tgz#70c5ccc8fc5ebbe5c317005791155d3b2812efa6"
integrity sha512-klzVQfRcC1m0SVDV2Dy9hHfwweO2/mUMUyuXK04FRkKHy5/AdETmk9KTVVVVfpDCSysvHoyQPwiDFq8ddwX3cQ==
"@serialport/parser-delimiter@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-10.5.0.tgz#b0d93100cdfd0619d020a427d652495073f3b828"
integrity sha512-/uR/yT3jmrcwnl2FJU/2ySvwgo5+XpksDUR4NF/nwTS5i3CcuKS+FKi/tLzy1k8F+rCx5JzpiK+koqPqOUWArA==
"@serialport/parser-delimiter@11.0.0":
version "11.0.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-11.0.0.tgz#e830c6bb49723d4446131277dc3243b502d09388"
integrity sha512-aZLJhlRTjSmEwllLG7S4J8s8ctRAS0cbvCpO87smLvl3e4BgzbVgF6Z6zaJd3Aji2uSiYgfedCdNc4L6W+1E2g==
"@serialport/parser-inter-byte-timeout@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.5.0.tgz#8665ee5e6138f794ac055e83ef2d1c3653a577c0"
integrity sha512-WPvVlSx98HmmUF9jjK6y9mMp3Wnv6JQA0cUxLeZBgS74TibOuYG3fuUxUWGJALgAXotOYMxfXSezJ/vSnQrkhQ==
"@serialport/parser-delimiter@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-11.0.1.tgz#c0bcc24d8060c6b352cbe6003ebe95671ad32221"
integrity sha512-NAsYa3OFt2xEnj/+0BRkQP2qkRNbXBPEq6uFJEdNdzcTSF+BTRXkoIRrWBq3N6koovPqW6lnbxc/iJYe5AX/2Q==
"@serialport/parser-packet-length@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-packet-length/-/parser-packet-length-10.5.0.tgz#4c4d733bdff8cc4749f2bd750e42e66f8f478def"
integrity sha512-jkpC/8w4/gUBRa2Teyn7URv1D7T//0lGj27/4u9AojpDVXsR6dtdcTG7b7dNirXDlOrSLvvN7aS5/GNaRlEByw==
"@serialport/parser-inter-byte-timeout@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-11.0.1.tgz#ed6d939eeb3bec94579fb3628dc6dcd0c9a3dd21"
integrity sha512-PEFV9dSpW+ptH1rLhdB9KgE+rbJ/FvQiZz0mx+4jkv/Po4g3PNsEEMXfMW0aQVSFVsmitvmE0jHlhGjLv8GQEg==
"@serialport/parser-readline@10.5.0", "@serialport/parser-readline@^10.2.1":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-10.5.0.tgz#df23365ae7f45679b1735deae26f72ba42802862"
integrity sha512-0aXJknodcl94W9zSjvU+sLdXiyEG2rqjQmvBWZCr8wJZjWEtv3RgrnYiWq4i2OTOyC8C/oPK8ZjpBjQptRsoJQ==
"@serialport/parser-packet-length@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-packet-length/-/parser-packet-length-11.0.1.tgz#9d7982a6eeaf9a5bdfe642ceb287f171ab2965b7"
integrity sha512-KwPu8dsAI+eN4fnUS1vVmrOpUtBK4p9L9cHhwn5ZmfcvwvZMHp/J+IEu7xH0g5aM1/8QEoaql26BQP+sZ71NQQ==
"@serialport/parser-readline@11.0.0":
version "11.0.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-11.0.0.tgz#c2c8c88e163d2abf7c0ffddbc1845336444e3454"
integrity sha512-rRAivhRkT3YO28WjmmG4FQX6L+KMb5/ikhyylRfzWPw0nSXy97+u07peS9CbHqaNvJkMhH1locp2H36aGMOEIA==
dependencies:
"@serialport/parser-delimiter" "10.5.0"
"@serialport/parser-delimiter" "11.0.0"
"@serialport/parser-ready@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-10.5.0.tgz#1d9029f57b1abd664cb468e21bfccf7b44c6e8ea"
integrity sha512-QIf65LTvUoxqWWHBpgYOL+soldLIIyD1bwuWelukem2yDZVWwEjR288cLQ558BgYxH4U+jLAQahhqoyN1I7BaA==
"@serialport/parser-readline@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-11.0.1.tgz#e85805ae803c2dc507eefa390abec6a67ceef313"
integrity sha512-wkJ3EI733+yhbi7eBWzs/qn8+cfIBcYQjfrILPNqslAy6VlgdKw+pHoblDFmg78GN0TqGUDSWlTJ65oLEPVp5Q==
dependencies:
"@serialport/parser-delimiter" "11.0.1"
"@serialport/parser-regex@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-10.5.0.tgz#f98eab6e3d9bc99086269e9acf39a82db36d245f"
integrity sha512-9jnr9+PCxRoLjtGs7uxwsFqvho+rxuJlW6ZWSB7oqfzshEZWXtTJgJRgac/RuLft4hRlrmRz5XU40i3uoL4HKw==
"@serialport/parser-ready@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-11.0.1.tgz#bba01283a121880641e43c27193e6708fef2907c"
integrity sha512-v/bvlgKhrNt+SVLSqlfXCO1HEinfRRMGnzqbpdVCgu2SiWIEenCLjs51JisKVYQoQFcXdP/EHZnzm7NPXHDlAg==
"@serialport/parser-slip-encoder@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-slip-encoder/-/parser-slip-encoder-10.5.0.tgz#cb79ac0fda1fc87f049690ff7b498c787da67991"
integrity sha512-wP8m+uXQdkWSa//3n+VvfjLthlabwd9NiG6kegf0fYweLWio8j4pJRL7t9eTh2Lbc7zdxuO0r8ducFzO0m8CQw==
"@serialport/parser-regex@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-11.0.1.tgz#7833ca6029c8c58eb39dd6fe984756cf09d769b7"
integrity sha512-Lf3k7qibYqZ0+/wX3UA8fRng3WtQ+UyLpjQhG1COs6OBSq5/I5tYXczfhlrbA0gHo1qzgzr2V2t7m6FoBSc81Q==
"@serialport/parser-spacepacket@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-spacepacket/-/parser-spacepacket-10.5.0.tgz#2fc077c0ec16a9532c511ad5f2ab12d588796bc7"
integrity sha512-BEZ/HAEMwOd8xfuJSeI/823IR/jtnThovh7ils90rXD4DPL1ZmrP4abAIEktwe42RobZjIPfA4PaVfyO0Fjfhg==
"@serialport/parser-slip-encoder@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-slip-encoder/-/parser-slip-encoder-11.0.1.tgz#4ba0c335627e3d1203279a5f8a4c1af0c829b7fe"
integrity sha512-l4mXsAGzpmPO7+uqKJqtPDW643irfnGEWbiy34FoYvuOs8n0SmiMtgQZFAtvlTNQCRWE2tykF/WG6K/McJthDw==
"@serialport/stream@10.5.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-10.5.0.tgz#cda8fb3e8d03094b0962a3d14b73adfcd591be58"
integrity sha512-gbcUdvq9Kyv2HsnywS7QjnEB28g+6OGB5Z8TLP7X+UPpoMIWoUsoQIq5Kt0ZTgMoWn3JGM2lqwTsSHF+1qhniA==
"@serialport/parser-spacepacket@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-spacepacket/-/parser-spacepacket-11.0.1.tgz#9e1c372f45433afb9a5dbec7b5a298c710b0455b"
integrity sha512-Lq7fXoOsLOMo4XEt9HB31zV5LhrteXlsOy2o6r39TfRwU6x8Nou9jQMA9vW0a6yPra5zwsHIaNrA6tDOGj2Ozg==
"@serialport/stream@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-11.0.1.tgz#ed40c66d517cfebf7185cd9c37ba0a08e76f88b2"
integrity sha512-6pjyKRg8MQuvhGfg36+PF7K5eGNQcEswCSiAg1UPilqqFS8X1QnaiSCn5UFp/hCN+pAtlFjkOi0ztvtmSI7n4g==
dependencies:
"@serialport/bindings-interface" "1.2.2"
debug "^4.3.2"
debug "4.3.4"
"@serialport/stream@^9.0.2":
version "9.2.4"
@@ -126,13 +138,6 @@
dependencies:
debug "^4.3.2"
"@tabby-gang/node-pty@^0.11.0-beta.203":
version "0.11.0-beta.204"
resolved "https://registry.yarnpkg.com/@tabby-gang/node-pty/-/node-pty-0.11.0-beta.204.tgz#80d4393c7a233d3298f47a4755467a246b0099f9"
integrity sha512-sNT5Z2MEkEIhToAdVAdZ/lfeQ9UgFE3h2ENlOux+WHBrl1k0BiUEIOd/jh/K3mNAGEfcZ44gNQQ50g5KXTQEmA==
dependencies:
nan "^2.16.0"
"@tabby-gang/windows-blurbehind@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@tabby-gang/windows-blurbehind/-/windows-blurbehind-3.0.0.tgz#48d409c2eb14a12c867b70de5ee4d6769ef45e8f"
@@ -147,15 +152,10 @@
dependencies:
"@types/node" "*"
"@types/node@*":
version "18.7.23"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.23.tgz#75c580983846181ebe5f4abc40fe9dfb2d65665f"
integrity sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==
"@types/node@18.11.19":
version "18.11.19"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.19.tgz#35e26df9ec441ab99d73e99e9aca82935eea216d"
integrity sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==
"@types/node@*", "@types/node@20.3.1":
version "20.3.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
"@types/node@^10.12.18":
version "10.17.60"
@@ -327,10 +327,13 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
atomically@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe"
integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==
atomically@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/atomically/-/atomically-2.0.2.tgz#e5a6e8021441405b7a1c36d4587e25f7a13545f2"
integrity sha512-Xfmb4q5QV7uqTlVdMSTtO5eF4DCHfNOdaPyKlbFShkzeNP+3lj3yjjcbdjSmEY4+pDBKJ9g26aP+ImTe88UHoQ==
dependencies:
stubborn-fs "^1.2.5"
when-exit "^2.0.0"
aws-sign2@~0.7.0:
version "0.7.0"
@@ -583,13 +586,13 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
cliui@^7.0.2:
version "7.0.4"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
dependencies:
string-width "^4.2.0"
strip-ansi "^6.0.0"
strip-ansi "^6.0.1"
wrap-ansi "^7.0.0"
clone@^1.0.2:
@@ -773,6 +776,13 @@ debug@3.1.0:
dependencies:
ms "2.0.0"
debug@4.3.4, debug@^4.0.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
debug@^3.1.0:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -780,13 +790,6 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
debug@^4.0.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
debuglog@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz"
@@ -798,9 +801,9 @@ decamelize@^1.1.1, decamelize@^1.2.0:
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
version "0.2.2"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
decompress-response@^6.0.0:
version "6.0.0"
@@ -2257,7 +2260,7 @@ mz@^2.7.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
nan@^2.13.2, nan@^2.16.0, "nan@github:jkleinsc/nan#remove_accessor_signature":
nan@^2.17.0, "nan@github:jkleinsc/nan#remove_accessor_signature":
version "2.16.0"
resolved "https://codeload.github.com/jkleinsc/nan/tar.gz/6a2f95a6a2209d8aa7542fb18099fd808a802059"
@@ -2273,10 +2276,10 @@ native-process-working-directory@^1.0.2:
dependencies:
node-addon-api "^3.1.0"
ngx-filesize@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/ngx-filesize/-/ngx-filesize-3.0.1.tgz#620933ae181a1128905404e43b26abb99accba90"
integrity sha512-792I4fiG9EEPYjGib2+YTYAzfWIlccfy8uXNSXFFepuAntoS+eijLwnl0m7ajcQuNgbTtwEf9VmYIPN8mS3jqQ==
ngx-filesize@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/ngx-filesize/-/ngx-filesize-3.0.2.tgz#aab5ce9ce6eaa421f0393447d9c01653f3839a2c"
integrity sha512-0h1gzcQYeNcGzDVcQcdhKK8RCrXdIXn4foT/DcXRwoht0KL3FQemJFKZowZmXESL7cnLlETaeRSnsHuqfchoWg==
dependencies:
tslib "^2.3.0"
@@ -2304,16 +2307,16 @@ node-addon-api@3.1.0, node-addon-api@^3.0.2, node-addon-api@^3.1.0:
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz"
integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
node-addon-api@6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76"
integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==
node-addon-api@^4.0.0, node-addon-api@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
node-addon-api@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
node-fetch-npm@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4"
@@ -2323,10 +2326,10 @@ node-fetch-npm@^2.0.2:
json-parse-better-errors "^1.0.0"
safe-buffer "^5.1.1"
node-gyp-build@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3"
integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==
node-gyp-build@4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055"
integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==
node-gyp@^5.0.2, node-gyp@^5.1.0:
version "5.1.1"
@@ -2345,6 +2348,13 @@ node-gyp@^5.0.2, node-gyp@^5.1.0:
tar "^4.4.12"
which "^1.3.1"
node-pty@^1.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.0.0.tgz#7daafc0aca1c4ca3de15c61330373af4af5861fd"
integrity sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==
dependencies:
nan "^2.17.0"
nopt@^4.0.1, nopt@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
@@ -3004,9 +3014,9 @@ qrcode-terminal@^0.12.0:
integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==
qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
version "6.5.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
query-string@^6.8.2:
version "6.13.8"
@@ -3292,25 +3302,25 @@ serialport-binding-webserialapi@^1.0.3:
"@serialport/binding-abstract" "^9.0.2"
"@serialport/stream" "^9.0.2"
serialport@10.5.0:
version "10.5.0"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-10.5.0.tgz#b85f614def6e8914e5865c798b0555330903a0f8"
integrity sha512-7OYLDsu5i6bbv3lU81pGy076xe0JwpK6b49G6RjNvGibstUqQkI+I3/X491yBGtf4gaqUdOgoU1/5KZ/XxL4dw==
serialport@11.0.1:
version "11.0.1"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-11.0.1.tgz#9c7aad877d38124a938a50f89eaef22c44825eae"
integrity sha512-j/ntDuewAkqL6g5wKjwV2RTyLBL9cpob8aRd3yLAViYApTsJoYqRleyuzst0OboNTBjBsoxQ4YKYhuYHi1XViQ==
dependencies:
"@serialport/binding-mock" "10.2.2"
"@serialport/bindings-cpp" "10.8.0"
"@serialport/parser-byte-length" "10.5.0"
"@serialport/parser-cctalk" "10.5.0"
"@serialport/parser-delimiter" "10.5.0"
"@serialport/parser-inter-byte-timeout" "10.5.0"
"@serialport/parser-packet-length" "10.5.0"
"@serialport/parser-readline" "10.5.0"
"@serialport/parser-ready" "10.5.0"
"@serialport/parser-regex" "10.5.0"
"@serialport/parser-slip-encoder" "10.5.0"
"@serialport/parser-spacepacket" "10.5.0"
"@serialport/stream" "10.5.0"
debug "^4.3.3"
"@serialport/bindings-cpp" "11.0.3"
"@serialport/parser-byte-length" "11.0.1"
"@serialport/parser-cctalk" "11.0.1"
"@serialport/parser-delimiter" "11.0.1"
"@serialport/parser-inter-byte-timeout" "11.0.1"
"@serialport/parser-packet-length" "11.0.1"
"@serialport/parser-readline" "11.0.1"
"@serialport/parser-ready" "11.0.1"
"@serialport/parser-regex" "11.0.1"
"@serialport/parser-slip-encoder" "11.0.1"
"@serialport/parser-spacepacket" "11.0.1"
"@serialport/stream" "11.0.1"
debug "4.3.4"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
@@ -3609,6 +3619,11 @@ strip-json-comments@~2.0.1:
resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
stubborn-fs@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/stubborn-fs/-/stubborn-fs-1.2.5.tgz#e5e244223166921ddf66ed5e062b6b3bf285bfd2"
integrity sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -3728,12 +3743,7 @@ tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
tslib@^2.1.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
tslib@^2.3.0:
tslib@^2.1.0, tslib@^2.3.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
@@ -3906,6 +3916,11 @@ wcwidth@^1.0.0:
dependencies:
defaults "^1.0.3"
when-exit@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/when-exit/-/when-exit-2.1.0.tgz#0f7b5d7d5f00ea2c4b131b546c444cca2c4ffba7"
integrity sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
@@ -3939,12 +3954,12 @@ windows-native-registry@^3.2.1:
dependencies:
node-addon-api "^3.1.0"
windows-process-tree@^0.3.4:
version "0.3.4"
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.3.4.tgz#6bc4b8010129c30ff95bcd333b9f94744dd3c4fb"
integrity sha512-rtSX73i9OnkDxSdBP9c1YBunEwheZdO/hjRwNk9uSoWqO92x0zDRGfIIK0MtUn8gZZD+2kPEVpj5MmfNl7JpJA==
windows-process-tree@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.4.0.tgz#31ac49c5da557e628ce7e37a5800972173d3349a"
integrity sha512-9LunDnc1WwuhyLeTAXMFX8wbActGJtDCBaiapQXFYk/nO4W4X9YxOKV5g/lQL3XX69QYxveDbjVVrdnTt1qqCQ==
dependencies:
nan "^2.13.2"
nan "^2.17.0"
worker-farm@^1.6.0, worker-farm@^1.7.0:
version "1.7.0"
@@ -4053,10 +4068,10 @@ yargs-parser@^15.0.1:
camelcase "^5.0.0"
decamelize "^1.2.0"
yargs-parser@^21.0.0:
version "21.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55"
integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==
yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
yargs-parser@^7.0.0:
version "7.0.0"
@@ -4082,18 +4097,18 @@ yargs@^14.2.3:
y18n "^4.0.0"
yargs-parser "^15.0.1"
yargs@^17.3.1:
version "17.3.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9"
integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==
yargs@^17.7.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
dependencies:
cliui "^7.0.2"
cliui "^8.0.1"
escalade "^3.1.1"
get-caller-file "^2.0.5"
require-directory "^2.1.1"
string-width "^4.2.3"
y18n "^5.0.5"
yargs-parser "^21.0.0"
yargs-parser "^21.1.1"
yargs@^8.0.2:
version "8.0.2"

View File

@@ -1,16 +0,0 @@
const fs = require('fs')
const signHook = require('./afterSignHook.cjs')
module.exports = async function (params) {
// notarize the app on Mac OS only.
if (process.platform !== 'darwin' || !process.env.GITHUB_REF || !process.env.GITHUB_REF.startsWith('refs/tags/')) {
return
}
console.log('afterBuild hook triggered')
let pkgName = fs.readdirSync('dist').find(x => x.endsWith('.pkg'))
signHook({
appOutDir: 'dist',
_pathOverride: pkgName,
})
}

View File

@@ -1,35 +0,0 @@
// See: https://medium.com/@TwitterArchiveEraser/notarize-electron-apps-7a5f988406db
const fs = require('fs')
const path = require('path')
const notarizer = require('electron-notarize')
module.exports = async function (params) {
// notarize the app on Mac OS only.
if (process.platform !== 'darwin' || !process.env.GITHUB_REF || !process.env.GITHUB_REF.startsWith('refs/tags/')) {
return
}
console.log('afterSign hook triggered', params)
let appId = 'org.tabby'
let appPath = path.join(params.appOutDir, params._pathOverride || `${params.packager.appInfo.productFilename}.app`)
if (!fs.existsSync(appPath)) {
throw new Error(`Cannot find application at: ${appPath}`)
}
console.log(`Notarizing ${appId} found at ${appPath}`)
try {
await notarizer.notarize({
appBundleId: appId,
appPath: appPath,
appleId: process.env.APPSTORE_USERNAME,
appleIdPassword: process.env.APPSTORE_PASSWORD,
})
} catch (error) {
console.error(error)
}
console.log(`Done notarizing ${appId}`)
}

View File

@@ -3,8 +3,6 @@ appId: org.tabby
productName: Tabby
compression: normal
npmRebuild: false
afterSign: "./build/mac/afterSignHook.cjs"
afterAllArtifactBuild: "./build/mac/afterBuildHook.cjs"
files:
- '**/*'
- dist

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
#: tabby-local/src/components/terminalTab.component.ts:112
#: tabby-local/src/components/terminalTab.component.ts:111
msgid "\"{command}\" is still running. Close?"
msgstr ""
@@ -31,7 +31,7 @@ msgstr ""
msgid "Accessibility"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:20
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:27
msgid "Acrylic background"
msgstr ""
@@ -116,7 +116,7 @@ msgstr ""
msgid "Ask a question"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:13
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:20
msgid "Ask before closing the browser tab"
msgstr ""
@@ -158,12 +158,12 @@ msgstr ""
msgid "Available"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:28
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:35
msgid "Background type"
msgstr ""
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
#: tabby-serial/src/components/serialTab.component.ts:112
#: tabby-serial/src/components/serialTab.component.ts:111
#: tabby-serial/src/profiles.ts:86
msgid "Baud rate"
msgstr ""
@@ -180,7 +180,7 @@ msgstr ""
msgid "Blue"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:32
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:39
msgid "Blur"
msgstr ""
@@ -188,8 +188,8 @@ msgstr ""
msgid "Bold font weight"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:125
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:73
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:132
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:80
msgid "Bottom"
msgstr ""
@@ -214,12 +214,12 @@ msgstr ""
#: locale/tmp-html/tabby-ssh/src/components/sftpDeleteModal.component.html:7
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:32
#: tabby-electron/src/services/updater.service.ts:134
#: tabby-local/src/components/terminalTab.component.ts:117
#: tabby-local/src/components/terminalTab.component.ts:116
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:117
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:79
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:99
#: tabby-ssh/src/sftpContextMenu.ts:40
#: tabby-terminal/src/api/baseTerminalTab.component.ts:480
#: tabby-terminal/src/api/baseTerminalTab.component.ts:484
msgid "Cancel"
msgstr ""
@@ -294,7 +294,7 @@ msgstr ""
msgid "Close tabs to the right"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:175
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:182
msgid "Close the window after closing the last tab"
msgstr ""
@@ -327,7 +327,7 @@ msgstr ""
msgid "Commands"
msgstr ""
#: tabby-core/src/theme.ts:20
#: tabby-core/src/theme.ts:21
msgid "Compact (legacy)"
msgstr ""
@@ -339,8 +339,8 @@ msgstr ""
msgid "Config downloaded"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:109
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:114
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:115
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:120
msgid "Config file"
msgstr ""
@@ -361,7 +361,7 @@ msgstr ""
msgid "Connect through a proxy server"
msgstr ""
#: tabby-core/src/index.ts:212
#: tabby-core/src/index.ts:214
#: tabby-core/src/services/profiles.service.ts:178
msgid "Connect to \"%s\"..."
msgstr ""
@@ -371,7 +371,7 @@ msgid "Connect to a different host first and use it as a proxy"
msgstr ""
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:19
#: tabby-serial/src/components/serialTab.component.ts:66
#: tabby-serial/src/components/serialTab.component.ts:65
#: tabby-ssh/src/components/sshTab.component.ts:143
#: tabby-telnet/src/components/telnetTab.component.ts:72
msgid "Connecting"
@@ -393,10 +393,14 @@ msgstr ""
msgid "Context menu"
msgstr ""
#: tabby-terminal/src/api/baseTerminalTab.component.ts:225
#: tabby-terminal/src/api/baseTerminalTab.component.ts:233
#: tabby-terminal/src/api/baseTerminalTab.component.ts:549
#: tabby-terminal/src/api/baseTerminalTab.component.ts:770
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
msgid "Controls the amount of space between elements"
msgstr ""
#: tabby-terminal/src/api/baseTerminalTab.component.ts:229
#: tabby-terminal/src/api/baseTerminalTab.component.ts:237
#: tabby-terminal/src/api/baseTerminalTab.component.ts:553
#: tabby-terminal/src/api/baseTerminalTab.component.ts:775
#: tabby-terminal/src/tabContextMenu.ts:30
msgid "Copied"
msgstr ""
@@ -439,7 +443,7 @@ msgstr ""
msgid "Create directory"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:83
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:90
msgid "Current"
msgstr ""
@@ -491,7 +495,7 @@ msgstr ""
msgid "Default profile settings"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:118
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:124
msgid "Defaults"
msgstr ""
@@ -572,11 +576,11 @@ msgstr ""
msgid "Disable dynamic tab title"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:211
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:218
msgid "Disable fluent background while dragging"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:197
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:204
msgid "Disable GPU acceleration"
msgstr ""
@@ -599,7 +603,7 @@ msgstr ""
msgid "Display images via Sixel escape sequences"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:78
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:85
msgid "Display on"
msgstr ""
@@ -617,23 +621,23 @@ msgstr ""
msgid "Do not remember"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:90
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:97
msgid "Dock always on top"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:60
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:67
msgid "Dock the terminal"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:97
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:104
msgid "Docked terminal size"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:104
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:111
msgid "Docked terminal space"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:57
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:64
msgid "Docking"
msgstr ""
@@ -657,7 +661,7 @@ msgstr ""
msgid "Duplicate"
msgstr ""
#: tabby-local/src/tabContextMenu.ts:123
#: tabby-local/src/tabContextMenu.ts:122
msgid "Duplicate as administrator"
msgstr ""
@@ -691,7 +695,7 @@ msgstr ""
msgid "Enable automatic installation of updates when they become available."
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:204
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:211
msgid "Enable fluent background option"
msgstr ""
@@ -740,7 +744,7 @@ msgstr ""
msgid "Example:"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:205
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:212
msgid "Experimental Windows 10 background style known to cause issues"
msgstr ""
@@ -764,11 +768,11 @@ msgstr ""
msgid "Filter"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:140
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:147
msgid "Fixed"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:212
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:219
msgid "Fluent background sometimes causes drag lag"
msgstr ""
@@ -788,7 +792,7 @@ msgstr ""
msgid "Focus all tabs at once (broadcast)"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:189
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:196
msgid "Focus follows mouse"
msgstr ""
@@ -828,7 +832,7 @@ msgstr ""
msgid "Focus the pane on the right"
msgstr ""
#: tabby-core/src/theme.ts:42
#: tabby-core/src/theme.ts:43
msgid "Follow the color scheme"
msgstr ""
@@ -836,7 +840,7 @@ msgstr ""
msgid "Font"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:183
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:190
msgid "For keyboard shortcuts"
msgstr ""
@@ -880,7 +884,7 @@ msgstr ""
msgid "Frontend"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:54
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:61
msgid "Full"
msgstr ""
@@ -902,7 +906,7 @@ msgstr ""
msgid "Get it from the Tabby Web settings window"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:22
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:29
msgid "Gives the window a blurred transparent background"
msgstr ""
@@ -918,7 +922,7 @@ msgstr ""
msgid "Group"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:194
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:201
msgid "Hacks"
msgstr ""
@@ -935,23 +939,23 @@ msgstr ""
msgid "Hexadecimal"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:169
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
msgid "Hide tab close button"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:151
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:158
msgid "Hide tab index"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:170
msgid "Hide tab options button"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:111
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:118
msgid "Hide window on focus loss"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:112
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:119
msgid "Hides the docked terminal when you click away."
msgstr ""
@@ -997,7 +1001,7 @@ msgstr ""
msgid "Icon"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:138
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:145
msgid "id.tab-width.dynamic"
msgstr ""
@@ -1045,7 +1049,7 @@ msgstr ""
msgid "Interactive"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:124
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:130
msgid "Invalid syntax"
msgstr ""
@@ -1075,7 +1079,7 @@ msgstr ""
msgid "Keep Alive Interval (Milliseconds)"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:91
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:98
msgid "Keep docked terminal always on top"
msgstr ""
@@ -1095,7 +1099,7 @@ msgstr ""
msgid "Keyboard-interactive auth"
msgstr ""
#: tabby-local/src/components/terminalTab.component.ts:116
#: tabby-local/src/components/terminalTab.component.ts:115
msgid "Kill"
msgstr ""
@@ -1121,8 +1125,8 @@ msgstr ""
msgid "Learn how to allow Tabby to detect remote shell's working directory."
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:127
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:69
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:134
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:76
#: tabby-core/src/tabContextMenu.ts:80
msgid "Left"
msgstr ""
@@ -1186,6 +1190,7 @@ msgstr ""
msgid "Maximize the active pane"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:93
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:70
msgid "Minimum contrast ratio"
msgstr ""
@@ -1210,7 +1215,7 @@ msgstr ""
msgid "Move to \"Ungrouped\""
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:190
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:197
msgid "Moving the mouse over an inactive pane will cause it to activate"
msgstr ""
@@ -1227,11 +1232,11 @@ msgstr ""
msgid "Name for the new directory"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:50
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:57
msgid "Native"
msgstr ""
#: tabby-local/src/tabContextMenu.ts:104
#: tabby-local/src/tabContextMenu.ts:103
msgid "New admin tab"
msgstr ""
@@ -1252,7 +1257,7 @@ msgstr ""
msgid "New profile"
msgstr ""
#: tabby-local/src/tabContextMenu.ts:31
#: tabby-local/src/tabContextMenu.ts:30
msgid "New profile name"
msgstr ""
@@ -1265,7 +1270,7 @@ msgid "New tab: {profile}"
msgstr ""
#: tabby-local/src/buttonProvider.ts:20
#: tabby-local/src/tabContextMenu.ts:78
#: tabby-local/src/tabContextMenu.ts:77
msgid "New terminal"
msgstr ""
@@ -1273,11 +1278,11 @@ msgstr ""
msgid "New window"
msgstr ""
#: tabby-local/src/services/dockMenu.service.ts:62
#: tabby-electron/src/services/dockMenu.service.ts:62
msgid "New Window"
msgstr ""
#: tabby-local/src/tabContextMenu.ts:88
#: tabby-local/src/tabContextMenu.ts:87
msgid "New with profile"
msgstr ""
@@ -1323,7 +1328,7 @@ msgstr ""
msgid "Number of lines kept in the buffer"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:65
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:72
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:137
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:60
msgid "Off"
@@ -1337,7 +1342,7 @@ msgstr ""
msgid "On GitHub Discussions"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:39
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
msgid "Opacity"
msgstr ""
@@ -1370,11 +1375,11 @@ msgstr ""
msgid "Orange"
msgstr ""
#: tabby-local/src/shells/macDefault.ts:25
#: tabby-electron/src/shells/macDefault.ts:25
msgid "OS default"
msgstr ""
#: tabby-local/src/shells/winDefault.ts:43
#: tabby-electron/src/shells/winDefault.ts:43
msgid "OS default ({name})"
msgstr ""
@@ -1414,14 +1419,18 @@ msgstr ""
msgid "Overwrite the local config and start syncing?"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:182
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:189
msgid "Pane resize step"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:179
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:186
msgid "Panes"
msgstr ""
#: tabby-core/src/theme.ts:35
msgid "Paper (legacy)"
msgstr ""
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:38
msgid "Parity"
msgstr ""
@@ -1440,7 +1449,7 @@ msgid "Password"
msgstr ""
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:62
#: tabby-terminal/src/api/baseTerminalTab.component.ts:479
#: tabby-terminal/src/api/baseTerminalTab.component.ts:483
#: tabby-terminal/src/tabContextMenu.ts:35
msgid "Paste"
msgstr ""
@@ -1453,7 +1462,7 @@ msgstr ""
msgid "Paste if no selection, else copy"
msgstr ""
#: tabby-terminal/src/api/baseTerminalTab.component.ts:486
#: tabby-terminal/src/api/baseTerminalTab.component.ts:490
msgid "Paste multiple lines?"
msgstr ""
@@ -1482,7 +1491,7 @@ msgstr ""
msgid "Port"
msgstr ""
#: tabby-serial/src/components/serialTab.component.ts:71
#: tabby-serial/src/components/serialTab.component.ts:70
msgid "Port opened"
msgstr ""
@@ -1491,7 +1500,7 @@ msgstr ""
msgid "Ports"
msgstr ""
#: tabby-serial/src/components/serialTab.component.ts:86
#: tabby-serial/src/components/serialTab.component.ts:85
#: tabby-ssh/src/components/sshTab.component.ts:172
#: tabby-telnet/src/components/telnetTab.component.ts:53
msgid "Press any key to reconnect"
@@ -1501,7 +1510,7 @@ msgstr ""
msgid "Press the key now"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:21
msgid "Prevents accidental closing"
msgstr ""
@@ -1527,7 +1536,7 @@ msgstr ""
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:2
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:4
#: tabby-local/src/services/dockMenu.service.ts:40
#: tabby-electron/src/services/dockMenu.service.ts:40
msgid "Profiles"
msgstr ""
@@ -1552,7 +1561,7 @@ msgstr ""
msgid "Puts all of Tabby's configuration into the vault"
msgstr ""
#: tabby-core/src/index.ts:211
#: tabby-core/src/index.ts:213
#: tabby-core/src/services/profiles.service.ts:177
msgid "Quick connect"
msgstr ""
@@ -1572,7 +1581,7 @@ msgstr ""
#: tabby-core/src/services/profiles.service.ts:120
#: tabby-core/src/services/profiles.service.ts:134
#: tabby-local/src/services/dockMenu.service.ts:28
#: tabby-electron/src/services/dockMenu.service.ts:28
msgid "Recent"
msgstr ""
@@ -1659,7 +1668,7 @@ msgstr ""
msgid "Restart tab"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:134
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:140
msgid "Restart the app to apply changes"
msgstr ""
@@ -1671,8 +1680,8 @@ msgstr ""
msgid "Reuse session for multiple tabs"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:129
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:71
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:136
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:78
#: tabby-core/src/tabContextMenu.ts:78
msgid "Right"
msgstr ""
@@ -1695,11 +1704,11 @@ msgstr ""
msgid "Save a password in the keychain"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:123
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:129
msgid "Save and apply"
msgstr ""
#: tabby-local/src/tabContextMenu.ts:28
#: tabby-local/src/tabContextMenu.ts:27
msgid "Save as profile"
msgstr ""
@@ -1707,7 +1716,7 @@ msgstr ""
msgid "Save layout as profile"
msgstr ""
#: tabby-local/src/tabContextMenu.ts:49
#: tabby-local/src/tabContextMenu.ts:48
msgid "Saved"
msgstr ""
@@ -1781,7 +1790,7 @@ msgstr ""
msgid "Select file storage"
msgstr ""
#: tabby-core/src/index.ts:223
#: tabby-core/src/index.ts:225
msgid "Select profile"
msgstr ""
@@ -1845,7 +1854,7 @@ msgstr ""
msgid "Shell"
msgstr ""
#: tabby-terminal/src/api/baseTerminalTab.component.ts:551
#: tabby-terminal/src/api/baseTerminalTab.component.ts:555
msgid "Shell does not support current path detection"
msgstr ""
@@ -1869,11 +1878,11 @@ msgstr ""
msgid "Show command selector"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:126
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:132
msgid "Show config file"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:125
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:131
msgid "Show defaults"
msgstr ""
@@ -1885,7 +1894,7 @@ msgstr ""
msgid "Show pane labels (for rearranging)"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:157
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:164
msgid "Show profile icon on tab"
msgstr ""
@@ -1905,7 +1914,7 @@ msgstr ""
msgid "Show Serial connections"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:145
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:152
msgid "Show tabs in fullscreen mode"
msgstr ""
@@ -1929,8 +1938,8 @@ msgstr ""
msgid "Slow feed"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:61
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:79
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:68
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:86
msgid "Snaps the window to a side of the screen"
msgstr ""
@@ -1956,6 +1965,10 @@ msgstr ""
msgid "Source code"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:13
msgid "Spaciness"
msgstr ""
#: tabby-core/src/tabContextMenu.ts:75
msgid "Split"
msgstr ""
@@ -1998,7 +2011,7 @@ msgstr ""
msgid "SSH password for {user}@{host}:{port}"
msgstr ""
#: tabby-core/src/theme.ts:8
#: tabby-core/src/theme.ts:9
msgid "Standard (legacy)"
msgstr ""
@@ -2093,15 +2106,15 @@ msgstr ""
msgid "Tabby news and updates on Twitter"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:116
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:123
msgid "Tabs"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:119
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:126
msgid "Tabs location"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:134
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:141
msgid "Tabs width"
msgstr ""
@@ -2109,7 +2122,7 @@ msgstr ""
msgid "Telnet session"
msgstr ""
#: tabby-terminal/src/api/baseTerminalTab.component.ts:200
#: tabby-terminal/src/api/baseTerminalTab.component.ts:204
#: tabby-terminal/src/settings.ts:43
msgid "Terminal"
msgstr ""
@@ -2146,11 +2159,11 @@ msgstr ""
msgid "These apply to all profiles of a given type"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:52
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
msgid "Thin"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:198
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:205
msgid "Tick this if you're experiencing aliasing, ghosting or other visual issues"
msgstr ""
@@ -2170,8 +2183,8 @@ msgstr ""
msgid "Toggles the Tabby window visibility"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:123
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:67
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:130
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:74
msgid "Top"
msgstr ""
@@ -2241,8 +2254,8 @@ msgstr ""
msgid "Use ConPTY"
msgstr ""
#: tabby-local/src/shells/linuxDefault.ts:31
#: tabby-local/src/shells/linuxDefault.ts:38
#: tabby-electron/src/shells/linuxDefault.ts:31
#: tabby-electron/src/shells/linuxDefault.ts:38
msgid "User default"
msgstr ""
@@ -2295,7 +2308,7 @@ msgstr ""
msgid "Version: {version}"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:21
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:28
msgid "Vibrancy"
msgstr ""
@@ -2335,24 +2348,28 @@ msgstr ""
msgid "When WinSCP is detected, you can launch an SCP session from the context menu."
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:53
msgid "Whether a custom window or an OS native window should be used"
msgstr ""
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:141
msgid "Will prevent the SSH greeting from showing up"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:2
#: tabby-settings/src/settings.ts:30
msgid "Window"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:105
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:112
msgid "Window dimension along the edge"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:98
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:105
msgid "Window dimension away from the edge"
msgstr ""
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:45
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:52
msgid "Window frame"
msgstr ""

File diff suppressed because it is too large Load Diff

2448
locale/cs-CZ.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +1,22 @@
{
"devDependencies": {
"@angular/animations": "^15.1.3",
"@angular/cdk": "^15.1.3",
"@angular/common": "^15.1.3",
"@angular/compiler": "^15.1.3",
"@angular/compiler-cli": "^15.1.3",
"@angular/core": "^15.1.3",
"@angular/forms": "^15.1.3",
"@angular/platform-browser": "^15.1.3",
"@angular/platform-browser-dynamic": "^15.1.3",
"@angular/animations": "^15.2.6",
"@angular/cdk": "^15.2.6",
"@angular/common": "^15.2.6",
"@angular/compiler": "^15.2.6",
"@angular/compiler-cli": "^15.2.6",
"@angular/core": "^15.2.6",
"@angular/forms": "^15.2.6",
"@angular/localize": "^15.2.9",
"@angular/platform-browser": "^15.2.6",
"@angular/platform-browser-dynamic": "^15.2.6",
"@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
"@fortawesome/fontawesome-free": "^6.2.0",
"@ng-bootstrap/ng-bootstrap": "^14.0.1",
"@ngtools/webpack": "^15.1.4",
"@electron/notarize": "^1.2.3",
"@fortawesome/fontawesome-free": "^6.4.0",
"@ng-bootstrap/ng-bootstrap": "^14.1.0",
"@ngtools/webpack": "^15.2.5",
"@popperjs/core": "^2.11.6",
"@sentry/cli": "^1.74.3",
"@sentry/cli": "^2.18.1",
"@sentry/electron": "^2.5.4",
"@tabby-gang/to-string-loader": "^1.1.7-beta.2",
"@types/deep-equal": "1.0.1",
@@ -22,30 +24,29 @@
"@types/electron-debug": "^2.1.0",
"@types/fs-extra": "^9.0.13",
"@types/js-yaml": "^4.0.5",
"@types/node": "16.0.1",
"@types/node": "20.3.1",
"@types/webpack-env": "^1.18.0",
"@typescript-eslint/eslint-plugin": "^5.45.0",
"@typescript-eslint/parser": "^5.45.0",
"@typescript-eslint/parser": "^5.54.1",
"apply-loader": "2.0.0",
"axios": "^0.27.2",
"axios": "^1.4.0",
"babel-loader": "^9.1.2",
"browserify-sign": "^4.2.1",
"clone-deep": "^4.0.1",
"compare-versions": "^5",
"core-js": "^3.21.1",
"core-js": "^3.31.0",
"core-js-pure": "^3.21.1",
"cross-env": "7.0.3",
"css-loader": "^6.7.3",
"deep-equal": "2.0.5",
"electron": "22.3.1",
"electron": "^25.3.0",
"electron-builder": "^24.0.0-alpha.1",
"electron-download": "^4.1.1",
"electron-installer-snap": "^5.1.0",
"electron-notarize": "^1.2.2",
"electron-rebuild": "^3.2.9",
"eslint": "^8.29.0",
"eslint": "^8.38.0",
"eslint-import-resolver-typescript": "^3.5.2",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-import": "^2.27.5",
"file-loader": "^6.2.0",
"gettext-extractor": "^3.5.4",
"graceful-fs": "^4.2.10",
@@ -54,7 +55,7 @@
"lru-cache": "^6.0.0",
"macos-release": "^3.1.0",
"ngx-toastr": "^16.0.2",
"node-abi": "^3.33.0",
"node-abi": "^3.45.0",
"npmlog": "6.0.2",
"npx": "^10.2.2",
"patch-package": "^6.4.7",
@@ -67,7 +68,7 @@
"pug-static-loader": "2.0.0",
"raw-loader": "4.0.2",
"rxjs": "^7.5.7",
"sass": "^1.58.0",
"sass": "^1.63.4",
"sass-loader": "^13.2.0",
"shell-quote": "^1.7.4",
"shelljs": "0.8.5",
@@ -84,13 +85,13 @@
"tslib": "^2.5.0",
"typedoc": "^0.22.18",
"typescript": "^4.9.5",
"utils-decorators": "^1.10.4",
"utils-decorators": "^2.0.6",
"val-loader": "5.0.1",
"webpack": "^5.75.0",
"webpack": "^5.86.0",
"webpack-bundle-analyzer": "^4.7.0",
"webpack-cli": "^5.0.1",
"yaml-loader": "0.8.0",
"zone.js": "^0.11.5"
"zone.js": "^0.13.0"
},
"resolutions": {
"*/pug": "^3",

View File

@@ -1,15 +1,15 @@
diff --git a/node_modules/app-builder-lib/out/appInfo.js b/node_modules/app-builder-lib/out/appInfo.js
index 363f32c..a0434a9 100644
index 49f6dca..0ea11f2 100644
--- a/node_modules/app-builder-lib/out/appInfo.js
+++ b/node_modules/app-builder-lib/out/appInfo.js
@@ -100,9 +100,7 @@ class AppInfo {
@@ -112,9 +112,7 @@ class AppInfo {
return this.info.metadata.name;
}
get linuxPackageName() {
- const name = this.name;
- // https://github.com/electron-userland/electron-builder/issues/2963
- return name.startsWith("@") ? this.sanitizedProductName : name;
+ return 'tabby-terminal'
+ return 'tabby-terminal';
}
get sanitizedName() {
return filename_1.sanitizeFileName(this.name);
return (0, filename_1.sanitizeFileName)(this.name);

View File

@@ -9,7 +9,7 @@ process.env.ARCH = (process.env.ARCH || process.arch) === 'arm' ? 'armv7l' : pro
builder({
dir: true,
linux: ['deb', 'tar.gz', 'rpm', 'pacman'],
linux: ['deb', 'tar.gz', 'rpm', 'pacman', 'appimage'],
armv7l: process.env.ARCH === 'armv7l',
arm64: process.env.ARCH === 'arm64',
config: {

View File

@@ -13,6 +13,9 @@ if (process.env.GITHUB_HEAD_REF) {
process.env.CSC_IDENTITY_AUTO_DISCOVERY = 'false'
}
process.env.APPLE_ID ??= process.env.APPSTORE_USERNAME
process.env.APPLE_APP_SPECIFIC_PASSWORD ??= process.env.APPSTORE_PASSWORD
builder({
dir: true,
mac: ['pkg', 'zip'],
@@ -24,6 +27,10 @@ builder({
},
mac: {
identity: !process.env.CI || process.env.CSC_LINK ? undefined : null,
notarize: process.env.APPLE_TEAM_ID ? {
appBundleId: 'org.tabby',
teamId: process.env.APPLE_TEAM_ID,
} : false,
},
npmRebuild: process.env.ARCH !== 'arm64',
publish: process.env.KEYGEN_TOKEN ? [

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

@@ -3,6 +3,8 @@ import * as fs from 'fs'
import * as semver from 'semver'
import * as childProcess from 'child_process'
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
import * as url from 'url'
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
@@ -25,8 +27,8 @@ export const builtinPlugins = [
'tabby-ssh',
'tabby-serial',
'tabby-telnet',
'tabby-electron',
'tabby-local',
'tabby-electron',
'tabby-plugin-manager',
'tabby-linkifier',
]
@@ -58,21 +60,21 @@ export const keygenConfig = {
win32: {
x64: 'f481b9d6-d5da-4970-b926-f515373e986f',
arm64: '950999b9-371c-419b-b291-938c5e4d364c',
}[process.env.ARCH ?? process.arch],
}[process.env.ARCH],
darwin: {
arm64: '98fbadee-c707-4cd6-9d99-56683595a846',
x86_64: 'f5a48841-d5b8-4b7b-aaa7-cf5bffd36461',
x64: 'f5a48841-d5b8-4b7b-aaa7-cf5bffd36461',
}[process.env.ARCH ?? process.arch],
}[process.env.ARCH],
linux: {
x64: '7bf45071-3031-4a26-9f2e-72604308313e',
arm64: '39e3c736-d4d4-4fbf-a201-324b7bab0d17',
armv7l: '50ae0a82-7f47-4fa4-b0a8-b0d575ce9409',
armhf: '7df5aa12-04ab-4075-a0fe-93b0bbea9643',
}[process.env.ARCH ?? process.arch],
}[process.env.ARCH],
}[process.platform],
}
if (!keygenConfig.product) {
throw new Error(`Unrecognized platform ${process.platform}/${process.env.ARCH ?? process.arch}`)
throw new Error(`Unrecognized platform ${process.platform}/${process.env.ARCH}`)
}

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-community-color-schemes",
"version": "1.0.189-nightly.2",
"version": "1.0.197-nightly.1",
"description": "Community color schemes for Tabby",
"keywords": [
"tabby-builtin-plugin"
@@ -17,7 +17,7 @@
"author": "Eugene Pankov",
"license": "MIT",
"peerDependencies": {
"@angular/core": "^9.1.9",
"@angular/core": "^15",
"tabby-core": "*",
"tabby-terminal": "*"
}

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-core",
"version": "1.0.189-nightly.0",
"version": "1.0.197-nightly.1",
"description": "Tabby core",
"keywords": [
"tabby-builtin-plugin"
@@ -12,6 +12,7 @@
"watch": "webpack --progress --color --watch"
},
"files": [
"dist",
"typings"
],
"author": "Eugene Pankov",
@@ -25,16 +26,16 @@
"messageformat": "^2.3.0",
"mixpanel": "^0.17.0",
"ngx-translate-messageformat-compiler": "^4.11.0",
"readable-stream": "4.2.0",
"readable-stream": "4.4.0",
"uuid": "^9.0.0"
},
"peerDependencies": {
"@angular/animations": "^9.1.9",
"@angular/common": "^9.1.11",
"@angular/core": "^9.1.9",
"@angular/forms": "^9.1.11",
"@angular/platform-browser": "^9.1.11",
"@angular/platform-browser-dynamic": "^9.1.11",
"rxjs": "^6.6.3"
"@angular/animations": "^15",
"@angular/common": "^15",
"@angular/core": "^15",
"@angular/forms": "^15",
"@angular/platform-browser": "^15",
"@angular/platform-browser-dynamic": "^15",
"rxjs": "^7"
}
}

View File

@@ -86,14 +86,18 @@ export interface FileUploadOptions {
multiple: boolean
}
export type PlatformTheme = 'light'|'dark'
export abstract class PlatformService {
supportsWindowControls = false
get fileTransferStarted$ (): Observable<FileTransfer> { return this.fileTransferStarted }
get displayMetricsChanged$ (): Observable<void> { return this.displayMetricsChanged }
get themeChanged$ (): Observable<PlatformTheme> { return this.themeChanged }
protected fileTransferStarted = new Subject<FileTransfer>()
protected displayMetricsChanged = new Subject<void>()
protected themeChanged = new Subject<PlatformTheme>()
abstract readClipboard (): string
abstract setClipboard (content: ClipboardContent): void
@@ -169,6 +173,10 @@ export abstract class PlatformService {
throw new Error('Not implemented')
}
getTheme (): PlatformTheme {
return 'dark'
}
abstract getOSRelease (): string
abstract getAppVersion (): string
abstract openExternal (url: string): void
@@ -176,6 +184,7 @@ export abstract class PlatformService {
abstract setErrorHandler (handler: (_: any) => void): void
abstract popupContextMenu (menu: MenuItemOptions[], event?: MouseEvent): void
abstract showMessageBox (options: MessageBoxOptions): Promise<MessageBoxResult>
abstract pickDirectory (): Promise<string>
abstract quit (): void
}

View File

@@ -14,6 +14,7 @@ export interface Profile {
icon?: string
color?: string
disableDynamicTitle: boolean
behaviorOnSessionEnd: 'auto'|'keep'|'reconnect'|'close'
weight: number
isBuiltin: boolean

View File

@@ -27,7 +27,7 @@ export class CoreCommandProvider extends CommandProvider {
async provide (): Promise<Command[]> {
return [
{
id: 'profile-selector',
id: 'core:profile-selector',
locations: [CommandLocation.LeftToolbar, CommandLocation.StartPage],
label: this.translate.instant('Profiles & connections'),
icon: this.hostApp.platform === Platform.Web
@@ -35,7 +35,8 @@ export class CoreCommandProvider extends CommandProvider {
: require('./icons/profiles.svg'),
run: async () => this.activate(),
},
...this.profilesService.getRecentProfiles().map(profile => ({
...this.profilesService.getRecentProfiles().map((profile, index) => ({
id: `core:recent-profile-${index}`,
label: profile.name,
locations: [CommandLocation.StartPage],
icon: require('./icons/history.svg'),

View File

@@ -1,16 +1,20 @@
title-bar(
*ngIf='ready && !hostWindow.isFullscreen && config.store.appearance.frame == "full" && config.store.appearance.dock == "off"',
(dblclick)='hostWindow.toggleMaximize()',
[hideControls]='hostApp.platform !== Platform.Linux && !hostWindow.isFullscreen',
[class.inset]='hostApp.platform == Platform.macOS && !hostWindow.isFullscreen'
)
.content(
*ngIf='ready',
[class.tabs-on-top]='config.store.appearance.tabsLocation == "top" || config.store.appearance.tabsLocation == "left"',
[class.tabs-on-side]='hasVerticalTabs()',
[class.tabs-on-left]='hasVerticalTabs() && config.store.appearance.tabsLocation == "left"',
[class.tabs-titlebar-enabled]='config.store.appearance.frame == "full"',
[class.tabs-on-right]='hasVerticalTabs() && config.store.appearance.tabsLocation == "right"',
)
.tab-bar(
*ngIf='!hostWindow.isFullscreen || config.store.appearance.tabsInFullscreen',
[class.tab-bar-no-controls-overlay]='hostApp.platform == Platform.macOS',
(dblclick)='hostWindow.toggleMaximize()'
)
.inset.background(*ngIf='hostApp.platform == Platform.macOS \
@@ -37,14 +41,12 @@ title-bar(
.btn-group.background
.d-flex(
*ngFor='let button of leftToolbarButtons',
ngbDropdown
*ngFor='let button of leftToolbarButtons'
)
button.btn.btn-secondary.btn-tab-bar(
[title]='button.label',
(click)='button.run && button.run()',
[fastHtmlBind]='button.icon',
ngbDropdownToggle,
[fastHtmlBind]='button.icon'
)
.d-flex(
@@ -53,7 +55,7 @@ title-bar(
#activeTransfersDropdown='ngbDropdown'
)
button.btn.btn-secondary.btn-tab-bar(
*ngIf='activeTransfers.length > 0',
[hidden]='activeTransfers.length == 0',
title='File transfers',
ngbDropdownToggle
) !{require('../icons/transfers.svg')}
@@ -67,14 +69,12 @@ title-bar(
.btn-group.background
.d-flex(
*ngFor='let button of rightToolbarButtons',
ngbDropdown
*ngFor='let button of rightToolbarButtons'
)
button.btn.btn-secondary.btn-tab-bar(
[title]='button.label',
(click)='button.run && button.run()',
[fastHtmlBind]='button.icon',
ngbDropdownToggle,
[fastHtmlBind]='button.icon'
)
button.btn.btn-secondary.btn-tab-bar.btn-update(
@@ -85,9 +85,12 @@ title-bar(
window-controls.background(
*ngIf='config.store.appearance.frame == "thin" \
&& (hostApp.platform == Platform.Windows || hostApp.platform == Platform.Linux)',
&& (hostApp.platform == Platform.Linux)',
)
div.window-controls-spacer(
*ngIf='config.store.appearance.frame == "thin" && (hostApp.platform == Platform.Windows) && (config.store.appearance.tabsLocation == "top")',
)
.content
start-page.content-tab.content-tab-active(*ngIf='ready && app.tabs.length == 0')

View File

@@ -35,17 +35,16 @@ $tab-border-radius: 4px;
flex-direction: column;
}
&.tabs-on-side {
&.tabs-on-right {
flex-direction: row-reverse;
&.tabs-on-top {
flex-direction: row;
}
}
&.tabs-on-left {
flex-direction: row;
}
}
.content.tabs-on-side > .tab-bar {
.content.tabs-on-left > .tab-bar, .content.tabs-on-right > .tab-bar {
height: 100%;
width: var(--side-tab-width);
overflow-y: auto;
@@ -76,6 +75,18 @@ $tab-border-radius: 4px;
}
}
.content.tabs-on-left > .tab-bar.tab-bar-no-controls-overlay, .content.tabs-titlebar-enabled {
.tabs {
padding-top: 0 !important;
}
}
.content.tabs-on-right > .tab-bar {
.tabs {
// Account for WCO on Windows.
padding-top: 36px;
}
}
.tab-bar {
flex: none;
@@ -125,10 +136,17 @@ $tab-border-radius: 4px;
}
&.persistent {
min-width: 72px; // 2 x 36 px height, ie 2 squares
// min-width: 72px; // 2 x 36 px height, ie 2 squares
// Given WCO on Windows, the min-width of the window buttons is about 138px.
min-width: 138px;
}
}
&>.window-controls-spacer {
min-width: 138px;
height: 100%;
}
& > .inset {
width: calc(70px + 15px * var(--spaciness));
height: var(--tabs-height);

View File

@@ -192,6 +192,14 @@ export abstract class BaseTabComponent extends BaseComponent {
this.viewContainer = undefined
}
get topmostParent (): BaseTabComponent|null {
let parent = this.parent
while (parent?.parent) {
parent = parent.parent
}
return parent
}
/**
* Called before the tab is closed
*/

View File

@@ -5,7 +5,7 @@ import { BaseComponent } from './base.component'
/** @hidden */
@Component({
selector: 'profile-icon',
templateUrl:'./profileIcon.component.pug',
templateUrl: './profileIcon.component.pug',
styleUrls: ['./profileIcon.component.scss'],
})
export class ProfileIconComponent extends BaseComponent {

View File

@@ -3,7 +3,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
/** @hidden */
@Component({
templateUrl:'./promptModal.component.pug',
templateUrl: './promptModal.component.pug',
})
export class PromptModalComponent {
@Input() value: string

View File

@@ -5,7 +5,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
/** @hidden */
@Component({
selector: 'rename-tab-modal',
templateUrl:'./renameTabModal.component.pug',
templateUrl: './renameTabModal.component.pug',
})
export class RenameTabModalComponent {
@Input() value: string

View File

@@ -3,7 +3,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
/** @hidden */
@Component({
templateUrl:'./safeModeModal.component.pug',
templateUrl: './safeModeModal.component.pug',
})
export class SafeModeModalComponent {
@Input() error: Error

View File

@@ -26,9 +26,9 @@
*ngIf='option.description !== getOptionText(option)'
) {{option.description}}
.ms-auto
.no-wrap.badge.text-bg-secondary.text-muted.ms-2(*ngIf='selectedIndex == i && canEditSelected()')
span Backspace
.no-wrap.badge.text-bg-secondary.ms-2(*ngIf='selectedIndex == i && canEditSelected()')
span BACKSPACE
i.fas.fa-pencil.ms-1
.no-wrap.badge.text-bg-secondary.text-muted.ms-2(*ngIf='selectedIndex == i')
span Enter
.no-wrap.badge.text-bg-secondary.ms-2(*ngIf='selectedIndex == i')
span ENTER
i.fas.fa-arrow-right.ms-1

View File

@@ -7,7 +7,7 @@ import { SelectorOption } from '../api/selector'
/** @hidden */
@Component({
selector: 'selector-modal',
templateUrl:'./selectorModal.component.pug',
templateUrl: './selectorModal.component.pug',
styleUrls: ['./selectorModal.component.scss'],
})
export class SelectorModalComponent<T> {
@@ -76,10 +76,11 @@ export class SelectorModalComponent<T> {
{ sort: true },
).search(f)
const freeOption = this.options.find(x => x.freeInputPattern)
if (freeOption && !this.filteredOptions.includes(freeOption)) {
this.filteredOptions.push(freeOption)
}
this.options.filter(x => x.freeInputPattern).forEach(freeOption => {
if (!this.filteredOptions.includes(freeOption)) {
this.filteredOptions.push(freeOption)
}
})
}
this.selectedIndex = Math.max(0, this.selectedIndex)
this.selectedIndex = Math.min(this.filteredOptions.length - 1, this.selectedIndex)

View File

@@ -24,3 +24,7 @@
border-radius: 10px;
}
}
::ng-deep .no-animations split-tab > .child {
transition: none;
}

View File

@@ -458,12 +458,18 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
tab.destroy()
}
let allTabs: BaseTabComponent[] = []
if (thing instanceof BaseTabComponent) {
if (thing.parent instanceof SplitTabComponent) {
thing.parent.removeTab(thing)
allTabs = [thing]
} else if (thing instanceof SplitContainer) {
allTabs = thing.getAllTabs()
}
for (const tab of allTabs) {
if (tab.parent instanceof SplitTabComponent) {
tab.parent.removeTab(tab)
}
thing.removeFromContainer()
thing.parent = this
tab.removeFromContainer()
tab.parent = this
}
let target = relative ? this.getParentOf(relative) : null
@@ -781,7 +787,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
}
get icon (): string|null {
return this.getFocusedTab()?.icon ?? null
return this.getFocusedTab()?.icon ?? this.getAllTabs()[0]?.icon ?? null
}
set icon (icon: string|null) {
@@ -791,7 +797,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
}
get color (): string|null {
return this.getFocusedTab()?.color ?? null
return this.getFocusedTab()?.color ?? this.getAllTabs()[0]?.color ?? null
}
set color (color: string|null) {

View File

@@ -7,7 +7,7 @@ import { Command, CommandLocation } from '../api/commands'
/** @hidden */
@Component({
selector: 'start-page',
templateUrl:'./startPage.component.pug',
templateUrl: './startPage.component.pug',
styleUrls: ['./startPage.component.scss'],
})
export class StartPageComponent {

View File

@@ -1,6 +1,7 @@
.colorbar([style.background-color]='tab.color', *ngIf='tab.color != null')
.progressbar([style.width]='progress + "%"', *ngIf='progress != null')
.activity-indicator(*ngIf='tab.activity$|async')
.current-tab-indicator
.index(*ngIf='!config.store.terminal.hideTabIndex && hostApp.platform === Platform.macOS', cdkDragHandle) {{index + 1}}
.index(*ngIf='!config.store.terminal.hideTabIndex && hostApp.platform !== Platform.macOS') {{index + 1}}

View File

@@ -134,15 +134,29 @@ $tabs-height: 38px;
z-index: 1;
}
.activity-indicator, .current-tab-indicator {
position: absolute;
height: 2px;
}
&.active .activity-indicator {
display: none;
}
.activity-indicator {
position: absolute;
bottom: 4px;
left: 10px;
right: 10px;
bottom: 4px;
height: 2px;
}
&.active .current-tab-indicator {
display: block;
}
.current-tab-indicator {
display: none;
top: 0;
left: 0;
right: 0;
}
}

View File

@@ -15,7 +15,7 @@ import { PlatformService } from '../api/platform'
/** @hidden */
@Component({
selector: 'tab-header',
templateUrl:'./tabHeader.component.pug',
templateUrl: './tabHeader.component.pug',
styleUrls: ['./tabHeader.component.scss'],
})
export class TabHeaderComponent extends BaseComponent {

View File

@@ -1,2 +1,2 @@
.title((dblclick)='hostWindow.toggleMaximize()') Tabby
window-controls
window-controls(*ngIf="!hideControls")

View File

@@ -1,12 +1,14 @@
import { Component } from '@angular/core'
import { Component, Input } from '@angular/core'
import { HostWindowService } from '../api'
/** @hidden */
@Component({
selector: 'title-bar',
templateUrl:'./titleBar.component.pug',
templateUrl: './titleBar.component.pug',
styleUrls: ['./titleBar.component.scss'],
})
export class TitleBarComponent {
@Input() hideControls: boolean
constructor (public hostWindow: HostWindowService) { }
}

View File

@@ -6,12 +6,7 @@
.icon(*ngIf='!isDownload(transfer)') !{require('../icons/upload.svg')}
.main
label.no-wrap([title]='transfer.getName()') {{transfer.getName()}}
.status(*ngIf='transfer.isComplete()')
ngb-progressbar(type='success', [value]='100')
.status(*ngIf='transfer.isCancelled()')
ngb-progressbar(type='danger', [value]='100')
.status(*ngIf='!transfer.isComplete() && !transfer.isCancelled()')
ngb-progressbar(type='info', [value]='getProgress(transfer)')
ngb-progressbar([type]='transfer.isComplete() ? "success" : transfer.isCancelled() ? "danger" : "info"', [value]='getProgress(transfer)')
.metadata
.size {{transfer.getSize()|filesize}}
.speed(*ngIf='transfer.getSpeed()') {{transfer.getSpeed()|filesize}}/s

View File

@@ -5,7 +5,7 @@ import { FileDownload, FileTransfer, PlatformService } from '../api/platform'
/** @hidden */
@Component({
selector: 'transfers-menu',
templateUrl:'./transfersMenu.component.pug',
templateUrl: './transfersMenu.component.pug',
styleUrls: ['./transfersMenu.component.scss'],
})
export class TransfersMenuComponent {

View File

@@ -3,7 +3,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
/** @hidden */
@Component({
templateUrl:'./unlockVaultModal.component.pug',
templateUrl: './unlockVaultModal.component.pug',
})
export class UnlockVaultModalComponent {
passphrase: string

View File

@@ -8,7 +8,7 @@ import { LocaleService } from '../services/locale.service'
/** @hidden */
@Component({
selector: 'welcome-page',
templateUrl:'./welcomeTab.component.pug',
templateUrl: './welcomeTab.component.pug',
styleUrls: ['./welcomeTab.component.scss'],
})
export class WelcomeTabComponent extends BaseTabComponent {

View File

@@ -6,7 +6,7 @@ import { AppService } from '../services/app.service'
/** @hidden */
@Component({
selector: 'window-controls',
templateUrl:'./windowControls.component.pug',
templateUrl: './windowControls.component.pug',
styleUrls: ['./windowControls.component.scss'],
})
export class WindowControlsComponent {

View File

@@ -22,6 +22,8 @@ hotkeys:
- 'Ctrl-Shift'
duplicate-tab: []
restart-tab: []
reconnect-tab: []
disconnect-tab: []
explode-tab:
- 'Ctrl-Shift-.'
combine-tabs:

View File

@@ -39,6 +39,8 @@ hotkeys:
tab-10: []
duplicate-tab: []
restart-tab: []
reconnect-tab: []
disconnect-tab: []
explode-tab:
- '⌘-Shift-.'
combine-tabs:

View File

@@ -23,6 +23,8 @@ hotkeys:
- 'Ctrl-Shift'
duplicate-tab: []
restart-tab: []
reconnect-tab: []
disconnect-tab: []
explode-tab:
- 'Ctrl-Shift-.'
combine-tabs:

View File

@@ -11,7 +11,7 @@ appearance:
tabsLocation: top
tabsInFullscreen: false
cycleTabs: true
theme: Standard
theme: Follow the color scheme
frame: thin
css: '/* * { color: blue !important; } */'
opacity: 1.0
@@ -46,8 +46,12 @@ vault: null
encrypted: false
enableExperimentalFeatures: false
pluginBlacklist: []
commandBlacklist: []
providerBlacklist: []
profileBlacklist: []
hacks:
disableGPU: false
disableVibrancyWhileDragging: false
enableFluentBackground: false
language: null
defaultQuickConnectProvider: "ssh"

View File

@@ -19,6 +19,7 @@ export class CdkAutoDropGroup implements OnInit {
) { }
ngOnInit (): void {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
CdkAutoDropGroup.groups[this.groupName] ??= new FakeDropGroup()
CdkAutoDropGroup.groups[this.groupName]._items.add(this.cdkDropList)
this.cdkDropList['_group'] = CdkAutoDropGroup.groups[this.groupName]

View File

@@ -5,9 +5,11 @@ import { FormsModule } from '@angular/forms'
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { NgxFilesizeModule } from 'ngx-filesize'
import { DragDropModule } from '@angular/cdk/drag-drop'
import { TranslateModule, TranslateCompiler, TranslateService } from '@ngx-translate/core'
import { TranslateModule, TranslateCompiler, TranslateService, MissingTranslationHandler } from '@ngx-translate/core'
import { TranslateMessageFormatCompiler, MESSAGE_FORMAT_CONFIG } from 'ngx-translate-messageformat-compiler'
import '@angular/localize/init'
import { AppRootComponent } from './components/appRoot.component'
import { CheckboxComponent } from './components/checkbox.component'
import { TabBodyComponent } from './components/tabBody.component'
@@ -41,7 +43,7 @@ import { AppService } from './services/app.service'
import { ConfigService } from './services/config.service'
import { VaultFileProvider } from './services/vault.service'
import { HotkeysService } from './services/hotkeys.service'
import { LocaleService } from './services/locale.service'
import { CustomMissingTranslationHandler, LocaleService } from './services/locale.service'
import { CommandService } from './services/commands.service'
import { StandardTheme, StandardCompactTheme, PaperTheme, NewTheme } from './theme'
@@ -99,6 +101,10 @@ const PROVIDERS = [
provide: TranslateCompiler,
useFactory: TranslateMessageFormatCompilerFactory,
},
missingTranslationHandler: {
provide: MissingTranslationHandler,
useClass: CustomMissingTranslationHandler,
},
}),
],
declarations: [
@@ -189,7 +195,7 @@ export default class AppModule { // eslint-disable-line @typescript-eslint/no-ex
}
if (hotkey === 'profile-selector') {
commands.run('profile-selector', {})
commands.run('core:profile-selector', {})
}
})
}
@@ -213,6 +219,7 @@ export default class AppModule { // eslint-disable-line @typescript-eslint/no-ex
name: this.translate.instant('Quick connect'),
freeInputPattern: this.translate.instant('Connect to "%s"...'),
icon: 'fas fa-arrow-right',
description: `(${provider.name.toUpperCase()})`,
callback: query => {
const p = provider.quickConnect(query)
if (p) {

View File

@@ -71,6 +71,7 @@ export class CommandService {
}
return commands
.filter(c => !this.config.store.commandBlacklist.includes(c.id))
.sort((a, b) => (a.weight ?? 0) - (b.weight ?? 0))
.map(command => {
const run = command.run

View File

@@ -15,6 +15,9 @@ const deepmerge = require('deepmerge')
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export const configMerge = (a, b) => deepmerge(a, b, { arrayMerge: (_d, s) => s }) // eslint-disable-line @typescript-eslint/no-var-requires
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export const configMergeByDefault = (a, b) => deepmerge(a, b) // eslint-disable-line @typescript-eslint/no-var-requires
const LATEST_VERSION = 1
function isStructuralMember (v) {
@@ -162,7 +165,7 @@ export class ConfigService {
defaults = configMerge(provider.defaults, defaults)
}
return defaults
}).reduce(configMerge)
}).reduce(configMergeByDefault)
}
getDefaults (): Record<string, any> {
@@ -213,7 +216,9 @@ export class ConfigService {
* Reads config YAML as string
*/
readRaw (): string {
return yaml.dump(this._store)
// Scrub undefined values
const cleanStore = JSON.parse(JSON.stringify(this._store))
return yaml.dump(cleanStore)
}
/**
@@ -254,7 +259,9 @@ export class ConfigService {
return services.filter(service => {
for (const pluginName in this.servicesCache) {
if (this.servicesCache[pluginName].includes(service.constructor)) {
const id = `${pluginName}:${service.constructor.name}`
return !this.store?.pluginBlacklist?.includes(pluginName)
&& !this.store?.providerBlacklist?.includes(id)
}
}
return true
@@ -349,6 +356,14 @@ export class ConfigService {
delete window.localStorage.lastSerialConnection
config.version = 3
}
if (config.version < 4) {
for (const p of config.profiles ?? []) {
if (!p.id) {
p.id = `${p.type}:custom:${uuidv4()}`
}
}
config.version = 4
}
}
private async maybeDecryptConfig (store) {

View File

@@ -178,7 +178,7 @@ export class HotkeysService {
this._key.next(getKeyName(eventData))
})
if (process.platform === 'darwin' && eventData.metaKey && eventName === 'keydown' && !['Ctrl', 'Shift', altKeyName, metaKeyName].includes(keyName)) {
if (process.platform === 'darwin' && eventData.metaKey && eventName === 'keydown' && !['Ctrl', 'Shift', altKeyName, metaKeyName, 'Enter'].includes(keyName)) {
// macOS will swallow non-modified keyups if Cmd is held down
this.pushKeyEvent('keyup', nativeEvent)
}

View File

@@ -1,11 +1,13 @@
import { Injectable } from '@angular/core'
import { registerLocaleData } from '@angular/common'
import { TranslateService } from '@ngx-translate/core'
import { TranslateService, MissingTranslationHandler } from '@ngx-translate/core'
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler'
import localeENUS from '@angular/common/locales/en'
import localeENGB from '@angular/common/locales/en-GB'
import localeAF from '@angular/common/locales/af'
import localeBG from '@angular/common/locales/bg'
import localeCS from '@angular/common/locales/cs'
import localeDA from '@angular/common/locales/da'
import localeDE from '@angular/common/locales/de'
import localeES from '@angular/common/locales/es'
@@ -30,6 +32,7 @@ registerLocaleData(localeENUS)
registerLocaleData(localeENGB)
registerLocaleData(localeAF)
registerLocaleData(localeBG)
registerLocaleData(localeCS)
registerLocaleData(localeDA)
registerLocaleData(localeDE)
registerLocaleData(localeES)
@@ -55,6 +58,19 @@ function flattenMessageFormatTranslation (po: any) {
return translation
}
export class CustomMissingTranslationHandler extends MissingTranslationHandler {
compiler = new TranslateMessageFormatCompiler()
// eslint-disable-next-line @typescript-eslint/ban-types
handle (params: { key: string, translateService: TranslateService, interpolateParams?: Object }): any {
const v = this.compiler.compile(params.key, params.translateService.currentLang)
if (typeof v === 'string') {
return v
}
return v(params.interpolateParams)
}
}
@Injectable({ providedIn: 'root' })
export class LocaleService {
private logger: Logger
@@ -68,6 +84,10 @@ export class LocaleService {
code: 'id-ID',
name: 'Bahasa Indonesia',
},
{
code: 'cs-CZ',
name: 'Čeština',
},
{
code: 'da-DK',
name: 'Dansk',

View File

@@ -24,6 +24,7 @@ export class ProfilesService {
isBuiltin: false,
isTemplate: false,
terminalColorScheme: null,
behaviorOnSessionEnd: 'auto',
}
constructor (
@@ -95,6 +96,8 @@ export class ProfilesService {
const freeInputEquivalent = provider?.intoQuickConnectString(fullProfile) ?? undefined
return {
...profile,
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
group: profile.group || '',
freeInputEquivalent,
description: provider?.getDescription(fullProfile),
}
@@ -150,6 +153,8 @@ export class ProfilesService {
profiles = profiles.filter(x => !x.isTemplate)
profiles = profiles.filter(x => x.id && !this.config.store.profileBlacklist.includes(x.id))
options = [...options, ...profiles.map((p): SelectorOption<void> => ({
...this.selectorOptionForProfile(p),
weight: p.isBuiltin ? 2 : 1,
@@ -172,17 +177,20 @@ export class ProfilesService {
})
} catch { }
if (this.getProviders().some(x => x.supportsQuickConnect)) {
this.getProviders().filter(x => x.supportsQuickConnect).forEach(provider => {
options.push({
name: this.translate.instant('Quick connect'),
freeInputPattern: this.translate.instant('Connect to "%s"...'),
description: `(${provider.name.toUpperCase()})`,
icon: 'fas fa-arrow-right',
weight: provider.id !== this.config.store.defaultQuickConnectProvider ? 1 : 0,
callback: query => {
const profile = this.quickConnect(query)
const profile = provider.quickConnect(query)
resolve(profile)
},
})
}
})
await this.selector.show(this.translate.instant('Select profile or enter an address'), options)
} catch (err) {
reject(err)

View File

@@ -3,6 +3,7 @@ import { Subject, Observable } from 'rxjs'
import * as Color from 'color'
import { ConfigService } from '../services/config.service'
import { Theme } from '../api/theme'
import { PlatformService } from '../api/platform'
import { NewTheme } from '../theme'
@Injectable({ providedIn: 'root' })
@@ -17,6 +18,7 @@ export class ThemesService {
private constructor (
private config: ConfigService,
private standardTheme: NewTheme,
private platform: PlatformService,
@Inject(Theme) private themes: Theme[],
) {
this.rootElementStyleBackup = document.documentElement.style.cssText
@@ -24,11 +26,15 @@ export class ThemesService {
config.ready$.toPromise().then(() => {
this.applyCurrentTheme()
this.applyThemeVariables()
platform.themeChanged$.subscribe(() => {
this.applyCurrentTheme()
this.applyThemeVariables()
})
config.changed$.subscribe(() => {
this.applyCurrentTheme()
this.applyThemeVariables()
})
})
config.changed$.subscribe(() => this.applyThemeVariables())
}
private applyThemeVariables () {
@@ -36,7 +42,7 @@ export class ThemesService {
document.documentElement.style.cssText = this.rootElementStyleBackup
}
const theme = this.config.store.terminal.colorScheme
const theme = this._getActiveColorScheme()
const isDark = Color(theme.background).luminosity() < Color(theme.foreground).luminosity()
function more (some, factor) {
@@ -62,9 +68,11 @@ export class ThemesService {
// const backgroundMore =more(theme.background, 0.25).string()
const accentIndex = 4
const vars: Record<string, string> = {}
const contrastPairs: string[][] = []
vars['--body-bg'] = background.string()
if (this.findCurrentTheme().followsColorScheme) {
vars['--bs-body-bg'] = background.string()
vars['--bs-body-bg'] = theme.background
vars['--bs-body-color'] = theme.foreground
vars['--bs-black'] = theme.colors[0]
vars['--bs-red'] = theme.colors[1]
@@ -82,6 +90,8 @@ export class ThemesService {
// vars['--bs-purple'] = theme.colors[13]
// vars['--bs-cyan'] = theme.colors[14]
contrastPairs.push(['--bs-body-bg', '--bs-body-color'])
vars['--theme-fg-more-2'] = more(theme.foreground, 0.5).string()
vars['--theme-fg-more'] = more(theme.foreground, 0.25).string()
vars['--theme-fg'] = theme.foreground
@@ -94,15 +104,23 @@ export class ThemesService {
vars['--theme-bg-more'] = backgroundMore
vars['--theme-bg-more-2'] = more(backgroundMore, 0.25).string()
contrastPairs.push(['--theme-bg', '--theme-fg'])
contrastPairs.push(['--theme-bg-less', '--theme-fg-less'])
contrastPairs.push(['--theme-bg-less-2', '--theme-fg-less-2'])
contrastPairs.push(['--theme-bg-more', '--theme-fg-more'])
contrastPairs.push(['--theme-bg-more-2', '--theme-fg-more-2'])
const themeColors = {
primary: theme.colors[accentIndex],
secondary: theme.colors[8],
tertiary: theme.colors[8],
secondary: isDark
? less(theme.background, 0.5).string()
: less(theme.background, 0.125).string(),
tertiary: more(theme.background, 0.75).string(),
warning: theme.colors[3],
danger: theme.colors[1],
success: theme.colors[2],
info: theme.colors[4],
dark: more(theme.background, 0.5).string(),
dark: more(theme.background, 0.75).string(),
light: more(theme.foreground, 0.5).string(),
link: theme.colors[8], // for .btn-link
}
@@ -117,6 +135,13 @@ export class ThemesService {
vars[`--theme-${key}`] = color
vars[`--theme-${key}-less`] = less(color, 0.25).string()
vars[`--theme-${key}-less-2`] = less(color, 0.75).string()
vars[`--theme-${key}-fg`] = more(color, 3).string()
vars[`--theme-${key}-active-bg`] = less(color, 1).string()
vars[`--theme-${key}-active-fg`] = more(color, 1).string()
contrastPairs.push([`--theme-${key}`, `--theme-${key}-fg`])
contrastPairs.push([`--theme-${key}-active-bg`, `--theme-${key}-active-fg`])
}
const switchBackground = less(theme.colors[accentIndex], 0.25).string()
@@ -125,9 +150,38 @@ export class ThemesService {
vars['--spaciness'] = this.config.store.appearance.spaciness
for (const [bg, fg] of contrastPairs) {
const colorBg = Color(vars[bg]).hsl()
const colorFg = Color(vars[fg]).hsl()
const bgContrast = colorBg.contrast(colorFg)
if (bgContrast < this.config.store.terminal.minimumContrastRatio) {
vars[fg] = this.ensureContrast(colorFg, colorBg).string()
}
}
for (const [key, value] of Object.entries(vars)) {
document.documentElement.style.setProperty(key, value)
}
document.body.classList.toggle('no-animations', !this.config.store.accessibility.animations)
}
private ensureContrast (color: Color, against: Color): Color {
const a = this.increaseContrast(color, against, 1.1)
const b = this.increaseContrast(color, against, 0.9)
return a.contrast(against) > b.contrast(against) ? a : b
}
private increaseContrast (color: Color, against: Color, step=1.1): Color {
color = color.hsl()
color.color[2] = Math.max(color.color[2], 0.01)
while (
(step < 1 && color.color[2] > 1 ||
step > 1 && color.color[2] < 99) &&
color.contrast(against) < this.config.store.terminal.minimumContrastRatio) {
color.color[2] *= step
}
return color
}
findTheme (name: string): Theme|null {
@@ -138,6 +192,15 @@ export class ThemesService {
return this.findTheme(this.config.store.appearance.theme) ?? this.standardTheme
}
/// @hidden
_getActiveColorScheme (): any {
if (this.platform.getTheme() === 'light') {
return this.config.store.terminal.lightColorScheme
} else {
return this.config.store.terminal.colorScheme
}
}
applyTheme (theme: Theme): void {
if (!this.styleElement) {
this.styleElement = document.createElement('style')

View File

@@ -10,7 +10,7 @@ app-root {
&> .content {
.tab-bar {
background: var(--theme-bg-more);
background: var(--theme-bg-more-2);
.btn-tab-bar {
background: transparent;
@@ -30,6 +30,7 @@ app-root {
border-left: 1px solid transparent;
border-right: 1px solid transparent;
transition: 0.125s ease-out width;
color: var(--theme-fg-more-2);
.index {
color: var(--bs-body-color);
@@ -54,11 +55,13 @@ app-root {
opacity: .2;
}
.current-tab-indicator {
background:var(--bs-light);
}
&.active {
// color: $black;
background: var(--bs-body-bg);
// border-left: 1px solid $border-color;
// border-right: 1px solid $border-color;
color: var(--theme-fg);
background: var(--body-bg);
}
}
}
@@ -67,7 +70,7 @@ app-root {
}
tab-body {
background: var(--bs-body-bg);
background: var(--body-bg);
}
$tab-border-radius: 5px;
@@ -78,12 +81,15 @@ $modal-footer-border-color: transparent;
$form-check-input-width: 1.4em;
$form-switch-width: 2.5em;
$input-placeholder-color: var(--theme-fg-more-2);
@import '~bootstrap/scss/bootstrap.scss';
@import "./theme.vendor.scss";
body {
background: var(--body-bg);
--bs-border-color: var(--theme-bg-more-2);
--bs-form-control-bg: var(--theme-bg-more);
--bs-form-control-bg: var(--theme-bg-more-2);
--bs-emphasis-color: var(--theme-fg-less-2);
}
@@ -104,8 +110,8 @@ body {
}
.nav {
--bs-nav-link-color: var(--bs-body-color);
--bs-nav-link-hover-color: var(--theme-fg-less-2);
--bs-nav-link-color: var(--theme-fg-more);
--bs-nav-link-hover-color: var(--theme-fg-less);
--bs-nav-link-disabled-color: var(--bs-gray);
}
@@ -113,8 +119,8 @@ body {
--bs-nav-tabs-border-width: 2px;
--bs-nav-tabs-border-radius: 0;
--bs-nav-tabs-link-hover-border-color: var(--bs-body-bg);
--bs-nav-tabs-border-color: var(--theme-fg-less-2);
--bs-nav-tabs-link-active-color: var(--theme-fg-less-2);
--bs-nav-tabs-border-color: var(--theme-fg);
--bs-nav-tabs-link-active-color: var(--theme-fg);
--bs-nav-tabs-link-active-bg: transparent;
--bs-nav-tabs-link-active-border-color: transparent;
@@ -122,8 +128,8 @@ body {
.nav-pills {
--bs-nav-pills-border-radius: #{$nav-pills-border-radius};
--bs-nav-pills-link-active-color: var(--theme-bg-more);
--bs-nav-pills-link-active-bg: var(--bs-primary);
--bs-nav-pills-link-active-color: var(--theme-primary-fg);
--bs-nav-pills-link-active-bg: var(--theme-primary);
}
.nav-tabs {
@@ -167,6 +173,13 @@ body {
}
}
.dropdown-menu {
--bs-dropdown-bg: var(--theme-bg-more);
}
.progress {
--bs-progress-height: 3px;
}
tab-body {
terminal-toolbar {
@@ -189,20 +202,20 @@ tab-body {
--bs-btn-hover-border-color: var(--theme-#{$color}-less);
--bs-btn-hover-bg: var(--theme-#{$color}-less);
--bs-btn-active-border-color: var(--theme-#{$color}-less-2);
--bs-btn-active-bg: var(--theme-#{$color}-less-2);
--bs-btn-active-border-color: var(--theme-#{$color});
--bs-btn-active-bg: var(--theme-#{$color}-active-bg);
--bs-btn-focus-shadow-rgb: 130, 138, 145;
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-color: var(--theme-#{$color}-more-2);
--bs-btn-hover-color: var(--theme-#{$color}-more-2);
--bs-btn-active-color: var(--theme-#{$color}-more-2);
--bs-btn-disabled-color: var(--theme-#{$color}-more-2);
--bs-btn-color: var(--theme-#{$color}-fg);
--bs-btn-hover-color: var(--theme-#{$color}-fg);
--bs-btn-active-color: var(--theme-#{$color}-active-fg);
--bs-btn-disabled-color: var(--theme-#{$color}-fg);
}
.alert-#{$color} {
--bs-alert-bg: var(--theme-#{$color}-more-2);
--bs-alert-bg: var(--theme-#{$color}-fg);
--bs-alert-border-color: var(--theme-#{$color}-more);
--bs-alert-color: var(--theme-#{$color});
}
@@ -388,6 +401,7 @@ ngx-colors-panel .opened {
.text-muted {
opacity: .5;
color: var(--theme-fg) !important;
}
.form-switch .form-check-input {

View File

@@ -1,37 +1,29 @@
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import { Injectable } from '@angular/core'
import { TranslateService } from '@ngx-translate/core'
import { Theme } from './api'
/** @hidden */
@Injectable()
export class StandardTheme extends Theme {
name = this.translate.instant('Standard (legacy)')
name = _('Standard (legacy)')
css = require('./theme.scss')
terminalBackground = '#222a33'
constructor (private translate: TranslateService) {
super()
}
}
/** @hidden */
@Injectable()
export class StandardCompactTheme extends Theme {
name = this.translate.instant('Compact (legacy)')
name = _('Compact (legacy)')
css = require('./theme.compact.scss')
terminalBackground = '#222a33'
macOSWindowButtonsInsetX = 8
macOSWindowButtonsInsetY = 6
constructor (private translate: TranslateService) {
super()
}
}
/** @hidden */
@Injectable()
export class PaperTheme extends Theme {
name = 'Paper (legacy)'
name = _('Paper (legacy)')
css = require('./theme.paper.scss')
terminalBackground = '#f7f1e0'
}
@@ -39,12 +31,8 @@ export class PaperTheme extends Theme {
/** @hidden */
@Injectable({ providedIn: 'root' })
export class NewTheme extends Theme {
name = this.translate.instant('Follow the color scheme')
name = _('Follow the color scheme')
css = require('./theme.new.scss')
terminalBackground = '#f7f1e0'
followsColorScheme = true
constructor (private translate: TranslateService) {
super()
}
}

View File

@@ -7,8 +7,13 @@ export const WIN_BUILD_CONPTY_STABLE = 18309
export const WIN_BUILD_WSL_EXE_DISTRO_FLAG = 17763
export const WIN_BUILD_FLUENT_BG_SUPPORTED = 17063
export function getWindows10Build (): number|undefined {
return process.platform === 'win32' && parseFloat(os.release()) >= 10 ? parseInt(os.release().split('.')[2]) : undefined
}
export function isWindowsBuild (build: number): boolean {
return process.platform === 'win32' && parseFloat(os.release()) >= 10 && parseInt(os.release().split('.')[2]) >= build
const b = getWindows10Build()
return b !== undefined && b >= build
}
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types

View File

@@ -174,10 +174,10 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
readable-stream@4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.2.0.tgz#a7ef523d3b39e4962b0db1a1af22777b10eeca46"
integrity sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==
readable-stream@4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468"
integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==
dependencies:
abort-controller "^3.0.0"
buffer "^6.0.3"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-electron",
"version": "1.0.189-nightly.2",
"version": "1.0.197-nightly.1",
"description": "Electron-specific bindings",
"keywords": [
"tabby-builtin-plugin"
@@ -12,16 +12,20 @@
"watch": "webpack --progress --color --watch"
},
"files": [
"dist"
"dist",
"typings"
],
"author": "Eugene Pankov",
"license": "MIT",
"peerDependencies": {
"@angular/core": "^9.1.9"
"@angular/core": "^15",
"tabby-local": "*"
},
"devDependencies": {
"electron-promise-ipc": "^2.2.4",
"ps-node": "^0.1.6",
"tmp-promise": "^3.0.2",
"which": "^3.0.0",
"winston": "^3.3.3"
}
}

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 392 B

After

Width:  |  Height:  |  Size: 392 B

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