Compare commits

...

583 Commits

Author SHA1 Message Date
Eugene Pankov
0f01aaf44d Merge commit '8b3f4826' into tmp 2022-01-31 10:50:45 +01:00
Eugene Pankov
54531e234e Merge commit '9515245' into tmp 2022-01-31 10:25:56 +01:00
Eugene Pankov
3bda4a9871 . 2022-01-31 09:33:50 +01:00
Eugene Pankov
c7e3ab42d9 ssh: added DSA host key support - fixes #5120, fixes #3430 2022-01-31 09:22:55 +01:00
Eugene Pankov
5d2956568e .ssh: added DSA host key support - fixes #5120, fixes #3430 2022-01-31 09:00:23 +01:00
Eugene Pankov
8b3f482682 Merge branch 'master' of https://github.com/Eugeny/tabby 2022-01-30 22:08:48 +01:00
Eugene Pankov
f38f9882f8 Update ssh2+1.5.0.patch 2022-01-30 22:08:40 +01:00
Eugene Pankov
54d71adb26 debounce terminal resize events 2022-01-30 21:08:50 +01:00
Eugene Pankov
13eebd8957 locale updates 2022-01-30 21:04:49 +01:00
Eugene Pankov
6c4f8d2611 blacklisted clickable-ips 2022-01-30 21:01:49 +01:00
Eugene Pankov
897bc77d05 Update tabHeader.component.scss 2022-01-30 21:00:17 +01:00
Eugene Pankov
8b5b53ab26 added drag handles to toolbars 2022-01-30 20:58:43 +01:00
Eugene Pankov
448fe29f50 Update electron-builder.yml 2022-01-30 20:54:18 +01:00
Eugene Pankov
70ae9f875f Merge branch 'master' of github.com:Eugeny/tabby 2022-01-30 20:44:10 +01:00
Eugene Pankov
75764cd725 macOS vibrancy fixes 2022-01-30 20:43:59 +01:00
Eugeny
5ae2d17cc8 Merge pull request #5603 from Eugeny/dependabot/npm_and_yarn/node-fetch-2.6.7 2022-01-30 20:28:57 +01:00
Eugeny
109a83db5b Merge pull request #5624 from Eugeny/dependabot/npm_and_yarn/electron-16.0.8 2022-01-30 20:27:47 +01:00
Eugene Pankov
9fe8d2a7df Create ssh2+1.5.0.patch 2022-01-30 20:22:39 +01:00
Eugene Pankov
d3bbd045dc Delete ssh2+1.5.0.patch 2022-01-30 20:22:32 +01:00
Eugene Pankov
eb0fa29fad fixed the color and title settings not getting inherited from profile defaults - fixes #5395 2022-01-30 20:03:57 +01:00
Eugene Pankov
6289229bf2 fixed the --hidden option - fixes #5396 2022-01-30 19:40:29 +01:00
Eugene Pankov
b664b9eed9 fixed repeated hotkeys canceling themselves - fixes #5406, fixes #4566 2022-01-30 17:51:21 +01:00
dependabot[bot]
2569f9e322 Bump electron from 16.0.7 to 16.0.8
Bumps [electron](https://github.com/electron/electron) from 16.0.7 to 16.0.8.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v16.0.7...v16.0.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-30 10:02:24 +00:00
Eugene Pankov
95152456ce ssh: added DSA host key support - fixes #5120, fixes #3430 2022-01-30 10:57:59 +01:00
Eugene Pankov
918761bbdc ssh: remember and verify host keys - fixes #2419 2022-01-30 00:24:58 +01:00
Eugene Pankov
ceb1b59409 prevent dropping a tab on itself - fixes #5580 2022-01-29 19:28:19 +01:00
Eugene Pankov
63374f532c cleaned up terminal toolbar implementation 2022-01-29 17:20:23 +01:00
Eugene Pankov
c57fe48e73 added the issue translator bot - fixes #5631 2022-01-29 15:53:42 +01:00
Eugene Pankov
02a3a8200b ssh: fixed socks proxy connection race condition - fixes #5093, fixes #5060, fixes #5632 2022-01-29 15:26:26 +01:00
Eugene Pankov
3e8e3f7ccd enable vibrancy on macOS by default 2022-01-29 15:09:58 +01:00
Eugene Pankov
1ec218775e linkifier: re-added port support 2022-01-29 00:02:10 +01:00
Eugene Pankov
cc8c200da0 updated linkifier regex - fixes #5611 2022-01-28 23:49:38 +01:00
Eugene Pankov
0a20716efd locale updates, added Spanish 2022-01-28 23:43:46 +01:00
Eugene Pankov
9893fb51a7 linkifier: fixed "no modifier", removed ctrl on macOS 2022-01-28 23:23:40 +01:00
Eugene Pankov
3466d42cb1 openssh: make option parsing case insensitive - #5559 2022-01-28 22:57:14 +01:00
Eugene Pankov
9e9066d3cd split openssh-importer into tabby-electron, support tilde in private key paths - fixes #5627 2022-01-28 22:49:52 +01:00
Eugene Pankov
b469dd603b ssh: allow empty keyb-interactive responses - fixes #5619 2022-01-27 21:00:25 +01:00
Eugeny
f6eaff355b Merge pull request #5608 from justjavac/patch-1 2022-01-27 10:47:48 +01:00
迷渡
7ff2b31a9f docs: fix typo 2022-01-27 12:17:26 +08:00
Eugene Pankov
dbf67e77e0 Merge branch 'master' of github.com:Eugeny/tabby 2022-01-26 21:19:34 +01:00
Eugene Pankov
b45769d379 locale updates 2022-01-26 20:17:35 +01:00
Eugene Pankov
1695c0b522 fixed hotkey name localization 2022-01-26 20:17:16 +01:00
Eugeny
15d7be05f1 Merge pull request #5548 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/ssh2-0.5.51 2022-01-26 20:11:13 +01:00
dependabot[bot]
a759c40ec8 Bump node-fetch from 2.6.1 to 2.6.7
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-26 19:11:07 +00:00
Eugeny
a8e977d34c Merge pull request #5565 from Eugeny/dependabot/npm_and_yarn/nanoid-3.2.0 2022-01-26 20:10:55 +01:00
Eugeny
527a951b1e Merge pull request #5576 from Eugeny/dependabot/npm_and_yarn/webpack-5.67.0 2022-01-26 20:10:46 +01:00
Eugeny
afe9c9a84c Merge pull request #5585 from Eugeny/dependabot/npm_and_yarn/webpack-cli-4.9.2 2022-01-26 20:10:17 +01:00
Eugene Pankov
372662c787 docs: added MaxWaldorf as contributor 2022-01-26 19:26:11 +01:00
Eugeny
ca9e6a118e Update .all-contributorsrc 2022-01-26 10:12:31 +01:00
Eugeny
b412bce37d Merge pull request #5591 from Qiming-Liu/patch-1 2022-01-26 10:11:46 +01:00
Alan
6622cbc550 docs: update README.zh-CN.md [skip ci]
add JasonCubic
2022-01-25 22:03:50 +10:30
dependabot[bot]
d3361b6f34 Bump webpack-cli from 4.9.1 to 4.9.2
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.9.1 to 4.9.2.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.1...webpack-cli@4.9.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-25 04:04:36 +00:00
Eugene Pankov
13f715ddfd Merge branch 'master' of github.com:Eugeny/tabby 2022-01-24 15:08:28 +01:00
Eugene Pankov
ccea3572a7 locale updates 2022-01-24 15:08:21 +01:00
Eugeny
c24c752b76 Merge pull request #5578 from Eugeny/all-contributors/add-JasonCubic 2022-01-24 10:15:54 +01:00
allcontributors[bot]
8751b9831f docs: update .all-contributorsrc [skip ci] 2022-01-24 09:15:41 +00:00
Eugeny
d4d93cf236 Merge pull request #5574 from JasonCubic/master 2022-01-24 10:15:40 +01:00
allcontributors[bot]
9b305026f7 docs: update README.md [skip ci] 2022-01-24 09:15:40 +00:00
dependabot[bot]
91fcdbf9b5 Bump webpack from 5.66.0 to 5.67.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.66.0 to 5.67.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.66.0...v5.67.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 04:03:36 +00:00
Jason
b17e23a69e added sdras night owl themes 2022-01-23 17:10:59 -08:00
Eugene Pankov
88bbdd0da1 debounce tab progress updates 2022-01-22 14:16:59 +01:00
Eugene Pankov
53cbb8a7e3 avoid rechecking window status on every loop 2022-01-22 14:16:46 +01:00
Eugene Pankov
9df8a1b904 bumped opentype.js 2022-01-22 14:16:17 +01:00
dependabot[bot]
0a0e451e97 Bump nanoid from 3.1.23 to 3.2.0
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.23 to 3.2.0.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.1.23...3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-22 02:21:37 +00:00
Eugene Pankov
5376ac0f07 updated XDG app category - fixes #5549 2022-01-20 09:13:05 +01:00
dependabot[bot]
238482932e Bump @types/ssh2 from 0.5.50 to 0.5.51 in /tabby-ssh
Bumps [@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2) from 0.5.50 to 0.5.51.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ssh2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-20 04:19:24 +00:00
Eugene Pankov
d4332ea361 Update de-DE.po 2022-01-18 23:38:44 +01:00
Eugene Pankov
eb49499f09 locale updates 2022-01-18 22:35:55 +01:00
Eugene Pankov
445a3d02da lint 2022-01-18 22:13:38 +01:00
Eugene Pankov
06e5571812 Merge branch 'master' of github.com:Eugeny/tabby 2022-01-18 22:13:15 +01:00
Eugene Pankov
510edaabb5 Update streamProcessing.ts 2022-01-18 22:12:24 +01:00
Eugene Pankov
5ef36896c5 show language selector in welcome tab 2022-01-18 22:12:19 +01:00
Eugene Pankov
5d22c15a78 locale update 2022-01-18 22:12:09 +01:00
Eugeny
a33e11502b Update feature_request.md 2022-01-18 15:10:18 +01:00
Eugeny
4c9456d98d Update issue-report.md 2022-01-18 15:09:50 +01:00
Eugene Pankov
e1ee818932 locale updates 2022-01-18 14:05:16 +01:00
Eugeny
e83210f0e6 Merge pull request #5529 from Qiming-Liu/patch-2 2022-01-18 12:26:42 +01:00
Alan
1d176047c4 Update README.zh-CN.md
A few small improves.
Correct `选项卡` to `标签页`
2022-01-18 21:49:46 +10:30
Eugeny
bd3ac21fb3 Merge pull request #5527 from Qiming-Liu/patch-1 2022-01-18 11:55:52 +01:00
Alan
559dd3955c README fix for Chinese translation
Follow the latest English README.md, update README.zh-CN.md.
2022-01-18 21:08:43 +10:30
Eugene Pankov
0ed05cb783 Merge branch 'master' of github.com:Eugeny/tabby 2022-01-18 10:46:28 +01:00
Eugene Pankov
87e8eefd49 lint 2022-01-18 10:46:25 +01:00
Eugeny
609b527a7c Merge pull request #5387 from Eugeny/dependabot/npm_and_yarn/graceful-fs-4.2.9 2022-01-18 10:37:22 +01:00
Eugene Pankov
fee163835f fixed install-deps.js 2022-01-18 10:31:07 +01:00
Eugene Pankov
c8b25cf911 locale updates 2022-01-18 10:26:49 +01:00
Eugene Pankov
eb9698fa66 locale updates 2022-01-18 10:25:32 +01:00
Eugene Pankov
eb60c3c3c6 locale fixes 2022-01-18 10:10:25 +01:00
Eugene Pankov
f2a48fc0c0 readme fix 2022-01-18 10:10:04 +01:00
Eugene Pankov
8d01a9ad8d Merge branches 'master' and 'master' of github.com:Eugeny/tabby 2022-01-18 10:07:44 +01:00
Eugeny
4d8ddba8ea Merge pull request #5526 from TimaGribanov/patch-1 2022-01-18 10:07:38 +01:00
Timofey Gribanov
91a7dd8b1d Create REAMDE.ru_RU.md
Russian README
2022-01-18 11:54:12 +03:00
Eugene Pankov
38423eb139 ssh: enable multiplexing by default 2022-01-17 09:10:00 +01:00
Eugene Pankov
bde6fd6231 name fix 2022-01-16 20:56:10 +01:00
Eugeny
14200f848f Merge pull request #5494 from Eugeny/all-contributors/add-milotype 2022-01-16 19:44:47 +01:00
Eugene Pankov
f6895d7696 locale updates 2022-01-16 19:44:30 +01:00
Eugene Pankov
64410a9302 make script errors fatal 2022-01-16 19:41:01 +01:00
allcontributors[bot]
45274f9691 docs: update .all-contributorsrc [skip ci] 2022-01-16 18:38:23 +00:00
allcontributors[bot]
54ab2a1f03 docs: update README.md [skip ci] 2022-01-16 18:38:22 +00:00
Eugene Pankov
782128308c build fix 2022-01-16 19:36:55 +01:00
Eugeny
f2b6cdf97c Merge pull request #5492 from Eugeny/all-contributors/add-boonkerz 2022-01-16 17:30:46 +01:00
Eugeny
c025c44258 Merge pull request #5488 from boonkerz/patch-1 2022-01-16 17:28:49 +01:00
allcontributors[bot]
9483d20994 docs: update .all-contributorsrc [skip ci] 2022-01-16 16:28:48 +00:00
allcontributors[bot]
ff25e7fe2e docs: update README.md [skip ci] 2022-01-16 16:28:47 +00:00
Eugene Pankov
d12a48f3fc lint 2022-01-16 17:27:54 +01:00
boonkerz
1796ce4f1c Update tabContextMenu.ts
Translate the selected Color
2022-01-16 15:35:42 +01:00
Eugene Pankov
d404067e77 Merge branch 'master' of github.com:Eugeny/tabby 2022-01-15 19:39:11 +01:00
dependabot[bot]
f7544d0a2e Bump graceful-fs from 4.2.8 to 4.2.9
Bumps [graceful-fs](https://github.com/isaacs/node-graceful-fs) from 4.2.8 to 4.2.9.
- [Release notes](https://github.com/isaacs/node-graceful-fs/releases)
- [Commits](https://github.com/isaacs/node-graceful-fs/compare/v4.2.8...v4.2.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-15 17:51:39 +00:00
Eugeny
cbdce5c30e Merge pull request #5448 from Eugeny/dependabot/npm_and_yarn/electron-16.0.7
Bump electron from 16.0.6 to 16.0.7
2022-01-15 18:46:43 +01:00
Eugeny
d7ab8a00dc Merge pull request #5428 from Eugeny/dependabot/npm_and_yarn/app/serialport-10.0.2
Bump serialport from 10.0.1 to 10.0.2 in /app
2022-01-15 18:45:56 +01:00
Eugeny
6e0ded9a5e Merge pull request #5430 from Eugeny/dependabot/npm_and_yarn/shelljs-0.8.5
Bump shelljs from 0.8.4 to 0.8.5
2022-01-15 18:45:47 +01:00
Eugeny
f660ece383 Merge pull request #5462 from Eugeny/dependabot/npm_and_yarn/webpack-5.66.0
Bump webpack from 5.65.0 to 5.66.0
2022-01-15 18:45:08 +01:00
Eugeny
b692347c4e Merge pull request #5450 from Eugeny/dependabot/npm_and_yarn/electron-rebuild-3.2.7
Bump electron-rebuild from 3.2.5 to 3.2.7
2022-01-15 18:44:41 +01:00
Eugeny
9520d31f12 Merge pull request #5471 from Eugeny/dependabot/npm_and_yarn/follow-redirects-1.14.7
Bump follow-redirects from 1.14.5 to 1.14.7
2022-01-15 18:44:17 +01:00
Eugene Pankov
f2afac6ead locale update 2022-01-15 15:14:22 +01:00
Eugene Pankov
0dd460a6d7 bumped plugins 2022-01-14 13:04:57 +01:00
dependabot[bot]
7c0aacf0ad Bump follow-redirects from 1.14.5 to 1.14.7
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.5 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.5...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-13 23:53:29 +00:00
Eugene Pankov
57bf79ec56 locale updates 2022-01-14 00:52:42 +01:00
Eugene Pankov
8cfdd43ee1 locale updates 2022-01-14 00:43:14 +01:00
Eugene Pankov
21f245ddaf fixed ligature related freezes - fixes #5188, fixes #2493 2022-01-14 00:43:09 +01:00
Eugene Pankov
00a19769e1 snappier tab animations 2022-01-14 00:37:43 +01:00
Eugene Pankov
d2a22763de better wording for docking settings 2022-01-14 00:36:39 +01:00
Eugene Pankov
da75e34b95 Update xtermFrontend.ts 2022-01-14 00:25:48 +01:00
Eugene Pankov
08a564588c allow disabling GPU on other platforms 2022-01-14 00:25:40 +01:00
Eugene Pankov
a639d65ed6 show checkmarks on completed transfers - fixes #5460 2022-01-13 23:54:35 +01:00
Eugene Pankov
b42314b29e limit depth of tab de-closer history 2022-01-13 23:47:18 +01:00
Eugene Pankov
17c93aa3fc plug some leaks 2022-01-13 23:45:11 +01:00
Eugene Pankov
5b4a1a5581 fixed missing locale modules - fixes #5466 2022-01-13 14:25:16 +01:00
Eugene Pankov
d82f78a026 updated translations 2022-01-13 14:24:56 +01:00
dependabot[bot]
9414be9ce0 Bump webpack from 5.65.0 to 5.66.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.65.0 to 5.66.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.65.0...v5.66.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-13 04:05:42 +00:00
dependabot[bot]
f2ed1b3df3 Bump electron-rebuild from 3.2.5 to 3.2.7
Bumps [electron-rebuild](https://github.com/electron/electron-rebuild) from 3.2.5 to 3.2.7.
- [Release notes](https://github.com/electron/electron-rebuild/releases)
- [Changelog](https://github.com/electron/electron-rebuild/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/electron-rebuild/compare/v3.2.5...v3.2.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-12 04:05:46 +00:00
dependabot[bot]
f41abea747 Bump electron from 16.0.6 to 16.0.7
Bumps [electron](https://github.com/electron/electron) from 16.0.6 to 16.0.7.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v16.0.6...v16.0.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-12 04:03:03 +00:00
Eugene Pankov
21e5d68994 support syncing fully encrypted config - fixes #5400 2022-01-10 21:15:03 +01:00
Eugene Pankov
a6a9c149dc fixed incorrect await 2022-01-10 20:45:54 +01:00
Eugene Pankov
61c11abda2 don't include tab state in saved layouts 2022-01-10 20:39:29 +01:00
Eugene Pankov
3a11b51729 windows/linux: expand window content into the border area - fixes #5423 2022-01-10 19:45:44 +01:00
dependabot[bot]
00ffa24e7d Bump shelljs from 0.8.4 to 0.8.5
Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shelljs/shelljs/compare/v0.8.4...v0.8.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 04:04:15 +00:00
dependabot[bot]
b156752106 Bump serialport from 10.0.1 to 10.0.2 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/serialport/node-serialport/releases)
- [Changelog](https://github.com/serialport/node-serialport/blob/master/CHANGELOG.md)
- [Commits](https://github.com/serialport/node-serialport/compare/@serialport/bindings@10.0.1...v10.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 04:01:48 +00:00
Eugene Pankov
6159d0ba9a added financial contributors 2022-01-09 12:46:03 +01:00
Eugene Pankov
bf2ab87c44 replaced timestamp server 2022-01-09 12:20:38 +01:00
Eugene Pankov
ff1e2871d4 more localization fixes 2022-01-09 11:28:14 +01:00
Eugene Pankov
2d9f3d8216 more strings 2022-01-09 10:32:55 +01:00
Eugene Pankov
e7a9b2317d added a "scroll to bottom" hotkey - fixes #1566 2022-01-08 19:20:51 +01:00
Eugene Pankov
0ab02d032a fixed dragging splits back out into the tab bar - fixes #5410, fixes #5406, fixes #4563 2022-01-08 19:16:08 +01:00
Eugene Pankov
ab8622c9fd more localization fixes 2022-01-08 19:13:07 +01:00
Eugeny
70a12e36e1 Merge pull request #5365 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/ssh2-0.5.50 2022-01-08 18:27:05 +01:00
Eugeny
9706108185 Merge pull request #5379 from Eugeny/dependabot/npm_and_yarn/slugify-1.6.5 2022-01-08 18:26:57 +01:00
Eugeny
5138873f43 Merge pull request #5380 from Eugeny/dependabot/npm_and_yarn/source-map-loader-3.0.1 2022-01-08 18:26:49 +01:00
Eugene Pankov
d8625d6b9f start page translation fix 2022-01-08 17:35:49 +01:00
Eugene Pankov
ec4f200435 fixed settings with linkifier disabled - fixes #5263, fixes #5276 2022-01-08 17:05:41 +01:00
Eugene Pankov
91f3b78b80 build fix 2022-01-08 16:48:18 +01:00
Eugene Pankov
3b321858d2 crowdin link 2022-01-08 16:07:07 +01:00
Eugene Pankov
0814d44207 Translation infrastructure 2022-01-08 16:03:01 +01:00
Eugeny
04010b58bb Merge pull request #5416 from Eugeny/all-contributors/add-TENX-S 2022-01-07 16:42:53 +01:00
Eugeny
a68dc35a23 Merge pull request #5378 from Eugeny/dependabot/npm_and_yarn/electron-16.0.6 2022-01-07 16:42:30 +01:00
allcontributors[bot]
40c4f57b37 docs: update .all-contributorsrc [skip ci] 2022-01-07 15:42:17 +00:00
allcontributors[bot]
652084a140 docs: update README.md [skip ci] 2022-01-07 15:42:16 +00:00
Eugeny
c29d5bc98a Merge pull request #5353 from TENX-S/Chinese_translation 2022-01-07 16:42:02 +01:00
dependabot[bot]
42b5d0824a Bump source-map-loader from 3.0.0 to 3.0.1
Bumps [source-map-loader](https://github.com/webpack-contrib/source-map-loader) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/webpack-contrib/source-map-loader/releases)
- [Changelog](https://github.com/webpack-contrib/source-map-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/source-map-loader/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: source-map-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 04:07:50 +00:00
dependabot[bot]
7226b09214 Bump slugify from 1.6.4 to 1.6.5
Bumps [slugify](https://github.com/simov/slugify) from 1.6.4 to 1.6.5.
- [Release notes](https://github.com/simov/slugify/releases)
- [Commits](https://github.com/simov/slugify/compare/v1.6.4...v1.6.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 04:06:48 +00:00
dependabot[bot]
b97053daee Bump electron from 16.0.5 to 16.0.6
Bumps [electron](https://github.com/electron/electron) from 16.0.5 to 16.0.6.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v16.0.5...v16.0.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 04:05:52 +00:00
dependabot[bot]
d5d6a486d2 Bump @types/ssh2 from 0.5.49 to 0.5.50 in /tabby-ssh
Bumps [@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2) from 0.5.49 to 0.5.50.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ssh2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 04:19:29 +00:00
Ares Andrew
889ab0f147 doc: add Chinese translation for README 2021-12-31 21:58:35 +08:00
Eugeny
e6a1f98cf1 Merge pull request #4835 from Eugeny/dependabot/npm_and_yarn/axios-0.24.0 2021-12-30 20:19:39 +01:00
Eugeny
5f81a47db9 Merge pull request #5325 from Eugeny/dependabot/github_actions/actions/setup-node-2.5.1 2021-12-30 20:17:00 +01:00
Eugeny
5d16bb99c7 Merge pull request #4885 from Eugeny/dependabot/npm_and_yarn/types/webpack-env-1.16.3 2021-12-30 20:15:54 +01:00
Eugeny
f24439d580 Merge pull request #4968 from Eugeny/dependabot/npm_and_yarn/types/js-yaml-4.0.5 2021-12-30 20:15:49 +01:00
Eugeny
6d3334543e Merge pull request #4979 from Eugeny/dependabot/npm_and_yarn/fortawesome/fontawesome-free-6.0.0-beta3 2021-12-30 20:15:43 +01:00
Eugeny
62019e3ac1 Merge pull request #5065 from Eugeny/dependabot/npm_and_yarn/sass-loader-12.4.0 2021-12-30 20:15:39 +01:00
Eugeny
adc9bce844 Merge pull request #4942 from Eugeny/dependabot/npm_and_yarn/npmlog-6.0.0 2021-12-30 20:15:28 +01:00
Eugeny
26b70447da Merge pull request #5199 from Eugeny/dependabot/npm_and_yarn/slugify-1.6.4 2021-12-30 20:15:10 +01:00
dependabot[bot]
832e408952 Bump npmlog from 5.0.1 to 6.0.0
Bumps [npmlog](https://github.com/npm/npmlog) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/npm/npmlog/releases)
- [Changelog](https://github.com/npm/npmlog/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/npmlog/compare/v5.0.1...v6.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-30 19:15:04 +00:00
Eugene Pankov
b64c2ae14e correct marked usage 2021-12-30 20:14:56 +01:00
dependabot[bot]
e63d296457 Bump sass-loader from 12.3.0 to 12.4.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 12.3.0 to 12.4.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v12.3.0...v12.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-30 19:14:47 +00:00
Eugeny
909c99d1c0 Merge pull request #5226 from Eugeny/dependabot/npm_and_yarn/tabby-settings/marked-4.0.8 2021-12-30 20:14:42 +01:00
Eugeny
cbd8609c97 Merge pull request #5053 from Eugeny/dependabot/npm_and_yarn/webpack-5.65.0 2021-12-30 20:12:21 +01:00
Eugeny
b8c1b5e428 Merge pull request #5283 from Eugeny/dependabot/npm_and_yarn/app/yargs-17.3.1 2021-12-30 20:11:30 +01:00
Eugeny
cb1b0ac669 Merge pull request #5313 from Eugeny/dependabot/npm_and_yarn/app/rxjs-7.5.1 2021-12-30 20:10:40 +01:00
Eugeny
bbe7d2186e Merge pull request #5314 from Eugeny/dependabot/npm_and_yarn/node-sass-7.0.1 2021-12-30 20:10:17 +01:00
Eugene Pankov
d0469685d9 automatically import and show OpenSSH connections - fixes #1528 2021-12-30 20:09:02 +01:00
Eugene Pankov
32ecd48375 upload to other ubuntu version repos - fixes #5333 2021-12-30 10:01:30 +01:00
Eugene Pankov
33a715c8c3 Merge branch 'master' of github.com:Eugeny/tabby 2021-12-30 10:01:19 +01:00
Eugeny
eba3d2709e Merge pull request #5320 from SunJary/fix_paper_sftp_color 2021-12-29 11:26:45 +01:00
dependabot[bot]
b3af7184e7 Bump actions/setup-node from 2.5.0 to 2.5.1
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.5.0...v2.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 04:14:39 +00:00
jary
54411e59ad fix: paper theme sftp color 2021-12-28 17:22:02 +08:00
dependabot[bot]
f9da76f07e Bump node-sass from 7.0.0 to 7.0.1
Bumps [node-sass](https://github.com/sass/node-sass) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v7.0.0...v7.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-28 04:04:28 +00:00
dependabot[bot]
af0ecd2400 Bump rxjs from 7.4.0 to 7.5.1 in /app
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.4.0 to 7.5.1.
- [Release notes](https://github.com/reactivex/rxjs/releases)
- [Changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactivex/rxjs/compare/7.4.0...7.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-28 04:01:58 +00:00
Eugene Pankov
f3f730b32e lint 2021-12-27 20:58:17 +01:00
Eugene Pankov
076b1c7129 group various stream processors into middleware 2021-12-27 20:08:22 +01:00
dependabot[bot]
3298840454 Bump yargs from 17.2.1 to 17.3.1 in /app
Bumps [yargs](https://github.com/yargs/yargs) from 17.2.1 to 17.3.1.
- [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.2.1...v17.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 18:48:45 +00:00
Eugene Pankov
b0c300be43 bumped serialport for real 2021-12-27 19:46:54 +01:00
Eugene Pankov
e86b3cde6f bumped serialport 2021-12-27 10:43:53 +01:00
Eugene Pankov
ff55d3d1ef disable multiplexing by default 2021-12-26 16:49:46 +01:00
Eugeny
e024390028 Merge pull request #5298 from Eugeny/all-contributors/add-jaimeadf 2021-12-26 10:44:21 +01:00
allcontributors[bot]
c314e4638d docs: update .all-contributorsrc [skip ci] 2021-12-26 09:26:57 +00:00
allcontributors[bot]
bcd2cc50ec docs: update README.md [skip ci] 2021-12-26 09:26:56 +00:00
Eugeny
8e1f6f894f Merge pull request #5297 from jaimeadf/color-schemes/RosePine 2021-12-26 10:26:33 +01:00
Marmota
eab8841cca add rose pine color scheme 2021-12-25 19:47:59 -03:00
Eugene Pankov
a78f3399fd SSH session multiplexing - fixes #4795 2021-12-24 18:34:48 +01:00
Eugene Pankov
44cbc9298f separated ssh session and shell session classes 2021-12-24 15:18:02 +01:00
Eugene Pankov
0c601592e3 detect store-installed powershell - fixes #5212 2021-12-23 14:15:48 +01:00
dependabot[bot]
87ad435a13 Bump webpack from 5.64.4 to 5.65.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.64.4 to 5.65.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.64.4...v5.65.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 10:34:21 +00:00
Eugene Pankov
d644c299ae serial: fixed parity settings on Windows - fixes #5267 2021-12-23 11:29:50 +01:00
Eugene Pankov
6119c2b73d Merge branch 'master' of github.com:Eugeny/tabby 2021-12-22 22:36:10 +01:00
Eugene Pankov
ccf4f05437 disallow disabling the plugin manager - #5257 2021-12-22 22:36:06 +01:00
Eugeny
5110808069 Update issue-report.md 2021-12-22 22:33:08 +01:00
Eugene Pankov
ba61a7f359 Revert "electron-remote fixes"
This reverts commit 8587cd31dd.
2021-12-22 22:23:02 +01:00
Eugene Pankov
f2aef8d6d5 Merge branch 'master' of github.com:Eugeny/tabby 2021-12-22 21:16:53 +01:00
Eugene Pankov
8587cd31dd electron-remote fixes 2021-12-22 21:16:50 +01:00
Eugene Pankov
8a8e7cd99f upgraded xterm 2021-12-22 21:16:45 +01:00
Eugeny
ddb01b3722 Merge pull request #5198 from Eugeny/dependabot/npm_and_yarn/electron-16.0.5 2021-12-22 21:01:01 +01:00
dependabot[bot]
66bb03a463 Bump electron from 13.5.1 to 16.0.5
Bumps [electron](https://github.com/electron/electron) from 13.5.1 to 16.0.5.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v13.5.1...v16.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-22 09:10:20 +00:00
Eugene Pankov
5f88a02647 Merge branch 'electron-upgrade' 2021-12-22 10:06:51 +01:00
Eugene Pankov
538df37f5e support for unencrypted PuTTY v3 keys - #5145 2021-12-22 00:28:14 +01:00
Eugene Pankov
aba5e9dcfa show font name autocompletion hint 2021-12-22 00:04:11 +01:00
Eugene Pankov
c7589acc87 prevent window controls flickering 2021-12-22 00:04:01 +01:00
Eugene Pankov
39786e023e expose the terminal.scrollbackLines setting 2021-12-21 23:37:22 +01:00
Eugene Pankov
7900134f67 expose the terminal.linePadding setting 2021-12-21 23:37:09 +01:00
dependabot[bot]
9e3961b83d Bump marked from 3.0.2 to 4.0.8 in /tabby-settings
Bumps [marked](https://github.com/markedjs/marked) from 3.0.2 to 4.0.8.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v3.0.2...v4.0.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-20 04:21:29 +00:00
Eugene Pankov
d080adc19d fixed terminal toolbar padding when on top on macOS - fixes #5220 2021-12-19 18:44:12 +01:00
Eugene Pankov
4f189f6839 fixed #5219 2021-12-19 18:40:19 +01:00
Eugene Pankov
87ed979588 lint 2021-12-19 18:11:46 +01:00
Eugene Pankov
e90db7f07f UI switch for --disable-gpu - #5131, #3499 2021-12-19 18:11:43 +01:00
Eugene Pankov
5249a9076a config defaults tweaks 2021-12-19 17:56:50 +01:00
Eugene Pankov
cfc9333c02 use real file modes for zmodem uploads - fixes #4141 2021-12-19 17:56:42 +01:00
dependabot[bot]
5a7b5346ae Bump slugify from 1.6.1 to 1.6.4
Bumps [slugify](https://github.com/simov/slugify) from 1.6.1 to 1.6.4.
- [Release notes](https://github.com/simov/slugify/releases)
- [Commits](https://github.com/simov/slugify/compare/v1.6.1...v1.6.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-17 04:05:28 +00:00
Eugene Pankov
81aa747d83 lint 2021-12-15 23:30:33 +01:00
Eugene Pankov
0e9723cb3b updated window docking logic 2021-12-15 23:21:56 +01:00
Eugene Pankov
899484a5d9 fixed config sync - fixes #5146, fixes #3164 2021-12-15 21:48:54 +01:00
Eugeny
4c2feb1b35 Update issue-report.md 2021-12-14 10:08:52 +01:00
Eugeny
d6d75b8c53 Update issue templates 2021-12-14 10:07:39 +01:00
Eugene Pankov
6eff3902ca don't disable vibrancy while dragging if it's not fluent 2021-12-12 14:24:55 +01:00
Eugene Pankov
8f71f29007 electron 16 2021-12-12 14:15:04 +01:00
Eugene Pankov
b6fd909d67 electron 14 2021-12-12 14:05:55 +01:00
Eugene Pankov
9500fa8770 dep fix 2021-12-12 13:18:20 +01:00
Eugene Pankov
f92d9c85cb allowRendererProcessReuse 2021-12-12 13:14:24 +01:00
Eugene Pankov
04533a683b upgraded node-serialport 2021-12-12 12:23:24 +01:00
Eugene Pankov
08a38bbf61 serial: slow feed mode - fixes #4901 2021-12-12 12:23:15 +01:00
Eugene Pankov
5f94e84542 theme tweaks, fixed #5068 2021-12-12 12:18:02 +01:00
Eugene Pankov
bdcd2720c4 properly disable yargs warning 2021-12-12 12:10:48 +01:00
Eugene Pankov
4784a076fa disable vibrancy on Windows by default 2021-12-12 12:03:18 +01:00
Eugene Pankov
07c522385f fixed yargs deprecation warnings 2021-12-12 12:03:10 +01:00
Eugene Pankov
d039d76cff fixed restored local tabs being unresponsive - fixes #5122, fixes #5124, fixes #5101 2021-12-12 12:03:01 +01:00
Eugene Pankov
f91754ce7c build fix 2021-12-09 14:10:49 +01:00
Eugene Pankov
5911794b20 Update build.yml 2021-12-09 13:29:08 +01:00
Eugene Pankov
f640bf9443 Revert "Update build.yml"
This reverts commit 9f50d8506c.
2021-12-09 13:28:55 +01:00
Eugene Pankov
9f50d8506c Update build.yml 2021-12-09 13:02:26 +01:00
Eugene Pankov
361f6c2fe5 Update build.yml 2021-12-09 11:25:46 +01:00
Eugene Pankov
8cac38e1ef Update build.yml 2021-12-09 11:18:31 +01:00
Eugene Pankov
75757d027e Update README.md 2021-12-09 01:07:52 +01:00
Eugene Pankov
0c8b6e56da theme tweaks 2021-12-08 23:33:45 +01:00
Eugene Pankov
5be4a12ee5 theme updates 2021-12-08 23:25:46 +01:00
Eugene Pankov
433c7d33d9 fixed tab title recovery for split tabs - fixes #4810 2021-12-08 21:45:58 +01:00
Eugene Pankov
b755346ac0 fixed #5001 2021-12-08 21:01:48 +01:00
Eugene Pankov
4c663e4a20 profile settings: allow filtering by description - fixes #5022 2021-12-08 20:58:13 +01:00
Eugene Pankov
a34e4c236d lint 2021-12-08 20:38:16 +01:00
Eugene Pankov
b2b91f0cfd fixed X11 display spec parsing - fixes #5073, fixes #4978 2021-12-08 20:25:37 +01:00
Eugene Pankov
bbb02f4e64 bundle the clickable-links plugin with Tabby 2021-12-08 19:54:26 +01:00
Eugene Pankov
3eaf46e09d disabled ssh algorithm blacklist by default - fixes #4995, fixes #5072 2021-12-08 19:32:41 +01:00
Eugeny
fc02d27056 Merge pull request #5052 from Eugeny/dependabot/npm_and_yarn/node-sass-7.0.0 2021-12-07 09:10:48 +01:00
Eugeny
0fe7d81a5f Merge pull request #4988 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.10 2021-12-07 09:10:17 +01:00
dependabot[bot]
59dbe6ba83 Bump node-sass from 6.0.1 to 7.0.0
Bumps [node-sass](https://github.com/sass/node-sass) from 6.0.1 to 7.0.0.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v6.0.1...v7.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-07 04:05:50 +00:00
Eugene Pankov
860a577ddb fixed ESM default imports 2021-12-06 19:13:26 +01:00
dependabot[bot]
2edb9cc5b8 Bump typedoc from 0.22.9 to 0.22.10
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.9 to 0.22.10.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.9...v0.22.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 17:39:46 +00:00
Eugene Pankov
5bc13965e1 Update package.json 2021-12-06 18:35:33 +01:00
Eugene Pankov
2ca93fdb98 Update build.yml 2021-12-06 18:16:20 +01:00
Eugene Pankov
aa62ca9a6e Update ssh.ts 2021-12-06 18:12:54 +01:00
Eugene Pankov
1928cda394 Update build.yml 2021-12-06 18:06:07 +01:00
Eugene Pankov
64f8e033c4 Update ssh.ts 2021-12-06 18:03:22 +01:00
Eugene Pankov
23280c2143 Update build.yml 2021-12-06 17:46:38 +01:00
dependabot[bot]
e4037d5aac Bump axios from 0.21.1 to 0.24.0
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.24.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...v0.24.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 11:15:07 +00:00
Eugene Pankov
d2ec08e3f8 build updates 2021-12-06 12:14:06 +01:00
Eugeny
b186f986ac Merge pull request #4964 from Eugeny/dependabot/npm_and_yarn/app/electron-updater-4.6.1 2021-12-06 11:51:05 +01:00
Eugeny
dbf91228fe Merge pull request #4970 from Eugeny/dependabot/npm_and_yarn/electron-builder-22.14.5 2021-12-06 11:50:42 +01:00
Eugeny
b58198b82b Merge pull request #4996 from Eugeny/dependabot/npm_and_yarn/webpack-5.64.4 2021-12-06 11:50:03 +01:00
Eugeny
eca92760f3 Merge pull request #5002 from Eugeny/dependabot/npm_and_yarn/app/serialport-9.2.8 2021-12-06 11:49:50 +01:00
Eugeny
d4815ca827 Merge pull request #4997 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/ssh2-0.5.49 2021-12-06 11:49:33 +01:00
Eugeny
4c19122acb Merge pull request #5009 from Eugeny/dependabot/github_actions/actions/setup-node-2.5.0 2021-12-06 11:49:25 +01:00
Eugene Pankov
6bdbca4e19 Update build.yml 2021-12-06 11:46:52 +01:00
Eugene Pankov
bb47a5d76f ssh: respect keyboard-interactive prompt echo setting - fixes #5045 2021-12-06 09:19:49 +01:00
Eugene Pankov
f308fd481d bumped plugins 2021-12-06 09:19:32 +01:00
Eugene Pankov
34adf767eb ensure patch-package runs on web 2021-12-01 10:04:09 +01:00
Eugene Pankov
2c6a26b01a bumped windows build image 2021-11-30 19:05:49 +01:00
dependabot[bot]
e596553dbf Bump actions/setup-node from 2.4.0 to 2.5.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.4.0...v2.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-30 04:14:38 +00:00
dependabot[bot]
990b1b8623 Bump serialport from 9.2.5 to 9.2.8 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 9.2.5 to 9.2.8.
- [Release notes](https://github.com/serialport/node-serialport/releases)
- [Changelog](https://github.com/serialport/node-serialport/blob/master/CHANGELOG.md)
- [Commits](https://github.com/serialport/node-serialport/compare/@serialport/bindings@9.2.5...@serialport/bindings@9.2.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 04:01:51 +00:00
Eugene Pankov
9856249c88 fixed #5000 - native socksv5 connection support in ssh and connection mode UI overhaul 2021-11-28 18:21:26 +01:00
dependabot[bot]
7818f0642f Bump @types/ssh2 from 0.5.48 to 0.5.49 in /tabby-ssh
Bumps [@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2) from 0.5.48 to 0.5.49.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ssh2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-26 04:20:02 +00:00
dependabot[bot]
bcea319eb8 Bump webpack from 5.61.0 to 5.64.4
Bumps [webpack](https://github.com/webpack/webpack) from 5.61.0 to 5.64.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.61.0...v5.64.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-26 04:05:14 +00:00
Eugeny
246ae9fe77 Merge pull request #4993 from Eugeny/all-contributors/add-NessunKim 2021-11-25 12:36:26 +01:00
allcontributors[bot]
b4a678640e docs: update .all-contributorsrc [skip ci] 2021-11-25 11:36:13 +00:00
allcontributors[bot]
8692c17ea4 docs: update README.md [skip ci] 2021-11-25 11:36:12 +00:00
Eugeny
59ee098fde Merge pull request #4992 from NessunKim/hotkey-backticks 2021-11-25 12:36:11 +01:00
Nessun Kim
cd09043558 Fix hotkey setter to handle backticks and tildes properly 2021-11-25 20:12:00 +09:00
dependabot[bot]
6998a61f37 Bump @fortawesome/fontawesome-free from 6.0.0-beta2 to 6.0.0-beta3
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.0.0-beta2 to 6.0.0-beta3.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-23 04:03:27 +00:00
dependabot[bot]
be8f8eec70 Bump electron-builder from 22.11.7 to 22.14.5
Bumps [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) from 22.11.7 to 22.14.5.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/v22.14.5/packages/electron-builder)

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 04:05:17 +00:00
dependabot[bot]
85fb2c5725 Bump electron-updater from 4.3.9 to 4.6.1 in /app
Bumps [electron-updater](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-updater) from 4.3.9 to 4.6.1.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/HEAD/packages/electron-updater)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 04:02:00 +00:00
Eugene Pankov
2baede4675 ignore fewer errors in profileSettingsTab 2021-11-21 17:51:32 +01:00
Eugeny
176992a629 Merge pull request #4962 from highfredo/master 2021-11-21 17:49:06 +01:00
highfredo
905e7ffc43 Deepclone profile before passing it to the configuration component and fix uncaught error on modal dismiss 2021-11-21 13:43:02 +01:00
Eugene Pankov
8ff130ebfd fixed #4931 - allow empty username to work with winscp integration 2021-11-20 17:39:10 +01:00
Eugene Pankov
064bcb31d8 fixed toolbar color in paper theme - fixes #4954 2021-11-20 17:24:09 +01:00
Eugene Pankov
25e4e5e8b4 Merge branch 'master' of github.com:Eugeny/tabby 2021-11-20 13:36:32 +01:00
Eugene Pankov
e3018086fb build against an older glibc 2021-11-20 13:36:27 +01:00
Eugeny
f3908da0a6 Merge pull request #4889 from Eugeny/dependabot/npm_and_yarn/shell-quote-1.7.3 2021-11-19 22:58:43 +01:00
Eugeny
2e57ffb169 Merge pull request #4907 from Eugeny/dependabot/npm_and_yarn/electron-rebuild-3.2.5 2021-11-19 22:58:11 +01:00
Eugeny
bda8199e5d Merge pull request #4923 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.9 2021-11-19 22:57:50 +01:00
Eugeny
a6cbb64f59 Merge pull request #4960 from Eugeny/all-contributors/add-highfredo 2021-11-19 22:57:03 +01:00
allcontributors[bot]
8b1efaeb53 docs: update .all-contributorsrc [skip ci] 2021-11-19 21:56:14 +00:00
allcontributors[bot]
fa767adf52 docs: update README.md [skip ci] 2021-11-19 21:56:13 +00:00
Eugene Pankov
096a6128c9 style tweaks 2021-11-19 22:53:34 +01:00
highfredo
a5fa022792 Autofill port forwarding inputs with the deleted port 2021-11-19 20:18:32 +01:00
highfredo
2922df08f4 Add description to ssh port forwarding 2021-11-19 20:17:08 +01:00
Eugeny
700aae3ab0 Merge pull request #4929 from Eugeny/all-contributors/add-composer404 2021-11-15 21:49:06 +01:00
allcontributors[bot]
cad6b4d1ee docs: update .all-contributorsrc [skip ci] 2021-11-15 20:45:34 +00:00
Eugeny
2b57061949 Merge pull request #4928 from composer404/master 2021-11-15 21:45:33 +01:00
allcontributors[bot]
ca5b0a95d9 docs: update README.md [skip ci] 2021-11-15 20:45:33 +00:00
Eugene Pankov
0e3b486e22 don't auto-update on quit 2021-11-15 21:44:02 +01:00
Kozik Przemysław
f3e5ad4a2a Merge branch 'master' of github.com:composer404/tabby 2021-11-15 20:22:25 +01:00
Kozik Przemysław
ad2ab61927 toolbar icons update 2021-11-15 20:21:58 +01:00
Kozik Przemysław
e2464cf3b1 Merge branch 'master' of github.com:composer404/tabby 2021-11-15 20:19:00 +01:00
Kozik Przemysław
4c2959b4c4 toolbar icons update 2021-11-15 20:18:28 +01:00
Kozik Przemysław
4718e9ff22 Toolbar icons update 2021-11-15 20:16:24 +01:00
dependabot[bot]
8899e57f81 Bump typedoc from 0.22.7 to 0.22.9
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.7 to 0.22.9.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.7...v0.22.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 04:08:47 +00:00
Eugene Pankov
14098177e4 bumped plugins 2021-11-14 16:23:29 +01:00
Eugene Pankov
3c68e2bd29 config sync is experimental no more 2021-11-14 15:50:40 +01:00
Eugeny
bebec4f638 Merge pull request #4921 from composer404/master 2021-11-14 15:33:54 +01:00
Kozik Przemysław
f16f00cc7e update plugin list in KR version 2021-11-14 15:06:26 +01:00
Kozik Przemysław
b01b25b084 plugin list update 2021-11-14 14:59:49 +01:00
Eugene Pankov
39389f77d0 added support for long-clicking for context menu when right click is set to paste (#4858) 2021-11-14 10:59:08 +01:00
Eugene Pankov
a1dbcdbae3 handle failing dscl 2021-11-13 19:04:30 +01:00
Eugene Pankov
92f5b5a4ae plugin settings updates 2021-11-13 17:07:02 +01:00
dependabot[bot]
f379159a70 Bump electron-rebuild from 3.2.3 to 3.2.5
Bumps [electron-rebuild](https://github.com/electron/electron-rebuild) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/electron/electron-rebuild/releases)
- [Changelog](https://github.com/electron/electron-rebuild/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/electron-rebuild/compare/v3.2.3...v3.2.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-11 04:03:25 +00:00
dependabot[bot]
ec850344fc Bump shell-quote from 1.7.2 to 1.7.3
Bumps [shell-quote](https://github.com/substack/node-shell-quote) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/substack/node-shell-quote/releases)
- [Changelog](https://github.com/substack/node-shell-quote/blob/master/CHANGELOG.md)
- [Commits](https://github.com/substack/node-shell-quote/compare/v1.7.2...1.7.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 04:06:41 +00:00
dependabot[bot]
824f995209 Bump @types/webpack-env from 1.16.2 to 1.16.3
Bumps [@types/webpack-env](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webpack-env) from 1.16.2 to 1.16.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webpack-env)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 04:05:31 +00:00
Eugene Pankov
8a0a9700aa added missing exports 2021-11-07 11:40:52 +01:00
Eugeny
7cd51d5611 Merge pull request #4869 from Eugeny/dependabot/npm_and_yarn/sentry/cli-1.71.0
Bump @sentry/cli from 1.67.2 to 1.71.0
2021-11-07 10:08:14 +01:00
Eugeny
eda7b42edb Merge pull request #4822 from Eugeny/dependabot/npm_and_yarn/types/js-yaml-4.0.4
Bump @types/js-yaml from 4.0.2 to 4.0.4
2021-11-07 10:07:38 +01:00
Eugeny
981ab25a91 Merge pull request #4695 from Eugeny/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.33.0
Bump @typescript-eslint/eslint-plugin from 4.31.1 to 4.33.0
2021-11-07 10:07:23 +01:00
Eugeny
f0dded8eb5 Merge pull request #4624 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/ansi-regex-6.0.1
Bump ansi-regex from 6.0.0 to 6.0.1 in /tabby-ssh
2021-11-07 10:06:54 +01:00
Eugeny
1f0e7e44cc Merge pull request #4656 from Eugeny/dependabot/npm_and_yarn/app/yargs-17.2.1
Bump yargs from 17.1.0 to 17.2.1 in /app
2021-11-07 10:06:19 +01:00
Eugeny
95c31d99c0 Merge pull request #4750 from Eugeny/dependabot/npm_and_yarn/webpack-bundle-analyzer-4.5.0
Bump webpack-bundle-analyzer from 4.4.2 to 4.5.0
2021-11-07 10:05:47 +01:00
Eugeny
e3db0dfbab Merge pull request #4799 from Eugeny/dependabot/npm_and_yarn/tabby-plugin-manager/types/semver-7.3.9
Bump @types/semver from 7.3.7 to 7.3.9 in /tabby-plugin-manager
2021-11-07 10:00:58 +01:00
Eugeny
559ebf0852 Merge pull request #4804 from Eugeny/dependabot/npm_and_yarn/app/node-abi-3.3.0
Bump node-abi from 3.2.0 to 3.3.0 in /app
2021-11-07 10:00:45 +01:00
Eugeny
0e8abae46f Merge pull request #4820 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.7
Bump typedoc from 0.22.3 to 0.22.7
2021-11-07 10:00:36 +01:00
dependabot[bot]
bfe034d77f Bump @types/js-yaml from 4.0.2 to 4.0.4
Bumps [@types/js-yaml](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/js-yaml) from 4.0.2 to 4.0.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/js-yaml)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 22:03:06 +00:00
dependabot[bot]
50a1656f61 Bump webpack-bundle-analyzer from 4.4.2 to 4.5.0
Bumps [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer) from 4.4.2 to 4.5.0.
- [Release notes](https://github.com/webpack-contrib/webpack-bundle-analyzer/releases)
- [Changelog](https://github.com/webpack-contrib/webpack-bundle-analyzer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/webpack-bundle-analyzer/compare/v4.4.2...v4.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 22:01:57 +00:00
dependabot[bot]
f70780f618 Bump typedoc from 0.22.3 to 0.22.7
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.3 to 0.22.7.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.3...v0.22.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 21:59:02 +00:00
dependabot[bot]
712bd0cd04 Bump @types/semver from 7.3.7 to 7.3.9 in /tabby-plugin-manager
Bumps [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) from 7.3.7 to 7.3.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 21:58:42 +00:00
Eugene Pankov
123d544cd1 removed old dep 2021-11-06 22:57:45 +01:00
dependabot[bot]
414966732c Bump node-abi from 3.2.0 to 3.3.0 in /app
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/main/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v3.2.0...v3.3.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>
2021-11-06 21:53:41 +00:00
dependabot[bot]
58de0773f4 Bump yargs from 17.1.0 to 17.2.1 in /app
Bumps [yargs](https://github.com/yargs/yargs) from 17.1.0 to 17.2.1.
- [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.1.0...v17.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 21:53:20 +00:00
Eugene Pankov
22505195ec Merge branch 'master' of github.com:Eugeny/tabby 2021-11-06 22:51:57 +01:00
Eugeny
ea2c9b3d9f Merge pull request #4877 from Eugeny/dependabot/npm_and_yarn/css-loader-6.5.1 2021-11-06 22:51:48 +01:00
Eugeny
f39405640f Merge pull request #4524 from Eugeny/dependabot/npm_and_yarn/app/tar-4.4.19 2021-11-06 22:51:10 +01:00
Eugeny
436b366743 Merge pull request #4823 from Eugeny/dependabot/npm_and_yarn/utils-decorators-1.10.4 2021-11-06 22:50:10 +01:00
Eugeny
c3719f896d Merge pull request #4534 from Eugeny/dependabot/npm_and_yarn/npmlog-5.0.1 2021-11-06 22:49:43 +01:00
dependabot[bot]
654e5f4453 Bump tar from 4.4.13 to 4.4.19 in /app
Bumps [tar](https://github.com/npm/node-tar) from 4.4.13 to 4.4.19.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.13...v4.4.19)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 21:49:03 +00:00
Eugeny
fa54deb091 Merge pull request #4796 from Eugeny/dependabot/npm_and_yarn/webpack-cli-4.9.1 2021-11-06 22:49:01 +01:00
Eugeny
346dbdf7bb Merge pull request #4848 from Eugeny/dependabot/npm_and_yarn/sass-loader-12.3.0 2021-11-06 22:48:38 +01:00
Eugeny
f246eb7736 Merge pull request #4861 from Eugeny/dependabot/npm_and_yarn/app/serialport-9.2.5 2021-11-06 22:48:16 +01:00
Eugeny
f7454c8064 Merge pull request #4862 from Eugeny/dependabot/npm_and_yarn/webpack-5.61.0 2021-11-06 22:48:10 +01:00
Eugene Pankov
271f8d155c removed old dep 2021-11-06 22:46:55 +01:00
Eugene Pankov
6b93c2609e swallow ligature related font parsing errors - fixes #4840 2021-11-06 22:42:49 +01:00
Eugene Pankov
2c342a7d44 removed old ligature / webgl warning 2021-11-06 22:14:56 +01:00
dependabot[bot]
5b18f88b90 Bump css-loader from 6.2.0 to 6.5.1
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 6.2.0 to 6.5.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.2.0...v6.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 15:20:27 +00:00
dependabot[bot]
d0ae5e42f4 Bump @sentry/cli from 1.67.2 to 1.71.0
Bumps [@sentry/cli](https://github.com/getsentry/sentry-cli) from 1.67.2 to 1.71.0.
- [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.67.2...1.71.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 15:19:27 +00:00
Eugene Pankov
59d642434a fixed "infinite" transfer speed display 2021-11-06 16:15:09 +01:00
Eugene Pankov
f2d6931f1a icon updates 2021-11-06 15:56:43 +01:00
Eugene Pankov
2fb73b0951 updated FontAwesome 2021-11-06 13:55:47 +01:00
Eugene Pankov
f3312852a9 refreshed search panel design 2021-11-06 13:41:20 +01:00
Eugene Pankov
781a4a76c0 bumped xterm 2021-11-06 10:31:51 +01:00
Eugeny
475ff14f78 Update codeql-analysis.yml 2021-11-02 10:30:28 +01:00
dependabot[bot]
b6698138b6 Bump webpack from 5.57.1 to 5.61.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.57.1 to 5.61.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.57.1...v5.61.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 04:09:42 +00:00
dependabot[bot]
6251d7737c Bump serialport from 9.2.1 to 9.2.5 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 9.2.1 to 9.2.5.
- [Release notes](https://github.com/serialport/node-serialport/releases)
- [Changelog](https://github.com/serialport/node-serialport/blob/master/CHANGELOG.md)
- [Commits](https://github.com/serialport/node-serialport/compare/@serialport/bindings@9.2.1...v9.2.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 04:03:34 +00:00
Eugeny
06e700c6a2 Create codeql-analysis.yml 2021-10-31 22:54:43 +01:00
Eugene Pankov
ff65e2abb4 Update README.md 2021-10-31 22:52:47 +01:00
Eugene Pankov
a16c397843 bumped plugins 2021-10-31 18:21:04 +01:00
Eugene Pankov
da2ba0ec49 lint 2021-10-31 17:38:30 +01:00
Eugene Pankov
9d8e19622f avoid multiple parallel passphrase prompts - fixes #4811 2021-10-31 16:18:49 +01:00
Eugene Pankov
f820a2a631 fixed scrollbar positioning on resize - fixes #4854 2021-10-31 10:55:37 +01:00
Eugene Pankov
da089fc46a now DEFINITELY re-added AES-GCM 2021-10-29 09:13:51 +02:00
Eugene Pankov
937243a9d9 honor default ssh username for the quick connect box - fixes #4663 2021-10-28 09:55:54 +02:00
Eugene Pankov
a2de29e5ac lint 2021-10-28 09:55:20 +02:00
Eugene Pankov
25cdf6d6bf fixed transfers dropdown being clipped by the terminal - fixes #4688 2021-10-28 09:53:46 +02:00
Eugene Pankov
b5cf66c232 prevent Cmd-R from reloading in production - fixes #4772 2021-10-28 09:26:55 +02:00
Eugene Pankov
7be3904123 make titlebar double-click maximize window on macOS - fixes #4754 2021-10-28 09:26:32 +02:00
Eugene Pankov
3109ea0220 re-added AES-GCM ciphers - fixes #4849, fixes #4846, fixes #4844 2021-10-28 09:08:06 +02:00
dependabot[bot]
63297cb6a6 Bump sass-loader from 12.1.0 to 12.3.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 12.1.0 to 12.3.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v12.1.0...v12.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-28 04:05:58 +00:00
Eugene Pankov
ed480a2954 ssh: re-allow aes*-gcm ciphers by default 2021-10-27 13:04:03 +02:00
Eugene Pankov
3da6f6ffa6 bump 2021-10-27 13:03:48 +02:00
Eugene Pankov
881d5d599d re-added sha1 patch for web 2021-10-25 09:13:57 +02:00
dependabot[bot]
b0b4614610 Bump utils-decorators from 1.10.2 to 1.10.4
Bumps [utils-decorators](https://github.com/vlio20/utils-decorators) from 1.10.2 to 1.10.4.
- [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)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 04:06:48 +00:00
Eugene Pankov
f0e96b5f8b settings UI tweaks 2021-10-24 22:50:21 +02:00
Eugene Pankov
6fed2cb9c0 ssh: allow overriding X11 display - fixes #3975 2021-10-24 22:34:59 +02:00
Eugene Pankov
8e2ffa1654 fixed X11 port detection for UNIX sockets - fixes #4818, fixes #2003 2021-10-24 22:23:50 +02:00
Eugene Pankov
c25d4bd768 ui tweaks 2021-10-23 19:17:43 +02:00
Eugene Pankov
9f8f2966d9 fixed #4794 - env var expansion in profiles 2021-10-23 19:14:33 +02:00
Eugene Pankov
5c976948dd merge env vars case insensitively (fixes #4778) 2021-10-23 10:04:44 +02:00
Eugene Pankov
ff4b137088 word 2021-10-23 09:53:43 +02:00
Eugene Pankov
e3214e38d3 disable preventAccidentalTabClosure by default 2021-10-22 22:00:32 +02:00
dependabot[bot]
4b1553abc7 Bump webpack-cli from 4.8.0 to 4.9.1
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.8.0 to 4.9.1.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.8.0...webpack-cli@4.9.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-20 04:04:52 +00:00
Eugene Pankov
2fc457dd78 handle cancelled username modal 2021-10-19 22:39:10 +02:00
Eugeny
3621ea934c Merge pull request #4731 from Eugeny/dependabot/npm_and_yarn/ssh2-1.5.0 2021-10-19 19:46:14 +02:00
Eugeny
b275dac08a Merge pull request #4757 from Eugeny/dependabot/npm_and_yarn/app/windows-process-tree-0.3.2 2021-10-19 19:44:22 +02:00
Eugeny
47e1bfc810 Merge pull request #4779 from tainoNZ/master 2021-10-18 14:32:37 +02:00
Eugeny
37e9ba48b1 Merge pull request #4788 from Eugeny/all-contributors/add-tainoNZ 2021-10-18 13:54:41 +02:00
allcontributors[bot]
a54d537536 docs: update .all-contributorsrc [skip ci] 2021-10-18 11:54:25 +00:00
allcontributors[bot]
0c2b221c06 docs: update README.md [skip ci] 2021-10-18 11:54:24 +00:00
Eugene Pankov
e3375741af lint 2021-10-18 13:53:27 +02:00
Aaron Davison
d82a88bcc6 added additional options for vault remember password 2021-10-18 16:00:17 +13:00
Eugeny
f7cab00e4d Merge pull request #4776 from Eugeny/all-contributors/add-Me1onRind 2021-10-16 23:08:53 +02:00
Eugeny
7f733b8029 Merge pull request #4775 from Me1onRind/add_duplicate_tab_hotkey 2021-10-16 23:08:35 +02:00
allcontributors[bot]
d6291c8af4 docs: update .all-contributorsrc [skip ci] 2021-10-16 21:08:35 +00:00
allcontributors[bot]
563852c024 docs: update README.md [skip ci] 2021-10-16 21:08:34 +00:00
Me1onRind
1941d9b748 add duplicate tab hotkey 2021-10-16 22:49:03 +08:00
dependabot[bot]
3473be99bf Bump windows-process-tree from 0.3.0 to 0.3.2 in /app
Bumps [windows-process-tree](https://github.com/Microsoft/vscode-windows-process-tree) from 0.3.0 to 0.3.2.
- [Release notes](https://github.com/Microsoft/vscode-windows-process-tree/releases)
- [Commits](https://github.com/Microsoft/vscode-windows-process-tree/compare/v0.3.0...0.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-14 04:01:22 +00:00
dependabot[bot]
10cb6a81c7 Bump ssh2 from 1.4.0 to 1.5.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.4.0...v1.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 04:05:53 +00:00
dependabot[bot]
cb65906290 Bump @typescript-eslint/eslint-plugin from 4.31.1 to 4.33.0
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.31.1 to 4.33.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.33.0/packages/eslint-plugin)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-07 21:51:29 +00:00
dependabot[bot]
7a83d85884 Bump npmlog from 5.0.0 to 5.0.1
Bumps [npmlog](https://github.com/npm/npmlog) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/npm/npmlog/releases)
- [Changelog](https://github.com/npm/npmlog/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/npmlog/compare/v5.0.0...v5.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-07 21:51:14 +00:00
Eugeny
35f0d6908a Merge pull request #4666 from Eugeny/dependabot/npm_and_yarn/node-abi-3.2.0 2021-10-07 23:47:20 +02:00
Eugeny
2c2d100c27 Merge pull request #4698 from Eugeny/dependabot/npm_and_yarn/typescript-eslint/parser-4.33.0 2021-10-07 23:47:02 +02:00
Eugeny
ab623a7a91 Merge pull request #4708 from Eugeny/dependabot/npm_and_yarn/app/angular/cdk-12.2.9 2021-10-07 23:46:56 +02:00
Eugeny
e2e606602b Merge pull request #4704 from Eugeny/dependabot/npm_and_yarn/core-js-3.18.2 2021-10-07 23:46:36 +02:00
Eugeny
cd3149b601 Merge pull request #4664 from Eugeny/dependabot/npm_and_yarn/app/node-abi-3.2.0 2021-10-07 23:45:56 +02:00
Eugeny
50748db958 Merge pull request #4697 from Eugeny/dependabot/npm_and_yarn/slugify-1.6.1 2021-10-07 23:45:33 +02:00
Eugeny
8049dc7332 Merge pull request #4705 from Eugeny/dependabot/npm_and_yarn/webpack-5.57.1 2021-10-07 23:45:28 +02:00
Eugeny
f468796877 Merge pull request #4707 from Eugeny/dependabot/npm_and_yarn/app/rxjs-7.4.0 2021-10-07 23:45:07 +02:00
Eugene Pankov
c093780230 Merge branch 'master' of https://github.com/Eugeny/tabby 2021-10-07 21:58:36 +02:00
Eugene Pankov
c67e44cc9d admin tabs: more reliable resize detection 2021-10-07 21:57:33 +02:00
dependabot[bot]
db45d0c87a Bump @angular/cdk from 12.2.0 to 12.2.9 in /app
Bumps [@angular/cdk](https://github.com/angular/components) from 12.2.0 to 12.2.9.
- [Release notes](https://github.com/angular/components/releases)
- [Changelog](https://github.com/angular/components/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/components/compare/12.2.0...12.2.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-07 04:02:32 +00:00
dependabot[bot]
4107a01a01 Bump rxjs from 7.2.0 to 7.4.0 in /app
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.2.0 to 7.4.0.
- [Release notes](https://github.com/reactivex/rxjs/releases)
- [Changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactivex/rxjs/compare/7.2.0...7.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-07 04:02:12 +00:00
dependabot[bot]
5e378844a1 Bump webpack from 5.52.1 to 5.57.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.52.1 to 5.57.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.52.1...v5.57.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-06 04:05:57 +00:00
dependabot[bot]
623496ff52 Bump core-js from 3.15.2 to 3.18.2
Bumps [core-js](https://github.com/zloirock/core-js) from 3.15.2 to 3.18.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.15.2...v3.18.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-06 04:05:29 +00:00
dependabot[bot]
5082814023 Bump @typescript-eslint/parser from 4.28.5 to 4.33.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.5 to 4.33.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.33.0/packages/parser)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-05 04:05:02 +00:00
dependabot[bot]
9836b7aefb Bump slugify from 1.6.0 to 1.6.1
Bumps [slugify](https://github.com/simov/slugify) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/simov/slugify/releases)
- [Commits](https://github.com/simov/slugify/compare/v1.6.0...v1.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-05 04:04:43 +00:00
Eugene Pankov
cb9681ef41 Update build.yml 2021-10-04 15:46:25 +02:00
Eugene Pankov
7527b8ac2d bumped electron 2021-10-04 13:01:11 +02:00
Eugene Pankov
da081ba706 bumped ci ubuntu 2021-10-04 12:37:44 +02:00
Eugene Pankov
e6063da813 Merge branch 'master' of github.com:Eugeny/tabby 2021-10-04 12:34:34 +02:00
Eugene Pankov
e6b4cb94bd bumped electron-builder 2021-10-04 12:32:09 +02:00
Eugene Pankov
56b843c007 bumped electron 2021-10-04 07:13:59 +02:00
Eugene Pankov
a26b30f0bc Update selectorModal.component.ts 2021-10-04 07:13:50 +02:00
Eugene Pankov
4a1d8cdd0d fixed admin tabs on windows - fixes #4669, fixes #4601, fixed #4594 2021-10-01 18:56:28 +02:00
dependabot[bot]
7a0920b87c Bump node-abi from 3.1.0 to 3.2.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/master/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v3.1.0...v3.2.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>
2021-09-28 04:04:19 +00:00
dependabot[bot]
26199ebb76 Bump node-abi from 3.1.0 to 3.2.0 in /app
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/master/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v3.1.0...v3.2.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>
2021-09-28 04:01:38 +00:00
Eugene Pankov
e3e01558b2 less sync ipc 2021-09-25 18:11:35 +02:00
Eugene Pankov
1852486818 blacklisted terminus-scrollbar plugin 2021-09-25 17:37:45 +02:00
Eugene Pankov
d7ea394a15 update api docs links 2021-09-25 01:01:31 +02:00
Eugene Pankov
c4a1d8aa56 setup docs deployment 2021-09-25 00:36:21 +02:00
Eugeny
be39591c54 Merge pull request #4644 from Eugeny/dependabot/npm_and_yarn/node-abi-3.1.0 2021-09-25 00:10:56 +02:00
Eugeny
94320265b8 Merge pull request #4642 from Eugeny/dependabot/npm_and_yarn/app/node-abi-3.1.0 2021-09-25 00:10:50 +02:00
Eugene Pankov
b94a943694 ui tweaks 2021-09-25 00:07:33 +02:00
Eugene Pankov
1674ec1ebf pull utils-decorators dep up 2021-09-24 23:59:34 +02:00
Eugene Pankov
3923e46f22 fixed #4586 - fix disableDynamicTabTitle to work with switch-profile 2021-09-24 23:55:19 +02:00
Eugene Pankov
ed71b499b9 automatically trim trailing newline when pasting 2021-09-24 23:43:57 +02:00
Eugene Pankov
924fb90220 fixed #4537 - macos: focus app when showing a new window 2021-09-24 23:41:19 +02:00
Eugene Pankov
00191763cf fixed #4629 - missing activity highlight 2021-09-24 23:29:41 +02:00
Eugene Pankov
555a21d648 fixed #4630 - added theme setting for cursor accent color 2021-09-24 23:12:17 +02:00
Eugene Pankov
9d88db83ee fixed #3961 - broadcast more actions when "focus all panes" is active 2021-09-24 23:05:05 +02:00
dependabot[bot]
2bdecc899d Bump node-abi from 3.0.0 to 3.1.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/master/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v3.0.0...v3.1.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>
2021-09-24 04:04:06 +00:00
dependabot[bot]
ab8992f0aa Bump node-abi from 3.0.0 to 3.1.0 in /app
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/master/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v3.0.0...v3.1.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>
2021-09-24 04:02:03 +00:00
dependabot[bot]
31b203f81a Bump ansi-regex from 6.0.0 to 6.0.1 in /tabby-ssh
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v6.0.0...v6.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-20 21:34:28 +00:00
Eugeny
e474ad573a Merge pull request #4577 from Eugeny/dependabot/npm_and_yarn/app/source-map-support-0.5.20
Bump source-map-support from 0.5.19 to 0.5.20 in /app
2021-09-20 23:33:31 +02:00
Eugene Pankov
4c6227fccf fixed #4608 - make ssh username setting optional 2021-09-20 23:28:21 +02:00
Eugene Pankov
02b7b12ea5 added OSC52 support (remote copy) 2021-09-19 17:02:42 +02:00
Eugene Pankov
d319a54fee show recent profiles in the start page - fixes #4585 2021-09-19 13:35:26 +02:00
Eugene Pankov
397a93bd6f a bit more reliable hotkey handling 2021-09-17 22:09:35 +02:00
Eugene Pankov
8d3f4137a1 don't copy text if empty 2021-09-17 00:23:30 +02:00
Eugene Pankov
3a615a070b Merge branch 'master' of github.com:Eugeny/tabby 2021-09-17 00:23:15 +02:00
Eugene Pankov
95a04788e5 hotkey fixes 2021-09-17 00:23:12 +02:00
Eugene Pankov
60a1a1f21c telnet command sequence fixes 2021-09-17 00:23:04 +02:00
Eugeny
4ad5627823 Merge pull request #4532 from Eugeny/dependabot/npm_and_yarn/electron-notarize-1.1.1 2021-09-16 23:45:50 +02:00
Eugeny
5a83621c64 Merge pull request #4541 from Eugeny/dependabot/npm_and_yarn/app/serialport-9.2.1 2021-09-16 23:45:41 +02:00
Eugeny
ed6d2fc005 Merge pull request #4587 from Eugeny/dependabot/npm_and_yarn/webpack-5.52.1 2021-09-16 23:45:31 +02:00
Eugeny
63f05a7388 Merge pull request #4588 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.3 2021-09-16 23:45:16 +02:00
Eugeny
a687377d16 Merge pull request #4596 from Eugeny/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.31.1 2021-09-16 23:44:24 +02:00
Eugeny
9dc8f66153 Merge pull request #4606 from Eugeny/dependabot/npm_and_yarn/sentry/electron-2.5.4 2021-09-16 23:43:15 +02:00
dependabot[bot]
e155174bd7 Bump @sentry/electron from 2.5.2 to 2.5.4
Bumps [@sentry/electron](https://github.com/getsentry/sentry-electron) from 2.5.2 to 2.5.4.
- [Release notes](https://github.com/getsentry/sentry-electron/releases)
- [Changelog](https://github.com/getsentry/sentry-electron/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-electron/compare/2.5.2...2.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-16 04:03:15 +00:00
dependabot[bot]
6c06e24b48 Bump @typescript-eslint/eslint-plugin from 4.29.0 to 4.31.1
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.29.0 to 4.31.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.31.1/packages/eslint-plugin)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-14 04:04:27 +00:00
Eugene Pankov
a99fcbb71d shortcutName 2021-09-13 09:53:53 +02:00
dependabot[bot]
95b8b0b4dd Bump typedoc from 0.21.6 to 0.22.3
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.21.6 to 0.22.3.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.21.6...v0.22.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-13 04:07:24 +00:00
dependabot[bot]
c47fe51422 Bump webpack from 5.51.1 to 5.52.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.51.1 to 5.52.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.51.1...v5.52.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-13 04:05:04 +00:00
dependabot[bot]
25b3aa5850 Bump source-map-support from 0.5.19 to 0.5.20 in /app
Bumps [source-map-support](https://github.com/evanw/node-source-map-support) from 0.5.19 to 0.5.20.
- [Release notes](https://github.com/evanw/node-source-map-support/releases)
- [Commits](https://github.com/evanw/node-source-map-support/compare/v0.5.19...v0.5.20)

---
updated-dependencies:
- dependency-name: source-map-support
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-10 04:01:52 +00:00
Eugene Pankov
a87d8871ad bumped xterm, check bracketedPaste state via terminal modes 2021-09-09 23:07:18 +02:00
Eugene Pankov
d6fa3b02a9 ssh: reworked keyboard-interactive auth UI - fixes #4540 2021-09-09 22:43:39 +02:00
Eugene Pankov
8a514fff17 lint 2021-09-09 22:17:15 +02:00
Eugene Pankov
00b43e88dc fixed saving profiles - fixes #4567, fixes #4330 2021-09-09 22:02:32 +02:00
Eugeny
7048c2c10c Merge pull request #4574 from Eugeny/all-contributors/add-BoYeonJang 2021-09-09 12:00:51 +02:00
Eugene Pankov
3f64789c55 Update README.md 2021-09-09 12:00:39 +02:00
Eugene Pankov
38e7f7f1b6 Update README.md 2021-09-09 12:00:14 +02:00
Eugene Pankov
b337bc5cfd word 2021-09-09 11:56:56 +02:00
allcontributors[bot]
4ac5daed8c docs: update .all-contributorsrc [skip ci] 2021-09-09 09:56:42 +00:00
allcontributors[bot]
82b724174c docs: update README.md [skip ci] 2021-09-09 09:56:41 +00:00
Eugeny
e7ab2bcffd Merge pull request #4548 from BoYeonJang/Korean_translatio 2021-09-09 11:56:23 +02:00
장보연
3518c74508 Update README.md in Korean 2021-09-07 10:21:50 +09:00
Eugene Pankov
a9515d38d1 bumped plugins 2021-09-06 23:38:58 +02:00
Eugene Pankov
e32bce29e0 mention Clippy plugin 2021-09-06 23:38:55 +02:00
Eugeny
48ca696b0b Merge pull request #4512 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/ssh2-0.5.48 2021-09-06 14:57:39 +02:00
Eugeny
7bd9a887a6 Merge pull request #4543 from Eugeny/dependabot/npm_and_yarn/ssh2-1.4.0
Bump ssh2 from 1.3.0 to 1.4.0
2021-09-06 14:56:11 +02:00
dependabot[bot]
7bc66e9382 Bump ssh2 from 1.3.0 to 1.4.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.3.0...v1.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 04:06:52 +00:00
dependabot[bot]
ff3feb61bc Bump serialport from 9.2.0 to 9.2.1 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 9.2.0 to 9.2.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/@serialport/bindings@9.2.0...@serialport/bindings@9.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 04:01:41 +00:00
dependabot[bot]
2cb98d65da Bump electron-notarize from 1.0.1 to 1.1.1
Bumps [electron-notarize](https://github.com/electron/electron-notarize) from 1.0.1 to 1.1.1.
- [Release notes](https://github.com/electron/electron-notarize/releases)
- [Changelog](https://github.com/electron/electron-notarize/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/electron-notarize/compare/v1.0.1...v1.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-03 04:04:24 +00:00
Eugene Pankov
b7ac65fce0 added msys2 built-in profiles - fixes #2962 2021-09-02 23:52:31 +02:00
Eugene Pankov
601fff454d auto-search powershell $PATH 2021-09-02 23:24:29 +02:00
Eugene Pankov
730084425e fixed config sync host URL 2021-09-02 23:07:16 +02:00
Eugene Pankov
646094f210 Update README.md 2021-09-02 23:07:09 +02:00
Eugene Pankov
d5c9e1e9f6 keep a backup of the config file 2021-09-02 22:40:01 +02:00
Eugene Pankov
8d0bcb94b1 better separate profiles by group - fixes #4517 2021-09-02 22:30:21 +02:00
Eugene Pankov
f681f0e50a added scrolling to transfers menu 2021-09-02 19:42:17 +02:00
Eugeny
2185f59111 Merge pull request #4530 from Eugeny/dependabot/npm_and_yarn/electron-rebuild-3.2.3 2021-09-02 12:50:09 +02:00
Eugeny
c5ba0b1e42 Merge pull request #4525 from Eugeny/dependabot/npm_and_yarn/app/node-abi-3.0.0
Bump node-abi from 2.30.0 to 3.0.0 in /app
2021-09-02 12:45:55 +02:00
Eugeny
b522284834 Merge pull request #4527 from Eugeny/dependabot/npm_and_yarn/macos-release-3.0.1
Bump macos-release from 3.0.0 to 3.0.1
2021-09-02 12:45:49 +02:00
Eugeny
3e2adfb0b8 Merge pull request #4528 from Eugeny/dependabot/npm_and_yarn/node-abi-3.0.0 2021-09-02 12:45:40 +02:00
dependabot[bot]
1a6f6759b9 Bump electron-rebuild from 3.2.0 to 3.2.3
Bumps [electron-rebuild](https://github.com/electron/electron-rebuild) from 3.2.0 to 3.2.3.
- [Release notes](https://github.com/electron/electron-rebuild/releases)
- [Changelog](https://github.com/electron/electron-rebuild/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/electron-rebuild/compare/v3.2.0...v3.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-02 04:09:16 +00:00
dependabot[bot]
43a67bcd9d Bump node-abi from 2.30.0 to 3.0.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 2.30.0 to 3.0.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/master/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v2.30.0...v3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-02 04:05:53 +00:00
dependabot[bot]
5f7621cd8c Bump macos-release from 3.0.0 to 3.0.1
Bumps [macos-release](https://github.com/sindresorhus/macos-release) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/sindresorhus/macos-release/releases)
- [Commits](https://github.com/sindresorhus/macos-release/compare/v3.0.0...v3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-02 04:04:33 +00:00
dependabot[bot]
5e30a0b250 Bump node-abi from 2.30.0 to 3.0.0 in /app
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 2.30.0 to 3.0.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/master/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v2.30.0...v3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-02 04:01:27 +00:00
Eugene Pankov
8f02072762 Update README.md 2021-09-01 11:03:07 +02:00
dependabot[bot]
79fdba44c6 Bump @types/ssh2 from 0.5.47 to 0.5.48 in /tabby-ssh
Bumps [@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2) from 0.5.47 to 0.5.48.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ssh2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-31 04:20:16 +00:00
Eugene Pankov
efe0bad650 publish to repo on tags only 2021-08-29 18:39:01 +02:00
Eugene Pankov
a244362935 Update README.md 2021-08-29 18:36:47 +02:00
Eugene Pankov
924f5f13b1 Update build.yml 2021-08-29 17:11:51 +02:00
Eugeny
8f8dbd2023 Update build.yml 2021-08-29 16:47:23 +02:00
Eugeny
952d31a7d5 Update build.yml 2021-08-29 16:46:26 +02:00
Eugeny
f6e90a3121 Update build.yml 2021-08-29 16:21:48 +02:00
Eugeny
2818af7402 Update build.yml 2021-08-28 22:51:16 +02:00
Eugene Pankov
9a36bdb9d1 added packagecloud uploads 2021-08-28 20:27:56 +02:00
Eugene Pankov
033468b0b0 prevent string_decoder from mangling non-utf output - fixes #4025, fixes #4178, fixes #4373, fixes #4282 2021-08-28 20:15:20 +02:00
Eugene Pankov
e6d83c6c58 fixed terminal padding with toolbar pinned 2021-08-28 17:07:32 +02:00
Eugene Pankov
49d58c69bc sftp: handle incorrect reported CWD 2021-08-28 17:07:23 +02:00
Eugene Pankov
67ff355ca3 Merge branch 'master' of github.com:Eugeny/tabby 2021-08-28 16:42:14 +02:00
Eugene Pankov
5b0a7b39b7 emergency brake for spinner output 2021-08-28 16:42:11 +02:00
Eugene Pankov
4ff5dea346 fixed #768 again 2021-08-28 14:26:46 +02:00
Eugene Pankov
4f244a126c Merge branch 'master' of github.com:Eugeny/tabby 2021-08-27 20:46:52 +02:00
Eugeny
1926dffb7b Merge pull request #4487 from Eugeny/dependabot/npm_and_yarn/sentry/electron-2.5.2
Bump @sentry/electron from 2.5.1 to 2.5.2
2021-08-27 20:46:47 +02:00
Eugene Pankov
8642725b9f possibly fixed proxy command issues 2021-08-27 20:41:48 +02:00
Eugene Pankov
7252f80573 fixed #4483 - repeat keydown events affecting hotkeys 2021-08-27 20:02:32 +02:00
Eugene Pankov
2d331332a4 ui tweaks 2021-08-27 19:56:09 +02:00
Eugene Pankov
f36e2551b5 moved recentProfiles from config to localStorage 2021-08-27 19:54:20 +02:00
Eugene Pankov
bcf09c59e3 fixed app not quitting completely on cmd-q 2021-08-27 18:26:57 +02:00
Eugene Pankov
b84c41d668 Merge branch 'master' of github.com:Eugeny/tabby 2021-08-27 18:12:19 +02:00
dependabot[bot]
2fbbb18bd9 Bump @sentry/electron from 2.5.1 to 2.5.2
Bumps [@sentry/electron](https://github.com/getsentry/sentry-electron) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/getsentry/sentry-electron/releases)
- [Changelog](https://github.com/getsentry/sentry-electron/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-electron/compare/2.5.1...2.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-26 04:05:38 +00:00
Eugeny
d48c2ddb36 Merge pull request #4479 from Eugeny/dependabot/npm_and_yarn/tabby-settings/marked-3.0.2
Bump marked from 2.1.3 to 3.0.2 in /tabby-settings
2021-08-25 22:07:14 +02:00
Eugeny
2b55e72be2 Merge pull request #4429 from Eugeny/dependabot/npm_and_yarn/app/path-parse-1.0.7
Bump path-parse from 1.0.6 to 1.0.7 in /app
2021-08-25 22:06:21 +02:00
Eugeny
b21fcf8f2b Merge pull request #4392 from Eugeny/dependabot/npm_and_yarn/path-parse-1.0.7 2021-08-25 22:06:06 +02:00
Eugeny
02a99e8118 Merge pull request #4447 from Eugeny/dependabot/npm_and_yarn/typedoc-0.21.6
Bump typedoc from 0.21.5 to 0.21.6
2021-08-25 22:05:59 +02:00
Eugene Pankov
fa66c96d60 #768 - fixed altgraph modifier handling 2021-08-25 22:02:57 +02:00
dependabot[bot]
888c8217ca Bump marked from 2.1.3 to 3.0.2 in /tabby-settings
Bumps [marked](https://github.com/markedjs/marked) from 2.1.3 to 3.0.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v2.1.3...v3.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-25 04:24:35 +00:00
Eugene Pankov
de3aab4996 web related fixes 2021-08-25 01:25:40 +02:00
Eugene Pankov
8d587d27e5 reintroduced electron-updater 2021-08-24 19:13:49 +02:00
Eugeny
fa7bb79122 Merge pull request #4470 from Eugeny/dependabot/npm_and_yarn/electron-13.2.2 2021-08-24 18:56:44 +02:00
dependabot[bot]
f3255a7f31 Bump electron from 13.2.1 to 13.2.2
Bumps [electron](https://github.com/electron/electron) from 13.2.1 to 13.2.2.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v13.2.1...v13.2.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-24 04:04:35 +00:00
Eugeny
69680cbb8d Merge pull request #4465 from Eugeny/dependabot/npm_and_yarn/electron-rebuild-3.2.0
Bump electron-rebuild from 3.1.1 to 3.2.0
2021-08-23 09:08:12 +02:00
Eugene Pankov
69c693a0a3 lint 2021-08-23 08:59:36 +02:00
dependabot[bot]
69cdd5fb4a Bump electron-rebuild from 3.1.1 to 3.2.0
Bumps [electron-rebuild](https://github.com/electron/electron-rebuild) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/electron/electron-rebuild/releases)
- [Changelog](https://github.com/electron/electron-rebuild/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/electron-rebuild/compare/v3.1.1...v3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 04:03:29 +00:00
Eugene Pankov
59101cfcb3 added generic hotkeys for profile selectors by type 2021-08-22 20:59:50 +02:00
Eugene Pankov
7120e32c91 fixed terminal toolbar padding - fixes #4384 2021-08-22 20:50:38 +02:00
Eugene Pankov
0a0d94ec91 sftp: fixed upload renaming - fixes #4383, fixes #4455 2021-08-22 20:23:51 +02:00
Eugene Pankov
43e3277c0d removed libappindicator from the dependencies list - fixes #4425 2021-08-22 20:17:01 +02:00
Eugene Pankov
da28596968 handle shift-insert through hotkeys system - fixes #3565, fixes #4451 2021-08-22 20:12:23 +02:00
Eugene Pankov
c1c7654380 xterm: potentially fix dead key handling issues - fixes #768 2021-08-22 17:42:38 +02:00
Eugene Pankov
20116d7af6 global profile settings - fixes #4098 2021-08-22 00:10:56 +02:00
dependabot[bot]
8c32fe010c Bump typedoc from 0.21.5 to 0.21.6
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.21.5 to 0.21.6.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.21.5...v0.21.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-21 21:50:22 +00:00
Eugene Pankov
0a3debb691 drop eslint-plugin-import 2021-08-21 23:45:41 +02:00
Eugeny
a3e5d04aac Merge pull request #4441 from Eugeny/dependabot/npm_and_yarn/tslib-2.3.1
Bump tslib from 2.3.0 to 2.3.1
2021-08-21 23:44:08 +02:00
Eugeny
153c98c03a Merge pull request #4419 from Eugeny/dependabot/npm_and_yarn/webpack-cli-4.8.0 2021-08-21 23:43:19 +02:00
Eugeny
90fa980b70 Merge pull request #4439 from Eugeny/dependabot/npm_and_yarn/ssh2-1.3.0 2021-08-21 23:43:08 +02:00
Eugeny
42bfde0e7f Merge pull request #4438 from Eugeny/dependabot/npm_and_yarn/electron-13.2.1
Bump electron from 13.1.9 to 13.2.1
2021-08-21 23:41:34 +02:00
Eugeny
14122bcfa2 Merge pull request #4453 from Eugeny/dependabot/npm_and_yarn/webpack-5.51.1 2021-08-21 23:41:18 +02:00
dependabot[bot]
84879af11a Bump webpack from 5.50.0 to 5.51.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.50.0 to 5.51.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.50.0...v5.51.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-20 04:03:49 +00:00
dependabot[bot]
1c371347e9 Bump tslib from 2.3.0 to 2.3.1
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/2.3.0...2.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-19 21:33:46 +00:00
dependabot[bot]
0c08a4d10c Bump electron from 13.1.9 to 13.2.1
Bumps [electron](https://github.com/electron/electron) from 13.1.9 to 13.2.1.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v13.1.9...v13.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-19 21:33:23 +00:00
dependabot[bot]
3a66aaf9d7 Bump ssh2 from 1.2.0 to 1.3.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.2.0...v1.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-19 21:32:13 +00:00
Eugene Pankov
1992d99556 faster startup on macOS 2021-08-19 23:29:44 +02:00
Eugene Pankov
60046da4b3 perf: tweak pty flow control 2021-08-19 23:14:38 +02:00
Eugene Pankov
e33e954e41 Update package.json 2021-08-19 23:14:31 +02:00
Eugene Pankov
f5e5091b10 perf: debounce activity updates 2021-08-19 23:14:26 +02:00
Eugene Pankov
38691b80f2 moved deep-equal dependency out 2021-08-19 23:14:12 +02:00
Eugene Pankov
8d5eef6fa7 fixed up tab progress and title updates 2021-08-19 15:43:02 +02:00
Eugene Pankov
e0f935519a prevent reporting the same progress value twice 2021-08-19 12:16:40 +02:00
dependabot[bot]
1b9081ce80 Bump webpack-cli from 4.7.0 to 4.8.0
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.7.0 to 4.8.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.7.0...webpack-cli@4.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-18 22:02:01 +00:00
dependabot[bot]
e1098d9502 Bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-18 21:58:48 +00:00
dependabot[bot]
14a4acdd92 Bump path-parse from 1.0.6 to 1.0.7 in /app
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-17 06:59:49 +00:00
319 changed files with 21454 additions and 5010 deletions

View File

@@ -1,6 +1,9 @@
{
"files": [
"README.md"
"README.md",
"README.zh-CN.md",
"README.ru-RU.md",
"README.ko-KR.md"
],
"imageSize": 100,
"commit": false,
@@ -442,6 +445,160 @@
"contributions": [
"code"
]
},
{
"login": "BoYeonJang",
"name": "장보연",
"avatar_url": "https://avatars.githubusercontent.com/u/59506394?v=4",
"profile": "https://www.notion.so/3d45c6bd2cbd4f938873a4bd12e23375",
"contributions": [
"doc"
]
},
{
"login": "Me1onRind",
"name": "zZ",
"avatar_url": "https://avatars.githubusercontent.com/u/19531270?v=4",
"profile": "https://github.com/Me1onRind",
"contributions": [
"code"
]
},
{
"login": "tainoNZ",
"name": "Aaron Davison",
"avatar_url": "https://avatars.githubusercontent.com/u/49261322?v=4",
"profile": "https://github.com/tainoNZ",
"contributions": [
"code"
]
},
{
"login": "composer404",
"name": "Przemyslaw Kozik",
"avatar_url": "https://avatars.githubusercontent.com/u/58251560?v=4",
"profile": "https://github.com/composer404",
"contributions": [
"design"
]
},
{
"login": "highfredo",
"name": "Alfredo Arellano de la Fuente",
"avatar_url": "https://avatars.githubusercontent.com/u/5951524?v=4",
"profile": "https://github.com/highfredo",
"contributions": [
"code"
]
},
{
"login": "NessunKim",
"name": "MH Kim",
"avatar_url": "https://avatars.githubusercontent.com/u/12974079?v=4",
"profile": "https://github.com/NessunKim",
"contributions": [
"code"
]
},
{
"login": "jaimeadf",
"name": "Marmota",
"avatar_url": "https://avatars.githubusercontent.com/u/40345645?v=4",
"profile": "https://discord.gg/4c5EVTBhtp",
"contributions": [
"design"
]
},
{
"login": "TENX-S",
"name": "Ares Andrew",
"avatar_url": "https://avatars.githubusercontent.com/u/40336192?v=4",
"profile": "https://ares.zone",
"contributions": [
"doc"
]
},
{
"login": "gkor",
"name": "George Korsnick",
"avatar_url": "https://avatars.githubusercontent.com/u/780052?v=4",
"profile": "https://usual.io/",
"contributions": [
"financial"
]
},
{
"login": "uluhonolulu",
"name": "Artem Smirnov",
"avatar_url": "https://avatars.githubusercontent.com/u/872764?v=4",
"profile": "https://about.me/ulu",
"contributions": [
"financial"
]
},
{
"login": "nevotheless",
"name": "Tim Kopplow",
"avatar_url": "https://avatars.githubusercontent.com/u/779797?v=4",
"profile": "https://github.com/nevotheless",
"contributions": [
"financial"
]
},
{
"login": "mrthock",
"name": "mrthock",
"avatar_url": "https://avatars.githubusercontent.com/u/88901709?v=4",
"profile": "https://github.com/mrthock",
"contributions": [
"financial"
]
},
{
"login": "lrottach",
"name": "Lukas Rottach",
"avatar_url": "https://avatars.githubusercontent.com/u/50323692?v=4",
"profile": "https://github.com/lrottach",
"contributions": [
"financial"
]
},
{
"login": "boonkerz",
"name": "boonkerz",
"avatar_url": "https://avatars.githubusercontent.com/u/277321?v=4",
"profile": "https://github.com/boonkerz",
"contributions": [
"code",
"translation"
]
},
{
"login": "milotype",
"name": "Milo Ivir",
"avatar_url": "https://avatars.githubusercontent.com/u/43657314?v=4",
"profile": "https://github.com/milotype",
"contributions": [
"translation"
]
},
{
"login": "JasonCubic",
"name": "JasonCubic",
"avatar_url": "https://avatars.githubusercontent.com/u/8921015?v=4",
"profile": "https://github.com/JasonCubic",
"contributions": [
"design"
]
},
{
"login": "MaxWaldorf",
"name": "MaxWaldorf",
"avatar_url": "https://avatars.githubusercontent.com/u/15877853?v=4",
"profile": "https://github.com/MaxWaldorf",
"contributions": [
"infra"
]
}
],
"contributorsPerLine": 7,

View File

@@ -0,0 +1,27 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
<!--
# RULES:
* **ENGLISH ONLY** - this issue tracker is English-only. Please respect the people who take time to help you with your problems.
* Search existing issues first: https://github.com/Eugeny/tabby/issues
-->
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

23
.github/ISSUE_TEMPLATE/issue-report.md vendored Normal file
View File

@@ -0,0 +1,23 @@
---
name: Issue report
about: Report a problem
title: ''
labels: 'T: Bug'
assignees: ''
---
<!--
# READ CAREFULLY:
* **ENGLISH ONLY** - this issue tracker is English-only. Please respect the people who take time to help you with your problems.
* Search existing issues first: https://github.com/Eugeny/tabby/issues
* Test with the latest Tabby version: https://github.com/Eugeny/tabby/releases
* Disable third-party plugins.
-->
**Describe the problem**:
[A clear and concise description of what the bug is.]
**To Reproduce**:
[Steps to reproduce the behavior]

View File

@@ -11,9 +11,9 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.4.0
uses: actions/setup-node@v2.5.1
with:
node-version: 14
node-version: 16
- name: Install deps
run: |
@@ -46,9 +46,9 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.4.0
uses: actions/setup-node@v2.5.1
with:
node-version: 14
node-version: 16
- name: Install deps
run: |
@@ -129,7 +129,7 @@ jobs:
path: artifact-zip
Linux-Build:
runs-on: ubuntu-18.04
runs-on: ubuntu-18.04 # build against an older glibc for compatibility
needs: Lint
steps:
@@ -139,21 +139,20 @@ jobs:
fetch-depth: 0
- name: Install Node
uses: actions/setup-node@v2.4.0
uses: actions/setup-node@v2.5.1
with:
node-version: 14
node-version: 16
- name: Install deps
run: |
sudo apt-get update
sudo apt-get install bsdtar zsh
sudo apt-get install libarchive-tools zsh
npm i -g yarn@1.19.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
npm run patch
- name: Build native deps
run: scripts/build-native.js
@@ -183,6 +182,15 @@ jobs:
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Upload packages to packagecloud.io
uses: Eugeny/packagecloud-action@main
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
env:
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
with:
repo: 'eugeny/tabby'
dir: 'dist'
- name: Package artifacts
run: |
mkdir artifact-deb
@@ -235,7 +243,7 @@ jobs:
path: artifact-web
Windows-Build:
runs-on: windows-2016
runs-on: windows-2022
needs: Lint
steps:
@@ -245,9 +253,14 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.4.0
uses: actions/setup-node@v2.5.1
with:
node-version: 14
node-version: 16
- name: Update node-gyp
run: |
npm install --global node-gyp@8.4.1
npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"}
- name: Build
shell: powershell
@@ -265,7 +278,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
# DEBUG: electron-builder,electron-builder:*
DEBUG: electron-builder,electron-builder:*
- name: Build packages without signing
run: node scripts/build-windows.js

70
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,70 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '26 7 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View File

@@ -2,7 +2,7 @@ name: Docs
on: push
jobs:
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
if: ${{ github.actor != 'dependabot[bot]' }}
steps:
@@ -12,14 +12,12 @@ jobs:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.4.0
uses: actions/setup-node@v2.5.1
with:
node-version: 14
- name: Build
run: |
eval $(ssh-agent -s)
ssh-add <(echo "$DOCS_PRIVATE_KEY")
yarn cache clean
cd app
yarn
@@ -28,7 +26,13 @@ jobs:
yarn
yarn run build:typings
yarn run docs
rsync -e "ssh -o StrictHostKeyChecking=no" -arv docs/api/ root@ajenti.org:/srv/terminus-docs/
env:
DOCS_PRIVATE_KEY: ${{ secrets.DOCS_PRIVATE_KEY }}
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_TABBY_DOCS }}'
channelId: live
projectId: tabby-docs

15
.github/workflows/issue-translator.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: 'issue-translator'
on:
issue_comment:
types: [created]
issues:
types: [opened]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: tomsun28/issues-translate-action@v2.6
with:
IS_MODIFY_TITLE: true
CUSTOM_BOT_NOTE: The translator bot has detected that this issue body's language is not English, and has translated it automatically.

2
.gitignore vendored
View File

@@ -34,3 +34,5 @@ sentry-symbols.js
tabby-ssh/util/pagent.exe
*.psd
crowdin.yml

View File

@@ -145,4 +145,6 @@ export default class MyModule { }
See `tabby-core/src/api.ts`, `tabby-settings/src/api.ts`, `tabby-local/src/api.ts` and `tabby-terminal/src/api.ts` for the available extension points.
Also check out [the example plugin](https://github.com/Eugeny/tabby-clippy).
Publish your plugin on NPM with a `tabby-plugin` keyword to make it appear in the Plugin Manager.

240
README.ko-KR.md Normal file
View File

@@ -0,0 +1,240 @@
[![](docs/readme.png)](https://tabby.sh)
<p align="center">
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge"></a> &nbsp; <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> &nbsp; <a href="https://matrix.to/#/#tabby-general:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/tabby-general:matrix.org?logo=matrix&style=for-the-badge&color=magenta"></a>
</p>
<p align="center">
<a href="https://ko-fi.com/J3J8KWTF">
<img src="https://cdn.ko-fi.com/cdn/kofi3.png?v=2" width="150">
</a>
</p>
----
### 다운로드:
* [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)
----
**Tabby** (구 **Terminus**)는 Windows, macOS 및 Linux용으로 뛰어난 구성의 터미널 에뮬레이터, SSH 및 시리얼 클라이언트입니다.
* 통합 SSH 클라이언트 및 연결 관리자
* 통합 시리얼 터미널
* 테마 및 색 구성표
* 전체 구성이 가능한 단축키 및 다중 코드 단축키
* 창 분할
* 이전 탭 사용을 기억
* PowerShell (및 PS Core), WSL, Git-Bash, Cygwin, Cmder 및 CMD 지원
* Zmodem을 통한 SSH 세션 간의 직접 파일 전송
* 2바이트 문자를 포함한 전체 유니코드 지원
* 빠르게 출력되는 것에 대해 휩쓸리지 않음
* 탭 완성을 포함한 Windows에서의 적절한 셸 환경 (Clink을 통해)
* SSH 시크릿 및 구성을 위한 통합 암호화 컨테이너
# 목차 <!-- omit in toc -->
- [Tabby는 무엇인가](#tabby는-무엇인가)
- [터미널 기능](#터미널-기능)
- [SSH 클라이언트](#ssh-클라이언트)
- [시리얼 터미널](#시리얼-터미널)
- [포터블](#포터블)
- [플러그인](#플러그인)
- [테마](#테마)
- [기여](#기여)
<a name="about"></a>
# Tabby는 무엇인가
* **Tabby는** Windows의 표준 터미널 (conhost), PowerShell ISE, PuTTY 또는 iTerm의 대안 프로그램입니다.
* **Tabby는** 새로운 셸이나 MinGW 또는 Cygwin을 대체하지 **않습니다**. 가볍지도 않습니다. - RAM 사용량이 중요한 경우, [Conemu](https://conemu.github.io) 또는 [Alacritty](https://github.com/jwilm/alacritty)를 고려하십시오.
<a name="terminal"></a>
# 터미널 기능
![](docs/readme-terminal.png)
* A V220 터미널 + 다양한 확장
* 여러 개의 분할 창 중첩
* 모든 측면에 탭이 위치함
* 전역 스폰 단축키가 있는 도킹 가능한 윈도우 ("Quake console")
* 진행률 탐지
* 프로세스 완료 시 알림
* 괄호 붙여넣기, 여러 줄 붙여넣기 경고
* 폰트 합자(ligatures)
* 커스텀 셸 프로필
* RMB 붙여넣기 및 복사 선택 옵션 (PuTTY 스타일)
<a name="ssh"></a>
# SSH 클라이언트
![](docs/readme-ssh.png)
* 연결 관리자가 있는 SSH2 클라이언트
* X11 및 포트 포워딩
* 자동 jump 호스트 관리
* 에이전트 전달 (Pageant 및 Windows 기본 OpenSSH 에이전트 포함)
* 로그인 스크립트
<a name="serial"></a>
# 시리얼 터미널
* 연결 저장
* Readline 입력 지원
* 선택적 hex byte별 입력 및 hexdump 출력
* 개행 변환
* 자동 재접속
<a name="portable"></a>
# 포터블
`Tabby.exe`가 있는 동일한 위치에 `data` 폴더를 생성하면 Windows에서 Tabby가 포터블 앱으로 실행됩니다.
<a name="plugins"></a>
# 플러그인
플러그인과 테마는 Tabby 내부의 설정에서 직접 설치할 수 있습니다.
* [clickable-links](https://github.com/Eugeny/tabby-clickable-links) - m터미널의 경로 및 URL을 클릭 가능하게
* [docker](https://github.com/Eugeny/tabby-docker) - Docker 컨테이너에 연결
* [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) - 항상 당신을 귀찮게 하는 예제 플러그인
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) - 주어진 구성을 기반으로 사용자 정의 작업 공간 프로필을 생성할 수 있습니다
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) - Tabby의 탭에서 선택한 텍스트로 기본 시스템 브라우저를 엽니다
<a name="themes"></a>
# 테마
* [hype](https://github.com/Eugeny/tabby-theme-hype) - Hyper에서 영감을 받은 테마
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - Tabby를 위해 여유로움을 제공하는 테마
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox)
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10)
* [altair](https://github.com/yxuko/terminus-altair)
# 스폰서 <!-- omit in toc -->
[![](https://assets-production.packagecloud.io/assets/packagecloud-logo-light-scaled-26ce8e96060fddf74afbd4445e63ba35590d4aaa56edc98495bb390ef3cae0ae.png)](https://packagecloud.io)
[**packagecloud**](https://packagecloud.io)가 무료 Debian/RPM 저장소 호스팅을 제공하였습니다.
<a name="contributing"></a>
# 기여
Pull requests and plugins are welcome!
프로젝트 배치 방법에 대한 자세한 내용과 매우 간단한 플러그인 개발 튜토리얼은 [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)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="http://www.russellmyers.com"><img src="https://avatars2.githubusercontent.com/u/184085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Russell Myers</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mezner" title="Code">💻</a></td>
<td align="center"><a href="http://www.morwire.com"><img src="https://avatars1.githubusercontent.com/u/3991658?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Austin Warren</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ehwarren" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Drachenkaetzchen"><img src="https://avatars1.githubusercontent.com/u/162974?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Felicia Hummel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Drachenkaetzchen" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mikemaccana"><img src="https://avatars2.githubusercontent.com/u/172594?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mike MacCana</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mikemaccana" title="Tests">⚠️</a> <a href="#design-mikemaccana" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/yxuko"><img src="https://avatars1.githubusercontent.com/u/1786317?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yacine Kanzari</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yxuko" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/BBJip"><img src="https://avatars2.githubusercontent.com/u/32908927?v=4?s=100" width="100px;" alt=""/><br /><sub><b>BBJip</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BBJip" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Futagirl"><img src="https://avatars2.githubusercontent.com/u/33533958?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Futagirl</b></sub></a><br /><a href="#design-Futagirl" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.levrik.io"><img src="https://avatars3.githubusercontent.com/u/9491603?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Levin Rickert</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=levrik" title="Code">💻</a></td>
<td align="center"><a href="https://kwonoj.github.io"><img src="https://avatars2.githubusercontent.com/u/1210596?v=4?s=100" width="100px;" alt=""/><br /><sub><b>OJ Kwon</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=kwonoj" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Domain"><img src="https://avatars2.githubusercontent.com/u/903197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>domain</b></sub></a><br /><a href="#plugin-Domain" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Domain" title="Code">💻</a></td>
<td align="center"><a href="http://www.jbrumond.me"><img src="https://avatars1.githubusercontent.com/u/195127?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Brumond</b></sub></a><br /><a href="#plugin-kbjr" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="http://www.growingwiththeweb.com"><img src="https://avatars0.githubusercontent.com/u/2193314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Imms</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Code">💻</a> <a href="#plugin-Tyriar" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/baflo"><img src="https://avatars2.githubusercontent.com/u/834350?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Florian Bachmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=baflo" title="Code">💻</a></td>
<td align="center"><a href="http://michael-kuehnel.de"><img src="https://avatars2.githubusercontent.com/u/441011?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Kühnel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mischah" title="Code">💻</a> <a href="#design-mischah" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/NieLeben"><img src="https://avatars3.githubusercontent.com/u/47182955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tilmann Meyer</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NieLeben" title="Code">💻</a></td>
<td align="center"><a href="http://www.jubeat.net"><img src="https://avatars3.githubusercontent.com/u/11289158?v=4?s=100" width="100px;" alt=""/><br /><sub><b>PM Extra</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/issues?q=author%3APMExtra" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://jjuhas.keybase.pub//"><img src="https://avatars1.githubusercontent.com/u/6438760?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=IgnusG" title="Code">💻</a></td>
<td align="center"><a href="https://hans-koch.me"><img src="https://avatars0.githubusercontent.com/u/1093709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hans Koch</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hammster" title="Code">💻</a></td>
<td align="center"><a href="http://thepuzzlemaker.info"><img src="https://avatars3.githubusercontent.com/u/12666617?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dak Smyth</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ThePuzzlemaker" title="Code">💻</a></td>
<td align="center"><a href="http://yfwz100.github.io"><img src="https://avatars2.githubusercontent.com/u/983211?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Wang Zhi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yfwz100" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jack1142"><img src="https://avatars0.githubusercontent.com/u/6032823?v=4?s=100" width="100px;" alt=""/><br /><sub><b>jack1142</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=jack1142" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/hdougie"><img src="https://avatars1.githubusercontent.com/u/450799?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Howie Douglas</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hdougie" title="Code">💻</a></td>
<td align="center"><a href="https://chriskaczor.com"><img src="https://avatars2.githubusercontent.com/u/180906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Kaczor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ckaczor" title="Code">💻</a></td>
<td align="center"><a href="https://www.boxmein.net"><img src="https://avatars1.githubusercontent.com/u/358714?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Johannes Kadak</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boxmein" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/LeSeulArtichaut"><img src="https://avatars1.githubusercontent.com/u/38361244?v=4?s=100" width="100px;" alt=""/><br /><sub><b>LeSeulArtichaut</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LeSeulArtichaut" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/CyrilTaylor"><img src="https://avatars0.githubusercontent.com/u/12631466?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cyril Taylor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=CyrilTaylor" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/nstefanou"><img src="https://avatars3.githubusercontent.com/u/51129173?v=4?s=100" width="100px;" alt=""/><br /><sub><b>nstefanou</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=nstefanou" title="Code">💻</a> <a href="#plugin-nstefanou" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="https://github.com/orin220444"><img src="https://avatars3.githubusercontent.com/u/30747229?v=4?s=100" width="100px;" alt=""/><br /><sub><b>orin220444</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=orin220444" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Goobles"><img src="https://avatars3.githubusercontent.com/u/8776771?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gobius Dolhain</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Goobles" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/3l0w"><img src="https://avatars2.githubusercontent.com/u/37798980?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gwilherm Folliot</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=3l0w" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Dimitory"><img src="https://avatars0.githubusercontent.com/u/475955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dmitry Pronin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=dimitory" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/JonathanBeverley"><img src="https://avatars1.githubusercontent.com/u/20328966?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan Beverley</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=JonathanBeverley" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/zend"><img src="https://avatars1.githubusercontent.com/u/25160?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zenghai Liang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=zend" title="Code">💻</a></td>
<td align="center"><a href="https://about.me/matishadow"><img src="https://avatars0.githubusercontent.com/u/9083085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mateusz Tracz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=matishadow" title="Code">💻</a></td>
<td align="center"><a href="https://zergpool.com"><img src="https://avatars3.githubusercontent.com/u/36234677?v=4?s=100" width="100px;" alt=""/><br /><sub><b>pinpin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=pinpins" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/TakuroOnoda"><img src="https://avatars0.githubusercontent.com/u/1407926?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Takuro Onoda</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TakuroOnoda" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/frauhottelmann"><img src="https://avatars2.githubusercontent.com/u/902705?v=4?s=100" width="100px;" alt=""/><br /><sub><b>frauhottelmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=frauhottelmann" title="Code">💻</a></td>
<td align="center"><a href="http://patalong.pl"><img src="https://avatars.githubusercontent.com/u/29167842?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piotr Patalong</b></sub></a><br /><a href="#design-VectorKappa" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/clarkwang"><img src="https://avatars.githubusercontent.com/u/157076?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Clark Wang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=clarkwang" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/iamchating"><img src="https://avatars.githubusercontent.com/u/7088153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>iamchating</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=iamchating" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/starxg"><img src="https://avatars.githubusercontent.com/u/34997494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>starxg</b></sub></a><br /><a href="#plugin-starxg" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="http://hashnote.net/"><img src="https://avatars.githubusercontent.com/u/546312?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alisue</b></sub></a><br /><a href="#design-lambdalisue" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ydcool"><img src="https://avatars.githubusercontent.com/u/5668295?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dominic Yin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ydcool" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/bdr99"><img src="https://avatars.githubusercontent.com/u/2292715?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brandon Rothweiler</b></sub></a><br /><a href="#design-bdr99" title="Design">🎨</a></td>
<td align="center"><a href="https://git.io/JnP49"><img src="https://avatars.githubusercontent.com/u/63876444?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Logic Machine</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=logicmachine123" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/cypherbits"><img src="https://avatars.githubusercontent.com/u/10424900?v=4?s=100" width="100px;" alt=""/><br /><sub><b>cypherbits</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cypherbits" title="Documentation">📖</a></td>
<td align="center"><a href="https://modulolotus.net"><img src="https://avatars.githubusercontent.com/u/946421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matthew Davidson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=KingMob" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/al-wi"><img src="https://avatars.githubusercontent.com/u/11092199?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Wiedemann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=al-wi" title="Code">💻</a></td>
<td align="center"><a href="https://www.notion.so/3d45c6bd2cbd4f938873a4bd12e23375"><img src="https://avatars.githubusercontent.com/u/59506394?v=4?s=100" width="100px;" alt=""/><br /><sub><b>장보연</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BoYeonJang" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Me1onRind"><img src="https://avatars.githubusercontent.com/u/19531270?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zZ</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Me1onRind" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tainoNZ"><img src="https://avatars.githubusercontent.com/u/49261322?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aaron Davison</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=tainoNZ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/composer404"><img src="https://avatars.githubusercontent.com/u/58251560?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Przemyslaw Kozik</b></sub></a><br /><a href="#design-composer404" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/highfredo"><img src="https://avatars.githubusercontent.com/u/5951524?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alfredo Arellano de la Fuente</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=highfredo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/NessunKim"><img src="https://avatars.githubusercontent.com/u/12974079?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MH Kim</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NessunKim" title="Code">💻</a></td>
<td align="center"><a href="https://discord.gg/4c5EVTBhtp"><img src="https://avatars.githubusercontent.com/u/40345645?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Marmota</b></sub></a><br /><a href="#design-jaimeadf" title="Design">🎨</a></td>
<td align="center"><a href="https://ares.zone"><img src="https://avatars.githubusercontent.com/u/40336192?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ares Andrew</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TENX-S" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://usual.io/"><img src="https://avatars.githubusercontent.com/u/780052?v=4?s=100" width="100px;" alt=""/><br /><sub><b>George Korsnick</b></sub></a><br /><a href="#financial-gkor" title="Financial">💵</a></td>
<td align="center"><a href="https://about.me/ulu"><img src="https://avatars.githubusercontent.com/u/872764?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Artem Smirnov</b></sub></a><br /><a href="#financial-uluhonolulu" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/nevotheless"><img src="https://avatars.githubusercontent.com/u/779797?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Kopplow</b></sub></a><br /><a href="#financial-nevotheless" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/mrthock"><img src="https://avatars.githubusercontent.com/u/88901709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>mrthock</b></sub></a><br /><a href="#financial-mrthock" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/lrottach"><img src="https://avatars.githubusercontent.com/u/50323692?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas Rottach</b></sub></a><br /><a href="#financial-lrottach" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/boonkerz"><img src="https://avatars.githubusercontent.com/u/277321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>boonkerz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boonkerz" title="Code">💻</a> <a href="#translation-boonkerz" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/milotype"><img src="https://avatars.githubusercontent.com/u/43657314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Milo Ivir</b></sub></a><br /><a href="#translation-milotype" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
이 프로젝트는 [모든 기여자](https://github.com/all-contributors/all-contributors)의 규격을 따릅니다. 어떠한 종류의 기여도 모두 환영합니다!
<img src="https://ga-beacon.appspot.com/UA-3278102-18/github/readme" width="1"/>

View File

@@ -1,8 +1,8 @@
![](docs/readme.png)
[![](docs/readme.png)](https://tabby.sh)
<p align="center">
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=RELEASE&logo=github&style=for-the-badge"></a> &nbsp; <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> &nbsp; <a href="https://matrix.to/#/#tabby-general:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/tabby-general:matrix.org?logo=matrix&style=for-the-badge&color=magenta"></a>
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge"></a> &nbsp; <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> &nbsp; <a href="https://matrix.to/#/#tabby-general:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/tabby-general:matrix.org?logo=matrix&style=for-the-badge&color=magenta"></a> &nbsp <a href="https://translate.tabby.sh/"><img alt="Translate" src="https://shields.io/badge/Translate-UI-white?logo=googletranslate&style=for-the-badge&color=white&logoColor=fff"></a> &nbsp; <a href="https://twitter.com/eugeeeeny"><img alt="Twitter" src="https://shields.io/badge/Subscribe-News-blue?logo=twitter&style=for-the-badge&color=blue"></a>
</p>
<p align="center">
@@ -16,30 +16,34 @@
### Downloads:
* [Latest release](https://github.com/Eugeny/tabby/releases/latest)
* [Nightly build](https://nightly.link/Eugeny/tabby/workflows/build/master)
* [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)
<br/>
<p align="center">
This README is also available in: <a href="./README.ru-RU.md">Русский</a> <a href="./README.ko-KR.md">한국어</a> <a href="./README.zh-CN.md">简体中文</a>
</p>
----
**Tabby** (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, macOS and Linux
* Integrated SSH client and connection manager
* Integrated SSH and Telnet client and connection manager
* Integrated serial terminal
* Theming and color schemes
* Fully configurable shortcuts and multi-chord shortcuts
* Split panes
* Remembers your tabs
* PowerShell (and PS Core), WSL, Git-Bash, Cygwin, Cmder and CMD support
* PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder and CMD support
* Direct file transfer from/to SSH sessions via Zmodem
* Full Unicode support including double-width characters
* Doesn't choke on fast-flowing outputs
* Proper shell experience on Windows including tab completion (via Clink)
* Integrated encrypted container for SSH secrets and configuration
* SSH, SFTP and Telnet client available as a [web app](https://tabby.sh/app) (also [self-hosted](https://github.com/Eugeny/tabby-web)).
---
# Contents <!-- omit in toc -->
# Contents
- [Contents](#contents)
- [What Tabby is and isn't](#what-tabby-is-and-isnt)
- [Terminal features](#terminal-features)
- [SSH Client](#ssh-client)
@@ -50,13 +54,15 @@
- [Contributing](#contributing)
<a name="about"></a>
# What Tabby is and isn't
* **Tabby is** an alternative to Windows' standard terminal (conhost), PowerShell ISE, PuTTY or iTerm
* **Tabby is** an alternative to Windows' standard terminal (conhost), PowerShell ISE, PuTTY, macOS Terminal.app and iTerm
* **Tabby is not** a new shell or a MinGW or Cygwin replacement. Neither is it lightweight - if RAM usage is of importance, consider [Conemu](https://conemu.github.io) or [Alacritty](https://github.com/jwilm/alacritty)
<a name="terminal"></a>
# Terminal features
![](docs/readme-terminal.png)
@@ -102,28 +108,36 @@ Tabby will run as a portable app on Windows, if you create a `data` folder in th
Plugins and themes can be installed directly from the Settings view inside Tabby.
* [clickable-links](https://github.com/Eugeny/tabby-clickable-links) - makes paths and URLs in the terminal clickable
* [docker](https://github.com/Eugeny/tabby-docker) - connect to Docker containers
* [title-control](https://github.com/kbjr/terminus-title-control) - allows modifying the title of the terminal tabs by providing a prefix, suffix, and/or strings to be removed
* [quick-cmds](https://github.com/Domain/terminus-quick-cmds) - quickly send commands to one or all terminal tabs
* [save-output](https://github.com/Eugeny/tabby-save-output) - record terminal output into a file
* [sync-config](https://github.com/starxg/terminus-sync-config) - sync the config to Gist or Gitee
* [docker](https://github.com/Eugeny/tabby-docker) - connect to Docker containers
* [title-control](https://github.com/kbjr/terminus-title-control) - allows modifying the title of the terminal tabs by providing a prefix, suffix, and/or strings to be removed
* [quick-cmds](https://github.com/Domain/terminus-quick-cmds) - quickly send commands to one or all terminal tabs
* [save-output](https://github.com/Eugeny/tabby-save-output) - record terminal output into a file
* [sync-config](https://github.com/starxg/terminus-sync-config) - sync the config to Gist or Gitee
* [clippy](https://github.com/Eugeny/tabby-clippy) - an example plugin which annoys you all the time
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) - allows creating custom workspace profiles based on the given config
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) - opens default system browser with a text selected from the Tabby's tab
<a name="themes"></a>
# Themes
* [hype](https://github.com/Eugeny/tabby-theme-hype) - a Hyper inspired theme
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - the Relaxed theme for Tabby
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox)
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10)
* [altair](https://github.com/yxuko/terminus-altair)
* [hype](https://github.com/Eugeny/tabby-theme-hype) - a Hyper inspired theme
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - the Relaxed theme for Tabby
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox)
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10)
* [altair](https://github.com/yxuko/terminus-altair)
# Sponsors <!-- omit in toc -->
[![](https://assets-production.packagecloud.io/assets/packagecloud-logo-light-scaled-26ce8e96060fddf74afbd4445e63ba35590d4aaa56edc98495bb390ef3cae0ae.png)](https://packagecloud.io)
[**packagecloud**](https://packagecloud.io) has provided free Debian/RPM repository hosting
<a name="contributing"></a>
# Contributing
Pull requests and plugins are welcome!
See [HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md) and [API docs](http://ajenti.org/terminus-docs/) for information of how the project is laid out, and a very brief plugin development tutorial.
See [HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md) and [API docs](https://docs.tabby.sh/) for information of how the project is laid out, and a very brief plugin development tutorial.
---
<a name="contributors"></a>
@@ -195,6 +209,29 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center"><a href="https://github.com/cypherbits"><img src="https://avatars.githubusercontent.com/u/10424900?v=4?s=100" width="100px;" alt=""/><br /><sub><b>cypherbits</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cypherbits" title="Documentation">📖</a></td>
<td align="center"><a href="https://modulolotus.net"><img src="https://avatars.githubusercontent.com/u/946421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matthew Davidson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=KingMob" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/al-wi"><img src="https://avatars.githubusercontent.com/u/11092199?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Wiedemann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=al-wi" title="Code">💻</a></td>
<td align="center"><a href="https://www.notion.so/3d45c6bd2cbd4f938873a4bd12e23375"><img src="https://avatars.githubusercontent.com/u/59506394?v=4?s=100" width="100px;" alt=""/><br /><sub><b>장보연</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BoYeonJang" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Me1onRind"><img src="https://avatars.githubusercontent.com/u/19531270?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zZ</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Me1onRind" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tainoNZ"><img src="https://avatars.githubusercontent.com/u/49261322?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aaron Davison</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=tainoNZ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/composer404"><img src="https://avatars.githubusercontent.com/u/58251560?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Przemyslaw Kozik</b></sub></a><br /><a href="#design-composer404" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/highfredo"><img src="https://avatars.githubusercontent.com/u/5951524?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alfredo Arellano de la Fuente</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=highfredo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/NessunKim"><img src="https://avatars.githubusercontent.com/u/12974079?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MH Kim</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NessunKim" title="Code">💻</a></td>
<td align="center"><a href="https://discord.gg/4c5EVTBhtp"><img src="https://avatars.githubusercontent.com/u/40345645?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Marmota</b></sub></a><br /><a href="#design-jaimeadf" title="Design">🎨</a></td>
<td align="center"><a href="https://ares.zone"><img src="https://avatars.githubusercontent.com/u/40336192?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ares Andrew</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TENX-S" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://usual.io/"><img src="https://avatars.githubusercontent.com/u/780052?v=4?s=100" width="100px;" alt=""/><br /><sub><b>George Korsnick</b></sub></a><br /><a href="#financial-gkor" title="Financial">💵</a></td>
<td align="center"><a href="https://about.me/ulu"><img src="https://avatars.githubusercontent.com/u/872764?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Artem Smirnov</b></sub></a><br /><a href="#financial-uluhonolulu" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/nevotheless"><img src="https://avatars.githubusercontent.com/u/779797?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Kopplow</b></sub></a><br /><a href="#financial-nevotheless" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/mrthock"><img src="https://avatars.githubusercontent.com/u/88901709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>mrthock</b></sub></a><br /><a href="#financial-mrthock" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/lrottach"><img src="https://avatars.githubusercontent.com/u/50323692?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas Rottach</b></sub></a><br /><a href="#financial-lrottach" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/boonkerz"><img src="https://avatars.githubusercontent.com/u/277321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>boonkerz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boonkerz" title="Code">💻</a> <a href="#translation-boonkerz" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/milotype"><img src="https://avatars.githubusercontent.com/u/43657314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Milo Ivir</b></sub></a><br /><a href="#translation-milotype" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
</tr>
</table>
@@ -204,5 +241,3 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
<img src="https://ga-beacon.appspot.com/UA-3278102-18/github/readme" width="1"/>

246
README.ru-RU.md Normal file
View File

@@ -0,0 +1,246 @@
[![](docs/readme.png)](https://tabby.sh)
<p align="center">
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge"></a> &nbsp; <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> &nbsp; <a href="https://matrix.to/#/#tabby-general:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/tabby-general:matrix.org?logo=matrix&style=for-the-badge&color=magenta"></a> &nbsp <a href="https://translate.tabby.sh/"><img alt="Translate" src="https://shields.io/badge/Translate-UI-white?logo=googletranslate&style=for-the-badge&color=white&logoColor=fff"></a> &nbsp; <a href="https://twitter.com/eugeeeeny"><img alt="Twitter" src="https://shields.io/badge/Subscribe-News-blue?logo=twitter&style=for-the-badge&color=blue"></a>
</p>
<p align="center">
<a href="https://ko-fi.com/J3J8KWTF">
<img src="https://cdn.ko-fi.com/cdn/kofi3.png?v=2" width="150">
</a>
</p>
----
### Загрузки:
* [Последняя версия](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)
* [Последний nightly-билд](https://nightly.link/Eugeny/tabby/workflows/build/master)
<br/>
<p align="center">
Этот README также доступен на: <a href="./README.md">Английском</a> <a href="./README.ko-KR.md">Корейском</a> <a href="./README.zh-CN.md">Китайском</a>
</p>
----
[**Tabby**](https://tabby.sh) (ранее **Terminus**) — широко конфигурируемый эмулятор терминала, SSH- и COM-клиент для Windows, macOS и Linux:
* Встроенный SSH- и Telnet-клиент и менеджер подключений;
* Встроенный последовтаельный терминал;
* Темы и цветовые схемы;
* Полностью настраеваемые сочетания клавиш;
* Панели;
* Запоминание вкладок;
* Поддержка PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder и CMD;
* Прямая передача файлов из и в SSH-сессии через Zmodem;
* Полная поддержка Unicode, включая символы двойной ширины;
* Не задыхается при быстром выводе;
* Полноценный опыт работы с shell на Windows, включая дополнение слов и команд по Tab (при помощи Clink);
* Втроенное защищённое хранилище для SSH-ключей и настроек;
* SSH-, SFTP- и Telnet-клиент доступен как [веб-приложение](https://tabby.sh/app) (также для [самостоятелньного хостинга](https://github.com/Eugeny/tabby-web)).
# Содержание <!-- omit in toc -->
- [Правда и ложь про Tabby](#правда-и-ложь-про-tabby)
- [Функции терминала](#функции-терминала)
- [SSH-клиент](#ssh-клиент)
- [Терминал последовательного порта](#терминал-последовательного-порта)
- [Портативность](#портативность)
- [Плагины](#плагины)
- [Темы](#темы)
- [Внести свой вклад](#внести-свой-вклад)
<a name="about"></a>
# Правда и ложь про Tabby
* **Правда:** Tabby — это альтернатива стандартному терминалу Windows (conhost), PowerShell ISE, PuTTY, macOS Terminal.app и iTerm.
* **Ложь:** Tabby — это не новая оболочка или замена MinGW или Cygwin. Также он нелёгок — если потребление ОЗУ крайне важно для вас, лучше взгляните на [Conemu](https://conemu.github.io) или [Alacritty](https://github.com/jwilm/alacritty).
<a name="terminal"></a>
# Функции терминала
![](docs/readme-terminal.png)
* Терминал V220 + различные дополнения;
* Деление окна на несколько панелей;
* Вкладки на любой стороне окна;
* Опционально закрепляемое окно с глобальной горячей клавишей для вызова («Quake console»);
* Определение прогресса процесса;
* Уведомления о завершении процессов;
* Защита от выполнения команд при вставке, предупреждения о вставке нескольких строк;
* Лигатуры шрифтов;
* Пользовательские профили оболочки;
* Опциональная ПКМ-вставка и копирование при выделении (в стиле PuTTY).
<a name="ssh"></a>
# SSH-клиент
![](docs/readme-ssh.png)
* SSH2-клиент с менеджером соединений;
* Проброс портов и X11;
* Управление автоматическими джамп-хостами;
* Проброс агента (включая Pageant и встроеный в Windows OpenSSH Agent);
* Скрипты для входа.
<a name="serial"></a>
# Терминал последовательного порта
* Сохранение соединений;
* Поддержка ввода readline;
* Опциональый побатный ввод HEX и вывод hexdump;
* Преобразование newline;
* Автоматическое восстановление соединения.
<a name="portable"></a>
# Портативность
На Windows Tabby будет работать в портативном режиме, если создать папку `data` там же, где расположен файл `Tabby.exe`.
<a name="plugins"></a>
# Плагины
Плагины и темы можно установить напрямую из Настроек Tabby.
* [clickable-links](https://github.com/Eugeny/tabby-clickable-links) — делает пути и URL в терминале гиперссылками;
* [docker](https://github.com/Eugeny/tabby-docker) — подключения к Docker-контейнерам;
* [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) — плагин-пример, который постоянно будет вас бесить;
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) — позволяет создавать пользовательские провили рабочего окружеиня на основе конфига;
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) — открывает браузер по умолчанию с текстом, выделенном во вкладке Tabby.
<a name="themes"></a>
# Темы
* [hype](https://github.com/Eugeny/tabby-theme-hype) — тема, вдохновлённая Hyper;
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) — тема Relaxed для Tabby;
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox);
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10);
* [altair](https://github.com/yxuko/terminus-altair).
# Спонсоры <!-- omit in toc -->
[![](https://assets-production.packagecloud.io/assets/packagecloud-logo-light-scaled-26ce8e96060fddf74afbd4445e63ba35590d4aaa56edc98495bb390ef3cae0ae.png)](https://packagecloud.io)
[**packagecloud**](https://packagecloud.io) предоставил бесплатный хостинг для Debian/RPM репозитория.
<a name="contributing"></a>
# Внести свой вклад
Pull-запросы и плагины приветствуются!
Взгляните на [HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md) и [API docs](https://docs.tabby.sh/), чтобы понять, как устроен проект, и ради очень краткого туториала по созданию плагинов.
---
<a name="contributors"></a>
Огромное спасибо этим прекрасным людям ([описание эмодзи](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="http://www.russellmyers.com"><img src="https://avatars2.githubusercontent.com/u/184085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Russell Myers</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mezner" title="Code">💻</a></td>
<td align="center"><a href="http://www.morwire.com"><img src="https://avatars1.githubusercontent.com/u/3991658?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Austin Warren</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ehwarren" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Drachenkaetzchen"><img src="https://avatars1.githubusercontent.com/u/162974?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Felicia Hummel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Drachenkaetzchen" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mikemaccana"><img src="https://avatars2.githubusercontent.com/u/172594?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mike MacCana</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mikemaccana" title="Tests">⚠️</a> <a href="#design-mikemaccana" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/yxuko"><img src="https://avatars1.githubusercontent.com/u/1786317?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yacine Kanzari</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yxuko" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/BBJip"><img src="https://avatars2.githubusercontent.com/u/32908927?v=4?s=100" width="100px;" alt=""/><br /><sub><b>BBJip</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BBJip" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Futagirl"><img src="https://avatars2.githubusercontent.com/u/33533958?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Futagirl</b></sub></a><br /><a href="#design-Futagirl" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.levrik.io"><img src="https://avatars3.githubusercontent.com/u/9491603?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Levin Rickert</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=levrik" title="Code">💻</a></td>
<td align="center"><a href="https://kwonoj.github.io"><img src="https://avatars2.githubusercontent.com/u/1210596?v=4?s=100" width="100px;" alt=""/><br /><sub><b>OJ Kwon</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=kwonoj" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Domain"><img src="https://avatars2.githubusercontent.com/u/903197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>domain</b></sub></a><br /><a href="#plugin-Domain" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Domain" title="Code">💻</a></td>
<td align="center"><a href="http://www.jbrumond.me"><img src="https://avatars1.githubusercontent.com/u/195127?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Brumond</b></sub></a><br /><a href="#plugin-kbjr" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="http://www.growingwiththeweb.com"><img src="https://avatars0.githubusercontent.com/u/2193314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Imms</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Code">💻</a> <a href="#plugin-Tyriar" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/baflo"><img src="https://avatars2.githubusercontent.com/u/834350?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Florian Bachmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=baflo" title="Code">💻</a></td>
<td align="center"><a href="http://michael-kuehnel.de"><img src="https://avatars2.githubusercontent.com/u/441011?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Kühnel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mischah" title="Code">💻</a> <a href="#design-mischah" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/NieLeben"><img src="https://avatars3.githubusercontent.com/u/47182955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tilmann Meyer</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NieLeben" title="Code">💻</a></td>
<td align="center"><a href="http://www.jubeat.net"><img src="https://avatars3.githubusercontent.com/u/11289158?v=4?s=100" width="100px;" alt=""/><br /><sub><b>PM Extra</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/issues?q=author%3APMExtra" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://jjuhas.keybase.pub//"><img src="https://avatars1.githubusercontent.com/u/6438760?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=IgnusG" title="Code">💻</a></td>
<td align="center"><a href="https://hans-koch.me"><img src="https://avatars0.githubusercontent.com/u/1093709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hans Koch</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hammster" title="Code">💻</a></td>
<td align="center"><a href="http://thepuzzlemaker.info"><img src="https://avatars3.githubusercontent.com/u/12666617?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dak Smyth</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ThePuzzlemaker" title="Code">💻</a></td>
<td align="center"><a href="http://yfwz100.github.io"><img src="https://avatars2.githubusercontent.com/u/983211?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Wang Zhi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yfwz100" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jack1142"><img src="https://avatars0.githubusercontent.com/u/6032823?v=4?s=100" width="100px;" alt=""/><br /><sub><b>jack1142</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=jack1142" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/hdougie"><img src="https://avatars1.githubusercontent.com/u/450799?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Howie Douglas</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hdougie" title="Code">💻</a></td>
<td align="center"><a href="https://chriskaczor.com"><img src="https://avatars2.githubusercontent.com/u/180906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Kaczor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ckaczor" title="Code">💻</a></td>
<td align="center"><a href="https://www.boxmein.net"><img src="https://avatars1.githubusercontent.com/u/358714?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Johannes Kadak</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boxmein" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/LeSeulArtichaut"><img src="https://avatars1.githubusercontent.com/u/38361244?v=4?s=100" width="100px;" alt=""/><br /><sub><b>LeSeulArtichaut</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LeSeulArtichaut" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/CyrilTaylor"><img src="https://avatars0.githubusercontent.com/u/12631466?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cyril Taylor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=CyrilTaylor" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/nstefanou"><img src="https://avatars3.githubusercontent.com/u/51129173?v=4?s=100" width="100px;" alt=""/><br /><sub><b>nstefanou</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=nstefanou" title="Code">💻</a> <a href="#plugin-nstefanou" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="https://github.com/orin220444"><img src="https://avatars3.githubusercontent.com/u/30747229?v=4?s=100" width="100px;" alt=""/><br /><sub><b>orin220444</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=orin220444" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Goobles"><img src="https://avatars3.githubusercontent.com/u/8776771?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gobius Dolhain</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Goobles" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/3l0w"><img src="https://avatars2.githubusercontent.com/u/37798980?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gwilherm Folliot</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=3l0w" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Dimitory"><img src="https://avatars0.githubusercontent.com/u/475955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dmitry Pronin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=dimitory" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/JonathanBeverley"><img src="https://avatars1.githubusercontent.com/u/20328966?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan Beverley</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=JonathanBeverley" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/zend"><img src="https://avatars1.githubusercontent.com/u/25160?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zenghai Liang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=zend" title="Code">💻</a></td>
<td align="center"><a href="https://about.me/matishadow"><img src="https://avatars0.githubusercontent.com/u/9083085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mateusz Tracz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=matishadow" title="Code">💻</a></td>
<td align="center"><a href="https://zergpool.com"><img src="https://avatars3.githubusercontent.com/u/36234677?v=4?s=100" width="100px;" alt=""/><br /><sub><b>pinpin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=pinpins" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/TakuroOnoda"><img src="https://avatars0.githubusercontent.com/u/1407926?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Takuro Onoda</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TakuroOnoda" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/frauhottelmann"><img src="https://avatars2.githubusercontent.com/u/902705?v=4?s=100" width="100px;" alt=""/><br /><sub><b>frauhottelmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=frauhottelmann" title="Code">💻</a></td>
<td align="center"><a href="http://patalong.pl"><img src="https://avatars.githubusercontent.com/u/29167842?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piotr Patalong</b></sub></a><br /><a href="#design-VectorKappa" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/clarkwang"><img src="https://avatars.githubusercontent.com/u/157076?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Clark Wang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=clarkwang" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/iamchating"><img src="https://avatars.githubusercontent.com/u/7088153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>iamchating</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=iamchating" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/starxg"><img src="https://avatars.githubusercontent.com/u/34997494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>starxg</b></sub></a><br /><a href="#plugin-starxg" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="http://hashnote.net/"><img src="https://avatars.githubusercontent.com/u/546312?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alisue</b></sub></a><br /><a href="#design-lambdalisue" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ydcool"><img src="https://avatars.githubusercontent.com/u/5668295?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dominic Yin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ydcool" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/bdr99"><img src="https://avatars.githubusercontent.com/u/2292715?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brandon Rothweiler</b></sub></a><br /><a href="#design-bdr99" title="Design">🎨</a></td>
<td align="center"><a href="https://git.io/JnP49"><img src="https://avatars.githubusercontent.com/u/63876444?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Logic Machine</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=logicmachine123" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/cypherbits"><img src="https://avatars.githubusercontent.com/u/10424900?v=4?s=100" width="100px;" alt=""/><br /><sub><b>cypherbits</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cypherbits" title="Documentation">📖</a></td>
<td align="center"><a href="https://modulolotus.net"><img src="https://avatars.githubusercontent.com/u/946421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matthew Davidson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=KingMob" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/al-wi"><img src="https://avatars.githubusercontent.com/u/11092199?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Wiedemann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=al-wi" title="Code">💻</a></td>
<td align="center"><a href="https://www.notion.so/3d45c6bd2cbd4f938873a4bd12e23375"><img src="https://avatars.githubusercontent.com/u/59506394?v=4?s=100" width="100px;" alt=""/><br /><sub><b>장보연</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BoYeonJang" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Me1onRind"><img src="https://avatars.githubusercontent.com/u/19531270?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zZ</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Me1onRind" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tainoNZ"><img src="https://avatars.githubusercontent.com/u/49261322?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aaron Davison</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=tainoNZ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/composer404"><img src="https://avatars.githubusercontent.com/u/58251560?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Przemyslaw Kozik</b></sub></a><br /><a href="#design-composer404" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/highfredo"><img src="https://avatars.githubusercontent.com/u/5951524?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alfredo Arellano de la Fuente</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=highfredo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/NessunKim"><img src="https://avatars.githubusercontent.com/u/12974079?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MH Kim</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NessunKim" title="Code">💻</a></td>
<td align="center"><a href="https://discord.gg/4c5EVTBhtp"><img src="https://avatars.githubusercontent.com/u/40345645?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Marmota</b></sub></a><br /><a href="#design-jaimeadf" title="Design">🎨</a></td>
<td align="center"><a href="https://ares.zone"><img src="https://avatars.githubusercontent.com/u/40336192?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ares Andrew</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TENX-S" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://usual.io/"><img src="https://avatars.githubusercontent.com/u/780052?v=4?s=100" width="100px;" alt=""/><br /><sub><b>George Korsnick</b></sub></a><br /><a href="#financial-gkor" title="Financial">💵</a></td>
<td align="center"><a href="https://about.me/ulu"><img src="https://avatars.githubusercontent.com/u/872764?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Artem Smirnov</b></sub></a><br /><a href="#financial-uluhonolulu" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/nevotheless"><img src="https://avatars.githubusercontent.com/u/779797?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Kopplow</b></sub></a><br /><a href="#financial-nevotheless" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/mrthock"><img src="https://avatars.githubusercontent.com/u/88901709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>mrthock</b></sub></a><br /><a href="#financial-mrthock" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/lrottach"><img src="https://avatars.githubusercontent.com/u/50323692?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas Rottach</b></sub></a><br /><a href="#financial-lrottach" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/boonkerz"><img src="https://avatars.githubusercontent.com/u/277321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>boonkerz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boonkerz" title="Code">💻</a> <a href="#translation-boonkerz" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/milotype"><img src="https://avatars.githubusercontent.com/u/43657314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Milo Ivir</b></sub></a><br /><a href="#translation-milotype" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Данный проект следует заветам [all-contributors](https://github.com/all-contributors/all-contributors). Любые созидатели приветствуются!
<img src="https://ga-beacon.appspot.com/UA-3278102-18/github/readme" width="1"/>

243
README.zh-CN.md Normal file
View File

@@ -0,0 +1,243 @@
[![](docs/readme.png)](https://tabby.sh)
<p align="center">
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge"></a> &nbsp; <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> &nbsp; <a href="https://matrix.to/#/#tabby-general:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/tabby-general:matrix.org?logo=matrix&style=for-the-badge&color=magenta"></a> &nbsp <a href="https://translate.tabby.sh/"><img alt="Translate" src="https://shields.io/badge/Translate-UI-white?logo=googletranslate&style=for-the-badge&color=white&logoColor=fff"></a> &nbsp; <a href="https://twitter.com/eugeeeeny"><img alt="Twitter" src="https://shields.io/badge/Subscribe-News-blue?logo=twitter&style=for-the-badge&color=blue"></a>
</p>
<p align="center">
<a href="https://ko-fi.com/J3J8KWTF">
<img src="https://cdn.ko-fi.com/cdn/kofi3.png?v=2" width="150">
</a>
</p>
----
### 下载
* [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)
<br/>
<p align="center">
本 README 还适用于以下语言: <a href="./README.ru-RU.md">Русский</a> <a href="./README.ko-KR.md">한국어</a> <a href="./README.zh-CN.md">简体中文</a>
</p>
----
[**Tabby**](https://tabby.sh) (前身是 **Terminus**) 是一个可高度配置的终端模拟器和 SSH 或串口客户端,支持 WindowsmacOS 和 Linux
* 集成 SSHTelnet 客户端和连接管理器
* 集成串行终端
* 定制主题和配色方案
* 完全可配置的快捷键和多键快捷键
* 分体式窗格
* 自动保存标签页
* 支持 PowerShell和 PS Core、WSL、Git-Bash、Cygwin、MSYS2、Cmder 和 CMD
* 在 SSH 会话中通过 Zmodem 进行直接文件传输
* 完整的 Unicode 支持,包括双角字符
* 不会因快速的输出而卡住
* Windows 上舒适的 shell 体验,包括 tab 自动补全(通过 Clink
* 为 SSH secrets 和设置集成了加密容器
* SSH、SFTP 和 Telnet 客户端可用作 [Web 应用](https://tabby.sh/app)(也可[托管](https://github.com/Eugeny/tabby-web)
# 目录 <!-- omit in toc -->
- [Tabby的正确用途](#tabby的正确用途)
- [终端特性](#终端特性)
- [SSH 客户端](#ssh-客户端)
- [串行终端](#串行终端)
- [便携式应用](#便携式应用)
- [插件](#插件)
- [主题](#主题)
- [贡献](#贡献)
<a name="about"></a>
# Tabby的正确用途
* **Tabby 是** Windows 标准终端 (conhost)、PowerShell ISE、PuTTY、macOS Terminal.app 和 iTerm 的替代品
* **Tabby 不是**一个全新的 shell也不是 MinGW 或 Cygwin 的替代品。它也不是轻量级的 - 如果你对内存的占用很敏感,请考虑 [Conemu](https://conemu.github.io) 或 [Alacritty](https://github.com/jwilm/alacritty)
<a name="terminal"></a>
# 终端特性
![](docs/readme-terminal.png)
* 一个 V220 终端 + 各种插件
* 多个嵌套的拆分窗格
* 可以将标签页设置在窗口的任意一侧
* 带有全局生成热键的可选可停靠窗口“Quake console”
* 进度检测
* 流程完成通知
* 带括号的粘贴,多行粘贴提示
* 连体字
* 自定义 shell 配置文件
* 可选的 RMB 粘贴和复制选择PuTTY 风格)
<a name="ssh"></a>
# SSH 客户端
![](docs/readme-ssh.png)
* 带有连接管理器的 SSH2 客户端
* X11和端口转发
* 自动跳转主机管理
* 代理转发(包括 Pageant 和 Windows 原生 OpenSSH 代理)
* 登录脚本
<a name="serial"></a>
# 串行终端
* 保存连接
* 逐行读取的输入支持
* 可选的十六进制逐字节输入和十六进制转储输出
* 换行转换
* 自动重连
<a name="portable"></a>
# 便携式应用
如果在 Tabby.exe 所在的目录创建一个名为`data`文件夹Tabby 将可以在 Windows 上作为便携式的应用程序运行。
<a name="plugins"></a>
# 插件
插件和主题可以直接在 Tabby 设置中安装。
* [clickable-links](https://github.com/Eugeny/tabby-clickable-links) - 使终端中的路径和 URL 可点击
* [docker](https://github.com/Eugeny/tabby-docker) - 连接 Docker 容器
* [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) - 一个可以一直烦你的示例插件
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) - 允许根据给定的配置创建自定义工作区配置文件
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) - 从 Tabby 标签页带有选中的文本来打开系统默认浏览器
<a name="themes"></a>
# 主题
* [hype](https://github.com/Eugeny/tabby-theme-hype) - 受 Hyper 启发的主题
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - 为 Tabby 打造的 Relaxed 主题
* [gruvbox](https://github.com/porkloin/terminus-theme-gruvbox)
* [windows10](https://www.npmjs.com/package/terminus-theme-windows10)
* [altair](https://github.com/yxuko/terminus-altair)
# Sponsors <!-- omit in toc -->
[![](https://assets-production.packagecloud.io/assets/packagecloud-logo-light-scaled-26ce8e96060fddf74afbd4445e63ba35590d4aaa56edc98495bb390ef3cae0ae.png)](https://packagecloud.io)
[**packagecloud**](https://packagecloud.io) 提供了免费的 Debian/RPM 存储库托管
<a name="contributing"></a>
# 贡献
欢迎提交 PR 和插件!
请参阅 [HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md) 和 [API 文档](https://docs.tabby.sh/) 以获取有关项目布局的信息以及非常简短的插件开发教程。
---
<a name="contributors"></a>
感谢这些人,他们棒极了!([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="http://www.russellmyers.com"><img src="https://avatars2.githubusercontent.com/u/184085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Russell Myers</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mezner" title="Code">💻</a></td>
<td align="center"><a href="http://www.morwire.com"><img src="https://avatars1.githubusercontent.com/u/3991658?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Austin Warren</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ehwarren" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Drachenkaetzchen"><img src="https://avatars1.githubusercontent.com/u/162974?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Felicia Hummel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Drachenkaetzchen" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mikemaccana"><img src="https://avatars2.githubusercontent.com/u/172594?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mike MacCana</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mikemaccana" title="Tests">⚠️</a> <a href="#design-mikemaccana" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/yxuko"><img src="https://avatars1.githubusercontent.com/u/1786317?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yacine Kanzari</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yxuko" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/BBJip"><img src="https://avatars2.githubusercontent.com/u/32908927?v=4?s=100" width="100px;" alt=""/><br /><sub><b>BBJip</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BBJip" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Futagirl"><img src="https://avatars2.githubusercontent.com/u/33533958?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Futagirl</b></sub></a><br /><a href="#design-Futagirl" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.levrik.io"><img src="https://avatars3.githubusercontent.com/u/9491603?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Levin Rickert</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=levrik" title="Code">💻</a></td>
<td align="center"><a href="https://kwonoj.github.io"><img src="https://avatars2.githubusercontent.com/u/1210596?v=4?s=100" width="100px;" alt=""/><br /><sub><b>OJ Kwon</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=kwonoj" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Domain"><img src="https://avatars2.githubusercontent.com/u/903197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>domain</b></sub></a><br /><a href="#plugin-Domain" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Domain" title="Code">💻</a></td>
<td align="center"><a href="http://www.jbrumond.me"><img src="https://avatars1.githubusercontent.com/u/195127?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Brumond</b></sub></a><br /><a href="#plugin-kbjr" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="http://www.growingwiththeweb.com"><img src="https://avatars0.githubusercontent.com/u/2193314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Imms</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Code">💻</a> <a href="#plugin-Tyriar" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/Eugeny/tabby/commits?author=Tyriar" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/baflo"><img src="https://avatars2.githubusercontent.com/u/834350?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Florian Bachmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=baflo" title="Code">💻</a></td>
<td align="center"><a href="http://michael-kuehnel.de"><img src="https://avatars2.githubusercontent.com/u/441011?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Kühnel</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mischah" title="Code">💻</a> <a href="#design-mischah" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/NieLeben"><img src="https://avatars3.githubusercontent.com/u/47182955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tilmann Meyer</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NieLeben" title="Code">💻</a></td>
<td align="center"><a href="http://www.jubeat.net"><img src="https://avatars3.githubusercontent.com/u/11289158?v=4?s=100" width="100px;" alt=""/><br /><sub><b>PM Extra</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/issues?q=author%3APMExtra" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://jjuhas.keybase.pub//"><img src="https://avatars1.githubusercontent.com/u/6438760?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=IgnusG" title="Code">💻</a></td>
<td align="center"><a href="https://hans-koch.me"><img src="https://avatars0.githubusercontent.com/u/1093709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hans Koch</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hammster" title="Code">💻</a></td>
<td align="center"><a href="http://thepuzzlemaker.info"><img src="https://avatars3.githubusercontent.com/u/12666617?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dak Smyth</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ThePuzzlemaker" title="Code">💻</a></td>
<td align="center"><a href="http://yfwz100.github.io"><img src="https://avatars2.githubusercontent.com/u/983211?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Wang Zhi</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=yfwz100" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jack1142"><img src="https://avatars0.githubusercontent.com/u/6032823?v=4?s=100" width="100px;" alt=""/><br /><sub><b>jack1142</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=jack1142" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/hdougie"><img src="https://avatars1.githubusercontent.com/u/450799?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Howie Douglas</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hdougie" title="Code">💻</a></td>
<td align="center"><a href="https://chriskaczor.com"><img src="https://avatars2.githubusercontent.com/u/180906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Kaczor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ckaczor" title="Code">💻</a></td>
<td align="center"><a href="https://www.boxmein.net"><img src="https://avatars1.githubusercontent.com/u/358714?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Johannes Kadak</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boxmein" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/LeSeulArtichaut"><img src="https://avatars1.githubusercontent.com/u/38361244?v=4?s=100" width="100px;" alt=""/><br /><sub><b>LeSeulArtichaut</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LeSeulArtichaut" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/CyrilTaylor"><img src="https://avatars0.githubusercontent.com/u/12631466?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cyril Taylor</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=CyrilTaylor" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/nstefanou"><img src="https://avatars3.githubusercontent.com/u/51129173?v=4?s=100" width="100px;" alt=""/><br /><sub><b>nstefanou</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=nstefanou" title="Code">💻</a> <a href="#plugin-nstefanou" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="https://github.com/orin220444"><img src="https://avatars3.githubusercontent.com/u/30747229?v=4?s=100" width="100px;" alt=""/><br /><sub><b>orin220444</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=orin220444" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Goobles"><img src="https://avatars3.githubusercontent.com/u/8776771?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gobius Dolhain</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Goobles" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/3l0w"><img src="https://avatars2.githubusercontent.com/u/37798980?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gwilherm Folliot</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=3l0w" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Dimitory"><img src="https://avatars0.githubusercontent.com/u/475955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dmitry Pronin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=dimitory" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/JonathanBeverley"><img src="https://avatars1.githubusercontent.com/u/20328966?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan Beverley</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=JonathanBeverley" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/zend"><img src="https://avatars1.githubusercontent.com/u/25160?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zenghai Liang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=zend" title="Code">💻</a></td>
<td align="center"><a href="https://about.me/matishadow"><img src="https://avatars0.githubusercontent.com/u/9083085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mateusz Tracz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=matishadow" title="Code">💻</a></td>
<td align="center"><a href="https://zergpool.com"><img src="https://avatars3.githubusercontent.com/u/36234677?v=4?s=100" width="100px;" alt=""/><br /><sub><b>pinpin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=pinpins" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/TakuroOnoda"><img src="https://avatars0.githubusercontent.com/u/1407926?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Takuro Onoda</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TakuroOnoda" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/frauhottelmann"><img src="https://avatars2.githubusercontent.com/u/902705?v=4?s=100" width="100px;" alt=""/><br /><sub><b>frauhottelmann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=frauhottelmann" title="Code">💻</a></td>
<td align="center"><a href="http://patalong.pl"><img src="https://avatars.githubusercontent.com/u/29167842?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piotr Patalong</b></sub></a><br /><a href="#design-VectorKappa" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/clarkwang"><img src="https://avatars.githubusercontent.com/u/157076?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Clark Wang</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=clarkwang" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/iamchating"><img src="https://avatars.githubusercontent.com/u/7088153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>iamchating</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=iamchating" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/starxg"><img src="https://avatars.githubusercontent.com/u/34997494?v=4?s=100" width="100px;" alt=""/><br /><sub><b>starxg</b></sub></a><br /><a href="#plugin-starxg" title="Plugin/utility libraries">🔌</a></td>
<td align="center"><a href="http://hashnote.net/"><img src="https://avatars.githubusercontent.com/u/546312?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alisue</b></sub></a><br /><a href="#design-lambdalisue" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ydcool"><img src="https://avatars.githubusercontent.com/u/5668295?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dominic Yin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ydcool" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/bdr99"><img src="https://avatars.githubusercontent.com/u/2292715?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brandon Rothweiler</b></sub></a><br /><a href="#design-bdr99" title="Design">🎨</a></td>
<td align="center"><a href="https://git.io/JnP49"><img src="https://avatars.githubusercontent.com/u/63876444?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Logic Machine</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=logicmachine123" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/cypherbits"><img src="https://avatars.githubusercontent.com/u/10424900?v=4?s=100" width="100px;" alt=""/><br /><sub><b>cypherbits</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cypherbits" title="Documentation">📖</a></td>
<td align="center"><a href="https://modulolotus.net"><img src="https://avatars.githubusercontent.com/u/946421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matthew Davidson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=KingMob" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/al-wi"><img src="https://avatars.githubusercontent.com/u/11092199?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Wiedemann</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=al-wi" title="Code">💻</a></td>
<td align="center"><a href="https://www.notion.so/3d45c6bd2cbd4f938873a4bd12e23375"><img src="https://avatars.githubusercontent.com/u/59506394?v=4?s=100" width="100px;" alt=""/><br /><sub><b>장보연</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=BoYeonJang" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Me1onRind"><img src="https://avatars.githubusercontent.com/u/19531270?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zZ</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Me1onRind" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tainoNZ"><img src="https://avatars.githubusercontent.com/u/49261322?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aaron Davison</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=tainoNZ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/composer404"><img src="https://avatars.githubusercontent.com/u/58251560?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Przemyslaw Kozik</b></sub></a><br /><a href="#design-composer404" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/highfredo"><img src="https://avatars.githubusercontent.com/u/5951524?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alfredo Arellano de la Fuente</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=highfredo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/NessunKim"><img src="https://avatars.githubusercontent.com/u/12974079?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MH Kim</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=NessunKim" title="Code">💻</a></td>
<td align="center"><a href="https://discord.gg/4c5EVTBhtp"><img src="https://avatars.githubusercontent.com/u/40345645?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Marmota</b></sub></a><br /><a href="#design-jaimeadf" title="Design">🎨</a></td>
<td align="center"><a href="https://ares.zone"><img src="https://avatars.githubusercontent.com/u/40336192?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ares Andrew</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TENX-S" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://usual.io/"><img src="https://avatars.githubusercontent.com/u/780052?v=4?s=100" width="100px;" alt=""/><br /><sub><b>George Korsnick</b></sub></a><br /><a href="#financial-gkor" title="Financial">💵</a></td>
<td align="center"><a href="https://about.me/ulu"><img src="https://avatars.githubusercontent.com/u/872764?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Artem Smirnov</b></sub></a><br /><a href="#financial-uluhonolulu" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/nevotheless"><img src="https://avatars.githubusercontent.com/u/779797?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Kopplow</b></sub></a><br /><a href="#financial-nevotheless" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/mrthock"><img src="https://avatars.githubusercontent.com/u/88901709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>mrthock</b></sub></a><br /><a href="#financial-mrthock" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/lrottach"><img src="https://avatars.githubusercontent.com/u/50323692?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas Rottach</b></sub></a><br /><a href="#financial-lrottach" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/boonkerz"><img src="https://avatars.githubusercontent.com/u/277321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>boonkerz</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=boonkerz" title="Code">💻</a> <a href="#translation-boonkerz" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/milotype"><img src="https://avatars.githubusercontent.com/u/43657314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Milo Ivir</b></sub></a><br /><a href="#translation-milotype" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
本项目遵循 [all-contributors](https://github.com/all-contributors/all-contributors) 规范。 欢迎任何形式的贡献!

View File

@@ -1,6 +1,7 @@
import { app, ipcMain, Menu, Tray, shell, screen, globalShortcut, MenuItemConstructorOptions } from 'electron'
import * as promiseIpc from 'electron-promise-ipc'
import promiseIpc from 'electron-promise-ipc'
import * as remote from '@electron/remote/main'
import { exec } from 'mz/child_process'
import * as path from 'path'
import * as fs from 'fs'
import { Subject, throttleTime } from 'rxjs'
@@ -21,6 +22,8 @@ export class Application {
private ptyManager = new PTYManager()
private windows: Window[] = []
private globalHotkey$ = new Subject<void>()
private quitRequested = false
private configStore: any
userPluginsPath: string
constructor () {
@@ -30,6 +33,7 @@ export class Application {
ipcMain.on('app:config-change', (_event, config) => {
this.broadcast('host:config-change', config)
this.configStore = config
})
ipcMain.on('app:register-global-hotkey', (_event, specs) => {
@@ -51,14 +55,26 @@ export class Application {
return pluginManager.uninstall(this.userPluginsPath, name)
})
const configData = loadConfig()
;(promiseIpc as any).on('get-default-mac-shell', async () => {
try {
return (await exec(`/usr/bin/dscl . -read /Users/${process.env.LOGNAME} UserShell`))[0].toString().split(' ')[1].trim()
} catch {
return '/bin/bash'
}
})
this.configStore = loadConfig()
if (process.platform === 'linux') {
app.commandLine.appendSwitch('no-sandbox')
if (((configData.appearance || {}).opacity || 1) !== 1) {
if (((this.configStore.appearance || {}).opacity || 1) !== 1) {
app.commandLine.appendSwitch('enable-transparent-visuals')
app.disableHardwareAcceleration()
}
}
if (this.configStore.hacks?.disableGPU) {
app.commandLine.appendSwitch('disable-gpu')
app.disableHardwareAcceleration()
}
this.userPluginsPath = path.join(
app.getPath('userData'),
@@ -72,11 +88,16 @@ export class Application {
app.commandLine.appendSwitch('disable-http-cache')
app.commandLine.appendSwitch('max-active-webgl-contexts', '9000')
app.commandLine.appendSwitch('lang', 'EN')
app.allowRendererProcessReuse = false
for (const flag of configData.flags || [['force_discrete_gpu', '0']]) {
for (const flag of this.configStore.flags || [['force_discrete_gpu', '0']]) {
app.commandLine.appendSwitch(flag[0], flag[1])
}
app.on('window-all-closed', () => {
if (this.quitRequested || process.platform !== 'darwin') {
app.quit()
}
})
}
init (): void {
@@ -88,6 +109,9 @@ export class Application {
async newWindow (options?: WindowOptions): Promise<Window> {
const window = new Window(this, options)
this.windows.push(window)
if (this.windows.length === 1){
window.makeMain()
}
window.visible$.subscribe(visible => {
if (visible) {
this.disableTray()
@@ -97,6 +121,10 @@ export class Application {
})
window.closed$.subscribe(() => {
this.windows = this.windows.filter(x => x !== window)
if (!this.windows.some(x => x.isMainWindow)) {
this.windows[0]?.makeMain()
this.windows[0]?.present()
}
})
if (process.platform === 'darwin') {
this.setupMenu()
@@ -106,7 +134,14 @@ export class Application {
}
onGlobalHotkey (): void {
if (this.windows.some(x => x.isFocused() && x.isVisible())) {
let isPresent = this.windows.some(x => x.isFocused() && x.isVisible())
const isDockedOnTop = this.windows.some(x => x.isDockedOnTop())
if (isDockedOnTop) {
// if docked and on top, hide even if not focused right now
isPresent = this.windows.some(x => x.isVisible())
}
if (isPresent) {
for (const window of this.windows) {
window.hide()
}
@@ -175,7 +210,7 @@ export class Application {
focus (): void {
for (const window of this.windows) {
window.show()
window.present()
}
}
@@ -221,7 +256,8 @@ export class Application {
{
label: 'Quit',
accelerator: 'Cmd+Q',
click () {
click: () => {
this.quitRequested = true
app.quit()
},
},
@@ -244,7 +280,6 @@ export class Application {
{
label: 'View',
submenu: [
{ role: 'reload' },
{ role: 'toggleDevTools' },
{ type: 'separator' },
{ role: 'togglefullscreen' },
@@ -272,6 +307,10 @@ export class Application {
},
]
if (process.env.TABBY_DEV) {
template[2].submenu['unshift']({ role: 'reload' })
}
Menu.setApplicationMenu(Menu.buildFromTemplate(template))
}
}

View File

@@ -25,7 +25,7 @@ export function parseArgs (argv: string[], cwd: string): any {
type: 'string',
})
})
.version('version', '', app.getVersion())
.version(app.getVersion())
.option('debug', {
alias: 'd',
describe: 'Show DevTools on start',
@@ -35,11 +35,6 @@ export function parseArgs (argv: string[], cwd: string): any {
describe: 'Start minimized',
type: 'boolean',
})
.option('version', {
alias: 'v',
describe: 'Show version and exit',
type: 'boolean',
})
.help('help')
.parse()
}

View File

@@ -26,12 +26,6 @@ app.on('activate', () => {
}
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
process.on('uncaughtException' as any, err => {
console.log(err)
application.broadcast('uncaughtException', err)

View File

@@ -1,4 +1,4 @@
import * as LRU from 'lru-cache'
import LRU from 'lru-cache'
import * as fs from 'fs'
const lru = new LRU({ max: 256, maxAge: 250 })
const origLstat = fs.realpathSync.bind(fs)

View File

@@ -1,18 +1,27 @@
import * as nodePTY from '@tabby-gang/node-pty'
import { StringDecoder } from './stringDecoder'
import { v4 as uuidv4 } from 'uuid'
import { ipcMain } from 'electron'
import { Application } from './app'
import { UTF8Splitter } from './utfSplitter'
import { Subject, debounceTime } from 'rxjs'
class PTYDataQueue {
private buffers: Buffer[] = []
private delta = 0
private maxChunk = 1024
private maxDelta = 1024 * 50
private maxChunk = 1024 * 100
private maxDelta = this.maxChunk * 5
private flowPaused = false
private decoder = new StringDecoder()
private decoder = new UTF8Splitter()
private output$ = new Subject<Buffer>()
constructor (private pty: nodePTY.IPty, private onData: (data: Buffer) => void) { }
constructor (private pty: nodePTY.IPty, private onData: (data: Buffer) => void) {
this.output$.pipe(debounceTime(500)).subscribe(() => {
const remainder = this.decoder.flush()
if (remainder.length) {
this.onData(remainder)
}
})
}
push (data: Buffer) {
this.buffers.push(data)
@@ -61,7 +70,9 @@ class PTYDataQueue {
}
private emitData (data: Buffer) {
this.onData(this.decoder.write(data))
const validChunk = this.decoder.write(data)
this.onData(validChunk)
this.output$.next(validChunk)
}
private pause () {
@@ -79,6 +90,7 @@ class PTYDataQueue {
export class PTY {
private pty: nodePTY.IPty
private outputQueue: PTYDataQueue
exited = false
constructor (private id: string, private app: Application, ...args: any[]) {
this.pty = (nodePTY as any).spawn(...args)
@@ -90,7 +102,10 @@ export class PTY {
setImmediate(() => this.emit('data', data))
})
this.pty.on('data', data => this.outputQueue.push(Buffer.from(data)))
this.pty.onData(data => this.outputQueue.push(Buffer.from(data)))
this.pty.onExit(() => {
this.exited = true
})
}
getPID (): number {
@@ -133,7 +148,7 @@ export class PTYManager {
})
ipcMain.on('pty:exists', (event, id) => {
event.returnValue = !!this.ptys[id]
event.returnValue = this.ptys[id] && !this.ptys[id].exited
})
ipcMain.on('pty:get-pid', (event, id) => {

32
app/lib/utfSplitter.ts Normal file
View File

@@ -0,0 +1,32 @@
const partials = [
[0b110, 5, 0],
[0b1110, 4, 1],
[0b11110, 3, 2],
]
export class UTF8Splitter {
private internal = Buffer.alloc(0)
write (data: Buffer): Buffer {
this.internal = Buffer.concat([this.internal, data])
let keep = 0
for (const [pattern, shift, maxOffset] of partials) {
for (let offset = 0; offset < maxOffset + 1; offset++) {
if (this.internal[this.internal.length - offset - 1] >> shift === pattern) {
keep = Math.max(keep, offset + 1)
}
}
}
const result = this.internal.slice(0, this.internal.length - keep)
this.internal = this.internal.slice(this.internal.length - keep)
return result
}
flush (): Buffer {
const result = this.internal
this.internal = Buffer.alloc(0)
return result
}
}

View File

@@ -3,10 +3,11 @@ import * as glasstron from 'glasstron'
import { Subject, Observable, debounceTime } from 'rxjs'
import { BrowserWindow, app, ipcMain, Rectangle, Menu, screen, BrowserWindowConstructorOptions, TouchBar, nativeImage } from 'electron'
import ElectronConfig = require('electron-config')
import { enable as enableRemote } from '@electron/remote/main'
import * as os from 'os'
import * as path from 'path'
import macOSRelease from 'macos-release'
import * as compareVersions from 'compare-versions'
import { compare as compareVersions } from 'compare-versions'
import type { Application } from './app'
import { parseArgs } from './cli'
@@ -14,7 +15,7 @@ import { loadConfig } from './config'
let DwmEnableBlurBehindWindow: any = null
if (process.platform === 'win32') {
DwmEnableBlurBehindWindow = require('windows-blurbehind').DwmEnableBlurBehindWindow
DwmEnableBlurBehindWindow = require('@tabby-gang/windows-blurbehind').DwmEnableBlurBehindWindow
}
export interface WindowOptions {
@@ -26,12 +27,13 @@ abstract class GlasstronWindow extends BrowserWindow {
abstract setBlur (_: boolean)
}
const macOSVibrancyType = process.platform === 'darwin' ? compareVersions.compare(macOSRelease().version, '10.14', '>=') ? 'fullscreen-ui' : 'dark' : null
const macOSVibrancyType = process.platform === 'darwin' ? compareVersions(macOSRelease().version, '10.14', '>=') ? 'under-window' : 'dark' : null
const activityIcon = nativeImage.createFromPath(`${app.getAppPath()}/assets/activity.png`)
export class Window {
ready: Promise<void>
isMainWindow = false
private visible = new Subject<boolean>()
private closed = new Subject<void>()
private window?: GlasstronWindow
@@ -42,6 +44,8 @@ export class Window {
private disableVibrancyWhileDragging = false
private configStore: any
private touchBarControl: any
private isFluentVibrancy = false
private dockHidden = false
get visible$ (): Observable<boolean> { return this.visible }
get closed$ (): Observable<void> { return this.closed }
@@ -65,7 +69,6 @@ export class Window {
nodeIntegration: true,
preload: path.join(__dirname, 'sentry.js'),
backgroundThrottling: false,
enableRemoteModule: true,
contextIsolation: false,
},
maximizable: true,
@@ -116,6 +119,7 @@ export class Window {
}
this.window.focus()
this.window.moveTop()
application.focus()
}
})
@@ -125,6 +129,8 @@ export class Window {
}
})
enableRemote(this.window.webContents)
this.window.loadURL(`file://${app.getAppPath()}/dist/index.html`, { extraHeaders: 'pragma: no-cache\n' })
this.window.webContents.setVisualZoomLevelLimits(1, 1)
@@ -155,6 +161,11 @@ export class Window {
})
}
makeMain (): void {
this.isMainWindow = true
this.window.webContents.send('host:became-main-window')
}
setVibrancy (enabled: boolean, type?: string, userRequested?: boolean): void {
if (userRequested ?? true) {
this.lastVibrancy = { enabled, type }
@@ -164,6 +175,7 @@ export class Window {
this.window.blurType = enabled ? type === 'fluent' ? 'acrylic' : 'blurbehind' : null
try {
this.window.setBlur(enabled)
this.isFluentVibrancy = enabled && type === 'fluent'
} catch (error) {
console.error('Failed to set window blur', error)
}
@@ -178,11 +190,6 @@ export class Window {
}
}
show (): void {
this.window.show()
this.window.moveTop()
}
focus (): void {
this.window.focus()
}
@@ -194,6 +201,7 @@ export class Window {
this.window.webContents.send(event, ...args)
if (event === 'host:config-change') {
this.configStore = args[0]
this.enableDockedWindowStyles(this.isDockedOnTop())
}
}
@@ -209,45 +217,69 @@ export class Window {
return this.window.isVisible()
}
hide (): void {
isDockedOnTop (): boolean {
return this.isMainWindow && this.configStore.appearance?.dock && this.configStore.appearance?.dock !== 'off' && (this.configStore.appearance?.dockAlwaysOnTop ?? true)
}
async hide (): Promise<void> {
if (process.platform === 'darwin') {
// Lose focus
Menu.sendActionToFirstResponder('hide:')
}
this.window.blur()
if (process.platform !== 'darwin') {
this.window.hide()
}
}
present (): void {
if (!this.window.isVisible()) {
// unfocused, invisible
this.window.show()
this.window.focus()
} else {
if (!this.configStore.appearance?.dock || this.configStore.appearance?.dock === 'off') {
// not docked, visible
setTimeout(() => {
this.window.show()
this.window.focus()
})
} else {
if (this.configStore.appearance?.dockAlwaysOnTop) {
// docked, visible, on top
this.window.hide()
} else {
// docked, visible, not on top
this.window.focus()
}
if (this.isDockedOnTop()) {
await this.enableDockedWindowStyles(false)
}
}
this.window.blur()
this.window.hide()
}
async show (): Promise<void> {
await this.enableDockedWindowStyles(this.isDockedOnTop())
this.window.show()
this.window.focus()
}
async present (): Promise<void> {
await this.show()
this.window.moveTop()
}
passCliArguments (argv: string[], cwd: string, secondInstance: boolean): void {
this.send('cli', parseArgs(argv, cwd), cwd, secondInstance)
}
private async enableDockedWindowStyles (enabled: boolean) {
if (process.platform === 'darwin') {
if (enabled) {
if (!this.dockHidden) {
app.dock.hide()
this.dockHidden = true
}
this.window.setAlwaysOnTop(true, 'screen-saver', 1)
if (!this.window.isVisibleOnAllWorkspaces()) {
this.window.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true })
}
if (this.window.fullScreenable) {
this.window.setFullScreenable(false)
}
} else {
if (this.dockHidden) {
await app.dock.show()
this.dockHidden = false
}
if (this.window.isAlwaysOnTop()) {
this.window.setAlwaysOnTop(false)
}
if (this.window.isVisibleOnAllWorkspaces()) {
this.window.setVisibleOnAllWorkspaces(false)
}
if (!this.window.fullScreenable) {
this.window.setFullScreenable(true)
}
}
}
}
private setupWindowManagement () {
this.window.on('show', () => {
this.visible.next(true)
@@ -271,6 +303,9 @@ export class Window {
this.window.on('enter-full-screen', () => this.send('host:window-enter-full-screen'))
this.window.on('leave-full-screen', () => this.send('host:window-leave-full-screen'))
this.window.on('maximize', () => this.send('host:window-maximized'))
this.window.on('unmaximize', () => this.send('host:window-unmaximized'))
this.window.on('close', event => {
if (!this.closing) {
event.preventDefault()
@@ -309,7 +344,7 @@ export class Window {
config: this.configStore,
executable: app.getPath('exe'),
windowID: this.window.id,
isFirstWindow: this.window.id === 1,
isMainWindow: this.isMainWindow,
userPluginsPath: this.application.userPluginsPath,
})
})
@@ -356,8 +391,7 @@ export class Window {
if (this.window.isMinimized()) {
this.window.restore()
}
this.window.show()
this.window.moveTop()
this.present()
})
ipcMain.on('window-close', event => {
@@ -384,7 +418,7 @@ export class Window {
let moveEndedTimeout: any = null
const onBoundsChange = () => {
if (!this.lastVibrancy?.enabled || !this.disableVibrancyWhileDragging) {
if (!this.lastVibrancy?.enabled || !this.disableVibrancyWhileDragging || !this.isFluentVibrancy) {
return
}
this.setVibrancy(false, undefined, false)
@@ -397,6 +431,18 @@ export class Window {
}
this.window.on('move', onBoundsChange)
this.window.on('resize', onBoundsChange)
ipcMain.on('window-set-traffic-light-position', (_event, x, y) => {
this.window.setTrafficLightPosition({ x, y })
})
ipcMain.on('window-set-opacity', (_event, opacity) => {
this.window.setOpacity(opacity)
})
ipcMain.on('window-set-progress-bar', (_event, value) => {
this.window.setProgressBar(value, { mode: value < 0 ? 'none' : 'normal' })
})
}
private destroy () {

View File

@@ -10,41 +10,43 @@
"main": "dist/main.js",
"version": "1.0.0-alpha.1",
"scripts": {
"postinstall": "patch-package",
"build": "webpack --progress --color --display-modules",
"watch": "webpack --progress --color --watch"
},
"dependencies": {
"@angular/cdk": "^12.2.0",
"@electron/remote": "1.2.0",
"@angular/cdk": "^12.2.9",
"@electron/remote": "2.0.1",
"@tabby-gang/node-pty": "^0.11.0-beta.200",
"any-promise": "^1.3.0",
"electron-config": "2.0.0",
"electron-debug": "^3.2.0",
"electron-promise-ipc": "^2.2.4",
"electron-updater": "^4.6.1",
"fontmanager-redux": "1.1.0",
"glasstron": "0.0.7",
"js-yaml": "4.1.0",
"keytar": "^7.7.0",
"mz": "^2.7.0",
"native-process-working-directory": "^1.0.2",
"@tabby-gang/node-pty": "^0.11.0-beta.200",
"npm": "6",
"rxjs": "^7.2.0",
"source-map-support": "^0.5.19",
"rxjs": "^7.5.1",
"source-map-support": "^0.5.20",
"v8-compile-cache": "^2.3.0",
"yargs": "^17.1.0"
"yargs": "^17.3.1"
},
"optionalDependencies": {
"@tabby-gang/windows-blurbehind": "^3.0.0",
"macos-native-processlist": "^2.0.0",
"serialport": "^9.2.0",
"windows-blurbehind": "^1.0.1",
"serialport": "^10.0.2",
"windows-native-registry": "^3.1.0",
"windows-process-tree": "^0.3.0"
"windows-process-tree": "^0.3.2"
},
"devDependencies": {
"@types/mz": "2.7.4",
"@types/node": "16.0.1",
"ngx-filesize": "^2.0.16",
"node-abi": "^2.30.0"
"patch-package": "^6.4.7"
},
"peerDependencies": {
"tabby-community-color-schemes": "*",

View File

@@ -1,7 +1,8 @@
body {
min-height: 100vh;
overflow: hidden;
background: #1D272D;
background: transparent !important;
-webkit-font-smoothing: antialiased;
}
.modal-dialog, .modal-backdrop, .no-drag {
@@ -16,13 +17,17 @@ body {
display: none;
}
.btn {
display: inline-flex;
align-items: center;
flex-wrap: nowrap;
a, button {
&.btn {
display: inline-flex;
align-items: center;
flex-wrap: nowrap;
& > svg {
pointer-events: none;
& > svg {
pointer-events: none;
width: 16px;
height: 16px;
}
}
}
@@ -163,6 +168,10 @@ ngb-typeahead-window {
margin: -7px 0;
}
.content-box {
max-width: 600px;
}
// Windows high contrast mode
@media screen and (forced-colors: active) {

View File

@@ -0,0 +1,7 @@
export const PLUGIN_BLACKLIST = [
'terminus-shell-selector', // superseded by profiles
'terminus-scrollbar', // now useless
'terminus-clickable-links', // now bundled with Tabby
'tabby-clickable-links', // now bundled with Tabby
'terminus-clickable-ips', // broken, functionality now bundled with Tabby
]

View File

@@ -2,6 +2,7 @@ import * as fs from 'mz/fs'
import * as path from 'path'
import * as remote from '@electron/remote'
import { PluginInfo } from '../../tabby-core/src/api/mainProcess'
import { PLUGIN_BLACKLIST } from './pluginBlacklist'
const nodeModule = require('module') // eslint-disable-line @typescript-eslint/no-var-requires
@@ -109,7 +110,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
})
}
for (const packageName of pluginNames) {
if (packageName.startsWith(PREFIX) || packageName.startsWith(LEGACY_PREFIX)) {
if ((packageName.startsWith(PREFIX) || packageName.startsWith(LEGACY_PREFIX)) && !PLUGIN_BLACKLIST.includes(packageName)) {
candidateLocations.push({ pluginDir, packageName })
}
}

View File

@@ -1,3 +1,7 @@
app-root {
background: #1D272D;
}
.preload-logo {
-webkit-app-region: drag;
position: fixed;
@@ -7,7 +11,8 @@
height: 100vh;
display: flex;
animation: 0.5s ease-out fadeIn;
background: radial-gradient(#3a66820a 0%, #000e17 30%, black 100%);
background-image: radial-gradient(#3a66820a 0%, #000e17 30%, black 100%);
background-color: black;
&>div {
width: 200px;

View File

@@ -6,6 +6,7 @@
"declaration": false,
"noImplicitAny": false,
"removeComments": false,
"esModuleInterop": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,

View File

@@ -3,11 +3,13 @@
"baseUrl": "./lib",
"module": "commonjs",
"target": "es2017",
"moduleResolution": "node",
"declaration": false,
"noImplicitAny": false,
"removeComments": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"esModuleInterop": true,
"sourceMap": true,
"noUnusedParameters": true,
"noImplicitReturns": true,

View File

@@ -51,7 +51,7 @@ module.exports = {
'source-map-support': 'commonjs source-map-support',
'windows-swca': 'commonjs windows-swca',
'windows-native-registry': 'commonjs windows-native-registry',
'windows-blurbehind': 'commonjs windows-blurbehind',
'@tabby-gang/windows-blurbehind': 'commonjs @tabby-gang/windows-blurbehind',
'yargs/yargs': 'commonjs yargs/yargs',
},
plugins: [

View File

@@ -2,19 +2,19 @@
# yarn lockfile v1
"@angular/cdk@^12.2.0":
version "12.2.0"
resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-12.2.0.tgz#7c6de53522ef7cf911d86e187f3df2a90e8fee49"
integrity sha512-Dts+KIMz6EdzQxaWBFcNwgWAHVPkI5pnOGMidKKVOmjezSUN6mhfBKq8emgsddJMRAqz/1VHMAEaRkp0VoBKiA==
"@angular/cdk@^12.2.9":
version "12.2.9"
resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-12.2.9.tgz#f39e4d7cdb3568ad8e1d412e3500772e2d4c605c"
integrity sha512-9Wgj69iGAZ4teQqW/zPbVg2RGna+m9i3v0zkWGx/+Uo95rikJCUZBQM4bfeOe+bSJrS77jV5EisBWG7ayNUSzQ==
dependencies:
tslib "^2.2.0"
optionalDependencies:
parse5 "^5.0.0"
"@electron/remote@1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-1.2.0.tgz#772eb4c3ac17aaba5a9cf05a09092f6277f5671f"
integrity sha512-C774t2DFVJsa+dxU9Gc2nYzylRZoJ79I0Sxrh8T9cN69fBkntfGbyBEQiD9UfZopqL0CYLzk1anY2Ywhql6h1w==
"@electron/remote@2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.1.tgz#810cbc595a21f0f94641eb2d7e8264063a3f84de"
integrity sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==
"@iarna/cli@^1.2.0":
version "1.2.0"
@@ -25,76 +25,75 @@
update-notifier "^2.2.0"
yargs "^8.0.2"
"@serialport/binding-abstract@^9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-9.0.7.tgz#d2c7ecea0f100bdf20187bfc0d34ba90f5504e1e"
integrity sha512-g1ncCMIG9rMsxo/28ObYmXZcHThlvtZygsCANmyMUuFS7SwXY4+PhcEnt2+ZcMkEDNRiOklT+ngtIVx5GGpt/A==
"@serialport/binding-abstract@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-10.0.1.tgz#fc5a69b05d364fa7db872b3fe64ae85aaa3030a5"
integrity sha512-FWD/uNrz8V3kaTILQTK05Z1LB/LZin8XZelmX/wd1NNlRFAj6V64MIESWhwUy3iPnL1QriFR1k7URHHx3RRgfg==
dependencies:
debug "^4.3.1"
debug "^4.3.2"
"@serialport/binding-mock@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-9.0.7.tgz#2fda427adc113320461f33f7426dfca73e8ad1de"
integrity sha512-aR8H+htZwwZZkVb1MdbnNvGWw8eXVRqQ2qPhkbKyx0N/LY5aVIgCgT98Kt1YylLsG7SzNG+Jbhd4wzwEuPVT5Q==
"@serialport/binding-mock@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-10.0.1.tgz#b70747c897b861fe7d090f0350f0dc5a37f36b70"
integrity sha512-cU+UtCaQI1ZOWzIa4uT7Z0ymgAyQMSwEBF/BM87LtQ9QFjLwCgmuouy3vcsryWNEN3Lg0GwhQzl9ZuDw4bs/qw==
dependencies:
"@serialport/binding-abstract" "^9.0.7"
debug "^4.3.1"
"@serialport/binding-abstract" "10.0.1"
debug "^4.3.2"
"@serialport/bindings@^9.2.0":
version "9.2.0"
resolved "https://registry.yarnpkg.com/@serialport/bindings/-/bindings-9.2.0.tgz#de6df688d0ff99bdbb86ea6db412562cb2d9ebe7"
integrity sha512-s9EKHDZjLHipHhypxy6pz2XsoI1fPiOGU+X13AIGdQfoe7I6piEyhJ2znNgXMugMe43OxNk0/CmuVMzzcw1lmQ==
"@serialport/bindings-cpp@^10.2.1":
version "10.2.1"
resolved "https://registry.yarnpkg.com/@serialport/bindings-cpp/-/bindings-cpp-10.2.1.tgz#e44a246142c11c83f0e4fd0cd16491702e6c3202"
integrity sha512-PCnMBdy53/DLYx8dJg4e8Na1hMVGxE0d60IU6i03+k5SEmtPblixvIyytcllFhMRGQmH2zHHjP/2Big2Rjddwg==
dependencies:
"@serialport/binding-abstract" "^9.0.7"
"@serialport/parser-readline" "^9.0.7"
bindings "^1.5.0"
debug "^4.3.1"
nan "^2.14.2"
prebuild-install "^6.0.1"
"@serialport/binding-abstract" "10.0.1"
"@serialport/parser-readline" "10.0.1"
debug "^4.3.2"
node-addon-api "4.2.0"
node-gyp-build "^4.3.0"
"@serialport/parser-byte-length@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-9.0.7.tgz#9e362bba70eeffcd2eb0804afeca4bb1dee59d5f"
integrity sha512-evf7oOOSBMBn2AZZbgBFMRIyEzlsyQkhqaPm7IBCPTxMDXRf4tKkFYJHYZB0/6d1W4eI0meH079UqmSsh/uoDA==
"@serialport/parser-byte-length@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-10.0.1.tgz#c9038449e82e2f36093e7d3efe3ca16c6e357f3d"
integrity sha512-uOQa0KEGT7IIGSWCN53NE5ZYaWoeeGLDCSX+ssDadyQxy47hMHuP/JotdWqHg7lDwxUHe0tDl4SOEeEnDx1l6A==
"@serialport/parser-cctalk@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-9.0.7.tgz#fa0e1539f067aced22a5ef7d64fdac14f1a6a4d3"
integrity sha512-ert5jhMkeiTfr44TkbdySC09J8UwAsf/RxBucVN5Mz5enG509RggnkfFi4mfj3UCG2vZ7qsmM6gtZ62DshY02Q==
"@serialport/parser-cctalk@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-10.0.1.tgz#df3c26886e920a45e17aba563b44324f5c1906b8"
integrity sha512-boVr8akjX/7iCtMHeFT16ek4m0/oV9YA6A2mstVCpKle2op42qByx3jY5RzQ52c13oQvq1E6tG0lWJrzdTK+Yw==
"@serialport/parser-delimiter@9.0.7", "@serialport/parser-delimiter@^9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-9.0.7.tgz#7bef2447d4282dd00dc659719b310edeb30ff294"
integrity sha512-Vb2NPeXPZ/28M4m5x4OAHFd8jRAeddNCgvL+Q+H/hqFPY1w47JcMLchC7pigRW8Cnt1fklmzfwdNQ8Fb+kMkxQ==
"@serialport/parser-delimiter@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-10.0.1.tgz#bb0a04e140bf428d5b49e7838b9f136c40b4a091"
integrity sha512-B0c6dm9UCpRU/LhkvRFL3OSbs69VqWU7mjW7tM109JDNS+vw8uJPumXz8Giub6D0xl90J7euH6tBTqERk7048Q==
"@serialport/parser-inter-byte-timeout@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-9.0.7.tgz#55b315b49d8ad37f981ba69bb9443f25c96aec17"
integrity sha512-lUZ3cwgUluBvJ1jf+0LQsqoiPYAokDO6+fRCw9HCfnrF/OS60Gm4rxuyo2uQIueqZkJ7NIFP+ibKsULrA47AEA==
"@serialport/parser-inter-byte-timeout@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.0.1.tgz#bbae1835a0ad0ea6e79dcb27f159231b7051a73a"
integrity sha512-awX0bekMZkjb+kjBHsnizAXNfc/grxIqEKdy9Etc6KhgSmratRnjGa7J0rPFP4bTzYWp5sOqlI0ALwBnWCXedA==
"@serialport/parser-readline@9.0.7", "@serialport/parser-readline@^9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-9.0.7.tgz#8b096028170fb2644bcf0f997d534a344cfd00e6"
integrity sha512-ydoLbgVQQPxWrwbe3Fhh4XnZexbkEQAC6M/qgRTzjnKvTjrD61CJNxLc3vyDaAPI9bJIhTiI7eTX3JB5jJv8Hg==
"@serialport/parser-readline@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-10.0.1.tgz#c4f7f047d4779c908cfb66d14c0ca0abd7e11f25"
integrity sha512-jdKPNka/Nn17k89T5UIyis39EaZHQCmq+83s0icBt2iPBlX8+BrJAUBe8myFpuT22qskTVNzFoTMPOp8pjK/yw==
dependencies:
"@serialport/parser-delimiter" "^9.0.7"
"@serialport/parser-delimiter" "10.0.1"
"@serialport/parser-ready@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-9.0.7.tgz#d9eb9801c6003fdb1450c557f3e256a188a9f3be"
integrity sha512-3qYhI4cNUPAYqVYvdwV57Y+PVRl4dJf1fPBtMoWtwDgwopsAXTR93WCs49WuUq9JCyNW+8Hrfqv8x8eNAD5Dqg==
"@serialport/parser-ready@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-10.0.1.tgz#497c4ae0bcc1866b488d8c4f9d6b4e98c4f08aa3"
integrity sha512-4hVDrKNJBd0wcCfa1qQAk+MM6mVWc9oIbUPEKJkWdBrrWOqYacx2UpvQWd+3YGJ04hFqEv1feOSaH3/1hUifEg==
"@serialport/parser-regex@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-9.0.7.tgz#d8a02e3a169faa2f6604e8293832cc676b865f48"
integrity sha512-5XF+FXbhqQ/5bVKM4NaGs1m+E9KjfmeCx/obwsKaUZognQF67jwoTfjJJWNP/21jKfxdl8XoCYjZjASl3XKRAw==
"@serialport/parser-regex@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-10.0.1.tgz#bcb302dda0a9d07ce9b3e554e3d2a41abf3fb5c5"
integrity sha512-l8ECuUsan33x5pirQZodlmw0q70Jcxy+oHnXJaqchBTRCbtXlE7+PMFJnmNoIHGqDwt0XALbwpvKcnNBrgvT1g==
"@serialport/stream@9.0.7":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-9.0.7.tgz#0bf023eb0233a714fcc5a86de09e381e466d9882"
integrity sha512-c/h7HPAeFiryD9iTGlaSvPqHFHSZ0NMQHxC4rcmKS2Vu3qJuEtkBdTLABwsMp7iWEiSnI4KC3s7bHapaXP06FQ==
"@serialport/stream@10.0.2":
version "10.0.2"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-10.0.2.tgz#3a242ea8a42356af9e4fb0924ca4a4a0efd36e37"
integrity sha512-ZlC1M8/+hIO4JYI+cwJMAL2gkdf6Ahcen5gHJhM1Ibj40fRPOtxIWR1vgGFY1a/TKADDUZorE4RVYxmbheeZYw==
dependencies:
debug "^4.3.1"
debug "^4.3.2"
"@tabby-gang/node-pty@^0.11.0-beta.200":
version "0.11.0-beta.200"
@@ -103,6 +102,13 @@
dependencies:
nan "^2.14.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"
integrity sha512-ah6eJcoQZWOZfu9sd2pWlOJmfl1v+2EZQMeIp7MWvg+/16WS16UFNdnOtlV6AUiABHfZo2QKfCNUEuorCM+Q2A==
dependencies:
"@types/node" "^10.12.18"
"@types/mz@2.7.4":
version "2.7.4"
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-2.7.4.tgz#f9d1535cb5171199b28ae6abd6ec29e856551401"
@@ -115,6 +121,21 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.0.1.tgz#70cedfda26af7a2ca073fdcc9beb2fff4aa693f8"
integrity sha512-hBOx4SUlEPKwRi6PrXuTGw1z6lz0fjsibcWCM378YxsSu/6+C30L6CR49zIBKHiwNWCYIcOLjg4OHKZaFeLAug==
"@types/node@^10.12.18":
version "10.17.60"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==
"@types/semver@^7.3.6":
version "7.3.9"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc"
integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==
"@yarnpkg/lockfile@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
JSONStream@^1.3.4, JSONStream@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -186,6 +207,11 @@ ansi-regex@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz"
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -304,13 +330,6 @@ bin-links@^1.1.2, bin-links@^1.1.8:
npm-normalize-package-bin "^1.0.0"
write-file-atomic "^2.3.0"
bindings@^1.5.0:
version "1.5.0"
resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
dependencies:
file-uri-to-path "1.0.0"
bl@^4.0.3:
version "4.0.3"
resolved "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz"
@@ -346,6 +365,13 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
braces@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
dependencies:
fill-range "^7.0.1"
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -359,6 +385,14 @@ buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
builder-util-runtime@8.9.1:
version "8.9.1"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==
dependencies:
debug "^4.3.2"
sax "^1.2.4"
builtins@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz"
@@ -428,7 +462,7 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
chalk@^2.0.1:
chalk@^2.0.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -655,6 +689,17 @@ cross-spawn@^5.0.1:
shebang-command "^1.2.0"
which "^1.2.9"
cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
dependencies:
nice-try "^1.0.4"
path-key "^2.0.1"
semver "^5.5.0"
shebang-command "^1.2.0"
which "^1.2.9"
crypto-random-string@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
@@ -686,10 +731,10 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
debug@^4.0.1, debug@^4.3.1:
version "4.3.1"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
debug@^4.0.1, debug@^4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
dependencies:
ms "2.1.2"
@@ -852,6 +897,20 @@ electron-promise-ipc@^2.2.4:
serialize-error "^5.0.0"
uuid "^3.0.1"
electron-updater@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.1.tgz#80ca805c4f51b2e682aac29d18fed75d6a533d32"
integrity sha512-YsU1mHqXLrXXmBMsxhxy24PrbaB8rnpZDPmFa2gOkTYk/Ch13+R0fjsRSpPYvqtskVVY0ux8fu+HnUkVkqc7og==
dependencies:
"@types/semver" "^7.3.6"
builder-util-runtime "8.9.1"
fs-extra "^10.0.0"
js-yaml "^4.1.0"
lazy-val "^1.0.5"
lodash.escaperegexp "^4.1.2"
lodash.isequal "^4.5.0"
semver "^7.3.5"
emoji-regex@^7.0.1:
version "7.0.3"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
@@ -997,16 +1056,18 @@ figgy-pudding@^3.4.1, figgy-pudding@^3.5.1:
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
file-uri-to-path@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
"filesize@>= 4.0.0":
version "6.3.0"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.3.0.tgz#dff53cfb3f104c9e422f346d53be8dbcc971bf11"
integrity sha512-ytx0ruGpDHKWVoiui6+BY/QMNngtDQ/pJaFwfBpQif0J63+E8DLdFyqS3NkKQn7vIruUEpoGD9JUJSg7Kp+I0g==
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
dependencies:
to-regex-range "^5.0.1"
find-npm-prefix@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf"
@@ -1026,6 +1087,13 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
find-yarn-workspace-root@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd"
integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==
dependencies:
micromatch "^4.0.2"
flush-write-stream@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
@@ -1076,7 +1144,25 @@ fs-constants@^1.0.0:
resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
fs-minipass@^1.2.5:
fs-extra@^10.0.0:
version "10.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
universalify "^2.0.0"
fs-extra@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
dependencies:
graceful-fs "^4.1.2"
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-minipass@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
@@ -1240,6 +1326,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.2
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz"
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.8"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz"
@@ -1425,6 +1516,13 @@ is-ci@^1.0.10:
dependencies:
ci-info "^1.5.0"
is-ci@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
dependencies:
ci-info "^2.0.0"
is-cidr@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.1.1.tgz#e92ef121bdec2782271a77ce487a8b8df3718ab7"
@@ -1444,6 +1542,11 @@ is-date-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
is-docker@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
is-electron-renderer@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-electron-renderer/-/is-electron-renderer-2.0.1.tgz#a469d056f975697c58c98c6023eb0aa79af895a2"
@@ -1484,6 +1587,11 @@ is-npm@^1.0.0:
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ=
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
is-obj@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz"
@@ -1530,6 +1638,13 @@ is-typedarray@~1.0.0:
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
is-wsl@^2.1.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
dependencies:
is-docker "^2.0.0"
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
@@ -1550,7 +1665,7 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
js-yaml@4.1.0:
js-yaml@4.1.0, js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
@@ -1587,6 +1702,22 @@ json-stringify-safe@~5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
optionalDependencies:
graceful-fs "^4.1.6"
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
dependencies:
universalify "^2.0.0"
optionalDependencies:
graceful-fs "^4.1.6"
jsonparse@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
@@ -1620,6 +1751,13 @@ keytar@^7.7.0:
node-addon-api "^3.0.0"
prebuild-install "^6.0.0"
klaw-sync@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==
dependencies:
graceful-fs "^4.1.11"
latest-version@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
@@ -1632,6 +1770,11 @@ lazy-property@~1.0.0:
resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147"
integrity sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=
lazy-val@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d"
integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
@@ -1838,6 +1981,16 @@ lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0:
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
lodash.escaperegexp@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
lodash.union@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
@@ -1873,6 +2026,13 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
dependencies:
yallist "^4.0.0"
macos-native-processlist@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/macos-native-processlist/-/macos-native-processlist-2.0.0.tgz"
@@ -1916,6 +2076,14 @@ mem@^1.1.0:
dependencies:
mimic-fn "^1.0.0"
micromatch@^4.0.2:
version "4.0.4"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
dependencies:
braces "^3.0.1"
picomatch "^2.2.3"
mime-db@1.44.0:
version "1.44.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz"
@@ -1950,7 +2118,7 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
minipass@^2.3.5, minipass@^2.6.0, minipass@^2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
@@ -1958,7 +2126,7 @@ minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
safe-buffer "^5.1.2"
yallist "^3.0.0"
minizlib@^1.2.1:
minizlib@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
@@ -1986,7 +2154,7 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz"
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0:
mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -2034,7 +2202,7 @@ mz@^2.7.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
nan@^2.13.2, nan@^2.14.0, nan@^2.14.2:
nan@^2.13.2, nan@^2.14.0:
version "2.14.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
@@ -2059,10 +2227,15 @@ ngx-filesize@^2.0.16:
filesize ">= 4.0.0"
tslib "^2.0.0"
node-abi@^2.20.0, node-abi@^2.30.0, node-abi@^2.7.0:
version "2.30.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.0.tgz#8be53bf3e7945a34eea10e0fc9a5982776cf550b"
integrity sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-abi@^2.20.0, node-abi@^2.7.0:
version "2.30.1"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
dependencies:
semver "^5.4.1"
@@ -2071,6 +2244,11 @@ node-addon-api@3.0.0:
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz"
integrity sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==
node-addon-api@4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87"
integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==
node-addon-api@^3.0.0, node-addon-api@^3.0.2, node-addon-api@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz"
@@ -2085,6 +2263,11 @@ 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@^5.0.2, node-gyp@^5.1.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"
@@ -2430,6 +2613,14 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0:
dependencies:
wrappy "1"
open@^7.4.2:
version "7.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
dependencies:
is-docker "^2.0.0"
is-wsl "^2.1.1"
opener@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
@@ -2449,7 +2640,7 @@ os-locale@^2.0.0:
lcid "^1.0.0"
mem "^1.1.0"
os-tmpdir@^1.0.0:
os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
@@ -2572,6 +2763,25 @@ parse5@^5.0.0:
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
patch-package@^6.4.7:
version "6.4.7"
resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.4.7.tgz#2282d53c397909a0d9ef92dae3fdeb558382b148"
integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==
dependencies:
"@yarnpkg/lockfile" "^1.1.0"
chalk "^2.4.2"
cross-spawn "^6.0.5"
find-yarn-workspace-root "^2.0.0"
fs-extra "^7.0.1"
is-ci "^2.0.0"
klaw-sync "^6.0.0"
minimist "^1.2.0"
open "^7.4.2"
rimraf "^2.6.3"
semver "^5.6.0"
slash "^2.0.0"
tmp "^0.0.33"
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
@@ -2587,15 +2797,15 @@ path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2:
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
path-key@^2.0.0:
path-key@^2.0.0, path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-type@^2.0.0:
version "2.0.0"
@@ -2609,6 +2819,11 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
picomatch@^2.2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -2626,7 +2841,7 @@ pkg-up@^2.0.0:
dependencies:
find-up "^2.1.0"
prebuild-install@^6.0.0, prebuild-install@^6.0.1:
prebuild-install@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d"
integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==
@@ -2967,14 +3182,14 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
rxjs@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.2.0.tgz#5cd12409639e9514a71c9f5f9192b2c4ae94de31"
integrity sha512-aX8w9OpKrQmiPKfT1bqETtUr9JygIz6GZ+gql8v7CijClsP0laoFUdKzxFAoWuRdSlOdU2+crss+cMf+cqMTnw==
rxjs@^7.5.1:
version "7.5.1"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.1.tgz#af73df343cbcab37628197f43ea0c8256f54b157"
integrity sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==
dependencies:
tslib "~2.1.0"
tslib "^2.1.0"
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0:
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -2989,6 +3204,11 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
@@ -2996,11 +3216,18 @@ semver-diff@^2.0.0:
dependencies:
semver "^5.0.3"
"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1:
"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@^7.3.5:
version "7.3.5"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
dependencies:
lru-cache "^6.0.0"
serialize-error@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac"
@@ -3008,22 +3235,22 @@ serialize-error@^5.0.0:
dependencies:
type-fest "^0.8.0"
serialport@^9.2.0:
version "9.2.0"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-9.2.0.tgz#17a8364979f3c06a54a7bf4e8cbb8ebc91e54511"
integrity sha512-C6AQ4jD4mre3tn3QA+atn++mEZDh4r40CIeh1sKhskKE+Q4eiIr/nzVMOiPxHb8gskrSNxujH+Br49tl3i9s9g==
serialport@^10.0.2:
version "10.0.2"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-10.0.2.tgz#64150fd2cd4cec35a88e0b8af66614a42b06e577"
integrity sha512-hFQ6V/LFh0G4FmQsPjQCLqofalpHRWznXVA3lKlA19kUkdQrOmsz3CHQ72mPglbY+1PGGHZwXHPdTROtWP4qsA==
dependencies:
"@serialport/binding-mock" "9.0.7"
"@serialport/bindings" "^9.2.0"
"@serialport/parser-byte-length" "9.0.7"
"@serialport/parser-cctalk" "9.0.7"
"@serialport/parser-delimiter" "9.0.7"
"@serialport/parser-inter-byte-timeout" "9.0.7"
"@serialport/parser-readline" "9.0.7"
"@serialport/parser-ready" "9.0.7"
"@serialport/parser-regex" "9.0.7"
"@serialport/stream" "9.0.7"
debug "^4.3.1"
"@serialport/binding-mock" "10.0.1"
"@serialport/bindings-cpp" "^10.2.1"
"@serialport/parser-byte-length" "10.0.1"
"@serialport/parser-cctalk" "10.0.1"
"@serialport/parser-delimiter" "10.0.1"
"@serialport/parser-inter-byte-timeout" "10.0.1"
"@serialport/parser-readline" "10.0.1"
"@serialport/parser-ready" "10.0.1"
"@serialport/parser-regex" "10.0.1"
"@serialport/stream" "10.0.2"
debug "^4.3.2"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
@@ -3068,6 +3295,11 @@ simple-get@^3.0.3:
once "^1.3.1"
simple-concat "^1.0.0"
slash@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
slide@^1.1.6, slide@~1.1.3, slide@~1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
@@ -3107,10 +3339,10 @@ sorted-union-stream@~2.1.3:
from2 "^1.3.0"
stream-iterate "^1.1.0"
source-map-support@^0.5.19:
version "0.5.19"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
source-map-support@^0.5.20:
version "0.5.20"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -3225,14 +3457,14 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
string-width@^4.1.0, string-width@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz"
integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.0"
strip-ansi "^6.0.1"
string.prototype.trimend@^1.0.1:
version "1.0.3"
@@ -3295,6 +3527,13 @@ strip-ansi@^6.0.0:
dependencies:
ansi-regex "^5.0.0"
strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -3339,17 +3578,17 @@ tar-stream@^2.1.4:
readable-stream "^3.1.1"
tar@^4.4.10, tar@^4.4.12, tar@^4.4.13:
version "4.4.13"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
version "4.4.19"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"
integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==
dependencies:
chownr "^1.1.1"
fs-minipass "^1.2.5"
minipass "^2.8.6"
minizlib "^1.2.1"
mkdirp "^0.5.0"
safe-buffer "^5.1.2"
yallist "^3.0.3"
chownr "^1.1.4"
fs-minipass "^1.2.7"
minipass "^2.9.0"
minizlib "^1.3.3"
mkdirp "^0.5.5"
safe-buffer "^5.2.1"
yallist "^3.1.1"
term-size@^1.2.0:
version "1.2.0"
@@ -3400,6 +3639,20 @@ tiny-relative-date@^1.3.0:
resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz"
integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
dependencies:
os-tmpdir "~1.0.2"
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
dependencies:
is-number "^7.0.0"
tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz"
@@ -3408,15 +3661,10 @@ tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
tslib@^2.0.0, tslib@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tslib@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
tslib@^2.0.0, tslib@^2.1.0, tslib@^2.2.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
tunnel-agent@^0.6.0:
version "0.6.0"
@@ -3471,6 +3719,16 @@ unique-string@^1.0.0:
dependencies:
crypto-random-string "^1.0.0"
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
universalify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -3600,11 +3858,6 @@ widest-line@^2.0.0:
dependencies:
string-width "^2.1.1"
windows-blurbehind@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/windows-blurbehind/-/windows-blurbehind-1.0.1.tgz#ff098713873304e38330b2c54cc41bb369b587b9"
integrity sha512-1HzHfCiM1ayrbACJu5qE9zELV24uX/tINT6kxaZwLY3rtQAoeav6x9z7LFHWoLaGDN/sYbnK+9Vk0cz7fsk5HQ==
windows-native-registry@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/windows-native-registry/-/windows-native-registry-3.1.0.tgz#909ef3254519fdec57d2f149ac59a2c9dc84419a"
@@ -3612,10 +3865,10 @@ windows-native-registry@^3.1.0:
dependencies:
node-addon-api "^3.1.0"
windows-process-tree@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.3.0.tgz#cf0d9291b22fba2a7f5a687c8272866e28fbcafd"
integrity sha512-0bKI4gcd5MOsOpn2TdStCSlnjThtH6BdHrocekY9qCgTqgEtdaUs0B5BaqyzF9jXoTSwz38NMdE1F55o4fgv9Q==
windows-process-tree@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.3.2.tgz#8c39f39e7707e09fd74638a7ef644b5f389096d3"
integrity sha512-x8Y4KOV8tUhhPiO0TH7wOMTZ677rw7VEwq+dTuHHiLTClkrNXWSY3XzP6ez3fs2Cab4FajrtmiqRs0jTMZHfyw==
dependencies:
nan "^2.13.2"
@@ -3703,11 +3956,16 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yargs-parser@^15.0.1:
version "15.0.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3"
@@ -3716,10 +3974,10 @@ yargs-parser@^15.0.1:
camelcase "^5.0.0"
decamelize "^1.2.0"
yargs-parser@^20.2.2:
version "20.2.7"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
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@^7.0.0:
version "7.0.0"
@@ -3745,18 +4003,18 @@ yargs@^14.2.3:
y18n "^4.0.0"
yargs-parser "^15.0.1"
yargs@^17.1.0:
version "17.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.0.tgz#0cd9827a0572c9a1795361c4d1530e53ada168cf"
integrity sha512-SQr7qqmQ2sNijjJGHL4u7t8vyDZdZ3Ahkmo4sc1w5xI9TBX0QDdG/g4SFnxtWOsGLjwHQue57eFALfwFCnixgg==
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==
dependencies:
cliui "^7.0.2"
escalade "^3.1.1"
get-caller-file "^2.0.5"
require-directory "^2.1.1"
string-width "^4.2.0"
string-width "^4.2.3"
y18n "^5.0.5"
yargs-parser "^20.2.2"
yargs-parser "^21.0.0"
yargs@^8.0.2:
version "8.0.2"

View File

@@ -40,13 +40,13 @@ publish:
win:
icon: "./build/windows/icon.ico"
artifactName: tabby-${version}-portable.${ext}
rfc3161TimeStampServer: http://sha256timestamp.ws.symantec.com/sha256/timestamp
rfc3161TimeStampServer: http://timestamp.sectigo.com
nsis:
oneClick: false
artifactName: tabby-${version}-setup.${ext}
installerIcon: "./build/windows/icon.ico"
allowToChangeInstallationDirectory: true
shortcutName: Tabby Terminal
mac:
category: public.app-category.video
icon: "./build/mac/icon.icns"
@@ -66,7 +66,7 @@ mac:
NSRemovableVolumesUsageDescription: 'A subprocess requests access to files on a removable volume.'
linux:
category: Utility
category: "Utility;TerminalEmulator;System"
icon: "./build/icons"
artifactName: tabby-${version}-linux.${ext}
executableArgs:
@@ -85,7 +85,6 @@ deb:
- gnome-keyring
- libnotify4
- libsecret-1-0
- libappindicator1
- libxtst6
- libnss3
afterInstall: build/linux/after-install.tpl

Binary file not shown.

10
firebase.json Normal file
View File

@@ -0,0 +1,10 @@
{
"hosting": {
"public": "docs/api",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}

3
locale/STOP.txt Normal file
View File

@@ -0,0 +1,3 @@
Do not submit pull requests for translations.
Translations are managed at https://crowdin.com/project/tabby

1490
locale/app.pot Normal file

File diff suppressed because it is too large Load Diff

1462
locale/de-DE.po Normal file

File diff suppressed because it is too large Load Diff

1489
locale/es-ES.po Normal file

File diff suppressed because it is too large Load Diff

1489
locale/fr-FR.po Normal file

File diff suppressed because it is too large Load Diff

1462
locale/hr-HR.po Normal file

File diff suppressed because it is too large Load Diff

1462
locale/pl-PL.po Normal file

File diff suppressed because it is too large Load Diff

1462
locale/ru-RU.po Normal file

File diff suppressed because it is too large Load Diff

1489
locale/zh-CN.po Normal file

File diff suppressed because it is too large Load Diff

1489
locale/zh-TW.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -7,79 +7,87 @@
"@angular/forms": "^12.0.0",
"@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.0.0",
"@fortawesome/fontawesome-free": "^5.15.4",
"@biesbjerg/ngx-translate-extract": "^7.0.4",
"@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
"@fortawesome/fontawesome-free": "^6.0.0-beta3",
"@ng-bootstrap/ng-bootstrap": "^10.0.0",
"@sentry/cli": "^1.67.2",
"@sentry/electron": "^2.5.1",
"@sentry/cli": "^1.71.0",
"@sentry/electron": "^2.5.4",
"@tabby-gang/to-string-loader": "^1.1.7-beta.2",
"@types/deep-equal": "1.0.1",
"@types/electron-config": "^3.2.2",
"@types/electron-debug": "^2.1.0",
"@types/fs-extra": "^9.0.12",
"@types/js-yaml": "^4.0.2",
"@types/js-yaml": "^4.0.5",
"@types/node": "16.0.1",
"@types/sortablejs": "^1.10.7",
"@types/webpack-env": "^1.16.2",
"@typescript-eslint/eslint-plugin": "^4.29.0",
"@typescript-eslint/parser": "^4.28.5",
"@types/webpack-env": "^1.16.3",
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"apply-loader": "2.0.0",
"axios": "^0.21.1",
"axios": "^0.21.2",
"browserify-sign": "^4.2.1",
"clone-deep": "^4.0.1",
"compare-versions": "^3.6.0",
"core-js": "^3.15.2",
"compare-versions": "^4",
"core-js": "^3.18.2",
"cross-env": "7.0.3",
"css-loader": "^6.2.0",
"electron": "13.1.9",
"electron-builder": "22.10.5",
"css-loader": "^6.5.1",
"deep-equal": "2.0.5",
"electron": "16.0.8",
"electron-builder": "^22.14.5",
"electron-download": "^4.1.1",
"electron-installer-snap": "^5.1.0",
"electron-notarize": "^1.0.1",
"electron-rebuild": "^3.1.1",
"electron-notarize": "^1.1.1",
"electron-rebuild": "^3.2.7",
"eslint": "^7.32.0",
"eslint-plugin-import": "^2.23.4",
"file-loader": "^6.2.0",
"graceful-fs": "^4.2.8",
"graceful-fs": "^4.2.9",
"html-loader": "2.1.2",
"json-loader": "0.5.7",
"json-loader": "^0.5.7",
"lru-cache": "^6.0.0",
"macos-release": "^3.0.0",
"macos-release": "^3.0.1",
"ngx-sortablejs": "^11.1.0",
"ngx-toastr": "^14.0.0",
"node-abi": "^2.30.0",
"node-sass": "^6.0.1",
"npmlog": "5.0.0",
"node-abi": "^3.2.0",
"node-sass": "^7.0.1",
"npmlog": "6.0.0",
"npx": "^10.2.2",
"patch-package": "^6.4.7",
"pug": "^3.0.2",
"po-gettext-loader": "^1.0.0",
"pug": "3",
"pug-cli": "^1.0.0-alpha6",
"pug-html-loader": "1.1.5",
"pug-lint": "^2.6.0",
"pug-loader": "^2.4.0",
"pug-static-loader": "2.0.0",
"raw-loader": "4.0.2",
"sass-loader": "^12.1.0",
"shell-quote": "^1.7.2",
"shelljs": "0.8.4",
"slugify": "^1.6.0",
"sass-loader": "^12.4.0",
"shell-quote": "^1.7.3",
"shelljs": "0.8.5",
"slugify": "^1.6.5",
"sortablejs": "^1.14.0",
"source-code-pro": "^2.38.0",
"source-map-loader": "^3.0.0",
"source-map-loader": "^3.0.1",
"source-sans-pro": "3.6.0",
"ssh2": "^1.2.0",
"ssh2": "^1.5.0",
"style-loader": "^3.2.1",
"svg-inline-loader": "^0.8.2",
"ts-loader": "^9.2.3",
"tslib": "^2.3.0",
"typedoc": "^0.21.5",
"tslib": "^2.3.1",
"typedoc": "^0.22.10",
"typescript": "^4.3.5",
"utils-decorators": "^1.10.4",
"val-loader": "4.0.0",
"webpack": "^5.50.0",
"webpack-bundle-analyzer": "^4.4.2",
"webpack-cli": "^4.7.0",
"webpack": "^5.67.0",
"webpack-bundle-analyzer": "^4.5.0",
"webpack-cli": "^4.9.2",
"yaml-loader": "0.6.0",
"zone.js": "^0.11.4"
},
"resolutions": {
"*/pug": "^3",
"lzma-native": "^8.0.0",
"*/node-abi": "^2.30.0",
"*/node-abi": "^3.5.0",
"**/graceful-fs": "^4.2.4"
},
"scripts": {
@@ -89,10 +97,12 @@
"start": "cross-env TABBY_DEV=1 electron app --debug --inspect",
"start:prod": "electron app --debug",
"prod": "cross-env TABBY_DEV=1 electron app",
"docs": "typedoc --emit --out docs/api --tsconfig tabby-core/src/tsconfig.typings.json tabby-core/src/index.ts && typedoc --emit --out docs/api/terminal --tsconfig tabby-terminal/tsconfig.typings.json tabby-terminal/src/index.ts && typedoc --emit --out docs/api/local --tsconfig tabby-local/tsconfig.typings.json tabby-local/src/index.ts && typedoc --emit --out docs/api/settings --tsconfig tabby-settings/tsconfig.typings.json tabby-settings/src/index.ts",
"docs": "node scripts/build-docs.js",
"lint": "eslint --ext ts */src */lib",
"postinstall": "node ./scripts/install-deps.js",
"patch": "patch-package; cd web; patch-package"
"postinstall": "patch-package && node ./scripts/install-deps.js",
"i18n:pull": "crowdin pull --skip-untranslated-strings",
"i18n:extract": "node scripts/i18n-extract.js",
"i18n:push": "crowdin push"
},
"private": true
}

View File

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

View File

@@ -0,0 +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
--- a/node_modules/app-builder-lib/out/appInfo.js
+++ b/node_modules/app-builder-lib/out/appInfo.js
@@ -100,9 +100,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'
}
get sanitizedName() {
return filename_1.sanitizeFileName(this.name);

39
patches/ssh2+1.5.0.patch Normal file
View File

@@ -0,0 +1,39 @@
diff --git a/node_modules/ssh2/lib/protocol/keyParser.js b/node_modules/ssh2/lib/protocol/keyParser.js
index 9860e3f..ee82e51 100644
--- a/node_modules/ssh2/lib/protocol/keyParser.js
+++ b/node_modules/ssh2/lib/protocol/keyParser.js
@@ -15,6 +15,7 @@ const {
sign: sign_,
verify: verify_,
} = require('crypto');
+const { createVerify: createVerifyDSS } = require('browserify-sign')
const supportedOpenSSLCiphers = getCiphers();
const { Ber } = require('asn1');
@@ -404,6 +405,17 @@ const BaseKey = {
return new Error('No public key available');
if (!algo || typeof algo !== 'string')
algo = this[SYM_HASH_ALGO];
+
+ if (algo === 'dss1') {
+ const verifier = createVerifyDSS('DSA-SHA1');
+ verifier.update(data);
+ try {
+ return verifier.verify(pem, signature);
+ } catch (ex) {
+ return ex;
+ }
+ }
+
try {
return verify_(algo, data, pem, signature);
} catch (ex) {
@@ -1343,7 +1355,7 @@ function parseDER(data, baseType, comment, fullType) {
return new Error('Malformed OpenSSH public key');
pubPEM = genOpenSSLDSAPub(p, q, g, y);
pubSSH = genOpenSSHDSAPub(p, q, g, y);
- algo = 'sha1';
+ algo = 'dss1';
break;
}
case 'ssh-ed25519': {

9
scripts/build-docs.js Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env node
const sh = require('shelljs')
const vars = require('./vars')
const log = require('npmlog')
vars.packagesWithDocs.forEach(([dest, src]) => {
log.info('docs', src)
sh.exec(`yarn typedoc --out docs/api/${dest} --tsconfig ${src}/tsconfig.typings.json ${src}/src/index.ts`, { fatal: true })
})

View File

@@ -5,5 +5,5 @@ const log = require('npmlog')
vars.builtinPlugins.forEach(plugin => {
log.info('typings', plugin)
sh.exec(`npx tsc --project ${plugin}/tsconfig.typings.json`)
sh.exec(`yarn tsc --project ${plugin}/tsconfig.typings.json`, { fatal: true })
})

27
scripts/i18n-extract.js Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env node
const sh = require('shelljs')
const fs = require('fs/promises')
const vars = require('./vars')
const log = require('npmlog')
const tempOutput = 'locale/app.new.pot'
const pot = 'locale/app.pot'
const tempHtml = 'locale/tmp-html'
;(async () => {
sh.mkdir('-p', tempHtml)
for (const plugin of vars.builtinPlugins) {
log.info('extract-pug', plugin)
sh.exec(`yarn pug --doctype html -s --pretty -O '{require: function(){}}' -o ${tempHtml}/${plugin} ${plugin}`, { fatal: true })
log.info('extract-ts', plugin)
sh.exec(`node node_modules/.bin/ngx-translate-extract -i ${plugin}/src -m -s -f pot -o ${tempOutput}`, { fatal: true })
}
log.info('extract-pug')
sh.exec(`node node_modules/.bin/ngx-translate-extract -i ${tempHtml} -f pot -s -o ${tempOutput}`, { fatal: true })
sh.rm('-r', tempHtml)
await fs.rename(tempOutput, pot)
})()

View File

@@ -1,29 +1,26 @@
#!/usr/bin/env node
const sh = require('shelljs')
const path = require('path')
const vars = require('./vars')
const log = require('npmlog')
const localBinPath = path.resolve(__dirname, '../node_modules/.bin')
const npx = `${localBinPath}/npx`
log.info('patch')
sh.exec(`${npx} patch-package`)
sh.exec(`yarn patch-package`, { fatal: true })
log.info('deps', 'app')
sh.cd('app')
sh.exec(`${npx} yarn install --force`)
sh.exec(`yarn install --force`, { fatal: true })
sh.cd('..')
sh.cd('web')
sh.exec(`${npx} yarn install --force`)
sh.exec(`yarn install --force`, { fatal: true })
sh.exec(`yarn patch-package`, { fatal: true })
sh.cd('..')
vars.allPackages.forEach(plugin => {
log.info('deps', plugin)
sh.cd(plugin)
sh.exec(`${npx} yarn install --force`)
sh.exec(`yarn install --force`, { fatal: true })
sh.cd('..')
})

View File

@@ -11,25 +11,25 @@ sh.mkdir('-p', target)
fs.writeFileSync(path.join(target, 'package.json'), '{}')
sh.cd(target)
vars.builtinPlugins.forEach(plugin => {
if (plugin === 'tabby-web') {
return
}
log.info('install', plugin)
sh.cp('-r', path.join('..', plugin), '.')
sh.rm('-rf', path.join(plugin, 'node_modules'))
sh.cd(plugin)
sh.exec(`yarn install --force --production`)
if (plugin === 'tabby-web') {
return
}
log.info('install', plugin)
sh.cp('-r', path.join('..', plugin), '.')
sh.rm('-rf', path.join(plugin, 'node_modules'))
sh.cd(plugin)
sh.exec(`yarn install --force --production`, { fatal: true })
log.info('rebuild', 'native')
if (fs.existsSync('node_modules')) {
rebuild({
buildPath: path.resolve('.'),
electronVersion: vars.electronVersion,
arch: process.env.ARCH ?? process.arch,
force: true,
})
}
sh.cd('..')
log.info('rebuild', 'native')
if (fs.existsSync('node_modules')) {
rebuild({
buildPath: path.resolve('.'),
electronVersion: vars.electronVersion,
arch: process.env.ARCH ?? process.arch,
force: true,
})
}
sh.cd('..')
})
fs.unlinkSync(path.join(target, 'package.json'), '{}')

View File

@@ -2,11 +2,12 @@
const sh = require('shelljs')
const vars = require('./vars')
const log = require('npmlog')
const { execSync } = require('child_process')
vars.allPackages.forEach(plugin => {
log.info('bump', plugin)
sh.cd(plugin)
sh.exec('npm --no-git-tag-version version ' + vars.version)
sh.exec('npm publish')
sh.exec('npm --no-git-tag-version version ' + vars.version, { fatal: true })
execSync('npm publish', { stdio: 'inherit' })
sh.cd('..')
})

View File

@@ -25,6 +25,14 @@ exports.builtinPlugins = [
'tabby-electron',
'tabby-local',
'tabby-plugin-manager',
'tabby-linkifier',
]
exports.packagesWithDocs = [
['.', 'tabby-core'],
['terminal', 'tabby-terminal'],
['local', 'tabby-local'],
['settings', 'tabby-settings'],
]
exports.allPackages = [

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-community-color-schemes",
"version": "1.0.150",
"version": "1.0.170-nightly.0",
"description": "Community color schemes for Tabby",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -0,0 +1,44 @@
!
! Light Owl
! https://github.com/sdras/night-owl-vscode-theme
!
*.foreground: #403f53
*.background: #fbfbfb
*.cursorColor: #90a7b2
!
! Black
*.color0: #403f53
*.color8: #403f53
!
! Red
*.color1: #de3d3b
*.color9: #de3d3b
!
! Green
*.color2: #08916a
*.color10: #08916a
!
! Yellow
*.color3: #e0af02
*.color11: #daaa01
!
! Blue
*.color4: #288ed7
*.color12: #288ed7
!
! Magenta
*.color5: #d6438a
*.color13: #d6438a
!
! Cyan
*.color6: #2aa298
*.color14: #2aa298
!
! White
*.color7: #f0f0f0
*.color15: #979797
!
! Bold, Italic, Underline
!*.colorBD:
!*.colorIT:
!*.colorUL:

View File

@@ -0,0 +1,44 @@
!
! Night Owl
! https://github.com/sdras/night-owl-vscode-theme
!
*.foreground: #d6deeb
*.background: #011627
*.cursorColor: #80a4c2
!
! Black
*.color0: #011627
*.color8: #969696
!
! Red
*.color1: #ef5350
*.color9: #ef5350
!
! Green
*.color2: #22da6e
*.color10: #22da6e
!
! Yellow
*.color3: #addb67
*.color11: #ffeb95
!
! Blue
*.color4: #82aaff
*.color12: #82aaff
!
! Magenta
*.color5: #c792ea
*.color13: #c792ea
!
! Cyan
*.color6: #21c7a8
*.color14: #7fdbca
!
! White
*.color7: #ffffff
*.color15: #ffffff
!
! Bold, Italic, Underline
!*.colorBD:
!*.colorIT:
!*.colorUL:

View File

@@ -0,0 +1,44 @@
!
! Rosé Pine
! https://rosepinetheme.com/
!
*.foreground: #e0def4
*.background: #191724
*.cursorColor: #555169
!
! Black
*.color0: #26233a
*.color8: #6e6a86
!
! Red
*.color1: #eb6f92
*.color9: #eb6f92
!
! Green
*.color2: #31748f
*.color10: #31748f
!
! Yellow
*.color3: #f6c177
*.color11: #f6c177
!
! Blue
*.color4: #9ccfd8
*.color12: #9ccfd8
! Magenta
*.color5: #c4a7e7
*.color13: #c4a7e7
!
! Cyan
*.color6: #ebbcba
*.color14: #ebbcba
!
! White
*.color7: #e0def4
*.color15: #e0def4
!
! Bold, Italic, Underline
!*.colorBD:
!*.colorIT:
!*.colorUL:

View File

@@ -0,0 +1,44 @@
!
! Rosé Pine Dawn
! https://rosepinetheme.com/
!
*.foreground: #575279
*.background: #faf4ed
*.cursorColor: #9893a5
!
! Black
*.color0: #f2e9de
*.color8: #6e6a86
!
! Red
*.color1: #b4637a
*.color9: #b4637a
!
! Green
*.color2: #286983
*.color10: #286983
!
! Yellow
*.color3: #ea9d34
*.color11: #ea9d34
!
! Blue
*.color4: #56949f
*.color12: #56949f
!
! Magenta
*.color5: #907aa9
*.color13: #907aa9
!
! Cyan
*.color6: #d7827e
*.color14: #d7827e
!
! White
*.color7: #575279
*.color15: #575279
!
! Bold, Italic, Underline
!*.colorBD:
!*.colorIT:
!*.colorUL:

View File

@@ -0,0 +1,44 @@
!
! Rosé Pine Moon
! https://rosepinetheme.com/
!
*.foreground: #e0def4
*.background: #232136
*.cursorColor: #59546d
!
! Black
*.color0: #393552
*.color8: #817c9c
!
! Red
*.color1: #eb6f92
*.color9: #eb6f92
!
! Green
*.color2: #3e8fb0
*.color10: #3e8fb0
!
! Yellow
*.color3: #f6c177
*.color11: #f6c177
!
! Blue
*.color4: #9ccfd8
*.color12: #9ccfd8
!
! Magenta
*.color5: #c4a7e7
*.color13: #c4a7e7
!
! Cyan
*.color6: #ea9a97
*.color14: #ea9a97
!
! White
*.color7: #e0def4
*.color15: #e0def4
!
! Bold, Italic, Underline
!*.colorBD:
!*.colorIT:
!*.colorUL:

View File

@@ -1,7 +1,13 @@
Tabby Core Plugin
--------------------
# Tabby Core Plugin
See also: [Settings plugin API](./settings/), [Terminal plugin API](./terminal/), [Local terminal API](./local/)
See also:
* [Settings plugin API](./settings/)
* [Terminal plugin API](./terminal/)
* [Local terminal API](./local/)
* [Linkifier plugin API](./linkifier/)
This module provides:
* tabbed interface services
* toolbar UI

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-core",
"version": "1.0.150",
"version": "1.0.170-nightly.0",
"description": "Tabby core",
"keywords": [
"tabby-builtin-plugin"
@@ -17,15 +17,15 @@
"author": "Eugene Pankov",
"license": "MIT",
"devDependencies": {
"@types/js-yaml": "^4.0.0",
"@ngx-translate/core": "^14.0.0",
"bootstrap": "^4.1.3",
"deep-equal": "^2.0.5",
"deepmerge": "^4.1.1",
"electron-updater": "^4.0.6",
"js-yaml": "^4.0.0",
"messageformat": "^2.3.0",
"mixpanel": "^0.13.0",
"ngx-filesize": "^2.0.16",
"ngx-perfect-scrollbar": "^10.1.0",
"ngx-translate-messageformat-compiler": "^4.11.0",
"readable-stream": "3.6.0",
"uuid": "^8.0.0"
},

View File

@@ -1,7 +1,7 @@
export { BaseComponent, SubscriptionContainer } from '../components/base.component'
export { BaseTabComponent, BaseTabProcess } from '../components/baseTab.component'
export { BaseTabComponent, BaseTabProcess, GetRecoveryTokenOptions } from '../components/baseTab.component'
export { TabHeaderComponent } from '../components/tabHeader.component'
export { SplitTabComponent, SplitContainer } from '../components/splitTab.component'
export { SplitTabComponent, SplitContainer, SplitDirection, SplitOrientation } from '../components/splitTab.component'
export { TabRecoveryProvider, RecoveryToken } from './tabRecovery'
export { ToolbarButtonProvider, ToolbarButton } from './toolbarButtonProvider'
export { ConfigProvider } from './configProvider'
@@ -25,13 +25,15 @@ export { DockingService, Screen } from '../services/docking.service'
export { Logger, ConsoleLogger, LogService } from '../services/log.service'
export { HomeBaseService } from '../services/homeBase.service'
export { HotkeysService } from '../services/hotkeys.service'
export { KeyEventData, KeyName, Keystroke } from '../services/hotkeys.util'
export { KeyEventData, KeyName, Keystroke, altKeyName, metaKeyName } from '../services/hotkeys.util'
export { NotificationsService } from '../services/notifications.service'
export { ThemesService } from '../services/themes.service'
export { ProfilesService } from '../services/profiles.service'
export { SelectorService } from '../services/selector.service'
export { TabRecoveryService } from '../services/tabRecovery.service'
export { TabsService, NewTabParameters, TabComponentType } from '../services/tabs.service'
export { UpdaterService } from '../services/updater.service'
export { VaultService, Vault, VaultSecret, VaultFileSecret, VAULT_SECRET_TYPE_FILE } from '../services/vault.service'
export { VaultService, Vault, VaultSecret, VaultFileSecret, VAULT_SECRET_TYPE_FILE, StoredVault, VaultSecretKey } from '../services/vault.service'
export { FileProvidersService } from '../services/fileProviders.service'
export { LocaleService, TranslateServiceWrapper as TranslateService } from '../services/locale.service'
export * from '../utils'

View File

@@ -16,7 +16,7 @@ export interface PluginInfo {
export interface BootstrapData {
config: Record<string, any>
executable: string
isFirstWindow: boolean
isMainWindow: boolean
windowID: number
installedPlugins: PluginInfo[]
userPluginsPath: string

View File

@@ -48,6 +48,9 @@ export abstract class FileTransfer {
}
protected increaseProgress (bytes: number): void {
if (!bytes) {
return
}
this.completedBytes += bytes
this.lastChunkSpeed = bytes * 1000 / (Date.now() - this.lastChunkStartTime)
this.lastChunkStartTime = Date.now()

View File

@@ -44,7 +44,7 @@ export abstract class ProfileProvider<P extends Profile> {
abstract getBuiltinProfiles (): Promise<PartialProfile<P>[]>
abstract getNewTabParameters (profile: PartialProfile<P>): Promise<NewTabParameters<BaseTabComponent>>
abstract getNewTabParameters (profile: P): Promise<NewTabParameters<BaseTabComponent>>
getSuggestedName (profile: PartialProfile<P>): string|null {
return null

View File

@@ -1,6 +1,7 @@
export interface SelectorOption<T> {
name: string
description?: string
group?: string
result?: T
icon?: string
freeInputPattern?: string

View File

@@ -1,4 +1,3 @@
import deepClone from 'clone-deep'
import { BaseTabComponent } from '../components/baseTab.component'
import { NewTabParameters } from '../services/tabs.service'
@@ -38,14 +37,4 @@ export abstract class TabRecoveryProvider <T extends BaseTabComponent> {
* or `null` if this token is from a different tab type or is not supported
*/
abstract recover (recoveryToken: RecoveryToken): Promise<NewTabParameters<T>>
/**
* @param recoveryToken a recovery token found in the saved tabs list
* @returns [[RecoveryToken]] a new recovery token to create the duplicate tab from
*
* The default implementation just returns a deep copy of the original token
*/
duplicate (recoveryToken: RecoveryToken): RecoveryToken {
return deepClone(recoveryToken)
}
}

View File

@@ -27,6 +27,10 @@ export interface ToolbarButton {
/** @hidden */
submenuItems?: ToolbarButton[]
showInToolbar?: boolean
showInStartPage?: boolean
}
/**

View File

@@ -1,10 +1,9 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { Injectable } from '@angular/core'
import { TranslateService } from '@ngx-translate/core'
import { ToolbarButton, ToolbarButtonProvider } from './api/toolbarButtonProvider'
import { HostAppService, Platform } from './api/hostApp'
import { PartialProfile, Profile } from './api/profileProvider'
import { ConfigService } from './services/config.service'
import { HotkeysService } from './services/hotkeys.service'
import { ProfilesService } from './services/profiles.service'
@@ -14,7 +13,7 @@ export class ButtonProvider extends ToolbarButtonProvider {
constructor (
private hostApp: HostAppService,
private profilesService: ProfilesService,
private config: ConfigService,
private translate: TranslateService,
hotkeys: HotkeysService,
) {
super()
@@ -28,32 +27,29 @@ export class ButtonProvider extends ToolbarButtonProvider {
async activate () {
const profile = await this.profilesService.showProfileSelector()
if (profile) {
this.launchProfile(profile)
this.profilesService.launchProfile(profile)
}
}
async launchProfile (profile: PartialProfile<Profile>) {
await this.profilesService.openNewTabForProfile(profile)
let recentProfiles = this.config.store.recentProfiles
if (this.config.store.terminal.showRecentProfiles > 0) {
recentProfiles = recentProfiles.filter(x => x.group !== profile.group || x.name !== profile.name)
recentProfiles.unshift(profile)
recentProfiles = recentProfiles.slice(0, this.config.store.terminal.showRecentProfiles)
} else {
recentProfiles = []
}
this.config.store.recentProfiles = recentProfiles
this.config.save()
}
provide (): ToolbarButton[] {
return [{
icon: this.hostApp.platform === Platform.Web
? require('./icons/plus.svg')
: require('./icons/profiles.svg'),
title: 'New tab with profile',
click: () => this.activate(),
}]
return [
{
icon: this.hostApp.platform === Platform.Web
? require('./icons/plus.svg')
: require('./icons/profiles.svg'),
title: this.translate.instant('Profiles & connections'),
click: () => this.activate(),
},
...this.profilesService.getRecentProfiles().map(profile => ({
icon: require('./icons/history.svg'),
title: profile.name,
showInToolbar: false,
showinStartPage: true,
click: async () => {
const p = (await this.profilesService.getProfiles()).find(x => x.id === profile.id) ?? profile
this.profilesService.launchProfile(p)
},
})),
]
}
}

View File

@@ -1,5 +1,6 @@
title-bar(
*ngIf='ready && !hostWindow.isFullscreen && config.store.appearance.frame == "full" && config.store.appearance.dock == "off"',
(dblclick)='hostWindow.toggleMaximize()',
[class.inset]='hostApp.platform == Platform.macOS && !hostWindow.isFullscreen'
)
@@ -8,7 +9,7 @@ title-bar(
[class.tabs-on-top]='config.store.appearance.tabsLocation == "top" || config.store.appearance.tabsLocation == "left"',
[class.tabs-on-side]='hasVerticalTabs()',
)
.tab-bar
.tab-bar((dblclick)='hostWindow.toggleMaximize()')
.inset.background(*ngIf='hostApp.platform == Platform.macOS \
&& !hostWindow.isFullscreen \
&& config.store.appearance.frame == "thin" \
@@ -56,15 +57,20 @@ title-bar(
div([class.ml-3]='hasIcons(button.submenuItems)') {{item.title}}
.d-flex(
*ngIf='activeTransfers.length > 0',
ngbDropdown,
[(open)]='activeTransfersDropdownOpen'
container='body',
#activeTransfersDropdown='ngbDropdown'
)
button.btn.btn-secondary.btn-tab-bar(
*ngIf='activeTransfers.length > 0',
title='File transfers',
ngbDropdownToggle
) !{require('../icons/download-solid.svg')}
transfers-menu(ngbDropdownMenu, [(transfers)]='activeTransfers')
) !{require('../icons/transfers.svg')}
transfers-menu(
ngbDropdownMenu,
[(transfers)]='activeTransfers',
(transfersChange)='onTransfersChange()'
)
.drag-space.background([class.persistent]='config.store.appearance.frame == "thin" && hostApp.platform != Platform.macOS')

View File

@@ -6,7 +6,6 @@
overflow: hidden;
user-select: none;
-webkit-user-drag: none;
-webkit-font-smoothing: antialiased;
will-change: transform;
cursor: default;
animation: 0.5s ease-out fadeIn;
@@ -89,7 +88,7 @@ $side-tab-width: 200px;
padding: 0 12px;
flex: 0 0 auto;
border-bottom: 2px solid transparent;
transition: 0.25s all;
transition: 0.125s all ease-out;
font-size: 12px;
text-transform: uppercase;

View File

@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { Component, Inject, Input, HostListener, HostBinding, ViewChildren } from '@angular/core'
import { Component, Inject, Input, HostListener, HostBinding, ViewChildren, ViewChild } from '@angular/core'
import { trigger, style, animate, transition, state } from '@angular/animations'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { NgbDropdown, NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'
import { HostAppService, Platform } from '../api/hostApp'
@@ -14,6 +14,7 @@ import { UpdaterService } from '../services/updater.service'
import { BaseTabComponent } from './baseTab.component'
import { SafeModeModalComponent } from './safeModeModal.component'
import { TabBodyComponent } from './tabBody.component'
import { SplitTabComponent } from './splitTab.component'
import { AppService, FileTransfer, HostWindowService, PlatformService, ToolbarButton, ToolbarButtonProvider } from '../api'
/** @hidden */
@@ -60,10 +61,10 @@ export class AppRootComponent {
@HostBinding('class.platform-linux') platformClassLinux = process.platform === 'linux'
@HostBinding('class.no-tabs') noTabs = true
@ViewChildren(TabBodyComponent) tabBodies: TabBodyComponent[]
@ViewChild('activeTransfersDropdown') activeTransfersDropdown: NgbDropdown
unsortedTabs: BaseTabComponent[] = []
updatesAvailable = false
activeTransfers: FileTransfer[] = []
activeTransfersDropdownOpen = false
private logger: Logger
constructor (
@@ -108,10 +109,13 @@ export class AppRootComponent {
if (hotkey === 'move-tab-right') {
this.app.moveSelectedTabRight()
}
if (hotkey === 'reopen-tab') {
this.app.reopenLastTab()
if (hotkey === 'duplicate-tab') {
this.app.duplicateTab(this.app.activeTab)
}
}
if (hotkey === 'reopen-tab') {
this.app.reopenLastTab()
}
if (hotkey === 'toggle-fullscreen') {
hostWindow.toggleFullscreen()
}
@@ -144,7 +148,7 @@ export class AppRootComponent {
platform.fileTransferStarted$.subscribe(transfer => {
this.activeTransfers.push(transfer)
this.activeTransfersDropdownOpen = true
this.activeTransfersDropdown.open()
})
config.ready$.toPromise().then(() => {
@@ -193,16 +197,34 @@ export class AppRootComponent {
}
onTabsReordered (event: CdkDragDrop<BaseTabComponent[]>) {
const tab: BaseTabComponent = event.item.data
if (!this.app.tabs.includes(tab)) {
if (tab.parent instanceof SplitTabComponent) {
tab.parent.removeTab(tab)
this.app.wrapAndAddTab(tab)
}
}
moveItemInArray(this.app.tabs, event.previousIndex, event.currentIndex)
this.app.emitTabsChanged()
}
onTransfersChange () {
if (this.activeTransfers.length === 0) {
this.activeTransfersDropdown.close()
}
}
@HostBinding('class.vibrant') get isVibrant () {
return this.config.store.appearance.vibrancy
}
private getToolbarButtons (aboveZero: boolean): ToolbarButton[] {
let buttons: ToolbarButton[] = []
this.config.enabledServices(this.toolbarButtonProviders).forEach(provider => {
buttons = buttons.concat(provider.provide())
})
return buttons
.filter(x => x.showInToolbar ?? true)
.filter(button => (button.weight ?? 0) > 0 === aboveZero)
.sort((a: ToolbarButton, b: ToolbarButton) => (a.weight ?? 0) - (b.weight ?? 0))
}

View File

@@ -1,4 +1,4 @@
import { Observable, Subject } from 'rxjs'
import { Observable, Subject, distinctUntilChanged, filter, debounceTime } from 'rxjs'
import { EmbeddedViewRef, ViewContainerRef, ViewRef } from '@angular/core'
import { RecoveryToken } from '../api/tabRecovery'
import { BaseComponent } from './base.component'
@@ -11,6 +11,10 @@ export interface BaseTabProcess {
name: string
}
export interface GetRecoveryTokenOptions {
includeState: boolean
}
/**
* Abstract base class for custom tab components
*/
@@ -43,7 +47,9 @@ export abstract class BaseTabComponent extends BaseComponent {
/**
* CSS color override for the tab's header
*/
color: string|null = null
get color (): string|null { return this._color }
set color (value: string|null) { this._color = value }
private _color: string|null = null
hasFocus = false
@@ -57,7 +63,6 @@ export abstract class BaseTabComponent extends BaseComponent {
/* @hidden */
viewContainerEmbeddedRef?: EmbeddedViewRef<any>
private progressClearTimeout: number
private titleChange = new Subject<string>()
private focused = new Subject<void>()
private blurred = new Subject<void>()
@@ -69,8 +74,8 @@ export abstract class BaseTabComponent extends BaseComponent {
get focused$ (): Observable<void> { return this.focused }
get blurred$ (): Observable<void> { return this.blurred }
get titleChange$ (): Observable<string> { return this.titleChange }
get progress$ (): Observable<number|null> { return this.progress }
get titleChange$ (): Observable<string> { return this.titleChange.pipe(distinctUntilChanged()) }
get progress$ (): Observable<number|null> { return this.progress.pipe(distinctUntilChanged()) }
get activity$ (): Observable<boolean> { return this.activity }
get destroyed$ (): Observable<void> { return this.destroyed }
get recoveryStateChangedHint$ (): Observable<void> { return this.recoveryStateChangedHint }
@@ -83,6 +88,12 @@ export abstract class BaseTabComponent extends BaseComponent {
this.blurred$.subscribe(() => {
this.hasFocus = false
})
this.subscribeUntilDestroyed(this.progress.pipe(
filter(x => x !== null),
debounceTime(5000),
), () => {
this.setProgress(null)
})
}
setTitle (title: string): void {
@@ -99,30 +110,26 @@ export abstract class BaseTabComponent extends BaseComponent {
*/
setProgress (progress: number|null): void {
this.progress.next(progress)
if (progress) {
if (this.progressClearTimeout) {
clearTimeout(this.progressClearTimeout)
}
this.progressClearTimeout = setTimeout(() => {
this.setProgress(null)
}, 5000) as any
}
}
/**
* Shows the acticity marker on the tab header
*/
displayActivity (): void {
this.hasActivity = true
this.activity.next(true)
if (!this.hasActivity) {
this.hasActivity = true
this.activity.next(true)
}
}
/**
* Removes the acticity marker from the tab header
*/
clearActivity (): void {
this.hasActivity = false
this.activity.next(false)
if (this.hasActivity) {
this.hasActivity = false
this.activity.next(false)
}
}
/**
@@ -132,7 +139,7 @@ export abstract class BaseTabComponent extends BaseComponent {
* @return JSON serializable tab state representation
* for your [[TabRecoveryProvider]] to parse
*/
async getRecoveryToken (): Promise<RecoveryToken|null> {
async getRecoveryToken (options?: GetRecoveryTokenOptions): Promise<RecoveryToken|null> { // eslint-disable-line @typescript-eslint/no-unused-vars
return null
}

View File

@@ -2,5 +2,5 @@
input.form-control(type='text', #input, [(ngModel)]='value', (keyup.enter)='save()', autofocus)
.modal-footer
button.btn.btn-primary((click)='save()') Save
button.btn.btn-secondary((click)='close()') Cancel
button.btn.btn-primary((click)='save()', translate) Save
button.btn.btn-secondary((click)='close()', translate) Cancel

View File

@@ -1,7 +1,7 @@
.modal-body
.alert.alert-danger Tabby could not start with your plugins, so all third party plugins have been disabled in this session. The error was:
.alert.alert-danger(translate) Tabby could not start with your plugins, so all third party plugins have been disabled in this session. The error was:
pre {{error}}
.modal-footer
button.btn.btn-primary((click)='close()') Close
button.btn.btn-primary((click)='close()', translate) Close

View File

@@ -8,21 +8,25 @@
)
.list-group.list-group-light(*ngIf='filteredOptions.length')
a.list-group-item.list-group-item-action.d-flex.align-items-center(
#item,
(click)='selectOption(option)',
[class.active]='selectedIndex == i',
*ngFor='let option of filteredOptions; let i = index'
)
i.icon(
class='fa-fw {{option.icon}}',
style='color: {{option.color}}',
*ngIf='!iconIsSVG(option.icon)'
ng-container(*ngFor='let option of filteredOptions; let i = index')
label.group-header(
*ngIf='hasGroups && option.group !== filteredOptions[i - 1]?.group'
) {{option.group}}
a.list-group-item.list-group-item-action.d-flex.align-items-center(
#item,
(click)='selectOption(option)',
[class.active]='selectedIndex == i'
)
.icon(
[fastHtmlBind]='option.icon',
style='color: {{option.color}}',
*ngIf='iconIsSVG(option.icon)'
)
.title.mr-2 {{getOptionText(option)}}
.description.no-wrap.text-muted {{option.description}}
i.icon(
class='fa-fw {{option.icon}}',
style='color: {{option.color}}',
*ngIf='!iconIsSVG(option.icon)'
)
.icon(
[fastHtmlBind]='option.icon',
style='color: {{option.color}}',
*ngIf='iconIsSVG(option.icon)'
)
.title.mr-2 {{getOptionText(option)}}
.description.no-wrap.text-muted {{option.description}}
.no-wrap.badge.badge-secondary.text-muted.ml-auto(*ngIf='selectedIndex == i') Enter

View File

@@ -7,6 +7,17 @@
overflow: auto;
border-top-left-radius: 0;
border-top-right-radius: 0;
padding: 10px 15px;
}
.group-header {
padding: 0 1rem;
margin: 15px 0 10px;
font-weight: bold;
&:first-child {
margin-top: 5px;
}
}
.icon {
@@ -25,4 +36,5 @@
input {
border-radius: 0;
border: none;
}

View File

@@ -14,6 +14,7 @@ export class SelectorModalComponent<T> {
@Input() filter = ''
@Input() name: string
@Input() selectedIndex = 0
hasGroups = false
@ViewChildren('item') itemChildren: QueryList<ElementRef>
constructor (
@@ -22,14 +23,17 @@ export class SelectorModalComponent<T> {
ngOnInit (): void {
this.onFilterChange()
this.hasGroups = this.options.some(x => x.group)
}
@HostListener('keyup', ['$event']) onKeyUp (event: KeyboardEvent): void {
if (event.key === 'ArrowUp') {
this.selectedIndex--
event.preventDefault()
}
if (event.key === 'ArrowDown') {
this.selectedIndex++
event.preventDefault()
}
if (event.key === 'Enter') {
this.selectOption(this.filteredOptions[this.selectedIndex])
@@ -48,16 +52,23 @@ export class SelectorModalComponent<T> {
onFilterChange (): void {
const f = this.filter.trim().toLowerCase()
if (!f) {
this.filteredOptions = this.options.filter(x => !x.freeInputPattern)
this.filteredOptions = this.options.slice()
.sort((a, b) => a.group?.localeCompare(b.group ?? '') ?? 0)
.filter(x => !x.freeInputPattern)
} else {
const terms = f.split(' ')
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
this.filteredOptions = this.options.filter(x => x.freeInputPattern ?? terms.every(term => (x.name + (x.description ?? '')).toLowerCase().includes(term)))
this.filteredOptions = this.options.filter(x => x.freeInputPattern ?? this.filterMatches(x, terms))
}
this.selectedIndex = Math.max(0, this.selectedIndex)
this.selectedIndex = Math.min(this.filteredOptions.length - 1, this.selectedIndex)
}
filterMatches (option: SelectorOption<T>, terms: string[]): boolean {
const content = (option.group ?? '') + option.name + (option.description ?? '')
return terms.every(term => content.toLowerCase().includes(term))
}
getOptionText (option: SelectorOption<T>): string {
if (option.freeInputPattern) {
return option.freeInputPattern.replace('%s', this.filter)

View File

@@ -1,6 +1,6 @@
import { Observable, Subject } from 'rxjs'
import { Component, Injectable, ViewChild, ViewContainerRef, EmbeddedViewRef, AfterViewInit, OnDestroy } from '@angular/core'
import { BaseTabComponent, BaseTabProcess } from './baseTab.component'
import { BaseTabComponent, BaseTabProcess, GetRecoveryTokenOptions } from './baseTab.component'
import { TabRecoveryProvider, RecoveryToken } from '../api/tabRecovery'
import { TabsService, NewTabParameters } from '../services/tabs.service'
import { HotkeysService } from '../services/hotkeys.service'
@@ -93,13 +93,13 @@ export class SplitContainer {
return s
}
async serialize (tabsRecovery: TabRecoveryService): Promise<RecoveryToken> {
async serialize (tabsRecovery: TabRecoveryService, options?: GetRecoveryTokenOptions): Promise<RecoveryToken> {
const children: any[] = []
for (const child of this.children) {
if (child instanceof SplitContainer) {
children.push(await child.serialize(tabsRecovery))
children.push(await child.serialize(tabsRecovery, options))
} else {
children.push(await tabsRecovery.getFullRecoveryToken(child))
children.push(await tabsRecovery.getFullRecoveryToken(child, options))
}
}
return {
@@ -158,6 +158,7 @@ export type SplitDropZoneInfo = {
></split-tab-spanner>
<split-tab-drop-zone
*ngFor='let dropZone of _dropZones'
[enabled]='dropZonesEnabled'
[parent]='this'
[dropZone]='dropZone'
(tabDropped)='onTabDropped($event, dropZone)'
@@ -253,6 +254,9 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
})
this.blurred$.subscribe(() => this.getAllTabs().forEach(x => x.emitBlurred()))
this.tabAdded$.subscribe(() => this.updateTitle())
this.tabRemoved$.subscribe(() => this.updateTitle())
this.subscribeUntilDestroyed(this.hotkeys.hotkey$, hotkey => {
if (!this.hasFocus || !this.focusedTab) {
return
@@ -305,7 +309,8 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
/** @hidden */
async ngAfterViewInit (): Promise<void> {
if (this._recoveredState) {
await this.recoverContainer(this.root, this._recoveredState, this._recoveredState.duplicate)
await this.recoverContainer(this.root, this._recoveredState)
this.updateTitle()
this.layout()
setTimeout(() => {
if (this.hasFocus) {
@@ -483,6 +488,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
newTab.parent = this
this.recoveryStateChangedHint.next()
this.onAfterTabAdded(newTab)
this.updateTitle()
}
/**
@@ -569,8 +575,8 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
}
/** @hidden */
async getRecoveryToken (): Promise<any> {
return this.root.serialize(this.tabRecovery)
async getRecoveryToken (options?: GetRecoveryTokenOptions): Promise<any> {
return this.root.serialize(this.tabRecovery, options)
}
/** @hidden */
@@ -598,6 +604,10 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
this.tabAdopted.next(tab)
}
get dropZonesEnabled (): boolean {
return this.getAllTabs().length > 1
}
destroy (): void {
super.destroy()
for (const x of this.getAllTabs()) {
@@ -612,6 +622,23 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
this.layoutInternal(this.root, 0, 0, 100, 100)
}
clearActivity (): void {
for (const tab of this.getAllTabs()) {
tab.clearActivity()
}
super.clearActivity()
}
get color (): string|null {
return this.getFocusedTab()?.color ?? null
}
set color (color: string|null) {
for (const t of this.getAllTabs()) {
t.color = color
}
}
private updateTitle (): void {
this.setTitle(this.getAllTabs().map(x => x.title).join(' | '))
}
@@ -783,7 +810,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
})
}
private async recoverContainer (root: SplitContainer, state: any, duplicate = false) {
private async recoverContainer (root: SplitContainer, state: any) {
const children: (SplitContainer | BaseTabComponent)[] = []
root.orientation = state.orientation
root.ratios = state.ratios
@@ -794,10 +821,10 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
}
if (childState.type === 'app:split-tab') {
const child = new SplitContainer()
await this.recoverContainer(child, childState, duplicate)
await this.recoverContainer(child, childState)
children.push(child)
} else {
const recovered = await this.tabRecovery.recoverTab(childState, duplicate)
const recovered = await this.tabRecovery.recoverTab(childState)
if (recovered) {
const tab = this.tabsService.create(recovered)
children.push(tab)
@@ -828,11 +855,4 @@ export class SplitTabRecoveryProvider extends TabRecoveryProvider<SplitTabCompon
inputs: { _recoveredState: recoveryToken },
}
}
duplicate (recoveryToken: RecoveryToken): RecoveryToken {
return {
...recoveryToken,
duplicate: true,
}
}
}

View File

@@ -23,22 +23,32 @@ import { SplitDropZoneInfo } from './splitTab.component'
export class SplitTabDropZoneComponent extends SelfPositioningComponent {
@Input() dropZone: SplitDropZoneInfo
@Input() parent: BaseTabComponent
@Input() enabled = false
@Output() tabDropped = new EventEmitter<BaseTabComponent>()
@HostBinding('class.active') isActive = false
@HostBinding('class.highlighted') isHighlighted = false
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
constructor (
element: ElementRef,
app: AppService,
) {
super(element)
this.subscribeUntilDestroyed(app.tabDragActive$, tab => {
this.isActive = !!tab && tab !== this.parent && (this.dropZone.type === 'relative' || tab !== this.dropZone.container.children[this.dropZone.position])
this.isActive = !!(tab && this.canActivateFor(tab))
this.layout()
})
}
canActivateFor (tab: BaseTabComponent) {
if (tab === this.parent || !this.enabled) {
return false
}
if (this.dropZone.type === 'absolute' && tab === this.dropZone.container.children[this.dropZone.position]) {
return false
}
return true
}
ngOnChanges () {
this.layout()
}

View File

@@ -3,7 +3,7 @@ div
h1.tabby-title Tabby
sup α
.list-group.list-group-light
.list-group.mb-4
a.list-group-item.list-group-item-action.d-flex(
*ngFor='let button of getButtons(); trackBy: buttonsTrackBy',
(click)='button.click()',
@@ -18,6 +18,6 @@ footer.d-flex.align-items-center
span GitHub
button.btn.btn-dark((click)='homeBase.reportBug()')
i.fas.fa-bug
span Report a problem
span(translate) Report a problem
.form-control-static.selectable.no-drag Version: {{homeBase.appVersion}}
.form-control-static.selectable.no-drag {{ 'Version: {version}'|translate:{ version: this.homeBase.appVersion } }}

View File

@@ -25,6 +25,7 @@ export class StartPageComponent {
return this.config.enabledServices(this.toolbarButtonProviders)
.map(provider => provider.provide())
.reduce((a, b) => a.concat(b))
.filter(x => x.showInStartPage ?? true)
.filter(x => !!x.click)
.sort((a: ToolbarButton, b: ToolbarButton) => (a.weight ?? 0) - (b.weight ?? 0))
}

View File

@@ -37,6 +37,7 @@ $tabs-height: 38px;
text-align: center;
transition: 0.25s all;
align-self: center;
margin-top: 1px;
}
.name {

View File

@@ -1,6 +1,7 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { Component, Input, Optional, Inject, HostBinding, HostListener, NgZone } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { auditTime } from 'rxjs'
import { TabContextMenuItemProvider } from '../api/tabContextMenuProvider'
import { BaseTabComponent } from './baseTab.component'
import { RenameTabModalComponent } from './renameTabModal.component'
@@ -47,7 +48,9 @@ export class TabHeaderComponent extends BaseComponent {
}
ngOnInit () {
this.subscribeUntilDestroyed(this.tab.progress$, progress => {
this.subscribeUntilDestroyed(this.tab.progress$.pipe(
auditTime(300),
), progress => {
this.zone.run(() => {
this.progress = progress
})
@@ -88,8 +91,9 @@ export class TabHeaderComponent extends BaseComponent {
return this.config.store.appearance.flexTabs
}
@HostListener('dblclick') onDoubleClick (): void {
@HostListener('dblclick', ['$event']) onDoubleClick ($event: MouseEvent): void {
this.showRenameTabModal()
$event.stopPropagation()
}
@HostListener('mousedown', ['$event']) async onMouseDown ($event: MouseEvent) {

View File

@@ -1,5 +1,5 @@
.d-flex.align-items-center
.dropdown-header File transfers
.dropdown-header(translate) File transfers
button.btn.btn-link.ml-auto((click)='removeAll(); $event.stopPropagation()') !{require('../icons/times.svg')}
.transfer(*ngFor='let transfer of transfers', (click)='showTransfer(transfer)')
.icon(*ngIf='isDownload(transfer)') !{require('../icons/download.svg')}
@@ -16,4 +16,11 @@
.size {{transfer.getSize()|filesize}}
.speed(*ngIf='transfer.getSpeed()') {{transfer.getSpeed()|filesize}}/s
button.btn.btn-link((click)='removeTransfer(transfer); $event.stopPropagation()') !{require('../icons/times.svg')}
button.btn.btn-link(
*ngIf='!transfer.isComplete()',
(click)='removeTransfer(transfer); $event.stopPropagation()'
) !{require('../icons/times.svg')}
button.btn.btn-link(
*ngIf='transfer.isComplete()',
(click)='removeTransfer(transfer); $event.stopPropagation()'
) !{require('../icons/check.svg')}

View File

@@ -1,5 +1,7 @@
:host {
min-width: 300px;
max-height: 80vh;
overflow-y: auto;
}
.transfer {
@@ -49,3 +51,7 @@
button {
flex: none;
}
svg {
height: 14px;
}

View File

@@ -1,4 +1,5 @@
import { Component, Input, Output, EventEmitter } from '@angular/core'
import { TranslateService } from '@ngx-translate/core'
import { FileDownload, FileTransfer, PlatformService } from '../api/platform'
/** @hidden */
@@ -11,7 +12,10 @@ export class TransfersMenuComponent {
@Input() transfers: FileTransfer[]
@Output() transfersChange = new EventEmitter<FileTransfer[]>()
constructor (private platform: PlatformService) { }
constructor (
private platform: PlatformService,
private translate: TranslateService,
) { }
isDownload (transfer: FileTransfer): boolean {
return transfer instanceof FileDownload
@@ -40,8 +44,11 @@ export class TransfersMenuComponent {
if (this.transfers.some(x => !x.isComplete())) {
if ((await this.platform.showMessageBox({
type: 'warning',
message: 'There are active file transfers',
buttons: ['Abort all', 'Do not abort'],
message: this.translate.instant('There are active file transfers'),
buttons: [
this.translate.instant('Abort all'),
this.translate.instant('Do not abort'),
],
defaultId: 1,
cancelId: 1,
})).response === 1) {

View File

@@ -1,18 +1,21 @@
.modal-body
.d-flex.align-items-center.mb-3
h3.m-0 Vault is locked
h3.m-0(translate) Vault is locked
.ml-auto(ngbDropdown, placement='bottom-right')
button.btn.btn-link(ngbDropdownToggle, (click)='$event.stopPropagation()')
span(*ngIf='rememberFor') Remember for {{rememberFor}} min
span(*ngIf='!rememberFor') Do not remember
span(
*ngIf='rememberFor'
) {{ 'Remember for {time}'|translate:{time: getRememberForDisplay(rememberFor)} }}
span(*ngIf='!rememberFor', translate) Do not remember
div(ngbDropdownMenu)
button.dropdown-item(
(click)='rememberFor = 0',
translate
) Do not remember
button.dropdown-item(
*ngFor='let x of rememberOptions',
(click)='rememberFor = x',
) {{x}} min
) {{getRememberForDisplay(x)}}
.input-group
input.form-control.form-control-lg(

View File

@@ -8,7 +8,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
export class UnlockVaultModalComponent {
passphrase: string
rememberFor = 1
rememberOptions = [1, 5, 15, 60]
rememberOptions = [1, 5, 15, 60, 1440, 10080]
@ViewChild('input') input: ElementRef
constructor (
@@ -33,4 +33,14 @@ export class UnlockVaultModalComponent {
cancel (): void {
this.modalInstance.close(null)
}
getRememberForDisplay (rememberOption: number): string {
if (rememberOption >= 1440) {
return `${Math.round(rememberOption/1440*10)/10} day`
} else if (rememberOption >= 60) {
return `${Math.round(rememberOption/60*10)/10} hour`
} else {
return `${rememberOption} min`
}
}
}

View File

@@ -4,21 +4,31 @@
h1.tabby-title Tabby
sup α
.text-center.mb-5 Thank you for downloading Tabby!
.text-center.mb-5(translate) Thank you for downloading Tabby!
.form-line
.header
.title Enable analytics
.description Help track the number of Tabby installs across the world!
.title(translate) Language
select.form-control([(ngModel)]='config.store.language', (ngModelChange)='config.save()')
option([ngValue]='null', translate) Automatic
option(
[value]='lang.code',
*ngFor='let lang of locale.allLanguages'
) {{lang.name|translate}}
.form-line
.header
.title(translate) Enable analytics
.description(translate) Help track the number of Tabby installs across the world!
toggle([(ngModel)]='config.store.enableAnalytics')
.form-line
.header
.title Enable global hotkey (#[strong Ctrl-Space])
.description Toggles the Tabby window visibility
.title(translate) Enable global hotkey (Ctrl-Space)
.description(translate) Toggles the Tabby window visibility
toggle([(ngModel)]='enableGlobalHotkey')
.text-center.mt-5
button.btn.btn-primary((click)='closeAndDisable()') Close and never show again
button.btn.btn-primary((click)='closeAndDisable()', translate) Close and never show again

View File

@@ -1,8 +1,9 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { Component } from '@angular/core'
import { TranslateService } from '@ngx-translate/core'
import { BaseTabComponent } from './baseTab.component'
import { ConfigService } from '../services/config.service'
import { HostWindowService } from '../api/hostWindow'
import { LocaleService } from '../services/locale.service'
/** @hidden */
@Component({
@@ -14,11 +15,12 @@ export class WelcomeTabComponent extends BaseTabComponent {
enableGlobalHotkey = true
constructor (
private hostWindow: HostWindowService,
public config: ConfigService,
public locale: LocaleService,
translate: TranslateService,
) {
super()
this.setTitle('Welcome')
this.setTitle(translate.instant('Welcome'))
}
async closeAndDisable () {
@@ -28,6 +30,6 @@ export class WelcomeTabComponent extends BaseTabComponent {
this.config.store.hotkeys['toggle-window'] = []
}
await this.config.save()
this.hostWindow.reload()
this.destroy()
}
}

View File

@@ -13,6 +13,7 @@ button {
line-height: 0;
text-align: center;
align-items: center;
justify-content: center;
&:not(:hover):not(:active) {
background: transparent;
@@ -21,4 +22,9 @@ button {
&:focus {
box-shadow: none;
}
svg {
width: 10px;
height: 10px;
}
}

View File

@@ -20,6 +20,7 @@ hotkeys:
- 'Ctrl-Shift-PageDown'
rearrange-panes:
- 'Ctrl-Shift'
duplicate-tab: []
tab-1:
- 'Alt-1'
tab-2:
@@ -75,4 +76,3 @@ hotkeys:
- 'Ctrl-Alt-T'
profile-selector:
- 'Ctrl-Shift-T'
pluginBlacklist: ['ssh']

View File

@@ -38,6 +38,7 @@ hotkeys:
- '⌘-9'
tab-10:
- '⌘-0'
duplicate-tab: []
tab-11: []
tab-12: []
tab-13: []
@@ -74,4 +75,5 @@ hotkeys:
- '⌘-E'
switch-profile:
- '⌘-Shift-E'
pluginBlacklist: ['ssh']
appearance:
vibrancy: true

View File

@@ -21,6 +21,7 @@ hotkeys:
- 'Ctrl-Shift-PageDown'
rearrange-panes:
- 'Ctrl-Shift'
duplicate-tab: []
tab-1:
- 'Alt-1'
tab-2:
@@ -76,4 +77,3 @@ hotkeys:
- 'Ctrl-Alt-T'
profile-selector:
- 'Ctrl-Shift-T'
pluginBlacklist: []

View File

@@ -12,7 +12,7 @@ appearance:
frame: thin
css: '/* * { color: blue !important; } */'
opacity: 1.0
vibrancy: true
vibrancy: false
vibrancyType: 'blur'
terminal:
showBuiltinProfiles: true
@@ -20,8 +20,11 @@ terminal:
hotkeys:
profile:
__nonStructural: true
profile-selectors:
__nonStructural: true
profiles: []
recentProfiles: []
profileDefaults:
__nonStructural: true
recoverTabs: true
enableAnalytics: true
enableWelcomeTab: true
@@ -32,3 +35,7 @@ version: 1
vault: null
encrypted: false
enableExperimentalFeatures: false
pluginBlacklist: []
hacks:
disableGPU: false
language: null

View File

@@ -1,4 +1,5 @@
import { Injectable } from '@angular/core'
import { TranslateService } from '@ngx-translate/core'
import { ProfilesService } from './services/profiles.service'
import { HotkeyDescription, HotkeyProvider } from './api/hotkeyProvider'
import { PartialProfile, Profile } from './api'
@@ -9,184 +10,189 @@ export class AppHotkeyProvider extends HotkeyProvider {
hotkeys: HotkeyDescription[] = [
{
id: 'profile-selector',
name: 'Show profile selector',
name: this.translate.instant('Show profile selector'),
},
{
id: 'toggle-fullscreen',
name: 'Toggle fullscreen mode',
name: this.translate.instant('Toggle fullscreen mode'),
},
{
id: 'rename-tab',
name: 'Rename Tab',
name: this.translate.instant('Rename Tab'),
},
{
id: 'close-tab',
name: 'Close tab',
name: this.translate.instant('Close tab'),
},
{
id: 'reopen-tab',
name: 'Reopen last tab',
name: this.translate.instant('Reopen last tab'),
},
{
id: 'toggle-last-tab',
name: 'Toggle last tab',
name: this.translate.instant('Toggle last tab'),
},
{
id: 'next-tab',
name: 'Next tab',
name: this.translate.instant('Next tab'),
},
{
id: 'previous-tab',
name: 'Previous tab',
name: this.translate.instant('Previous tab'),
},
{
id: 'move-tab-left',
name: 'Move tab to the left',
name: this.translate.instant('Move tab to the left'),
},
{
id: 'move-tab-right',
name: 'Move tab to the right',
name: this.translate.instant('Move tab to the right'),
},
{
id: 'rearrange-panes',
name: 'Show pane labels (for rearranging)',
name: this.translate.instant('Show pane labels (for rearranging)'),
},
{
id: 'duplicate-tab',
name: this.translate.instant('Duplicate tab'),
},
{
id: 'tab-1',
name: 'Tab 1',
name: this.translate.instant('Tab {number}', { number: 1 }),
},
{
id: 'tab-2',
name: 'Tab 2',
name: this.translate.instant('Tab {number}', { number: 2 }),
},
{
id: 'tab-3',
name: 'Tab 3',
name: this.translate.instant('Tab {number}', { number: 3 }),
},
{
id: 'tab-4',
name: 'Tab 4',
name: this.translate.instant('Tab {number}', { number: 4 }),
},
{
id: 'tab-5',
name: 'Tab 5',
name: this.translate.instant('Tab {number}', { number: 5 }),
},
{
id: 'tab-6',
name: 'Tab 6',
name: this.translate.instant('Tab {number}', { number: 6 }),
},
{
id: 'tab-7',
name: 'Tab 7',
name: this.translate.instant('Tab {number}', { number: 7 }),
},
{
id: 'tab-8',
name: 'Tab 8',
name: this.translate.instant('Tab {number}', { number: 8 }),
},
{
id: 'tab-9',
name: 'Tab 9',
name: this.translate.instant('Tab {number}', { number: 9 }),
},
{
id: 'tab-10',
name: 'Tab 10',
name: this.translate.instant('Tab {number}', { number: 10 }),
},
{
id: 'tab-11',
name: 'Tab 11',
name: this.translate.instant('Tab {number}', { number: 11 }),
},
{
id: 'tab-12',
name: 'Tab 12',
name: this.translate.instant('Tab {number}', { number: 12 }),
},
{
id: 'tab-13',
name: 'Tab 13',
name: this.translate.instant('Tab {number}', { number: 13 }),
},
{
id: 'tab-14',
name: 'Tab 14',
name: this.translate.instant('Tab {number}', { number: 14 }),
},
{
id: 'tab-15',
name: 'Tab 15',
name: this.translate.instant('Tab {number}', { number: 15 }),
},
{
id: 'tab-16',
name: 'Tab 16',
name: this.translate.instant('Tab {number}', { number: 16 }),
},
{
id: 'tab-17',
name: 'Tab 17',
name: this.translate.instant('Tab {number}', { number: 17 }),
},
{
id: 'tab-18',
name: 'Tab 18',
name: this.translate.instant('Tab {number}', { number: 18 }),
},
{
id: 'tab-19',
name: 'Tab 19',
name: this.translate.instant('Tab {number}', { number: 19 }),
},
{
id: 'tab-20',
name: 'Tab 20',
name: this.translate.instant('Tab {number}', { number: 20 }),
},
{
id: 'split-right',
name: 'Split to the right',
name: this.translate.instant('Split to the right'),
},
{
id: 'split-bottom',
name: 'Split to the bottom',
name: this.translate.instant('Split to the bottom'),
},
{
id: 'split-left',
name: 'Split to the left',
name: this.translate.instant('Split to the left'),
},
{
id: 'split-top',
name: 'Split to the top',
name: this.translate.instant('Split to the top'),
},
{
id: 'pane-maximize',
name: 'Maximize the active pane',
name: this.translate.instant('Maximize the active pane'),
},
{
id: 'pane-nav-up',
name: 'Focus the pane above',
name: this.translate.instant('Focus the pane above'),
},
{
id: 'pane-nav-down',
name: 'Focus the pane below',
name: this.translate.instant('Focus the pane below'),
},
{
id: 'pane-nav-left',
name: 'Focus the pane on the left',
name: this.translate.instant('Focus the pane on the left'),
},
{
id: 'pane-nav-right',
name: 'Focus the pane on the right',
name: this.translate.instant('Focus the pane on the right'),
},
{
id: 'pane-nav-previous',
name: 'Focus previous pane',
name: this.translate.instant('Focus previous pane'),
},
{
id: 'pane-nav-next',
name: 'Focus next pane',
name: this.translate.instant('Focus next pane'),
},
{
id: 'switch-profile',
name: 'Switch profile in the active pane',
name: this.translate.instant('Switch profile in the active pane'),
},
{
id: 'close-pane',
name: 'Close focused pane',
name: this.translate.instant('Close focused pane'),
},
]
constructor (
private profilesService: ProfilesService,
private translate: TranslateService,
) { super() }
async provide (): Promise<HotkeyDescription[]> {
@@ -195,12 +201,16 @@ export class AppHotkeyProvider extends HotkeyProvider {
...this.hotkeys,
...profiles.map(profile => ({
id: `profile.${AppHotkeyProvider.getProfileHotkeyName(profile)}`,
name: `New tab: ${profile.name}`,
name: this.translate.instant('New tab: {profile}', { profile: profile.name }),
})),
...this.profilesService.getProviders().map(provider => ({
id: `profile-selectors.${provider.id}`,
name: this.translate.instant('Show {type} profile selector', { type: provider.name }),
})),
]
}
static getProfileHotkeyName (profile: PartialProfile<Profile>): string {
return profile.id!.replace(/\./g, '-')
return (profile.id ?? profile.name).replace(/\./g, '-')
}
}

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="check" class="svg-inline--fa fa-check" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M480.1 128.1l-272 272C204.3 405.7 198.2 408 192 408s-12.28-2.344-16.97-7.031l-144-144c-9.375-9.375-9.375-24.56 0-33.94s24.56-9.375 33.94 0L192 350.1l255-255c9.375-9.375 24.56-9.375 33.94 0S490.3 119.6 480.1 128.1z"></path></svg>

After

Width:  |  Height:  |  Size: 436 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"></path></svg>

Before

Width:  |  Height:  |  Size: 529 B

View File

@@ -1 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fad" data-icon="download" class="svg-inline--fa fa-download fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g class="fa-group"><path class="fa-secondary" fill="currentColor" d="M320 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3a19.37 19.37 0 0 1-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24a23.94 23.94 0 0 1 24-24h80a23.94 23.94 0 0 1 24 24z" opacity="0.4"></path><path class="fa-primary" fill="currentColor" d="M488 352H341.3l-49 49a51.24 51.24 0 0 1-72.6 0l-49-49H24a23.94 23.94 0 0 0-24 24v112a23.94 23.94 0 0 0 24 24h464a23.94 23.94 0 0 0 24-24V376a23.94 23.94 0 0 0-24-24zm-120 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16z"></path></g></svg>
<svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="arrow-down-to-square" class="svg-inline--fa fa-arrow-down-to-square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M432 128h-64C359.2 128 352 135.2 352 144S359.2 160 368 160h64C440.8 160 448 167.2 448 176v288c0 8.812-7.188 16-16 16h-352C71.19 480 64 472.8 64 464v-288C64 167.2 71.19 160 80 160h64C152.8 160 160 152.8 160 144S152.8 128 144 128h-64C53.53 128 32 149.5 32 176v288C32 490.5 53.53 512 80 512h352c26.47 0 48-21.53 48-48v-288C480 149.5 458.5 128 432 128zM148.7 260.7c-6.25 6.25-6.25 16.38 0 22.62l96 96C247.8 382.4 251.9 384 256 384s8.188-1.562 11.31-4.688l96-96c6.25-6.25 6.25-16.38 0-22.62s-16.38-6.25-22.62 0L272 329.4V16C272 7.156 264.8 0 256 0S240 7.156 240 16v313.4L171.3 260.7C165.1 254.4 154.9 254.4 148.7 260.7z"></path></svg>

Before

Width:  |  Height:  |  Size: 784 B

After

Width:  |  Height:  |  Size: 867 B

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