Compare commits

...

571 Commits

Author SHA1 Message Date
Eugene Pankov
7437aaffcf fixed startup event oder - fixes #6511 2022-05-30 23:27:01 +02:00
Eugene Pankov
b3df681753 fixed event listener order 2022-05-28 13:56:49 +02:00
Eugene Pankov
524ccd06f3 autofocus window 2022-05-28 13:15:13 +02:00
Eugene Pankov
8c4c07c39b synchronize config saves between windows 2022-05-28 12:35:32 +02:00
Eugene Pankov
296188c45e cli: allow directly opening script and .command files - fixes #6406, fixes #6018 2022-05-27 20:05:40 +02:00
Eugene Pankov
509ae8d32e fixed spinner handling - fixes #6489, fixes #6476, fixes #3383 2022-05-27 14:44:49 +02:00
Eugene Pankov
f160353abe sixel graphics support - fixes #6032 2022-05-27 13:34:18 +02:00
Eugeny
02fb0db9de Merge pull request #6493 from bdr99/patch-1
Hide description in selector modal if it's the same as the title
2022-05-26 03:43:18 -07:00
Brandon Rothweiler
0a0ec35b84 Hide description in selector model if it's the same as the title 2022-05-24 22:58:02 -04:00
Eugene Pankov
fbcb165708 bumped xterm 2022-05-22 20:39:36 -07:00
Eugene Pankov
643efb13a7 bumped xterm 2022-05-21 22:25:00 -07:00
Eugene Pankov
5a2f14746f fixed #6428 2022-05-21 21:33:08 -07:00
Eugene Pankov
fdf9004323 fixed #6430 2022-05-21 21:22:26 -07:00
Eugene Pankov
12aa28e766 allow customizing selection foreground color 2022-05-21 20:34:19 -07:00
Eugene Pankov
1fb67e1730 serial: fixed unnecessary spinner - fixes #6449 2022-05-21 20:03:32 -07:00
Eugene Pankov
5f0520def9 macOS: accept first mouse click - fixes #6464 2022-05-21 19:51:11 -07:00
Eugene Pankov
1aa45ddcdf use npms.io API to load plugins 2022-05-21 19:48:27 -07:00
Eugene Pankov
cfa6c104cd ui tweak 2022-05-21 19:42:57 -07:00
Eugene Pankov
3bb9acfb98 more prominent active search result highlighting 2022-05-21 19:32:10 -07:00
Eugene Pankov
50c585e14c Merge branch 'master' of github.com:Eugeny/tabby 2022-05-21 19:29:35 -07:00
Eugene Pankov
de8afc1e7a fixed overview ruler alignment 2022-05-21 19:29:31 -07:00
Eugeny
eea02eed2a Merge pull request #6302 from Eugeny/dependabot/npm_and_yarn/axios-0.27.2 2022-05-22 04:26:07 +02:00
Eugene Pankov
40f57a9709 bumped xterm 2022-05-21 19:25:21 -07:00
Eugene Pankov
f2809927c2 lint 2022-05-21 19:25:17 -07:00
Eugeny
f27afebd82 Merge pull request #6131 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.15 2022-05-22 04:24:03 +02:00
Eugeny
78b4b28480 Merge pull request #6459 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/xterm-addon-webgl-0.12.0-beta.36 2022-05-22 04:23:17 +02:00
Eugeny
76562a23ae Merge pull request #6451 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/xterm-addon-search-0.9.0-beta.37 2022-05-22 04:23:13 +02:00
Eugeny
37a88ea3c4 Merge pull request #6458 from Eugeny/dependabot/npm_and_yarn/webpack-5.72.1 2022-05-22 04:23:08 +02:00
Eugeny
4d89b1853f Merge pull request #6433 from Eugeny/dependabot/github_actions/actions/setup-node-3.2.0 2022-05-22 04:22:47 +02:00
Eugeny
67a05dfb39 Merge pull request #6423 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/xterm-addon-fit-0.6.0-beta.9 2022-05-22 04:22:28 +02:00
Eugeny
3e207f7ed2 Merge pull request #6092 from Eugeny/dependabot/npm_and_yarn/tabby-electron/winston-3.7.2 2022-05-22 04:20:00 +02:00
Eugeny
d3bc36d9a1 Merge pull request #6091 from Eugeny/dependabot/npm_and_yarn/graceful-fs-4.2.10 2022-05-22 04:19:46 +02:00
Eugeny
0a69f54851 Merge pull request #6225 from Eugeny/dependabot/npm_and_yarn/npmlog-6.0.2 2022-05-22 04:19:36 +02:00
Eugeny
8b3448c72d Merge pull request #6209 from Eugeny/dependabot/npm_and_yarn/node-abi-3.15.0 2022-05-22 04:19:20 +02:00
Eugeny
66b84418b4 Merge pull request #6472 from Jai-JAP/patch-2 2022-05-22 04:18:39 +02:00
Eugene Pankov
1834ba25e0 bumped electron-builder 2022-05-21 19:18:26 -07:00
Eugene Pankov
740c77374e improved flow control for more speed - fixes #6394 2022-05-21 19:08:23 -07:00
Eugeny
50e9399ee1 Merge pull request #6473 from Eugeny/all-contributors/add-attet 2022-05-21 02:40:14 +02:00
allcontributors[bot]
30d38e530e docs: update .all-contributorsrc [skip ci] 2022-05-21 00:32:25 +00:00
allcontributors[bot]
6e5504c96c docs: update README.de-DE.md [skip ci] 2022-05-21 00:32:24 +00:00
allcontributors[bot]
85e0eabc76 docs: update README.it-IT.md [skip ci] 2022-05-21 00:32:23 +00:00
allcontributors[bot]
f83c1fddb4 docs: update README.ko-KR.md [skip ci] 2022-05-21 00:32:22 +00:00
allcontributors[bot]
f35a9b594f docs: update README.ru-RU.md [skip ci] 2022-05-21 00:32:21 +00:00
allcontributors[bot]
e8769b2e9e docs: update README.zh-CN.md [skip ci] 2022-05-21 00:32:20 +00:00
allcontributors[bot]
24f81ba070 docs: update README.md [skip ci] 2022-05-21 00:32:19 +00:00
Eugeny
a96a9ea5e5 Merge pull request #6465 from attet/panenav 2022-05-21 02:32:07 +02:00
Atte Timonen
a98050b1cd Implement 'focus follows mouse' for pane navigation 2022-05-20 09:01:23 +02:00
Atte Timonen
8ee1d0076b Implement hotkeys for navigating to a specific pane 2022-05-20 09:01:10 +02:00
Jai A P
f47931e763 Delete builder-util+23.0.8.patch
As this is merged upstream in 23.0.9
2022-05-20 10:55:04 +05:30
dependabot[bot]
8539663056 Bump xterm-addon-webgl in /tabby-terminal
Bumps [xterm-addon-webgl](https://github.com/xtermjs/xterm.js) from 0.12.0-beta.29 to 0.12.0-beta.36.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-19 04:14:10 +00:00
dependabot[bot]
33fca7c176 Bump webpack from 5.72.0 to 5.72.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.72.0 to 5.72.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.72.0...v5.72.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-19 04:03:16 +00:00
Eugeny
c80ad41521 Merge pull request #6310 from Eugeny/dependabot/npm_and_yarn/ejs-3.1.7
Bump ejs from 3.1.6 to 3.1.7
2022-05-19 04:04:50 +02:00
Eugeny
9ef4fc3195 Merge pull request #6282 from Eugeny/dependabot/github_actions/github/codeql-action-2 2022-05-19 04:01:41 +02:00
Eugene Pankov
a37f2f0eee Merge branch 'master' of github.com:Eugeny/tabby 2022-05-18 12:42:10 -07:00
Eugene Pankov
ff0c2a72df bumped electron - fixes #6454 2022-05-18 12:41:34 -07:00
Eugeny
ef920c4bac Merge pull request #6414 from LiangchengJ/fetch 2022-05-18 21:00:08 +02:00
dependabot[bot]
224f83a283 Bump xterm-addon-search in /tabby-terminal
Bumps [xterm-addon-search](https://github.com/xtermjs/xterm.js) from 0.9.0-beta.25 to 0.9.0-beta.37.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-18 04:14:07 +00:00
Eugene Pankov
f1d91162c3 set --no-sandbox when relaunching on Linux 2022-05-17 00:05:10 -07:00
Eugene Pankov
63fd01ae26 locale: removed unused string 2022-05-16 23:48:20 -07:00
Eugene Pankov
d6bdccf66e locale updates, added Ukrainian 2022-05-16 23:45:36 -07:00
dependabot[bot]
ead2414c48 Bump actions/setup-node from 3.0.0 to 3.2.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.0.0 to 3.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3.0.0...v3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-17 04:12:32 +00:00
dependabot[bot]
ef18541531 Bump xterm-addon-fit in /tabby-terminal
Bumps [xterm-addon-fit](https://github.com/xtermjs/xterm.js) from 0.6.0-beta.8 to 0.6.0-beta.9.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 04:18:25 +00:00
Liangcheng Juves
7e0b9ecb56 Update official icon for kali profile
Icon from https://www.kali.org/images/kali-logo.svg
2022-05-15 15:13:13 +08:00
Liangcheng Juves
e537b61edd Add icon for oracle wsl profiles 2022-05-15 15:03:17 +08:00
Liangcheng Juves
175016bb1a Add icon for openEuler profile 2022-05-15 15:02:55 +08:00
Liangcheng Juves
9f4c12ba96 Add icon for AlmaLinux-8 profile 2022-05-15 15:02:12 +08:00
Liangcheng Juves
6dc14e0fd5 Add icon for Ubuntu-22.04 profile 2022-05-15 15:01:29 +08:00
Liangcheng Juves
b154d87865 Update official icon for powershell profiles
Icon from https://docs.microsoft.com/zh-CN/powershell/
2022-05-15 14:56:51 +08:00
Liangcheng Juves
0aa7e53a78 Update official icon for git bash profile
Icon from https://github.com/git-for-windows/git-for-windows.github.io/blob/main/img/gwindows_logo.svg
2022-05-15 14:54:23 +08:00
Liangcheng Juves
272918bff6 Change name Git-Bash to Git Bash 2022-05-15 14:51:23 +08:00
Liangcheng Juves
7cddcee951 Fix the problem that the Developer Prompt for VS 2022 profile could not be loaded 2022-05-15 14:49:23 +08:00
Liangcheng Juves
fa2bbe39c4 Different versions of vs profile use different icon to differentiate 2022-05-15 14:48:58 +08:00
Liangcheng Juves
a5fb726206 Use linux icon by default when no WSL profile icon is found 2022-05-15 14:41:13 +08:00
Liangcheng Juves
ec22c00ba5 Switch to more classic linux icon
Icon from https://upload.wikimedia.org/wikipedia/commons/archive/3/35/20120923174402!Tux.svg
2022-05-15 02:00:11 +08:00
Eugene Pankov
052d771748 lint 2022-05-09 22:05:47 -07:00
Eugene Pankov
c1bd2a720d fixed #6349 - enable xterm flow control 2022-05-09 21:50:06 -07:00
Eugene Pankov
5f4a7c4d39 fixed #6373 - allow disabling dynamic title on saved layouts 2022-05-09 20:54:23 -07:00
Eugene Pankov
96cd676109 fixed #5922 - the combine-tabs hotkey on Windows 2022-05-09 20:49:17 -07:00
Eugene Pankov
19a73264be fixed SFTP directory detection - fixes #6360, fixes #6260 2022-05-09 20:48:58 -07:00
Eugene Pankov
8e7f69cb58 fixed scrollbar dragging - fixes #6359 2022-05-09 20:41:11 -07:00
Eugeny
563cc49c3c Merge pull request #6345 from calvinweb/patch-1 2022-05-04 02:23:30 +02:00
calvinweb
3851353e80 Fix a translate mistake 2022-05-03 15:08:53 +08:00
Eugene Pankov
7032bff827 Update profiles.ts 2022-04-30 12:02:57 -07:00
Eugene Pankov
271955e9d4 added missing strings 2022-04-30 11:36:50 -07:00
Eugene Pankov
a29539af69 Update docs.yml 2022-04-30 11:35:07 -07:00
Eugene Pankov
4c242fdca4 fixed serial port name encoding - fixes #6200 2022-04-30 20:16:51 +02:00
Eugene Pankov
80b44500c4 settings: fixed font autocomplete - fixes #6298, fixes #6298 2022-04-30 10:50:41 -07:00
Eugene Pankov
5433cc6136 bump xterm search addon 2022-04-30 10:28:18 -07:00
Eugene Pankov
9d88ed6371 limit search panel width 2022-04-30 10:28:12 -07:00
Eugene Pankov
12362231cf ssh: show CWD detection tip more prominently 2022-04-30 10:10:10 -07:00
Eugene Pankov
a31cacf4ee focus the next tab after closing a tab - fixes #6325 2022-04-30 09:58:20 -07:00
Eugene Pankov
3e2f93c226 autorebuild native modules 2022-04-30 09:49:40 -07:00
Eugeny
a434220ff0 Merge pull request #6309 from Eugeny/all-contributors/add-LiangchengJ 2022-04-28 22:13:37 +02:00
dependabot[bot]
9be970614a Bump ejs from 3.1.6 to 3.1.7
Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
- [Release notes](https://github.com/mde/ejs/releases)
- [Changelog](https://github.com/mde/ejs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mde/ejs/compare/v3.1.6...v3.1.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-28 20:12:32 +00:00
Eugeny
a629092985 Merge pull request #6299 from Eugeny/dependabot/npm_and_yarn/ssh2-1.10.0 2022-04-28 22:11:14 +02:00
allcontributors[bot]
8808593b00 docs: update .all-contributorsrc [skip ci] 2022-04-28 20:10:55 +00:00
allcontributors[bot]
a78fe7a9a8 docs: update README.de-DE.md [skip ci] 2022-04-28 20:10:55 +00:00
allcontributors[bot]
9faf3ccd1d docs: update README.it-IT.md [skip ci] 2022-04-28 20:10:53 +00:00
allcontributors[bot]
75a7707965 docs: update README.ko-KR.md [skip ci] 2022-04-28 20:10:52 +00:00
allcontributors[bot]
5714fc85d3 docs: update README.ru-RU.md [skip ci] 2022-04-28 20:10:52 +00:00
allcontributors[bot]
7668f4beea docs: update README.zh-CN.md [skip ci] 2022-04-28 20:10:51 +00:00
Eugeny
7b41cb0936 Merge pull request #6308 from LiangchengJ/fetch 2022-04-28 22:10:50 +02:00
allcontributors[bot]
fee18c4f8b docs: update README.md [skip ci] 2022-04-28 20:10:49 +00:00
Liangcheng Juves
716ce018fb Add icon for docker profiles 2022-04-28 22:49:25 +08:00
dependabot[bot]
8107b96563 Bump axios from 0.26.1 to 0.27.2
Bumps [axios](https://github.com/axios/axios) from 0.26.1 to 0.27.2.
- [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.26.1...v0.27.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-28 04:06:26 +00:00
dependabot[bot]
d7146eb523 Bump ssh2 from 1.9.0 to 1.10.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.9.0...v1.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-28 04:05:10 +00:00
dependabot[bot]
62b94bff2f Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-26 04:17:53 +00:00
Eugeny
f653fe9c85 Merge pull request #6276 from Jai-JAP/master
Fix armv7l builds
2022-04-25 13:51:54 +02:00
Jai A P
ae82e568dd Merge branch 'Eugeny:master' into master 2022-04-25 16:00:42 +05:30
Jai A P
2ba4036275 Rename builder-util+23.0.3.patch to builder-util+23.0.8.patch 2022-04-25 15:58:58 +05:30
Jai A P
43d389a1ef Merge pull request #1 from Jai-JAP/176-fix
176 fix
2022-04-25 15:58:31 +05:30
Jai A P
c7a72da0ab Add files via upload 2022-04-25 15:07:49 +05:30
Jai A P
66fad228fc Update build-native.js 2022-04-25 11:20:35 +05:30
Jai A P
5e217cf654 Update build-linux.js 2022-04-25 11:19:30 +05:30
Eugeny
28b227bca4 Merge pull request #6226 from Eugeny/dependabot/npm_and_yarn/electron-18.1.0 2022-04-24 10:34:48 +02:00
Eugene Pankov
d2b0fae9ed added @hisamafahri 2022-04-24 10:33:17 +02:00
Eugeny
4299236c4d Merge pull request #6262 from hisamafahri/master 2022-04-24 10:31:55 +02:00
Jai A P
2af4714d66 Update build-linux.js 2022-04-24 11:49:46 +05:30
Hisam Fahri
389e05c832 feat(hotkey): add the delete entire line hotkey 2022-04-24 11:57:59 +07:00
Eugeny
500a42c1f7 Merge pull request #6258 from MagicLike/master
A bit more polishing
2022-04-23 22:38:24 +02:00
MagicLike
fceb1da62f A bit more polishing
Added dots between the language links, inspired by anuraghazra/github-readme-stats
2022-04-23 21:32:08 +02:00
Jai A P
8dba1bf5cd Update build-linux.js 2022-04-23 14:06:29 +05:30
Jai A P
7c5e136c31 Update build-native.js 2022-04-23 14:05:44 +05:30
Eugene Pankov
4c9fb9a3d4 added @magiclike for doc 2022-04-23 10:00:22 +02:00
Eugeny
a6e5f004a8 Merge pull request #6251 from MagicLike/master 2022-04-22 23:08:29 +02:00
MagicLike
5b845dae45 Added README.de-DE.md 2022-04-22 23:06:47 +02:00
MagicLike
dc037bc918 Merge branch 'Eugeny:master' into master 2022-04-22 22:41:54 +02:00
MagicLike
13fe3ef1ec Translated, linked & polished
- README translated into german
- Added some spaces in the README
- Linked the READMEs together, except ko-KR
- Changed "Inglese" to "English" in it-IT
- Removed link to zh-CN in zh-CN
- Added flags in the READMEs, except for ko-KR
2022-04-22 22:39:40 +02:00
Eugeny
c4544256e1 Merge pull request #6244 from Eugeny/all-contributors/add-woodmeal
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2022-04-22 09:50:47 +02:00
woodmeal
25f5cf04ea Adding env handlement for ssh profile sessions (#6242) 2022-04-22 09:50:35 +02:00
allcontributors[bot]
36a63e771f docs: update .all-contributorsrc [skip ci] 2022-04-22 07:50:32 +00:00
allcontributors[bot]
fd809d7d85 docs: update README.it-IT.md [skip ci] 2022-04-22 07:50:31 +00:00
allcontributors[bot]
81fe06a9f6 docs: update README.ko-KR.md [skip ci] 2022-04-22 07:50:30 +00:00
allcontributors[bot]
e3d6b5f3d7 docs: update README.ru-RU.md [skip ci] 2022-04-22 07:50:29 +00:00
allcontributors[bot]
4e3caa7409 docs: update README.zh-CN.md [skip ci] 2022-04-22 07:50:28 +00:00
allcontributors[bot]
7b6ce3aeba docs: update README.md [skip ci] 2022-04-22 07:50:27 +00:00
dependabot[bot]
fdf66b7b22 Bump electron from 18.0.4 to 18.1.0
Bumps [electron](https://github.com/electron/electron) from 18.0.4 to 18.1.0.
- [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/v18.0.4...v18.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 04:05:23 +00:00
dependabot[bot]
42867818da Bump npmlog from 6.0.0 to 6.0.2
Bumps [npmlog](https://github.com/npm/npmlog) from 6.0.0 to 6.0.2.
- [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/v6.0.0...v6.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 04:04:55 +00:00
Eugeny
58f2c3d081 Merge pull request #6220 from Eugeny/all-contributors/add-Ox0400 2022-04-20 14:20:47 +02:00
allcontributors[bot]
1c011b6fe3 docs: update .all-contributorsrc [skip ci] 2022-04-20 12:20:39 +00:00
allcontributors[bot]
88c2a9996b docs: update README.it-IT.md [skip ci] 2022-04-20 12:20:39 +00:00
allcontributors[bot]
b68213e278 docs: update README.ko-KR.md [skip ci] 2022-04-20 12:20:37 +00:00
allcontributors[bot]
6bb8deacb7 docs: update README.ru-RU.md [skip ci] 2022-04-20 12:20:36 +00:00
allcontributors[bot]
5dc3eecb74 docs: update README.zh-CN.md [skip ci] 2022-04-20 12:20:36 +00:00
allcontributors[bot]
531b658405 docs: update README.md [skip ci] 2022-04-20 12:20:35 +00:00
Eugeny
a710819615 Merge pull request #6218 from Ox0400/master 2022-04-20 14:20:34 +02:00
zhipeng
ca441b6f83 fix import lowcase host from ssh/config 2022-04-20 19:34:06 +08:00
Eugene Pankov
b6d0bd2d43 fixed search - fixes #6197 2022-04-20 09:37:43 +02:00
Eugeny
3cce468bf3 Merge pull request #6117 from Eugeny/dependabot/npm_and_yarn/webpack-5.72.0 2022-04-20 09:02:49 +02:00
Eugeny
22d1119c33 Merge pull request #6213 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/xterm-addon-webgl-0.12.0-beta.28 2022-04-20 09:02:18 +02:00
Eugeny
ddbfc700e5 Merge pull request #6212 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/xterm-addon-search-0.9.0-beta.21 2022-04-20 09:02:10 +02:00
dependabot[bot]
93081162fe Bump xterm-addon-webgl in /tabby-terminal
Bumps [xterm-addon-webgl](https://github.com/xtermjs/xterm.js) from 0.12.0-beta.27 to 0.12.0-beta.28.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-20 04:19:56 +00:00
dependabot[bot]
4fb158d2a1 Bump xterm-addon-search in /tabby-terminal
Bumps [xterm-addon-search](https://github.com/xtermjs/xterm.js) from 0.9.0-beta.18 to 0.9.0-beta.21.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-20 04:19:47 +00:00
dependabot[bot]
0bbb11131d Bump node-abi from 3.8.0 to 3.15.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.8.0 to 3.15.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.8.0...v3.15.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>
2022-04-20 04:03:55 +00:00
Eugene Pankov
4a82294741 fixed ARM macOS builds - fixes #6201 2022-04-19 13:31:50 +02:00
Eugene Pankov
9a08bf8782 Update updater.service.ts 2022-04-19 12:30:24 +02:00
Eugene Pankov
2e83b450a9 Update updater.service.ts 2022-04-19 11:28:32 +02:00
dependabot[bot]
c540f1a813 Bump typedoc from 0.22.13 to 0.22.15
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.13 to 0.22.15.
- [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.13...v0.22.15)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-19 08:55:09 +00:00
dependabot[bot]
450a0f3980 Bump graceful-fs from 4.2.9 to 4.2.10
Bumps [graceful-fs](https://github.com/isaacs/node-graceful-fs) from 4.2.9 to 4.2.10.
- [Release notes](https://github.com/isaacs/node-graceful-fs/releases)
- [Commits](https://github.com/isaacs/node-graceful-fs/compare/v4.2.9...v4.2.10)

---
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-04-19 08:54:59 +00:00
dependabot[bot]
b97d3e30fb Bump webpack from 5.70.0 to 5.72.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.70.0 to 5.72.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.70.0...v5.72.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-04-19 08:54:28 +00:00
Eugene Pankov
12486584f0 use s3 for updates 2022-04-19 10:50:31 +02:00
Eugeny
90168323c8 Merge pull request #6083 from Eugeny/dependabot/npm_and_yarn/ssh2-1.9.0 2022-04-19 01:07:12 +02:00
Eugeny
e1d86810e3 Merge pull request #6101 from Eugeny/dependabot/npm_and_yarn/app/macos-native-processlist-2.1.0 2022-04-19 01:07:01 +02:00
Eugeny
7be713495e Merge pull request #6129 from Eugeny/dependabot/npm_and_yarn/app/electron-updater-5.0.1 2022-04-19 01:05:57 +02:00
Eugeny
27ed3b0444 Merge pull request #6171 from Eugeny/dependabot/npm_and_yarn/electron-18.0.4 2022-04-19 01:03:07 +02:00
Eugene Pankov
5d2db6d85c fixed windows release arm64 builds 2022-04-18 23:24:48 +02:00
Eugene Pankov
ba7571248c Update app.ts 2022-04-15 21:30:03 +02:00
Eugene Pankov
763bb2c7aa macOS: open a new window if none are open when called from CLI - fixes #6031 2022-04-15 20:04:30 +02:00
Eugene Pankov
3d841eb97c added "new window" to macOS dock menu - fixes #6037 2022-04-15 19:52:07 +02:00
Eugene Pankov
7016688170 allow directly editing items from the profile selector - fixes #6039 2022-04-15 19:45:30 +02:00
Eugene Pankov
358a7563f6 ssh: use correct profile's login scripts - fixes #6064 2022-04-15 19:15:27 +02:00
Eugene Pankov
9c6acf99d0 ssh: allow SOCKS proxy-side DNS resolving - fixes #6100 2022-04-15 19:03:21 +02:00
Eugene Pankov
eaf4ed9855 expose the drawBoldTextInBrightColors option - fixes #3149 2022-04-15 18:55:00 +02:00
Eugene Pankov
4a33936e7d Merge branch 'master' of github.com:Eugeny/tabby 2022-04-15 18:54:59 +02:00
Eugene Pankov
903b7d70f9 alllow changing font weight for normal and bold text - fixes #3129, fixes #3400, fixes #5444, fixes #3045, fixes #6099 2022-04-15 18:47:55 +02:00
Eugeny
143f5edcb3 Merge pull request #6175 from 2ykwang/fix-small-typo
Fix small typo
2022-04-15 16:27:57 +02:00
Youngkwang Yang
0ee0f98462 Fix typo 2022-04-15 22:59:24 +09:00
Eugene Pankov
b330c428e6 updated locales, added Korean 2022-04-15 12:43:07 +02:00
Eugeny
61810da810 Merge pull request #6106 from Jai-JAP/master 2022-04-15 12:32:55 +02:00
Eugene Pankov
1e85acb99e fixed tab header animations, allow disabling animations globally #6147 2022-04-15 12:27:48 +02:00
Eugene Pankov
38c1fafeee Update theme.scss 2022-04-15 12:25:36 +02:00
Eugene Pankov
5e75d88f1d better color scheme preview examples - fixes #6090 2022-04-15 11:37:41 +02:00
Eugene Pankov
4fe4ae8b9b fixed color scheme editing - fixes #5742 2022-04-15 11:23:55 +02:00
dependabot[bot]
23040aa217 Bump electron from 18.0.1 to 18.0.4
Bumps [electron](https://github.com/electron/electron) from 18.0.1 to 18.0.4.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v18.0.1...v18.0.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-15 04:04:40 +00:00
Eugene Pankov
14cf0a574e Merge branch 'master' of github.com:Eugeny/tabby 2022-04-12 18:47:08 +02:00
Eugene Pankov
50887af27f updated locales 2022-04-12 18:46:47 +02:00
Eugeny
3dca21394f Merge pull request #6146 from Eugeny/all-contributors/add-ChristianBingman 2022-04-12 18:38:29 +02:00
allcontributors[bot]
109f38b7cc docs: update .all-contributorsrc [skip ci] 2022-04-12 16:37:07 +00:00
allcontributors[bot]
ecc5f6d1de docs: update README.it-IT.md [skip ci] 2022-04-12 16:37:06 +00:00
allcontributors[bot]
ead3a30cf0 docs: update README.ko-KR.md [skip ci] 2022-04-12 16:37:05 +00:00
allcontributors[bot]
facc1f1dff docs: update README.ru-RU.md [skip ci] 2022-04-12 16:37:04 +00:00
allcontributors[bot]
74dc6002d1 docs: update README.zh-CN.md [skip ci] 2022-04-12 16:37:03 +00:00
allcontributors[bot]
cc67774108 docs: update README.md [skip ci] 2022-04-12 16:37:02 +00:00
Eugeny
5c04c11132 Merge pull request #6140 from ChristianBingman/pane-resizing-with-hotkeys 2022-04-12 18:36:04 +02:00
Eugene Pankov
be72cd59cc renamed setting, cleanup 2022-04-12 18:35:44 +02:00
christianbingman
4cf9eda55f Allows the user to resize panes using hotkeys
Changes:
- Adds 4 hotkeys for resizing panes horizontally and vertically
- Updates the config files (default not set)
- Updates the window settings to allow the user to modify the pane
  resize increments
2022-04-11 19:44:24 -05:00
dependabot[bot]
db866fbacf Bump electron-updater from 4.6.5 to 5.0.1 in /app
Bumps [electron-updater](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-updater) from 4.6.5 to 5.0.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/electron-updater@5.0.1/packages/electron-updater)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 04:01:43 +00:00
Jai A P
086c4e68e6 Update build-linux.js 2022-04-10 17:32:08 +05:30
Jai A P
e303621fc5 Update build-native.js 2022-04-10 17:30:29 +05:30
Jai A P
579b60236b Update build-native.js 2022-04-09 23:08:56 +05:30
Jai A P
31f549f5bb Update build.yml 2022-04-09 22:38:39 +05:30
Jai A P
f18c58360d Update build-native.js 2022-04-06 17:01:13 +05:30
Jai A P
3287f410b7 Update build.yml 2022-04-06 17:00:35 +05:30
Jai A P
1a37ba224d Update build-native.js 2022-04-06 16:35:38 +05:30
Jai A P
49934aea5d Update build.yml 2022-04-06 16:34:28 +05:30
dependabot[bot]
da3143fab8 Bump macos-native-processlist from 2.0.0 to 2.1.0 in /app
Bumps [macos-native-processlist](https://github.com/Eugeny/macos-native-processlist) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/Eugeny/macos-native-processlist/releases)
- [Commits](https://github.com/Eugeny/macos-native-processlist/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: macos-native-processlist
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-06 04:01:35 +00:00
Eugene Pankov
95ae4b84a6 fixed windows x64 build 2022-04-05 09:39:52 +02:00
Eugene Pankov
f85294e603 fixed disableVibrancyWhileDragging check 2022-04-05 09:21:04 +02:00
dependabot[bot]
7807c5e1c8 Bump winston from 3.6.0 to 3.7.2 in /tabby-electron
Bumps [winston](https://github.com/winstonjs/winston) from 3.6.0 to 3.7.2.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-05 04:17:20 +00:00
Eugene Pankov
a2975f5234 added @TimaGribanov for translations 2022-04-04 13:22:41 +02:00
Eugeny
e049d38cef Merge pull request #6087 from Eugeny/all-contributors/add-TimaGribanov 2022-04-04 12:41:34 +02:00
allcontributors[bot]
84a58de57f docs: update .all-contributorsrc [skip ci] 2022-04-04 10:41:27 +00:00
allcontributors[bot]
b519afc42c docs: update README.it-IT.md [skip ci] 2022-04-04 10:41:26 +00:00
allcontributors[bot]
49aade155b docs: update README.ko-KR.md [skip ci] 2022-04-04 10:41:25 +00:00
allcontributors[bot]
240fc57435 docs: update README.ru-RU.md [skip ci] 2022-04-04 10:41:24 +00:00
allcontributors[bot]
cf7b344fb1 docs: update README.zh-CN.md [skip ci] 2022-04-04 10:41:23 +00:00
allcontributors[bot]
c6e5a951f8 docs: update README.md [skip ci] 2022-04-04 10:41:22 +00:00
Eugeny
de861ad98e Merge pull request #6086 from TimaGribanov/patch-1 2022-04-04 12:41:15 +02:00
Timofey Gribanov
068abec8d8 Update README.ru-RU.md
Added Italian button. Changed language links' texts to the own name in a target language.
2022-04-04 13:38:54 +03:00
dependabot[bot]
5abe2e6376 Bump ssh2 from 1.8.0 to 1.9.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.8.0...v1.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 04:05:05 +00:00
Eugene Pankov
98d3b824c4 fixed macOS alt-n and alt-shift-letter handling - fixes #4815, fixes #6029 2022-04-03 17:58:15 +02:00
Eugeny
f3cd986f2b Merge pull request #6060 from Eugeny/dependabot/npm_and_yarn/sentry/cli-1.74.3 2022-04-03 16:13:24 +02:00
Eugene Pankov
6d734ab7c6 Update xtermFrontend.ts 2022-04-03 16:12:23 +02:00
Eugene Pankov
4aa824d725 search improvements, added highlighting - fixes #5940, fixes #5032, fixes #5152 2022-04-03 15:19:22 +02:00
Eugene Pankov
cfa29acb5a search improvements, added decorators 2022-04-03 14:31:36 +02:00
Eugene Pankov
cfa1fd38de bumped xterm 2022-04-03 14:31:07 +02:00
Eugene Pankov
595b92366b rename ssh2 patch 2022-04-03 14:30:44 +02:00
dependabot[bot]
bb59f3a2ef Bump @sentry/cli from 1.73.0 to 1.74.3
Bumps [@sentry/cli](https://github.com/getsentry/sentry-cli) from 1.73.0 to 1.74.3.
- [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.73.0...1.74.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-03 12:10:25 +00:00
Eugene Pankov
a9a0ea3a42 Update icons.json 2022-04-03 14:07:50 +02:00
Eugene Pankov
79cb1f1d9c Merge branch 'master' of github.com:Eugeny/tabby 2022-04-03 14:06:22 +02:00
Eugeny
3a16a118e7 Merge pull request #6015 from Eugeny/dependabot/npm_and_yarn/ssh2-1.8.0 2022-04-03 14:05:52 +02:00
Eugeny
b16210f561 Merge pull request #5993 from Eugeny/dependabot/npm_and_yarn/fortawesome/fontawesome-free-6.1.1 2022-04-03 14:05:45 +02:00
Eugeny
6aafbfc288 Merge pull request #6058 from Eugeny/dependabot/npm_and_yarn/app/windows-process-tree-0.3.3 2022-04-03 14:05:38 +02:00
Eugeny
41aaac6a23 Merge pull request #6059 from Eugeny/dependabot/npm_and_yarn/electron-18.0.1 2022-04-03 14:04:43 +02:00
Eugene Pankov
911e72c398 option to force plain-text copying - fixes #5050 2022-04-03 13:57:40 +02:00
Eugene Pankov
8e00761b0c don't filter out non-monospace fonts - fixes #5544 2022-04-02 18:12:56 +02:00
Eugene Pankov
4dadba7f80 fixed fallback font embedding (powerline icons) - fixes #6071, fixes #3346, fixes #5189 2022-04-02 18:06:35 +02:00
Eugene Pankov
94b3212afb msys2: set correct starting directory - fixes #6079 2022-04-02 17:46:34 +02:00
Eugene Pankov
3a012878d0 Merge branch 'master' of github.com:Eugeny/tabby 2022-04-01 12:51:59 +02:00
Eugene Pankov
bc89774fbc added missing strings 2022-04-01 12:51:53 +02:00
dependabot[bot]
40c3a5427a Bump electron from 17.3.0 to 18.0.1
Bumps [electron](https://github.com/electron/electron) from 17.3.0 to 18.0.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/v17.3.0...v18.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-31 04:05:38 +00:00
dependabot[bot]
79b518e17e Bump windows-process-tree from 0.3.2 to 0.3.3 in /app
Bumps [windows-process-tree](https://github.com/Microsoft/vscode-windows-process-tree) from 0.3.2 to 0.3.3.
- [Release notes](https://github.com/Microsoft/vscode-windows-process-tree/releases)
- [Commits](https://github.com/Microsoft/vscode-windows-process-tree/compare/0.3.2...0.3.3)

---
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>
2022-03-31 04:01:48 +00:00
Eugeny
89bbd6669b Merge pull request #6049 from boonkerz/sftp 2022-03-30 19:18:17 +02:00
Thomas Peterson
d1532f64a0 Merge remote-tracking branch 'origin' into sftp 2022-03-30 19:00:42 +02:00
Eugene Pankov
f7e51c298d Merge branch 'master' of github.com:Eugeny/tabby 2022-03-30 14:20:10 +02:00
Eugene Pankov
a9bcc0b206 sftp: fixed folder refresh after uploading 2022-03-30 14:20:06 +02:00
Thomas Peterson
45eebf47f3 Fixing Lang Typo 2022-03-30 14:01:01 +02:00
Thomas Peterson
a4600890c3 Fixing Lang Typo 2022-03-30 13:59:56 +02:00
Thomas Peterson
54aa027764 Fixing the modal dialog and some architecture issues :) 2022-03-30 13:57:54 +02:00
boonkerz
8904209bb5 Update tabby-ssh/src/components/sftpCreateDirectoryModal.component.pug
Co-authored-by: Eugeny <x@null.page>
2022-03-30 09:10:22 +02:00
boonkerz
d710c5d3fa Update tabby-ssh/src/sftpContextMenu.ts
Co-authored-by: Eugeny <x@null.page>
2022-03-30 09:10:16 +02:00
Thomas Peterson
e2a74a2f6e Fix Typings 2022-03-29 18:43:32 +02:00
Thomas Peterson
e223effe98 SFTP Feature: implement Create Folder 2022-03-29 18:26:57 +02:00
Eugeny
4b02d61f3f Merge pull request #6048 from Eugeny/all-contributors/add-artu-ole 2022-03-29 16:35:50 +02:00
allcontributors[bot]
9b8ae6d6be docs: update .all-contributorsrc [skip ci] 2022-03-29 14:35:43 +00:00
allcontributors[bot]
c9e8e54fe3 docs: update README.it-IT.md [skip ci] 2022-03-29 14:35:42 +00:00
allcontributors[bot]
004a04640d docs: update README.ko-KR.md [skip ci] 2022-03-29 14:35:41 +00:00
allcontributors[bot]
e71ac85ec3 docs: update README.ru-RU.md [skip ci] 2022-03-29 14:35:40 +00:00
allcontributors[bot]
ed2d1a1606 docs: update README.zh-CN.md [skip ci] 2022-03-29 14:35:39 +00:00
allcontributors[bot]
edc9656fd2 docs: update README.md [skip ci] 2022-03-29 14:35:38 +00:00
Eugeny
65ef8cde5a Merge pull request #6046 from artu-ole/master 2022-03-29 16:35:18 +02:00
Artur
6e09931952 Preserve profile groups collapse state.
use local storage rather than config store
Remove config save and toggleGroupCollapse not to be async
2022-03-29 15:24:58 +03:00
dependabot[bot]
4e8cb70fe0 Bump ssh2 from 1.7.0 to 1.8.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.7.0...v1.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-29 12:11:04 +00:00
Eugeny
40cf2bde9b Merge pull request #6047 from Eugeny/dependabot/npm_and_yarn/app/minimist-1.2.6 2022-03-29 14:07:26 +02:00
Eugeny
21b70b3ee5 Merge pull request #6043 from Eugeny/dependabot/npm_and_yarn/tabby-ssh/types/ssh2-0.5.52 2022-03-29 14:07:17 +02:00
Eugeny
2f4318e1f4 Merge pull request #6041 from Eugeny/dependabot/npm_and_yarn/electron-17.3.0 2022-03-29 14:07:09 +02:00
Eugeny
c75c5aae14 Merge pull request #6025 from Eugeny/dependabot/npm_and_yarn/plist-3.0.5 2022-03-29 14:06:42 +02:00
Eugeny
c39d79c1c6 Merge pull request #5969 from Eugeny/dependabot/npm_and_yarn/sortablejs-1.15.0 2022-03-29 14:06:30 +02:00
dependabot[bot]
418df22da4 Bump minimist from 1.2.5 to 1.2.6 in /app
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-29 12:00:13 +00:00
Eugeny
2f66dc3bb0 Merge pull request #6020 from Eugeny/dependabot/npm_and_yarn/tabby-web-demo/minimist-1.2.6 2022-03-29 13:59:46 +02:00
Eugeny
2a192af169 Merge pull request #6021 from Eugeny/dependabot/npm_and_yarn/web/minimist-1.2.6 2022-03-29 13:59:37 +02:00
Eugeny
a1f269f8ac Merge pull request #6022 from Eugeny/dependabot/npm_and_yarn/tabby-core/minimist-1.2.6 2022-03-29 13:59:32 +02:00
Eugeny
c1386349ea Merge pull request #6023 from Eugeny/dependabot/npm_and_yarn/tabby-terminal/minimist-1.2.6 2022-03-29 13:59:27 +02:00
Eugeny
80443b073c Merge pull request #6024 from Eugeny/dependabot/npm_and_yarn/minimist-1.2.6 2022-03-29 13:59:20 +02:00
dependabot[bot]
591f0eb445 Bump @types/ssh2 from 0.5.51 to 0.5.52 in /tabby-ssh
Bumps [@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2) from 0.5.51 to 0.5.52.
- [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-03-29 04:18:53 +00:00
dependabot[bot]
b2333d5c7c Bump electron from 17.2.0 to 17.3.0
Bumps [electron](https://github.com/electron/electron) from 17.2.0 to 17.3.0.
- [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/v17.2.0...v17.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-29 04:04:11 +00:00
Eugeny
a5282eaf8c Merge pull request #6006 from Eugeny/dependabot/npm_and_yarn/electron-17.2.0 2022-03-26 23:09:40 +01:00
Eugeny
5a5b73a636 Merge pull request #6014 from Eugeny/dependabot/npm_and_yarn/electron-notarize-1.2.1 2022-03-26 23:08:25 +01:00
Eugeny
f406de1873 Merge pull request #6028 from Eugeny/all-contributors/add-ysc3839 2022-03-26 23:08:16 +01:00
allcontributors[bot]
7744b28561 docs: update .all-contributorsrc [skip ci] 2022-03-26 22:07:56 +00:00
allcontributors[bot]
a32ec15d30 docs: update README.it-IT.md [skip ci] 2022-03-26 22:07:55 +00:00
allcontributors[bot]
88c8a4667a docs: update README.ko-KR.md [skip ci] 2022-03-26 22:07:54 +00:00
allcontributors[bot]
a9d6a968d5 docs: update README.ru-RU.md [skip ci] 2022-03-26 22:07:53 +00:00
Eugeny
018355ce44 Merge pull request #6027 from ysc3839/fix-win7-crash 2022-03-26 23:07:52 +01:00
allcontributors[bot]
47a837b109 docs: update README.zh-CN.md [skip ci] 2022-03-26 22:07:52 +00:00
allcontributors[bot]
116c144576 docs: update README.md [skip ci] 2022-03-26 22:07:51 +00:00
Richard Yu
aedad13f48 fix crash on Windows 7 2022-03-27 04:19:22 +08:00
dependabot[bot]
b9abe4f2ca Bump plist from 3.0.4 to 3.0.5
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 10:48:12 +00:00
dependabot[bot]
d1e85dc870 Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 10:48:09 +00:00
dependabot[bot]
2f0ebf9a61 Bump minimist from 1.2.5 to 1.2.6 in /tabby-terminal
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 10:48:04 +00:00
dependabot[bot]
ac36627392 Bump minimist from 1.2.5 to 1.2.6 in /tabby-core
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 10:48:03 +00:00
dependabot[bot]
fab5feb29d Bump minimist from 1.2.5 to 1.2.6 in /web
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 10:48:01 +00:00
Eugeny
69ddd2fc9f Merge pull request #6019 from Eugeny/all-contributors/add-Jai-JAP 2022-03-26 11:48:01 +01:00
dependabot[bot]
3e7f4dd6dc Bump minimist from 1.2.5 to 1.2.6 in /tabby-web-demo
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 10:48:00 +00:00
allcontributors[bot]
296be13b40 docs: update .all-contributorsrc [skip ci] 2022-03-26 10:47:52 +00:00
allcontributors[bot]
2d7398c623 docs: update README.it-IT.md [skip ci] 2022-03-26 10:47:51 +00:00
allcontributors[bot]
add55d014e docs: update README.ko-KR.md [skip ci] 2022-03-26 10:47:50 +00:00
allcontributors[bot]
0c8c2d3e95 docs: update README.ru-RU.md [skip ci] 2022-03-26 10:47:49 +00:00
allcontributors[bot]
9b07ab053a docs: update README.zh-CN.md [skip ci] 2022-03-26 10:47:48 +00:00
allcontributors[bot]
f447658c62 docs: update README.md [skip ci] 2022-03-26 10:47:47 +00:00
Eugeny
40e0bcce17 Merge pull request #5907 from Jai-JAP/master 2022-03-26 11:47:30 +01:00
Jai A P
48c06fc26e Update build-linux.js 2022-03-25 19:28:02 +05:30
Jai A P
360b75693b Update build-native.js 2022-03-25 19:27:36 +05:30
Jai A P
579c0e9aa5 Update HACKING.md 2022-03-25 17:05:54 +05:30
Jai A P
5a66a64f87 Update build-native.js 2022-03-25 16:26:37 +05:30
Jai A P
ead2dbc208 Update build-native.js 2022-03-25 16:25:39 +05:30
Jai A P
37ba06b65c Update build-linux.js 2022-03-25 16:25:06 +05:30
Jai A P
b2c611f9a6 Update build-native.js 2022-03-25 16:21:58 +05:30
Jai A P
eb6bf288cc Update build.yml 2022-03-25 16:19:20 +05:30
Jai A P
0f35b3bcfa Update build.yml 2022-03-25 16:16:57 +05:30
Jai A P
86effd748f Merge branch 'Eugeny:master' into master 2022-03-25 16:11:53 +05:30
dependabot[bot]
98f19e1ada Bump electron-notarize from 1.1.1 to 1.2.1
Bumps [electron-notarize](https://github.com/electron/electron-notarize) from 1.1.1 to 1.2.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.1.1...v1.2.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>
2022-03-25 04:05:49 +00:00
dependabot[bot]
9ac7a67d74 Bump electron from 17.1.2 to 17.2.0
Bumps [electron](https://github.com/electron/electron) from 17.1.2 to 17.2.0.
- [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/v17.1.2...v17.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 04:11:22 +00:00
dependabot[bot]
adac51c71d Bump @fortawesome/fontawesome-free from 6.0.0 to 6.1.1
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.0.0 to 6.1.1.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.0.0...6.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-23 04:03:55 +00:00
Eugene Pankov
aee6ae907d added missing strings to .pot 2022-03-22 15:28:55 +01:00
Eugene Pankov
75c911b5e4 locale update, added Portuguese (Brazil) and missing strings 2022-03-22 15:25:41 +01:00
Eugene Pankov
8ec419f8e5 fixed duplicate default hotkeys 2022-03-22 11:28:17 +01:00
jai-jap
2229d54b33 Revert "Delete build.yml"
This reverts commit 332c5c0b5e.
2022-03-21 15:50:26 +05:30
jai-jap
8c0d681345 Revert "Delete docs.yml"
This reverts commit f18c1f6d3a.
2022-03-21 15:50:14 +05:30
Jai A P
541c264384 Merge branch 'Eugeny:master' into master 2022-03-21 15:39:01 +05:30
Jai A P
f18c1f6d3a Delete docs.yml 2022-03-21 15:33:23 +05:30
Jai A P
332c5c0b5e Delete build.yml 2022-03-21 15:33:13 +05:30
Jai A P
4aca0fdf09 Update build-native.js 2022-03-21 12:09:24 +05:30
Jai A P
26f93f7ac5 Update build-linux.js 2022-03-21 12:08:52 +05:30
dependabot[bot]
237cb5b26c Bump sortablejs from 1.14.0 to 1.15.0
Bumps [sortablejs](https://github.com/SortableJS/Sortable) from 1.14.0 to 1.15.0.
- [Release notes](https://github.com/SortableJS/Sortable/releases)
- [Commits](https://github.com/SortableJS/Sortable/compare/1.14.0...1.15.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 04:04:56 +00:00
Eugene Pankov
780691413d fixed incorrect passthrough handling in zmodem 2022-03-19 13:42:27 +01:00
Eugene Pankov
45b6e21dbc relax OSC52 processing rules to support tmux - fixes #5961 2022-03-19 11:53:44 +01:00
Eugeny
3bfdb95bf0 Merge pull request #5879 from Eugeny/dependabot/npm_and_yarn/zone.js-0.11.5 2022-03-16 23:18:55 +01:00
Eugeny
9fab7af85a Merge pull request #5898 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.13 2022-03-16 23:18:40 +01:00
Eugeny
ae7bc8daa2 Merge pull request #5910 from Eugeny/dependabot/npm_and_yarn/app/rxjs-7.5.5 2022-03-16 23:18:17 +01:00
Eugeny
1a83664b2c Merge pull request #5919 from Eugeny/dependabot/npm_and_yarn/axios-0.26.1 2022-03-16 23:17:38 +01:00
Eugeny
0c27546ca4 Merge pull request #5924 from Eugeny/dependabot/npm_and_yarn/ts-loader-9.2.8 2022-03-16 23:17:31 +01:00
Eugeny
a09a50cd33 Merge pull request #5943 from Eugeny/dependabot/npm_and_yarn/app/electron/remote-2.0.8 2022-03-16 23:16:47 +01:00
Eugene Pankov
9bc6831f40 sort hosts in the jump hosts list 2022-03-16 10:34:40 +01:00
Eugene Pankov
7e876afb3b Update platform.service.ts 2022-03-16 10:26:38 +01:00
Eugene Pankov
515ddbf64b new color picker 2022-03-16 10:26:34 +01:00
Eugene Pankov
0560196546 filter out unsupported SSH algos - fixes #5942 2022-03-16 10:10:30 +01:00
Eugene Pankov
1f73cd11b2 fixed admin tabs requiring debug VC libs - fixes #5933, fixes #4793, fixes #5633, fixes #4743 2022-03-16 10:04:49 +01:00
dependabot[bot]
2958dc3353 Bump @electron/remote from 2.0.5 to 2.0.8 in /app
Bumps [@electron/remote](https://github.com/electron/remote) from 2.0.5 to 2.0.8.
- [Release notes](https://github.com/electron/remote/releases)
- [Changelog](https://github.com/electron/remote/blob/main/.releaserc.json)
- [Commits](https://github.com/electron/remote/compare/v2.0.5...v2.0.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-16 04:01:30 +00:00
Eugene Pankov
a76654a7b6 Update xtermFrontend.ts 2022-03-14 16:24:36 +01:00
Eugene Pankov
7508c371df ensure xterm's own _keyUp is getting called 2022-03-14 15:31:06 +01:00
Eugene Pankov
a5d84a490f fixed SVG icons 2022-03-13 10:03:32 +01:00
Eugene Pankov
1029884ef7 set COLORTERM 2022-03-12 21:18:27 +01:00
Eugene Pankov
8d11a91201 merged the xterm sogou/win fix 2022-03-12 21:14:15 +01:00
Eugene Pankov
f6c0dd6ad3 potentially fix Zmodem corruption issues 2022-03-12 19:02:03 +01:00
Eugene Pankov
2c00b9a4bc fixed profile order in the selector dialog - fixes #5537 2022-03-12 18:31:59 +01:00
Eugene Pankov
fc4bbfcd5d bumped electron 2022-03-12 18:31:31 +01:00
Eugene Pankov
90becada86 fixed SVG icons in tab headers - fixes #5926 2022-03-12 18:31:21 +01:00
dependabot[bot]
b6957b25d2 Bump ts-loader from 9.2.7 to 9.2.8
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 9.2.7 to 9.2.8.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.2.7...v9.2.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-11 04:02:57 +00:00
dependabot[bot]
7771f5708b Bump axios from 0.26.0 to 0.26.1
Bumps [axios](https://github.com/axios/axios) from 0.26.0 to 0.26.1.
- [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.26.0...v0.26.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-10 04:07:11 +00:00
Jai A P
f2f0953b24 Fix windows 2022-03-09 22:04:29 +05:30
Jai A P
39fbf467de Update build.yml 2022-03-09 21:32:28 +05:30
Jai A P
d6bcdbde78 Fixes 2022-03-09 21:27:29 +05:30
Jai A P
38f8a7cfef Update build.yml 2022-03-09 17:18:07 +05:30
Jai A P
b27f5c2145 Revert last change 2022-03-09 12:37:16 +05:30
Jai A P
c3e4031aab Update build-linux.js 2022-03-09 12:36:10 +05:30
Jai A P
8c96788b00 Merge branch 'Eugeny:master' into master 2022-03-09 11:52:59 +05:30
Jai A P
725edd53cb Update build-windows.js 2022-03-09 11:19:04 +05:30
Jai A P
1b31187201 Update build.yml 2022-03-09 11:17:02 +05:30
Jai A P
b5506cff61 Update build-linux.js 2022-03-09 10:35:37 +05:30
dependabot[bot]
2aa95f5e25 Bump rxjs from 7.5.1 to 7.5.5 in /app
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.5.1 to 7.5.5.
- [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.5.1...7.5.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-09 04:02:04 +00:00
dependabot[bot]
cd7440052c Bump typedoc from 0.22.12 to 0.22.13
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.12 to 0.22.13.
- [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.12...v0.22.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-08 22:11:16 +00:00
Eugene Pankov
d4fb56b30b lint 2022-03-08 23:05:50 +01:00
Eugeny
6a96637932 Merge pull request #5909 from Eugeny/all-contributors/add-microhobby 2022-03-08 22:34:42 +01:00
allcontributors[bot]
2e29d13412 docs: update .all-contributorsrc [skip ci] 2022-03-08 21:34:29 +00:00
allcontributors[bot]
f4c54657eb docs: update README.it-IT.md [skip ci] 2022-03-08 21:34:28 +00:00
allcontributors[bot]
17dc43d5eb docs: update README.ko-KR.md [skip ci] 2022-03-08 21:34:27 +00:00
allcontributors[bot]
25aa2051e9 docs: update README.ru-RU.md [skip ci] 2022-03-08 21:34:26 +00:00
allcontributors[bot]
8d6264019b docs: update README.zh-CN.md [skip ci] 2022-03-08 21:34:25 +00:00
allcontributors[bot]
a069ec606b docs: update README.md [skip ci] 2022-03-08 21:34:24 +00:00
Eugeny
c7639c03f9 Merge pull request #5902 from microhobby/glasstron-b 2022-03-08 22:34:13 +01:00
Eugene Pankov
f073a691fc ssh: fixed newlines in banners/MOTD - fixes #5905 2022-03-08 21:12:12 +01:00
Eugene Pankov
b31b500727 fixed .ssh/config port binding parsing - fixes #5906 2022-03-08 20:47:21 +01:00
Eugene Pankov
df77cc99d9 make vibrancy disabling optional 2022-03-08 20:05:58 +01:00
Eugene Pankov
32170ec640 renamed ssh2 patch 2022-03-08 19:57:56 +01:00
Eugene Pankov
3336b64d9d Merge branch 'master' of github.com:Eugeny/tabby 2022-03-08 19:42:48 +01:00
Eugeny
cc554de4da Merge pull request #5895 from Eugeny/dependabot/npm_and_yarn/ssh2-1.7.0 2022-03-08 19:42:39 +01:00
Eugeny
35b115ae9f Merge pull request #5892 from Eugeny/dependabot/npm_and_yarn/app/serialport-10.4.0 2022-03-08 19:42:03 +01:00
Eugeny
a8e79820a4 Merge pull request #5901 from Eugeny/dependabot/npm_and_yarn/electron-17.1.1 2022-03-08 19:36:52 +01:00
Jai A P
5c325a347c Update build.yml 2022-03-08 23:15:58 +05:30
Jai A P
b70a193dbd Update build.yml 2022-03-08 22:58:11 +05:30
Jai A P
e2d4ef58c4 Update build.yml 2022-03-08 22:45:46 +05:30
Jai A P
d35c03d083 Update build.yml 2022-03-08 22:35:56 +05:30
Jai A P
c533e6c8fd Update electron-builder.yml 2022-03-08 22:31:13 +05:30
Jai-JAP
690a632f96 Add windows arm64 2022-03-08 21:53:59 +05:30
Jai-JAP
d8bec496ee Fix Linux pacman uploads 2022-03-08 21:43:09 +05:30
Jai-JAP
ea38943905 Fixes 2022-03-08 21:14:19 +05:30
Jai-JAP
90bd8b424f Manual run 2022-03-08 21:11:08 +05:30
Jai-JAP
a874a5e4d5 Add Linux armv7l and arm64 support 2022-03-08 20:59:59 +05:30
Matheus Castello
502f72ec35 Does not disable acrylic while dragging when using fluent
It doesn't seem necessary to disable acrylic while dragging when using
fluent with glasstron 0.1.1

Signed-off-by: Matheus Castello <matheus@castello.eng.br>
2022-03-08 02:48:56 -03:00
Matheus Castello
1bb5128729 Fix fluent acrylic bumping glasstron to 0.1.1
Signed-off-by: Matheus Castello <matheus@castello.eng.br>
2022-03-08 02:47:35 -03:00
dependabot[bot]
56ef0c356b Bump electron from 17.1.0 to 17.1.1
Bumps [electron](https://github.com/electron/electron) from 17.1.0 to 17.1.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/v17.1.0...v17.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-08 04:06:05 +00:00
dependabot[bot]
4de572770e Bump ssh2 from 1.6.0 to 1.7.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.6.0...v1.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 04:05:33 +00:00
dependabot[bot]
824b5aab93 Bump serialport from 10.2.2 to 10.4.0 in /app
Bumps [serialport](https://github.com/serialport/node-serialport) from 10.2.2 to 10.4.0.
- [Release notes](https://github.com/serialport/node-serialport/releases)
- [Changelog](https://github.com/serialport/node-serialport/blob/master/CHANGELOG.md)
- [Commits](https://github.com/serialport/node-serialport/compare/v10.2.2...v10.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 04:02:20 +00:00
Eugene Pankov
1a834af663 locale update, added Portuguese 2022-03-06 14:38:31 +01:00
dependabot[bot]
418907936e Bump zone.js from 0.11.4 to 0.11.5
Bumps [zone.js](https://github.com/angular/angular/tree/HEAD/packages/zone.js) from 0.11.4 to 0.11.5.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/packages/zone.js/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/zone.js-0.11.5/packages/zone.js)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-04 04:06:10 +00:00
Eugeny
f5f063a511 Update .all-contributorsrc 2022-03-03 17:05:47 +01:00
Eugeny
5fee1ec1ed Merge pull request #5876 from piersandro/master 2022-03-03 17:05:27 +01:00
Piersandro Guerrera
5e75db92eb Add @piersandro as doc contributor 2022-03-03 17:03:28 +01:00
Piersandro Guerrera
b2325c29df Update Italian README 2022-03-03 16:19:04 +01:00
Eugeny
0ba8db43bf Merge pull request #5859 from Eugeny/dependabot/github_actions/actions/checkout-3 2022-03-03 10:05:28 +01:00
Eugeny
3e931e452b Merge pull request #5858 from Eugeny/dependabot/npm_and_yarn/ts-loader-9.2.7 2022-03-03 10:05:20 +01:00
Eugeny
07f8c0cc08 Merge pull request #5874 from Eugeny/all-contributors/add-Allenator 2022-03-03 10:04:53 +01:00
Eugeny
e48ec7ed67 Merge pull request #5856 from Eugeny/dependabot/npm_and_yarn/plist-3.0.4 2022-03-03 10:04:35 +01:00
allcontributors[bot]
779d4f2fea docs: update .all-contributorsrc [skip ci] 2022-03-03 09:04:11 +00:00
allcontributors[bot]
66da3bc907 docs: update README.ko-KR.md [skip ci] 2022-03-03 09:04:10 +00:00
allcontributors[bot]
d438207dc5 docs: update README.ru-RU.md [skip ci] 2022-03-03 09:04:09 +00:00
allcontributors[bot]
56e1523226 docs: update README.zh-CN.md [skip ci] 2022-03-03 09:04:08 +00:00
allcontributors[bot]
09da979ab5 docs: update README.md [skip ci] 2022-03-03 09:04:07 +00:00
dependabot[bot]
af39b342bd Bump actions/checkout from 2.3.4 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.4...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-02 04:18:24 +00:00
dependabot[bot]
2df94fd62a Bump ts-loader from 9.2.3 to 9.2.7
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 9.2.3 to 9.2.7.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.2.3...v9.2.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-02 04:04:32 +00:00
dependabot[bot]
d2d698b288 Bump plist from 3.0.1 to 3.0.4
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.1 to 3.0.4.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 23:44:56 +00:00
Eugeny
79c7d55c05 Merge pull request #5829 from Eugeny/dependabot/npm_and_yarn/sentry/cli-1.73.0 2022-02-28 10:11:09 +01:00
Eugeny
b351cda35a Merge pull request #5745 from Eugeny/dependabot/npm_and_yarn/app/windows-native-registry-3.2.1 2022-02-28 10:10:48 +01:00
Eugeny
025c747e54 Merge pull request #5846 from Eugeny/all-contributors/add-X-0x01 2022-02-28 09:07:40 +01:00
allcontributors[bot]
27ced5b9bc docs: update .all-contributorsrc [skip ci] 2022-02-28 08:06:00 +00:00
allcontributors[bot]
7d64da1667 docs: update README.ko-KR.md [skip ci] 2022-02-28 08:05:59 +00:00
allcontributors[bot]
c25134d96c docs: update README.ru-RU.md [skip ci] 2022-02-28 08:05:58 +00:00
allcontributors[bot]
cf464f5bb8 docs: update README.zh-CN.md [skip ci] 2022-02-28 08:05:57 +00:00
allcontributors[bot]
a6845069bd docs: update README.md [skip ci] 2022-02-28 08:05:56 +00:00
Eugeny
c09babd326 Merge pull request #5844 from X-0x01/patch-1 2022-02-28 09:05:40 +01:00
X-0x01
89226d66a8 change to the correct category for mac. 2022-02-28 12:04:43 +08:00
Eugeny
77c0b3ea23 Merge pull request #5833 from Eugeny/dependabot/github_actions/actions/setup-node-3.0.0 2022-02-26 21:34:46 +01:00
dependabot[bot]
8cef14da8f Bump actions/setup-node from 2.5.1 to 3.0.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.1 to 3.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.5.1...v3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-25 04:13:28 +00:00
Eugeny
eb30bb2d9d Merge pull request #5812 from Eugeny/dependabot/npm_and_yarn/app/electron/remote-2.0.5 2022-02-24 17:39:31 +01:00
Eugeny
c85d6e63c6 Merge pull request #5747 from Eugeny/dependabot/npm_and_yarn/axios-0.26.0 2022-02-24 17:39:16 +01:00
Eugeny
7801c7569a Merge pull request #5828 from Eugeny/dependabot/npm_and_yarn/electron-17.1.0 2022-02-24 17:38:59 +01:00
dependabot[bot]
75ed66079a Bump @sentry/cli from 1.72.1 to 1.73.0
Bumps [@sentry/cli](https://github.com/getsentry/sentry-cli) from 1.72.1 to 1.73.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.72.1...1.73.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>
2022-02-24 04:07:00 +00:00
dependabot[bot]
e6aefc8cb8 Bump electron from 17.0.1 to 17.1.0
Bumps [electron](https://github.com/electron/electron) from 17.0.1 to 17.1.0.
- [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/v17.0.1...v17.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-24 04:06:41 +00:00
Eugene Pankov
76892c4f5c increase yarn network-timeout 2022-02-23 22:15:15 +01:00
Eugene Pankov
d1ac265d79 xterm: passthrough arrows with modifiers when in alternate mode - fixes #2328 2022-02-23 21:47:46 +01:00
Eugene Pankov
030ddc721d sftp: show navigation errors 2022-02-23 21:47:27 +01:00
Eugene Pankov
645531acc0 ssh: fixed missing service messages - fixes #5798 2022-02-23 20:51:17 +01:00
Eugene Pankov
555c8c18ee show recent profiles in jump lists & dock menu - fixes #2587 2022-02-23 20:36:24 +01:00
Eugene Pankov
5caa4d14f5 fixed docked window overlapping the Windows taskbar - fixes #5799, fixes #3522, fixes #4839, fixes #2900 2022-02-23 20:23:25 +01:00
Eugene Pankov
2b12f89f31 lint 2022-02-23 20:16:12 +01:00
dependabot[bot]
82f646cff5 Bump axios from 0.25.0 to 0.26.0
Bumps [axios](https://github.com/axios/axios) from 0.25.0 to 0.26.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.25.0...v0.26.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-23 09:09:57 +00:00
Eugene Pankov
e63c87df72 Merge branch 'master' of github.com:Eugeny/tabby 2022-02-23 10:06:06 +01:00
Eugene Pankov
a5c94707d4 Delete gettext-extractor+3.5.3.patch 2022-02-23 10:06:00 +01:00
Eugeny
25c20e834c Merge pull request #5801 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.12 2022-02-23 10:05:52 +01:00
Eugeny
b08604a5df Merge pull request #5792 from Eugeny/dependabot/npm_and_yarn/webpack-5.69.1 2022-02-23 10:05:36 +01:00
Eugeny
d6860d75c2 Merge pull request #5791 from Eugeny/dependabot/npm_and_yarn/app/keytar-7.9.0 2022-02-23 10:05:18 +01:00
Eugeny
a02ce88925 Merge pull request #5752 from Eugeny/dependabot/npm_and_yarn/follow-redirects-1.14.8 2022-02-23 10:03:57 +01:00
Eugeny
e18b84afed Merge pull request #5748 from Eugeny/dependabot/npm_and_yarn/gettext-extractor-3.5.4 2022-02-23 10:02:52 +01:00
Eugeny
57feb1f3cc Merge pull request #5749 from Eugeny/dependabot/npm_and_yarn/tabby-electron/winston-3.6.0 2022-02-23 10:02:26 +01:00
Eugene Pankov
907ee4ccb5 locale update 2022-02-22 23:28:53 +01:00
Eugene Pankov
e6b210dad5 bundle a powerline-enabled fallback font - fixes #5774, fixes #5191 2022-02-22 23:17:21 +01:00
Eugene Pankov
177a988292 added tab explore/combine hotkeys - fixes #5703 2022-02-22 22:46:06 +01:00
Eugene Pankov
fdca83ff27 ssh: try other OpenSSH key types besides rsa 2022-02-22 22:03:52 +01:00
Eugene Pankov
1598dab025 layout fix 2022-02-22 21:57:32 +01:00
dependabot[bot]
8c06de5c9e Bump @electron/remote from 2.0.1 to 2.0.5 in /app
Bumps [@electron/remote](https://github.com/electron/remote) from 2.0.1 to 2.0.5.
- [Release notes](https://github.com/electron/remote/releases)
- [Changelog](https://github.com/electron/remote/blob/main/.releaserc.json)
- [Commits](https://github.com/electron/remote/compare/v2.0.1...v2.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-22 04:01:38 +00:00
Eugene Pankov
9e3d952d90 locale update 2022-02-21 17:31:17 +01:00
Eugene Pankov
50304d151a fixed #5797 - verified host keys not saving 2022-02-21 09:01:55 +01:00
dependabot[bot]
589da576a0 Bump typedoc from 0.22.11 to 0.22.12
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.11 to 0.22.12.
- [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.11...v0.22.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 04:07:00 +00:00
dependabot[bot]
b934a34be5 Bump webpack from 5.68.0 to 5.69.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.68.0 to 5.69.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.68.0...v5.69.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-18 04:07:18 +00:00
dependabot[bot]
4fa6bb398b Bump keytar from 7.8.0 to 7.9.0 in /app
Bumps [keytar](https://github.com/atom/node-keytar) from 7.8.0 to 7.9.0.
- [Release notes](https://github.com/atom/node-keytar/releases)
- [Commits](https://github.com/atom/node-keytar/compare/v7.8.0...v7.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-18 04:02:24 +00:00
Eugene Pankov
a2929309d9 lint 2022-02-17 10:04:01 +01:00
Eugene Pankov
a78fec0a6f wider profile list - fixes #5779 2022-02-17 09:37:28 +01:00
Eugene Pankov
81e1757ae9 SSH proxy support, unified proxy streams interface - fixed #5698 2022-02-16 22:14:06 +01:00
Eugene Pankov
3eb4bd53a9 ensure config saves don't overwrite each other 2022-02-16 21:26:57 +01:00
Eugene Pankov
bf893551c8 added @piersandro 2022-02-16 21:26:44 +01:00
Eugeny
303c59cecc Merge pull request #5762 from Eugeny/dependabot/npm_and_yarn/electron-17.0.1 2022-02-16 00:24:15 +01:00
Eugene Pankov
6c5c670315 locale updates, added Bulgarian 2022-02-15 23:17:59 +01:00
Eugene Pankov
2bea7f3881 Merge branch 'master' of github.com:Eugeny/tabby 2022-02-15 23:16:14 +01:00
Eugeny
27a162c903 Merge pull request #5772 from Eugeny/all-contributors/add-mgrulich 2022-02-15 23:11:09 +01:00
Eugene Pankov
c5ee39e4a1 settings tab text alignment 2022-02-15 23:10:21 +01:00
Eugene Pankov
ea2251532b missing string 2022-02-15 23:09:09 +01:00
allcontributors[bot]
077c3ced39 docs: update .all-contributorsrc [skip ci] 2022-02-15 22:09:03 +00:00
allcontributors[bot]
65ee7b755a docs: update README.ko-KR.md [skip ci] 2022-02-15 22:09:02 +00:00
allcontributors[bot]
a43ca24ba6 docs: update README.ru-RU.md [skip ci] 2022-02-15 22:09:01 +00:00
allcontributors[bot]
a1199da883 docs: update README.zh-CN.md [skip ci] 2022-02-15 22:09:00 +00:00
allcontributors[bot]
c845412fdf docs: update README.md [skip ci] 2022-02-15 22:08:59 +00:00
Eugene Pankov
0ba3de45a4 locale update 2022-02-15 23:08:21 +01:00
Eugene Pankov
9e0808fca3 Merge branch 'pr/5767' 2022-02-15 23:06:37 +01:00
Eugene Pankov
45b7391e89 cleanup 2022-02-15 23:06:17 +01:00
Martin Grulich
0eb1e8117c optional profile icon added to tabHeader 2022-02-15 13:42:20 +01:00
dependabot[bot]
be951cc9ce Bump electron from 17.0.0 to 17.0.1
Bumps [electron](https://github.com/electron/electron) from 17.0.0 to 17.0.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/v17.0.0...v17.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-15 04:06:41 +00:00
Eugene Pankov
c88b02fa91 Merge branch 'master' of github.com:Eugeny/tabby 2022-02-14 21:17:49 +01:00
Eugene Pankov
f9bf1e5644 added missing strings 2022-02-14 21:17:41 +01:00
dependabot[bot]
6c61f12584 Bump follow-redirects from 1.14.7 to 1.14.8
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 11:24:09 +00:00
dependabot[bot]
1efae39d9a Bump winston from 3.5.0 to 3.6.0 in /tabby-electron
Bumps [winston](https://github.com/winstonjs/winston) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.5.0...v3.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 04:18:18 +00:00
dependabot[bot]
6d76874045 Bump gettext-extractor from 3.5.3 to 3.5.4
Bumps [gettext-extractor](https://github.com/lukasgeiter/gettext-extractor) from 3.5.3 to 3.5.4.
- [Release notes](https://github.com/lukasgeiter/gettext-extractor/releases)
- [Commits](https://github.com/lukasgeiter/gettext-extractor/compare/v3.5.3...v3.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 04:08:02 +00:00
dependabot[bot]
dd864f5077 Bump windows-native-registry from 3.1.0 to 3.2.1 in /app
Bumps [windows-native-registry](https://github.com/Eugeny/windows-native-registry) from 3.1.0 to 3.2.1.
- [Release notes](https://github.com/Eugeny/windows-native-registry/releases)
- [Commits](https://github.com/Eugeny/windows-native-registry/commits)

---
updated-dependencies:
- dependency-name: windows-native-registry
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 04:01:45 +00:00
Eugeny
0180fb0134 Merge pull request #5743 from mwz/quit-app-cmd-q-mac-take2 2022-02-13 19:51:33 +01:00
Michael Wizner
90f97d6669 Fix app not quitting completely on Cmd+Q (Mac) 2022-02-13 16:37:56 +00:00
Eugene Pankov
f27f52dd72 locale update 2022-02-12 10:10:54 +01:00
Eugene Pankov
60a48ec2a5 Revert "Fix app not quitting completely on Cmd+Q (Mac)"
This reverts commit 9c53503c0f.
2022-02-12 10:03:49 +01:00
Eugene Pankov
c64654991b fixed serial opening ports 2022-02-11 11:02:29 +01:00
Eugene Pankov
1fc531ecf4 locale update 2022-02-10 22:54:37 +01:00
Eugene Pankov
4c7e7f5fae new translation extractor 2022-02-10 22:33:14 +01:00
Eugene Pankov
7b07a67947 sorted messages, cleaned up translateParams attributes 2022-02-10 19:10:38 +01:00
Eugene Pankov
fe5193d9f1 use languages' native names 2022-02-10 18:03:26 +01:00
Eugene Pankov
b6a3af80fa lint 2022-02-10 16:31:03 +01:00
Eugene Pankov
46a9b655fc locale updates, added Italian 2022-02-10 16:24:24 +01:00
Eugene Pankov
762ee85773 lint 2022-02-10 09:48:31 +01:00
Eugene Pankov
650e362c42 lint 2022-02-09 22:27:19 +01:00
Eugene Pankov
136ec1035b fixed #5702 - added hotkeys to jump to settings tabs 2022-02-09 21:56:44 +01:00
Eugene Pankov
f27e1ec62d fixed tab rearranging conditions 2022-02-09 20:30:40 +01:00
Eugene Pankov
c736a84835 avoid duplicate title in split tab's title 2022-02-09 20:21:20 +01:00
Eugene Pankov
b3a07e5f99 fixed #5712 - SSH import from a separate config file 2022-02-09 20:19:07 +01:00
Eugene Pankov
c408154137 Merge branch 'master' of github.com:Eugeny/tabby 2022-02-09 20:18:55 +01:00
Eugene Pankov
c0988e58b4 Revert "prevent dropping a tab on itself - fixes #5580"
This reverts commit ceb1b59409.
2022-02-09 19:20:45 +01:00
Eugeny
d6e906c107 Merge pull request #5654 from Eugeny/dependabot/npm_and_yarn/node-abi-3.8.0 2022-02-08 09:01:37 +01:00
Eugeny
d77a91b3e1 Merge pull request #5693 from Eugeny/dependabot/npm_and_yarn/fortawesome/fontawesome-free-6.0.0 2022-02-08 09:01:14 +01:00
dependabot[bot]
80f82296a0 Bump @fortawesome/fontawesome-free from 6.0.0-beta3 to 6.0.0
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.0.0-beta3 to 6.0.0.
- [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/6.0.0)

---
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>
2022-02-08 04:03:22 +00:00
Eugene Pankov
6e9f497d22 lint 2022-02-07 17:54:44 +01:00
Eugene Pankov
50f01b6794 bumped serialport 2022-02-07 16:56:06 +01:00
dependabot[bot]
b068070825 Bump node-abi from 3.7.0 to 3.8.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.7.0 to 3.8.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.7.0...v3.8.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>
2022-02-07 15:38:25 +00:00
Eugene Pankov
194342d6fa bumped plugins, added serialport mocks 2022-02-07 16:36:20 +01:00
Eugene Pankov
d7eeac6af7 patch rename 2022-02-07 16:36:09 +01:00
Eugene Pankov
98a08b92a2 Merge branch 'master' of github.com:Eugeny/tabby 2022-02-07 16:35:11 +01:00
Eugeny
fef8638ade Merge pull request #5679 from Eugeny/dependabot/npm_and_yarn/electron-builder-22.14.13 2022-02-07 16:35:03 +01:00
Eugeny
34ff0c45cb Merge pull request #5653 from Eugeny/dependabot/npm_and_yarn/app/keytar-7.8.0 2022-02-07 16:34:35 +01:00
Eugeny
1896155ad9 Merge pull request #5676 from Eugeny/dependabot/npm_and_yarn/app/electron-updater-4.6.5 2022-02-07 16:32:46 +01:00
Eugeny
bbcbad0e77 Merge pull request #5684 from Eugeny/all-contributors/add-mwz 2022-02-07 16:32:05 +01:00
Eugeny
ce435056a2 Merge pull request #5670 from mwz/quit-app-cmd-q-mac 2022-02-07 16:31:35 +01:00
allcontributors[bot]
fe9b14ad9c docs: update .all-contributorsrc [skip ci] 2022-02-07 15:31:08 +00:00
allcontributors[bot]
fc72e5005c docs: update README.ko-KR.md [skip ci] 2022-02-07 15:31:07 +00:00
allcontributors[bot]
f5c428d73b docs: update README.ru-RU.md [skip ci] 2022-02-07 15:31:06 +00:00
allcontributors[bot]
b396060965 docs: update README.zh-CN.md [skip ci] 2022-02-07 15:31:05 +00:00
allcontributors[bot]
c752a18f3c docs: update README.md [skip ci] 2022-02-07 15:31:04 +00:00
Eugene Pankov
805ee0af09 v1.0.171-nightly.2 2022-02-07 15:59:48 +01:00
Eugene Pankov
ad9ad4d418 v1.0.171-nightly.2 2022-02-07 15:58:55 +01:00
Eugene Pankov
d5c4088cc1 v1.0.171-nightly.2 2022-02-07 15:57:59 +01:00
Eugene Pankov
483a0472b9 v1.0.171-nightly.2 2022-02-07 15:57:47 +01:00
Eugene Pankov
1bbf9d4294 bumped plugins 2022-02-07 15:33:34 +01:00
Eugene Pankov
10c8502fbd locale updates, added Danish 2022-02-07 15:30:05 +01:00
dependabot[bot]
8f3f6f591d Bump electron-builder from 22.14.5 to 22.14.13
Bumps [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) from 22.14.5 to 22.14.13.
- [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.13/packages/electron-builder)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 04:06:53 +00:00
dependabot[bot]
656d275801 Bump electron-updater from 4.6.1 to 4.6.5 in /app
Bumps [electron-updater](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-updater) from 4.6.1 to 4.6.5.
- [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/electron-updater@4.6.5/packages/electron-updater)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 04:01:59 +00:00
Michael Wizner
9c53503c0f Fix app not quitting completely on Cmd+Q (Mac) 2022-02-05 23:07:53 +00:00
Eugene Pankov
9ea99f1ace locale update 2022-02-05 17:21:41 +01:00
Eugene Pankov
126d14dfb7 added Japanese translation 2022-02-05 17:20:23 +01:00
Eugene Pankov
68803b5f14 locale update 2022-02-05 17:20:10 +01:00
Eugene Pankov
e0273126de bumped xterm-addon-webgl 2022-02-03 18:33:09 +01:00
Eugene Pankov
0ced498b6e fixed screen not clearing properly - fixes #28, fixes #5401 2022-02-03 17:54:26 +01:00
Eugene Pankov
510682438e bumped xterm 2022-02-03 17:12:52 +01:00
dependabot[bot]
762874c400 Bump keytar from 7.7.0 to 7.8.0 in /app
Bumps [keytar](https://github.com/atom/node-keytar) from 7.7.0 to 7.8.0.
- [Release notes](https://github.com/atom/node-keytar/releases)
- [Commits](https://github.com/atom/node-keytar/compare/v7.7.0...v7.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 04:02:03 +00:00
Eugene Pankov
b7e2e0875e electron 17 fixes 2022-02-01 22:47:07 +01:00
Eugene Pankov
9cfd02bff6 Update appRoot.component.ts 2022-02-01 22:11:39 +01:00
Eugeny
9082fe5c06 Merge pull request #5638 from Eugeny/dependabot/npm_and_yarn/electron-17.0.0 2022-02-01 12:12:04 +01:00
dependabot[bot]
43786fda83 Bump electron from 16.0.8 to 17.0.0
Bumps [electron](https://github.com/electron/electron) from 16.0.8 to 17.0.0.
- [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.8...v17.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 10:33:18 +00:00
Eugene Pankov
1677285ea9 patch rename 2022-02-01 11:24:12 +01:00
Eugeny
aaa0a0f69a Merge pull request #5639 from Eugeny/dependabot/npm_and_yarn/ssh2-1.6.0 2022-02-01 11:23:35 +01:00
Eugeny
cb8832fbad Merge pull request #5637 from Eugeny/dependabot/npm_and_yarn/node-abi-3.7.0 2022-02-01 11:22:09 +01:00
Eugeny
e39321c8cb Merge pull request #5640 from Eugeny/dependabot/npm_and_yarn/webpack-5.68.0 2022-02-01 11:21:52 +01:00
Eugeny
3ef7697be8 Merge pull request #5642 from Eugeny/dependabot/npm_and_yarn/tabby-settings/marked-4.0.12 2022-02-01 11:21:37 +01:00
dependabot[bot]
8927717654 Bump marked from 4.0.10 to 4.0.12 in /tabby-settings
Bumps [marked](https://github.com/markedjs/marked) from 4.0.10 to 4.0.12.
- [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/v4.0.10...v4.0.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 04:16:28 +00:00
dependabot[bot]
3a8168917a Bump webpack from 5.67.0 to 5.68.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.67.0 to 5.68.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.67.0...v5.68.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-02-01 04:08:23 +00:00
dependabot[bot]
9249c48ecc Bump ssh2 from 1.5.0 to 1.6.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.5.0...v1.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 04:05:50 +00:00
dependabot[bot]
6d1150d08a Bump node-abi from 3.5.0 to 3.7.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.5.0 to 3.7.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.5.0...v3.7.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>
2022-02-01 04:04:21 +00:00
Eugene Pankov
b234300bd8 gpg4win support maybe? 2022-01-31 22:19:39 +01:00
Eugene Pankov
be3bae3a6f fixed #4457 2022-01-31 22:16:05 +01:00
Eugene Pankov
767f9f3215 support Solus Linux - fixes #4881 2022-01-31 22:03:12 +01:00
Eugene Pankov
d6e69f5bf5 fixed UI for oversized profile names - fixes #5506 2022-01-31 21:54:33 +01:00
Eugene Pankov
5c644e5e23 Merge branch 'master' of github.com:Eugeny/tabby 2022-01-31 21:50:19 +01:00
Eugene Pankov
5b905af5d3 auto-fix excessive font sizes - fixes #5542 2022-01-31 21:50:16 +01:00
Eugeny
28f4a052d7 Merge pull request #5626 from Eugeny/dependabot/npm_and_yarn/tabby-electron/winston-3.5.0 2022-01-31 17:20:28 +01:00
Eugeny
948251e326 Merge pull request #5607 from Eugeny/dependabot/npm_and_yarn/tabby-settings/marked-4.0.12 2022-01-31 17:17:53 +01:00
dependabot[bot]
2203661f19 Bump marked from 4.0.8 to 4.0.12 in /tabby-settings
Bumps [marked](https://github.com/markedjs/marked) from 4.0.8 to 4.0.12.
- [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/v4.0.8...v4.0.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 15:38:34 +00:00
Eugene Pankov
8f4e28fba4 bumped plugins 2022-01-31 16:37:43 +01:00
Eugeny
a413bbaf07 Merge pull request #4632 from Eugeny/dependabot/npm_and_yarn/types/fs-extra-9.0.13 2022-01-31 12:44:29 +01:00
Eugeny
4e05adeb66 Merge pull request #5595 from Eugeny/dependabot/npm_and_yarn/sentry/cli-1.72.1 2022-01-31 12:43:51 +01:00
Eugeny
59ac4a858e Merge pull request #5539 from Eugeny/dependabot/npm_and_yarn/axios-0.25.0 2022-01-31 12:32:23 +01:00
Eugeny
55ae5b27b9 Merge pull request #5500 from Eugeny/dependabot/npm_and_yarn/core-js-3.20.3 2022-01-31 12:32:11 +01:00
Eugeny
b0aa20b387 Merge pull request #5521 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.11 2022-01-31 12:31:32 +01:00
dependabot[bot]
bb00f2f033 Bump @sentry/cli from 1.71.0 to 1.72.1
Bumps [@sentry/cli](https://github.com/getsentry/sentry-cli) from 1.71.0 to 1.72.1.
- [Release notes](https://github.com/getsentry/sentry-cli/releases)
- [Changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-cli/compare/1.71.0...1.72.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-30 19:34:00 +00:00
dependabot[bot]
e80c3ce693 Bump core-js from 3.18.2 to 3.20.3
Bumps [core-js](https://github.com/zloirock/core-js) from 3.18.2 to 3.20.3.
- [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.18.2...v3.20.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-30 10:02:30 +00:00
dependabot[bot]
b9b6c63d57 Bump axios from 0.21.2 to 0.25.0
Bumps [axios](https://github.com/axios/axios) from 0.21.2 to 0.25.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.2...v0.25.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-30 10:02:01 +00:00
dependabot[bot]
bee62f3001 Bump winston from 3.3.3 to 3.5.0 in /tabby-electron
Bumps [winston](https://github.com/winstonjs/winston) from 3.3.3 to 3.5.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.3.3...v3.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-28 04:18:34 +00:00
dependabot[bot]
2f35ae203d Bump typedoc from 0.22.10 to 0.22.11
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.10 to 0.22.11.
- [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.10...v0.22.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-18 04:09:10 +00:00
dependabot[bot]
604e5e37a8 Bump @types/fs-extra from 9.0.12 to 9.0.13
Bumps [@types/fs-extra](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/fs-extra) from 9.0.12 to 9.0.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/fs-extra)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-30 19:26:33 +00:00
221 changed files with 41300 additions and 13632 deletions

View File

@@ -3,7 +3,9 @@
"README.md",
"README.zh-CN.md",
"README.ru-RU.md",
"README.ko-KR.md"
"README.ko-KR.md",
"README.it-IT.md",
"README.de-DE.md"
],
"imageSize": 100,
"commit": false,
@@ -599,6 +601,161 @@
"contributions": [
"infra"
]
},
{
"login": "mwz",
"name": "Michael Wizner",
"avatar_url": "https://avatars.githubusercontent.com/u/1190768?v=4",
"profile": "https://github.com/mwz",
"contributions": [
"code"
]
},
{
"login": "mgrulich",
"name": "Martin",
"avatar_url": "https://avatars.githubusercontent.com/u/781036?v=4",
"profile": "https://github.com/mgrulich",
"contributions": [
"code"
]
},
{
"login": "piersandro",
"name": "Piersandro Guerrera",
"avatar_url": "https://avatars.githubusercontent.com/u/19996309?v=4",
"profile": "https://github.com/piersandro",
"contributions": [
"doc",
"translation"
]
},
{
"login": "X-0x01",
"name": "X-0x01",
"avatar_url": "https://avatars.githubusercontent.com/u/19320096?v=4",
"profile": "http://pingbase.cn",
"contributions": [
"code"
]
},
{
"login": "Allenator",
"name": "Allenator",
"avatar_url": "https://avatars.githubusercontent.com/u/11794943?v=4",
"profile": "https://github.com/Allenator",
"contributions": [
"doc"
]
},
{
"login": "microhobby",
"name": "Matheus Castello",
"avatar_url": "https://avatars.githubusercontent.com/u/2633321?v=4",
"profile": "http://microhobby.com.br/blog",
"contributions": [
"code"
]
},
{
"login": "Jai-JAP",
"name": "Jai A P",
"avatar_url": "https://avatars.githubusercontent.com/u/78354625?v=4",
"profile": "https://github.com/Jai-JAP",
"contributions": [
"platform"
]
},
{
"login": "ysc3839",
"name": "Richard Yu",
"avatar_url": "https://avatars.githubusercontent.com/u/12028138?v=4",
"profile": "https://blog.ysc3839.com",
"contributions": [
"code"
]
},
{
"login": "artu-ole",
"name": "artu-ole",
"avatar_url": "https://avatars.githubusercontent.com/u/15938416?v=4",
"profile": "https://github.com/artu-ole",
"contributions": [
"code"
]
},
{
"login": "TimaGribanov",
"name": "Timofey Gribanov",
"avatar_url": "https://avatars.githubusercontent.com/u/48593815?v=4",
"profile": "https://timagribanov.github.io/",
"contributions": [
"doc",
"translation"
]
},
{
"login": "ChristianBingman",
"name": "Christian Bingman",
"avatar_url": "https://avatars.githubusercontent.com/u/42191425?v=4",
"profile": "https://git.christianbingman.com",
"contributions": [
"code"
]
},
{
"login": "Ox0400",
"name": "zhipeng",
"avatar_url": "https://avatars.githubusercontent.com/u/5310853?v=4",
"profile": "http://zhangzhipeng2023.cn/",
"contributions": [
"code"
]
},
{
"login": "woodmeal",
"name": "woodmeal",
"avatar_url": "https://avatars.githubusercontent.com/u/104011197?v=4",
"profile": "https://github.com/woodmeal",
"contributions": [
"code"
]
},
{
"login": "MagicLike",
"name": "MagicLike",
"avatar_url": "https://avatars.githubusercontent.com/u/82117109?v=4",
"profile": "https://magiclike.codeberg.page/",
"contributions": [
"doc"
]
},
{
"login": "hisamafahri",
"name": "Hisam Fahri",
"avatar_url": "https://avatars.githubusercontent.com/u/65691613?v=4",
"profile": "https://github.com/hisamafahri",
"contributions": [
"code"
]
},
{
"login": "LiangchengJ",
"name": "Liangcheng Juves",
"avatar_url": "https://avatars.githubusercontent.com/u/48881023?v=4",
"profile": "https://liangchengj.com",
"contributions": [
"code"
]
},
{
"login": "attet",
"name": "Atte Timonen",
"avatar_url": "https://avatars.githubusercontent.com/u/1911416?v=4",
"profile": "https://github.com/attet",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,

View File

@@ -2,16 +2,16 @@ name: Package-Build
on: [push, pull_request]
jobs:
Lint:
runs-on: macos-11.0
runs-on: macos-11
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.5.1
uses: actions/setup-node@v3.2.0
with:
node-version: 16
@@ -31,7 +31,7 @@ jobs:
run: yarn run lint
macOS-Build:
runs-on: macos-11.0
runs-on: macos-11
needs: Lint
strategy:
matrix:
@@ -41,30 +41,23 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.5.1
uses: actions/setup-node@v3.2.0
with:
node-version: 16
- name: Install deps
run: |
sudo npm i -g yarn@1.22.1
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
- name: Build native deps
run: scripts/build-native.js
yarn --network-timeout 1000000
env:
ARCH: ${{matrix.arch}}
- name: Build native deps
- name: Fix cross build
run: |
rm -rf app/node_modules/cpu-features
rm -rf app/node_modules/ssh2/crypto/build
@@ -91,6 +84,8 @@ jobs:
APPSTORE_USERNAME: ${{ secrets.APPSTORE_USERNAME }}
APPSTORE_PASSWORD: ${{ secrets.APPSTORE_PASSWORD }}
USE_HARD_LINKS: false
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# DEBUG: electron-builder,electron-builder:*
- name: Build packages without signing
@@ -134,12 +129,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Node
uses: actions/setup-node@v2.5.1
uses: actions/setup-node@v3.2.0
with:
node-version: 16
@@ -148,14 +143,7 @@ jobs:
sudo apt-get update
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
- name: Build native deps
run: scripts/build-native.js
yarn --network-timeout 1000000
- name: Webpack
run: yarn run build
@@ -168,6 +156,8 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
USE_HARD_LINKS: false
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# DEBUG: electron-builder,electron-builder:*
- name: Build web resources
@@ -199,8 +189,6 @@ jobs:
mv dist/*.rpm artifact-rpm/ || true
mkdir artifact-pacman
mv dist/*.pacman artifact-pacman/ || true
mkdir artifact-snap
mv dist/*.snap artifact-snap/ || true
mkdir artifact-tar.gz
mv dist/*.tar.gz artifact-tar.gz/ || true
mkdir artifact-web
@@ -209,31 +197,25 @@ jobs:
- uses: actions/upload-artifact@master
name: Upload DEB
with:
name: Linux DEB
name: Linux DEB (x86_64)
path: artifact-deb
- uses: actions/upload-artifact@master
name: Upload RPM
with:
name: Linux RPM
name: Linux RPM (x86_64)
path: artifact-rpm
- uses: actions/upload-artifact@master
name: Upload Pacman Package
with:
name: Linux Pacman
name: Linux Pacman (x86_64)
path: artifact-pacman
- uses: actions/upload-artifact@master
name: Upload Snap
with:
name: Linux Snap
path: artifact-snap
- uses: actions/upload-artifact@master
name: Upload Linux tarball
with:
name: Linux tarball
name: Linux tarball (x86_64)
path: artifact-tar.gz
- uses: actions/upload-artifact@master
@@ -242,18 +224,24 @@ jobs:
name: Web tarball
path: artifact-web
Windows-Build:
runs-on: windows-2022
needs: Lint
strategy:
matrix:
include:
- arch: x64
- arch: arm64
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.5.1
uses: actions/setup-node@v3.2.0
with:
node-version: 16
@@ -266,23 +254,29 @@ jobs:
shell: powershell
run: |
npm i -g yarn@1.19.1
yarn
node scripts/build-native.js
yarn --network-timeout 1000000
yarn run build
node scripts/prepackage-plugins.js
env:
ARCH: ${{matrix.arch}}
- name: Build and sign packages
run: node scripts/build-windows.js
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
env:
ARCH: ${{matrix.arch}}
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:*
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Build packages without signing
run: node scripts/build-windows.js
if: "!(github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
env:
ARCH: ${{matrix.arch}}
- name: Upload symbols
run: |
@@ -296,18 +290,18 @@ jobs:
- name: Package artifacts
run: |
mkdir artifact-setup
mv dist/*-setup.exe artifact-setup/
mv dist/*-setup-*.exe artifact-setup/
mkdir artifact-portable
mv dist/*-portable.zip artifact-portable/
mv dist/*-portable-*.zip artifact-portable/
- uses: actions/upload-artifact@master
name: Upload installer
with:
name: Windows installer
name: Windows installer (${{matrix.arch}})
path: artifact-setup
- uses: actions/upload-artifact@master
name: Upload portable build
with:
name: Windows portable build
name: Windows portable build (${{matrix.arch}})
path: artifact-portable

View File

@@ -38,11 +38,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,7 +53,7 @@ jobs:
# 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
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -67,4 +67,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2

View File

@@ -7,14 +7,14 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Installing Node
uses: actions/setup-node@v2.5.1
uses: actions/setup-node@v3.2.0
with:
node-version: 14
node-version: 16
- name: Build
run: |

View File

@@ -11,21 +11,20 @@ First, install the dependencies:
```
# macOS:
yarn
./scripts/build-native.js
```
**Note: For compiling for Linux armv7l, you need to downgrade electron to 17.0.0 in package.json present in root directory of tabby source**
```
# Linux (Debian/Ubuntu here as an example)
sudo apt install libfontconfig-dev libsecret-1-dev libarchive-tools libnss3 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm1 cmake
yarn
./scripts/build-native.js
```
```
# Windows:
npm -g install windows-build-tools
yarn
node scripts\build-native.js
```
Now, check if your build is working:

270
README.de-DE.md Normal file
View File

@@ -0,0 +1,270 @@
[![](docs/readme.png)](https://tabby.sh)
<p align="center">
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="Alle GitHub Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge"></a> <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> <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="Übersetzen" src="https://shields.io/badge/Übersetzen-UI-white?logo=googletranslate&style=for-the-badge&color=white&logoColor=fff"></a> <a href="https://twitter.com/eugeeeeny"><img alt="Twitter" src="https://shields.io/badge/Abonnieren-Nachrichten-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>
----
### Downloads:
* [Neueste Version](https://github.com/Eugeny/tabby/releases/latest)
* [Repositories](https://packagecloud.io/eugeny/tabby): [Debian/Ubuntu-basiert](https://packagecloud.io/eugeny/tabby/install#bash-deb), [RPM-basiert](https://packagecloud.io/eugeny/tabby/install#bash-rpm)
* [Neueste nightly Version](https://nightly.link/Eugeny/tabby/workflows/build/master)
<br/>
<p align="center">
Diese README ist auch verfügbar in: <a href="./README.md">:gb: English</a> · <a href="./README.ru-RU.md">:ru: Русский</a> · <a href="./README.ko-KR.md">:kr: 한국어</a> · <a href="./README.zh-CN.md">:cn: 简体中文</a> · <a href="./README.it-IT.md">:it: Italiano</a>
</p>
----
[**Tabby**](https://tabby.sh) (ehemals **Terminus**) ist ein äußerst konfigurierbarer Terminalemulator, SSH- und serieller Client für Windows, macOS und Linux
* Integrierter SSH- und Telnet-Client und Verbindungsmanager
* Integriertes serielles Terminal
* Theming und Farbschemata
* Vollständig konfigurierbare Tastenkombinationen und Multi-Akkord-Tastenkombinationen
* Geteilte Fenster
* Merkt sich deine Tabs
* Unterstützung für PowerShell (und PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder und CMD
* Direkte Dateiübertragung von/zu SSH-Sitzungen über Zmodem
* Vollständige Unicode-Unterstützung, einschließlich Zeichen mit doppelter Breite
* Kein Abbruch bei schnell ablaufenden Ausgaben
* Richtiges Shell-Erlebnis unter Windows, einschließlich Tabulator-Vervollständigung (über Clink)
* Integrierter verschlüsselter Container für SSH-Secrets und Konfiguration
* SSH-, SFTP- und Telnet-Client verfügbar als [Web-App](https://tabby.sh/app) (auch [selbstgehostet](https://github.com/Eugeny/tabby-web)).
# Inhaltsverzeichnis <!-- omit in toc -->
- [Was Tabby ist und was nicht](#what-tabby-is-and-isnt)
- [Terminal-Funktionen](#terminal-features)
- [SSH Client](#ssh-client)
- [Serielles Terminal](#serial-terminal)
- [Portabel](#portable)
- [Plugins](#plugins)
- [Themen](#themes)
- [Beitragen](#contributing)
<a name="about"></a>
# Was Tabby ist und was nicht
**Tabby ist** eine Alternative zu Windows Standard-Terminal (conhost), PowerShell ISE, PuTTY, macOS Terminal.app und iTerm
**Tabby ist weder** eine neue Shell noch ein MinGW- oder Cygwin-Ersatz. Sie ist auch nicht gerade sparsam - wenn die RAM-Nutzung von Bedeutung ist, solltest Du [Conemu](https://conemu.github.io) oder [Alacritty](https://github.com/jwilm/alacritty) in Betracht ziehen.
<a name="terminal"></a>
# Terminal-Funktionen
![](docs/readme-terminal.png)
* Ein V220-Terminal + verschiedene Erweiterungen
* Mehrere verschachtelte, geteilte Fenster
* Tabs auf jeder Seite des Fensters
* Optional andockbares Fenster mit einem globalen Spawn-Hotkey ("Quake-Konsole")
* Fortschrittserkennung
* Benachrichtigung bei Prozessabschluss
* Einfügen in Klammern, mehrzeilige Einfügewarnungen
* Schriftart-Ligaturen
* Benutzerdefinierte Shell-Profile
* Optionales RMB-Einfügen und Kopieren bei Auswahl (PuTTY-Stil)
<a name="ssh"></a>
# SSH Client
![](docs/readme-ssh.png)
* SSH2-Client mit einem Verbindungsmanager
* X11 und Portweiterleitung
* Automatisches Jump-Host-Management
* Agent-Weiterleitung (inkl. Pageant und Windows-eigenem OpenSSH-Agent)
* Anmeldeskripte
<a name="serial"></a>
# Serielles Terminal
* Gespeicherte Verbindungen
* Unterstützung von Readline-Eingaben
* Optionale hexadezimale Byte-für-Byte-Eingabe und Hexdump-Ausgabe
* Newline-Konvertierung
* Automatische Wiederverbindung
<a name="portable"></a>
# Portabel
Tabby läuft als portable Anwendung unter Windows, wenn Sie einen `data`-Ordner am selben Ort erstellen, an dem sich auch `Tabby.exe` befindet.
<a name="plugins"></a>
# Plugins
Plugins und Themen können direkt aus der Ansicht "Einstellungen" in Tabby installiert werden.
* [docker](https://github.com/Eugeny/tabby-docker) - Verbindung zu Docker-Containern
* [title-control](https://github.com/kbjr/terminus-title-control) - ermöglicht die Änderung des Titels der Terminal-Tabs durch Angabe eines Präfixes, Suffixes und/oder zu entfernender Strings
* [quick-cmds](https://github.com/Domain/terminus-quick-cmds) - schnelles Senden von Befehlen an eine oder alle Terminal-Tabs
* [save-output](https://github.com/Eugeny/tabby-save-output) - speichert Terminalausgaben in einer Datei
* [sync-config](https://github.com/starxg/terminus-sync-config) - synchronisiert die Konfiguration mit Gist oder Gitee
* [clippy](https://github.com/Eugeny/tabby-clippy) - ein Beispiel-Plugin, das einen die ganze Zeit nervt
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) - ermöglicht das Erstellen eigener Workspace-Profile auf Basis der angegebenen Konfiguration
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) - öffnet den Standard-Systembrowser mit einem Text, der aus dem Tabby Tab ausgewählt wurde
<a name="themes"></a>
# Themen
* [hype](https://github.com/Eugeny/tabby-theme-hype) - ein von Hyper inspiriertes Thema
* [relaxed](https://github.com/Relaxed-Theme/relaxed-terminal-themes#terminus) - das entspannte Thema für 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)
# Sponsoren <!-- omit in toc -->
[![](https://assets-production.packagecloud.io/assets/packagecloud-logo-light-scaled-26ce8e96060fddf74afbd4445e63ba35590d4aaa56edc98495bb390ef3cae0ae.png)](https://packagecloud.io)
[**packagecloud**](https://packagecloud.io) bietet kostenloses Debian/RPM-Repository-Hosting an
<a name="contributing"></a>
# Beitragen
Pull Requests und Plugins sind willkommen!
Siehe [HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md) und [API docs](https://docs.tabby.sh/) für Informationen über den Aufbau des Projekts und ein sehr kurzes Tutorial zur Plugin-Entwicklung.
---
<a name="contributors"></a>
Dank geht an diese wunderbaren Menschen ([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>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mgrulich"><img src="https://avatars.githubusercontent.com/u/781036?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mgrulich" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/piersandro"><img src="https://avatars.githubusercontent.com/u/19996309?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piersandro Guerrera</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=piersandro" title="Documentation">📖</a> <a href="#translation-piersandro" title="Translation">🌍</a></td>
<td align="center"><a href="http://pingbase.cn"><img src="https://avatars.githubusercontent.com/u/19320096?v=4?s=100" width="100px;" alt=""/><br /><sub><b>X-0x01</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=X-0x01" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Allenator"><img src="https://avatars.githubusercontent.com/u/11794943?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allenator</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Allenator" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://microhobby.com.br/blog"><img src="https://avatars.githubusercontent.com/u/2633321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matheus Castello</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=microhobby" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Jai-JAP"><img src="https://avatars.githubusercontent.com/u/78354625?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jai A P</b></sub></a><br /><a href="#platform-Jai-JAP" title="Packaging/porting to new platform">📦</a></td>
<td align="center"><a href="https://blog.ysc3839.com"><img src="https://avatars.githubusercontent.com/u/12028138?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Richard Yu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ysc3839" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/artu-ole"><img src="https://avatars.githubusercontent.com/u/15938416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artu-ole</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=artu-ole" title="Code">💻</a></td>
<td align="center"><a href="https://timagribanov.github.io/"><img src="https://avatars.githubusercontent.com/u/48593815?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Timofey Gribanov</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TimaGribanov" title="Documentation">📖</a> <a href="#translation-TimaGribanov" title="Translation">🌍</a></td>
<td align="center"><a href="https://git.christianbingman.com"><img src="https://avatars.githubusercontent.com/u/42191425?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christian Bingman</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ChristianBingman" title="Code">💻</a></td>
<td align="center"><a href="http://zhangzhipeng2023.cn/"><img src="https://avatars.githubusercontent.com/u/5310853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zhipeng</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Ox0400" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/woodmeal"><img src="https://avatars.githubusercontent.com/u/104011197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>woodmeal</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=woodmeal" title="Code">💻</a></td>
<td align="center"><a href="https://magiclike.codeberg.page/"><img src="https://avatars.githubusercontent.com/u/82117109?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MagicLike</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=MagicLike" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/hisamafahri"><img src="https://avatars.githubusercontent.com/u/65691613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hisam Fahri</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hisamafahri" title="Code">💻</a></td>
<td align="center"><a href="https://liangchengj.com"><img src="https://avatars.githubusercontent.com/u/48881023?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Liangcheng Juves</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LiangchengJ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/attet"><img src="https://avatars.githubusercontent.com/u/1911416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Atte Timonen</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=attet" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Dieses Projekt folgt der [all-contributors](https://github.com/all-contributors/all-contributors) Spezifikation. Beiträge jeglicher Art sind willkommen!

265
README.it-IT.md Normal file
View File

@@ -0,0 +1,265 @@
[![](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>
----
### Downloads:
* [Ultima versione](https://github.com/Eugeny/tabby/releases/latest)
* [Repository](https://packagecloud.io/eugeny/tabby): [Pacchetto Debian/Ubuntu](https://packagecloud.io/eugeny/tabby/install#bash-deb), [Pachetto RPM](https://packagecloud.io/eugeny/tabby/install#bash-rpm)
* [Ultima edizione nightly](https://nightly.link/Eugeny/tabby/workflows/build/master)
<br/>
<p align="center">
Questo README è disponibile anche in: <a href="./README.md">:gb: English</a> · <a href="./README.ru-RU.md">:ru: Русский</a> · <a href="./README.ko-KR.md">:kr: 한국어</a> · <a href="./README.zh-CN.md">:cn: 简体中文</a> · <a href="./README.de-DE.md">:de: Deutsch</a>
----
[**Tabby**](https://tabby.sh) (precedentemente **Terminus**) è un emulatore di terminale, SSH e client seriale altamente configurabile per Windows, macOS e Linux
* Client SSH e Telnet integrato con gestore delle connessioni
* Terminale seriale integrato
* Temi e combinazioni di colori
* Scorciatoie completamente configurabili e scorciatoie multi-tasto
* Divisibile in pannelli
* Ricorda le schede aperte
* Supporto PowerShell (e PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder e CMD
* Trasferimento file diretto da/a sessioni SSH tramite Zmodem
* Pieno supporto Unicode inclusi caratteri a doppia larghezza
* Non si blocca su output a flusso rapido
* Proper shell experience on Windows including tab completion (via Clink)
* Integrated encrypted container for SSH secrets and configuration
* Esperienza shell studiaat per Windows incluso il completamento delle schede (tramite Clink)
* Contenitore crittografato integrato per chiavi SSH e file di configurazione
* Client SSH, SFTP e Telnet disponibile come [web app](https://tabby.sh/app) (anche [self-hosted](https://github.com/Eugeny/tabby-web)).
# Contenuti <!-- omit in toc -->
- [Cosa è e cosa non è Tabby](#cosa-è-e-cosa-non-è-tabby)
- [Caratteristiche del Terminale](#caratteristiche-del-terminale)
- [Client SSH](#client-ssh)
- [Terminale Seriale](#terminale-seriale)
- [Portabilità](#portabilità)
- [Plugin](#plugin)
- [Temi](#temi)
- [Partecipazione](#partecipazione)
<a name="about"></a>
# Cosa è e cosa non è Tabby
* **Tabby è** un'alternativa al terminale standard di Windows (conhost), PowerShell ISE, PuTTY, macOS Terminal.app e iTerm
* **Tabby non è** una nuova shell o un'alternativa a MinGW o Cygwin. Non è nemmeno leggero: se l'utilizzo della RAM è importante, considera [Conemu](https://conemu.github.io) o [Alacritty](https://github.com/jwilm/alacritty)
<a name="terminal"></a>
# Caratteristiche del Terminale
![](docs/readme-terminal.png)
* Un terminale V220 + vari estensioni
* Suddivisione in pannelli
* Schede su qualsiasi lato della finestra
* Finestra agganciabile opzionale con un tasto di scelta rapida ("Quake console")
* Rilevamento del progresso
* Notifica al completamento del processo
* Incolla tra parentesi e avvisi di incollaggio multilinea
* Legature dei caratteri
* Profili shell personalizzati
* Incolla RMB e copia su selezione opzionale (in stile PuTTY)
<a name="ssh"></a>
# Client SSH
![](docs/readme-ssh.png)
* Client SSH2 con un gestore di connessioni
* X11 e port forwarding
* Gestione automatica dell'host di salto
* Inoltro dell'agente (incluso Pageant e l'agente OpenSSH nativo di Windows)
* Script di accesso
<a name="serial"></a>
# Terminale Seriale
* Connessioni salvate
* Supporto per l'input Readline
* Input esadecimale byte per byte opzionale e output hexdump
* Conversione nuova riga
* Riconnessione automatica
<a name="portable"></a>
# Portabilità
Tabby può essere eseguito come app portatile su Windows, se crei una cartella `data` nella stessa posizione in cui si trova `Tabby.exe`.
<a name="plugins"></a>
# Plugin
Plugins and themes can be installed directly from the Settings view inside Tabby.
* [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>
# Temi
* [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)
# Sponsor <!-- omit in toc -->
[![](https://assets-production.packagecloud.io/assets/packagecloud-logo-light-scaled-26ce8e96060fddf74afbd4445e63ba35590d4aaa56edc98495bb390ef3cae0ae.png)](https://packagecloud.io)
[**packagecloud**](https://packagecloud.io) ha fornito gratuitamente un hosting per i repository Debian/RPM
<a name="contributing"></a>
# Partecipazione
Richieste pull e plugin sono i benvenuti!
Vedi [HACKING.md](https://github.com/Eugeny/tabby/blob/master/HACKING.md) e la [documentazione API](https://docs.tabby.sh/) per informazioni su come è strutturato il progetto e un brevissimo tutorial sullo sviluppo dei plugin.
---
<a name="contributors"></a>
Grazie a queste persone meravigliose ([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>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mgrulich"><img src="https://avatars.githubusercontent.com/u/781036?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mgrulich" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/piersandro"><img src="https://avatars.githubusercontent.com/u/19996309?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piersandro Guerrera</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=piersandro" title="Documentation">📖</a> <a href="#translation-piersandro" title="Translation">🌍</a></td>
<td align="center"><a href="http://pingbase.cn"><img src="https://avatars.githubusercontent.com/u/19320096?v=4?s=100" width="100px;" alt=""/><br /><sub><b>X-0x01</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=X-0x01" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Allenator"><img src="https://avatars.githubusercontent.com/u/11794943?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allenator</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Allenator" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://microhobby.com.br/blog"><img src="https://avatars.githubusercontent.com/u/2633321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matheus Castello</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=microhobby" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Jai-JAP"><img src="https://avatars.githubusercontent.com/u/78354625?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jai A P</b></sub></a><br /><a href="#platform-Jai-JAP" title="Packaging/porting to new platform">📦</a></td>
<td align="center"><a href="https://blog.ysc3839.com"><img src="https://avatars.githubusercontent.com/u/12028138?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Richard Yu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ysc3839" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/artu-ole"><img src="https://avatars.githubusercontent.com/u/15938416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artu-ole</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=artu-ole" title="Code">💻</a></td>
<td align="center"><a href="https://timagribanov.github.io/"><img src="https://avatars.githubusercontent.com/u/48593815?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Timofey Gribanov</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TimaGribanov" title="Documentation">📖</a> <a href="#translation-TimaGribanov" title="Translation">🌍</a></td>
<td align="center"><a href="https://git.christianbingman.com"><img src="https://avatars.githubusercontent.com/u/42191425?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christian Bingman</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ChristianBingman" title="Code">💻</a></td>
<td align="center"><a href="http://zhangzhipeng2023.cn/"><img src="https://avatars.githubusercontent.com/u/5310853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zhipeng</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Ox0400" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/woodmeal"><img src="https://avatars.githubusercontent.com/u/104011197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>woodmeal</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=woodmeal" title="Code">💻</a></td>
<td align="center"><a href="https://magiclike.codeberg.page/"><img src="https://avatars.githubusercontent.com/u/82117109?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MagicLike</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=MagicLike" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/hisamafahri"><img src="https://avatars.githubusercontent.com/u/65691613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hisam Fahri</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hisamafahri" title="Code">💻</a></td>
<td align="center"><a href="https://liangchengj.com"><img src="https://avatars.githubusercontent.com/u/48881023?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Liangcheng Juves</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LiangchengJ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/attet"><img src="https://avatars.githubusercontent.com/u/1911416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Atte Timonen</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=attet" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Questo progetto segue le specifiche [all-contributors](https://github.com/all-contributors/all-contributors). Contributi di qualsiasi genere sono ben accetti!

View File

@@ -227,6 +227,27 @@ Pull requests and plugins are welcome!
<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>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mgrulich"><img src="https://avatars.githubusercontent.com/u/781036?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mgrulich" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/piersandro"><img src="https://avatars.githubusercontent.com/u/19996309?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piersandro Guerrera</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=piersandro" title="Documentation">📖</a> <a href="#translation-piersandro" title="Translation">🌍</a></td>
<td align="center"><a href="http://pingbase.cn"><img src="https://avatars.githubusercontent.com/u/19320096?v=4?s=100" width="100px;" alt=""/><br /><sub><b>X-0x01</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=X-0x01" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Allenator"><img src="https://avatars.githubusercontent.com/u/11794943?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allenator</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Allenator" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://microhobby.com.br/blog"><img src="https://avatars.githubusercontent.com/u/2633321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matheus Castello</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=microhobby" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Jai-JAP"><img src="https://avatars.githubusercontent.com/u/78354625?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jai A P</b></sub></a><br /><a href="#platform-Jai-JAP" title="Packaging/porting to new platform">📦</a></td>
<td align="center"><a href="https://blog.ysc3839.com"><img src="https://avatars.githubusercontent.com/u/12028138?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Richard Yu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ysc3839" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/artu-ole"><img src="https://avatars.githubusercontent.com/u/15938416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artu-ole</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=artu-ole" title="Code">💻</a></td>
<td align="center"><a href="https://timagribanov.github.io/"><img src="https://avatars.githubusercontent.com/u/48593815?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Timofey Gribanov</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TimaGribanov" title="Documentation">📖</a> <a href="#translation-TimaGribanov" title="Translation">🌍</a></td>
<td align="center"><a href="https://git.christianbingman.com"><img src="https://avatars.githubusercontent.com/u/42191425?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christian Bingman</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ChristianBingman" title="Code">💻</a></td>
<td align="center"><a href="http://zhangzhipeng2023.cn/"><img src="https://avatars.githubusercontent.com/u/5310853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zhipeng</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Ox0400" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/woodmeal"><img src="https://avatars.githubusercontent.com/u/104011197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>woodmeal</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=woodmeal" title="Code">💻</a></td>
<td align="center"><a href="https://magiclike.codeberg.page/"><img src="https://avatars.githubusercontent.com/u/82117109?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MagicLike</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=MagicLike" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/hisamafahri"><img src="https://avatars.githubusercontent.com/u/65691613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hisam Fahri</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hisamafahri" title="Code">💻</a></td>
<td align="center"><a href="https://liangchengj.com"><img src="https://avatars.githubusercontent.com/u/48881023?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Liangcheng Juves</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LiangchengJ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/attet"><img src="https://avatars.githubusercontent.com/u/1911416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Atte Timonen</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=attet" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -21,7 +21,7 @@
<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>
This README is also available in: <a href="./README.ru-RU.md">:ru: Русский</a> · <a href="./README.ko-KR.md">:kr: 한국어</a> · <a href="./README.zh-CN.md">:cn: 简体中文</a> · <a href="./README.it-IT.md">:it: Italiano</a> · <a href="./README.de-DE.md">:de: Deutsch</a>
</p>
----
@@ -79,6 +79,7 @@ This README is also available in: <a href="./README.ru-RU.md">Русский</a>
* Optional RMB paste and copy-on select (PuTTY style)
<a name="ssh"></a>
# SSH Client
![](docs/readme-ssh.png)
@@ -90,6 +91,7 @@ This README is also available in: <a href="./README.ru-RU.md">Русский</a>
* Login scripts
<a name="serial"></a>
# Serial Terminal
* Saved connections
@@ -99,11 +101,13 @@ This README is also available in: <a href="./README.ru-RU.md">Русский</a>
* Automatic reconnection
<a name="portable"></a>
# Portable
Tabby will run as a portable app on Windows, if you create a `data` folder in the same location where `Tabby.exe` lives.
<a name="plugins"></a>
# Plugins
Plugins and themes can be installed directly from the Settings view inside Tabby.
@@ -118,6 +122,7 @@ Plugins and themes can be installed directly from the Settings view inside Tabby
* [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
@@ -232,6 +237,27 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<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>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mgrulich"><img src="https://avatars.githubusercontent.com/u/781036?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mgrulich" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/piersandro"><img src="https://avatars.githubusercontent.com/u/19996309?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piersandro Guerrera</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=piersandro" title="Documentation">📖</a> <a href="#translation-piersandro" title="Translation">🌍</a></td>
<td align="center"><a href="http://pingbase.cn"><img src="https://avatars.githubusercontent.com/u/19320096?v=4?s=100" width="100px;" alt=""/><br /><sub><b>X-0x01</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=X-0x01" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Allenator"><img src="https://avatars.githubusercontent.com/u/11794943?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allenator</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Allenator" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://microhobby.com.br/blog"><img src="https://avatars.githubusercontent.com/u/2633321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matheus Castello</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=microhobby" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Jai-JAP"><img src="https://avatars.githubusercontent.com/u/78354625?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jai A P</b></sub></a><br /><a href="#platform-Jai-JAP" title="Packaging/porting to new platform">📦</a></td>
<td align="center"><a href="https://blog.ysc3839.com"><img src="https://avatars.githubusercontent.com/u/12028138?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Richard Yu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ysc3839" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/artu-ole"><img src="https://avatars.githubusercontent.com/u/15938416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artu-ole</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=artu-ole" title="Code">💻</a></td>
<td align="center"><a href="https://timagribanov.github.io/"><img src="https://avatars.githubusercontent.com/u/48593815?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Timofey Gribanov</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TimaGribanov" title="Documentation">📖</a> <a href="#translation-TimaGribanov" title="Translation">🌍</a></td>
<td align="center"><a href="https://git.christianbingman.com"><img src="https://avatars.githubusercontent.com/u/42191425?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christian Bingman</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ChristianBingman" title="Code">💻</a></td>
<td align="center"><a href="http://zhangzhipeng2023.cn/"><img src="https://avatars.githubusercontent.com/u/5310853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zhipeng</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Ox0400" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/woodmeal"><img src="https://avatars.githubusercontent.com/u/104011197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>woodmeal</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=woodmeal" title="Code">💻</a></td>
<td align="center"><a href="https://magiclike.codeberg.page/"><img src="https://avatars.githubusercontent.com/u/82117109?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MagicLike</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=MagicLike" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/hisamafahri"><img src="https://avatars.githubusercontent.com/u/65691613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hisam Fahri</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hisamafahri" title="Code">💻</a></td>
<td align="center"><a href="https://liangchengj.com"><img src="https://avatars.githubusercontent.com/u/48881023?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Liangcheng Juves</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LiangchengJ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/attet"><img src="https://avatars.githubusercontent.com/u/1911416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Atte Timonen</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=attet" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -21,7 +21,7 @@
<br/>
<p align="center">
Этот README также доступен на: <a href="./README.md">Английском</a> <a href="./README.ko-KR.md">Корейском</a> <a href="./README.zh-CN.md">Китайском</a>
Этот README также доступен на: <a href="./README.md">:gb: English</a> · <a href="./README.ko-KR.md">:kr: 한국어</a> · <a href="./README.zh-CN.md">:cn: 简体中文</a> · <a href="./README.it-IT.md">:it: Italiano</a> · <a href="./README.de-DE.md">:de: Deutsch</a>
</p>
----
@@ -233,6 +233,27 @@ Pull-запросы и плагины приветствуются!
<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>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mgrulich"><img src="https://avatars.githubusercontent.com/u/781036?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mgrulich" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/piersandro"><img src="https://avatars.githubusercontent.com/u/19996309?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piersandro Guerrera</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=piersandro" title="Documentation">📖</a> <a href="#translation-piersandro" title="Translation">🌍</a></td>
<td align="center"><a href="http://pingbase.cn"><img src="https://avatars.githubusercontent.com/u/19320096?v=4?s=100" width="100px;" alt=""/><br /><sub><b>X-0x01</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=X-0x01" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Allenator"><img src="https://avatars.githubusercontent.com/u/11794943?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allenator</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Allenator" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://microhobby.com.br/blog"><img src="https://avatars.githubusercontent.com/u/2633321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matheus Castello</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=microhobby" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Jai-JAP"><img src="https://avatars.githubusercontent.com/u/78354625?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jai A P</b></sub></a><br /><a href="#platform-Jai-JAP" title="Packaging/porting to new platform">📦</a></td>
<td align="center"><a href="https://blog.ysc3839.com"><img src="https://avatars.githubusercontent.com/u/12028138?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Richard Yu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ysc3839" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/artu-ole"><img src="https://avatars.githubusercontent.com/u/15938416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artu-ole</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=artu-ole" title="Code">💻</a></td>
<td align="center"><a href="https://timagribanov.github.io/"><img src="https://avatars.githubusercontent.com/u/48593815?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Timofey Gribanov</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TimaGribanov" title="Documentation">📖</a> <a href="#translation-TimaGribanov" title="Translation">🌍</a></td>
<td align="center"><a href="https://git.christianbingman.com"><img src="https://avatars.githubusercontent.com/u/42191425?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christian Bingman</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ChristianBingman" title="Code">💻</a></td>
<td align="center"><a href="http://zhangzhipeng2023.cn/"><img src="https://avatars.githubusercontent.com/u/5310853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zhipeng</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Ox0400" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/woodmeal"><img src="https://avatars.githubusercontent.com/u/104011197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>woodmeal</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=woodmeal" title="Code">💻</a></td>
<td align="center"><a href="https://magiclike.codeberg.page/"><img src="https://avatars.githubusercontent.com/u/82117109?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MagicLike</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=MagicLike" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/hisamafahri"><img src="https://avatars.githubusercontent.com/u/65691613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hisam Fahri</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hisamafahri" title="Code">💻</a></td>
<td align="center"><a href="https://liangchengj.com"><img src="https://avatars.githubusercontent.com/u/48881023?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Liangcheng Juves</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LiangchengJ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/attet"><img src="https://avatars.githubusercontent.com/u/1911416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Atte Timonen</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=attet" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -21,7 +21,7 @@
<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>
本 README 还适用于以下语言: <a href="./README.md">:gb: English</a> · <a href="./README.ru-RU.md">:ru: Русский</a> · <a href="./README.ko-KR.md">:kr: 한국어</a> · <a href="./README.it-IT.md">:it: Italiano</a> · <a href="./README.de-DE.md">:de: Deutsch</a>
</p>
----
@@ -44,7 +44,7 @@
# 目录 <!-- omit in toc -->
- [Tabby的正确用途](#tabby的正确用途)
- [Tabby是什么](#tabby是什么)
- [终端特性](#终端特性)
- [SSH 客户端](#ssh-客户端)
- [串行终端](#串行终端)
@@ -55,7 +55,7 @@
<a name="about"></a>
# Tabby的正确用途
# Tabby是什么
* **Tabby 是** Windows 标准终端 (conhost)、PowerShell ISE、PuTTY、macOS Terminal.app 和 iTerm 的替代品
@@ -232,6 +232,27 @@
<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>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mgrulich"><img src="https://avatars.githubusercontent.com/u/781036?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mgrulich" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/piersandro"><img src="https://avatars.githubusercontent.com/u/19996309?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piersandro Guerrera</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=piersandro" title="Documentation">📖</a> <a href="#translation-piersandro" title="Translation">🌍</a></td>
<td align="center"><a href="http://pingbase.cn"><img src="https://avatars.githubusercontent.com/u/19320096?v=4?s=100" width="100px;" alt=""/><br /><sub><b>X-0x01</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=X-0x01" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Allenator"><img src="https://avatars.githubusercontent.com/u/11794943?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allenator</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Allenator" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://microhobby.com.br/blog"><img src="https://avatars.githubusercontent.com/u/2633321?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matheus Castello</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=microhobby" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Jai-JAP"><img src="https://avatars.githubusercontent.com/u/78354625?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jai A P</b></sub></a><br /><a href="#platform-Jai-JAP" title="Packaging/porting to new platform">📦</a></td>
<td align="center"><a href="https://blog.ysc3839.com"><img src="https://avatars.githubusercontent.com/u/12028138?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Richard Yu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ysc3839" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/artu-ole"><img src="https://avatars.githubusercontent.com/u/15938416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artu-ole</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=artu-ole" title="Code">💻</a></td>
<td align="center"><a href="https://timagribanov.github.io/"><img src="https://avatars.githubusercontent.com/u/48593815?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Timofey Gribanov</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=TimaGribanov" title="Documentation">📖</a> <a href="#translation-TimaGribanov" title="Translation">🌍</a></td>
<td align="center"><a href="https://git.christianbingman.com"><img src="https://avatars.githubusercontent.com/u/42191425?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christian Bingman</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ChristianBingman" title="Code">💻</a></td>
<td align="center"><a href="http://zhangzhipeng2023.cn/"><img src="https://avatars.githubusercontent.com/u/5310853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>zhipeng</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Ox0400" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/woodmeal"><img src="https://avatars.githubusercontent.com/u/104011197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>woodmeal</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=woodmeal" title="Code">💻</a></td>
<td align="center"><a href="https://magiclike.codeberg.page/"><img src="https://avatars.githubusercontent.com/u/82117109?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MagicLike</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=MagicLike" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/hisamafahri"><img src="https://avatars.githubusercontent.com/u/65691613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hisam Fahri</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=hisamafahri" title="Code">💻</a></td>
<td align="center"><a href="https://liangchengj.com"><img src="https://avatars.githubusercontent.com/u/48881023?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Liangcheng Juves</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=LiangchengJ" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/attet"><img src="https://avatars.githubusercontent.com/u/1911416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Atte Timonen</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=attet" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -6,7 +6,7 @@ import * as path from 'path'
import * as fs from 'fs'
import { Subject, throttleTime } from 'rxjs'
import { loadConfig } from './config'
import { saveConfig } from './config'
import { Window, WindowOptions } from './window'
import { pluginManager } from './pluginManager'
import { PTYManager } from './pty'
@@ -23,10 +23,10 @@ export class Application {
private windows: Window[] = []
private globalHotkey$ = new Subject<void>()
private quitRequested = false
private configStore: any
userPluginsPath: string
constructor () {
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
constructor (private configStore: any) {
remote.initialize()
this.useBuiltinGraphics()
this.ptyManager.init(this)
@@ -36,6 +36,10 @@ export class Application {
this.configStore = config
})
ipcMain.on('app:save-config', (_event, data) => {
saveConfig(data)
})
ipcMain.on('app:register-global-hotkey', (_event, specs) => {
globalShortcut.unregisterAll()
for (const spec of specs) {
@@ -63,7 +67,6 @@ export class Application {
}
})
this.configStore = loadConfig()
if (process.platform === 'linux') {
app.commandLine.appendSwitch('no-sandbox')
if (((this.configStore.appearance || {}).opacity || 1) !== 1) {
@@ -93,6 +96,10 @@ export class Application {
app.commandLine.appendSwitch(flag[0], flag[1])
}
app.on('before-quit', () => {
this.quitRequested = true
})
app.on('window-all-closed', () => {
if (this.quitRequested || process.platform !== 'darwin') {
app.quit()
@@ -107,7 +114,7 @@ export class Application {
}
async newWindow (options?: WindowOptions): Promise<Window> {
const window = new Window(this, options)
const window = new Window(this, this.configStore, options)
this.windows.push(window)
if (this.windows.length === 1){
window.makeMain()
@@ -214,7 +221,10 @@ export class Application {
}
}
handleSecondInstance (argv: string[], cwd: string): void {
async handleSecondInstance (argv: string[], cwd: string): Promise<void> {
if (!this.windows.length) {
await this.newWindow()
}
this.presentAllWindows()
this.windows[this.windows.length - 1].passCliArguments(argv, cwd, true)
}

View File

@@ -25,6 +25,9 @@ export function parseArgs (argv: string[], cwd: string): any {
type: 'string',
})
})
.command('recent [index]', 'open a tab with a recent profile', {
profileNumber: { type: 'number' },
})
.version(app.getVersion())
.option('debug', {
alias: 'd',

View File

@@ -1,7 +1,10 @@
import * as fs from 'fs'
import * as fs from 'mz/fs'
import * as path from 'path'
import * as yaml from 'js-yaml'
import { v4 as uuidv4 } from 'uuid'
import * as gracefulFS from 'graceful-fs'
import { app } from 'electron'
import { promisify } from 'util'
export function migrateConfig (): void {
const configPath = path.join(app.getPath('userData'), 'config.yaml')
@@ -24,3 +27,22 @@ export function loadConfig (): any {
return {}
}
}
const configPath = path.join(app.getPath('userData'), 'config.yaml')
let _configSaveInProgress = Promise.resolve()
async function _saveConfigInternal (content: string): Promise<void> {
const tempPath = configPath + '.new.' + uuidv4().toString()
await fs.writeFile(tempPath, content, 'utf8')
await fs.writeFile(configPath + '.backup', content, 'utf8')
await promisify(gracefulFS.rename)(tempPath, configPath)
}
export async function saveConfig (content: string): Promise<void> {
try {
await _configSaveInProgress
} catch { }
_configSaveInProgress = _saveConfigInternal(content)
await _configSaveInProgress
}

View File

@@ -3,45 +3,39 @@ import './portable'
import 'source-map-support/register'
import './sentry'
import './lru'
import { app, ipcMain, Menu } from 'electron'
import { app, ipcMain, Menu, dialog } from 'electron'
import { parseArgs } from './cli'
import { Application } from './app'
import electronDebug = require('electron-debug')
import { loadConfig } from './config'
if (!process.env.TABBY_PLUGINS) {
process.env.TABBY_PLUGINS = ''
}
const application = new Application()
const argv = parseArgs(process.argv, process.cwd())
// eslint-disable-next-line @typescript-eslint/init-declarations
let configStore: any
try {
configStore = loadConfig()
} catch (err) {
dialog.showErrorBox('Could not read config', err.message)
app.exit(1)
}
const application = new Application(configStore)
ipcMain.on('app:new-window', () => {
application.newWindow()
})
app.on('activate', () => {
if (!application.hasWindows()) {
application.newWindow()
} else {
application.focus()
}
})
process.on('uncaughtException' as any, err => {
console.log(err)
application.broadcast('uncaughtException', err)
})
app.on('second-instance', (_event, argv, cwd) => {
application.handleSecondInstance(argv, cwd)
})
const argv = parseArgs(process.argv, process.cwd())
if (!app.requestSingleInstanceLock()) {
app.quit()
app.exit(0)
}
if (argv.d) {
electronDebug({
isEnabled: true,
@@ -50,6 +44,23 @@ if (argv.d) {
})
}
app.on('activate', async () => {
if (!application.hasWindows()) {
application.newWindow()
} else {
application.focus()
}
})
app.on('second-instance', async (_event, newArgv, cwd) => {
application.handleSecondInstance(newArgv, cwd)
})
if (!app.requestSingleInstanceLock()) {
app.quit()
app.exit(0)
}
app.on('ready', async () => {
if (process.platform === 'darwin') {
app.dock.setMenu(Menu.buildFromTemplate([
@@ -61,9 +72,11 @@ app.on('ready', async () => {
},
]))
}
application.init()
const window = await application.newWindow({ hidden: argv.hidden })
await window.ready
window.passCliArguments(process.argv, process.cwd(), false)
window.focus()
})

View File

@@ -4,6 +4,7 @@ import { ipcMain } from 'electron'
import { Application } from './app'
import { UTF8Splitter } from './utfSplitter'
import { Subject, debounceTime } from 'rxjs'
import { StringDecoder } from './stringDecoder'
class PTYDataQueue {
private buffers: Buffer[] = []
@@ -90,6 +91,7 @@ class PTYDataQueue {
export class PTY {
private pty: nodePTY.IPty
private outputQueue: PTYDataQueue
private decoder = new StringDecoder()
exited = false
constructor (private id: string, private app: Application, ...args: any[]) {
@@ -99,7 +101,7 @@ export class PTY {
}
this.outputQueue = new PTYDataQueue(this.pty, data => {
setImmediate(() => this.emit('data', data))
setImmediate(() => this.emit('data', this.decoder.write(data)))
})
this.pty.onData(data => this.outputQueue.push(Buffer.from(data)))

View File

@@ -11,7 +11,6 @@ import { compare as compareVersions } from 'compare-versions'
import type { Application } from './app'
import { parseArgs } from './cli'
import { loadConfig } from './config'
let DwmEnableBlurBehindWindow: any = null
if (process.platform === 'win32') {
@@ -42,7 +41,6 @@ export class Window {
private closing = false
private lastVibrancy: { enabled: boolean, type?: string } | null = null
private disableVibrancyWhileDragging = false
private configStore: any
private touchBarControl: any
private isFluentVibrancy = false
private dockHidden = false
@@ -50,9 +48,8 @@ export class Window {
get visible$ (): Observable<boolean> { return this.visible }
get closed$ (): Observable<void> { return this.closed }
constructor (private application: Application, options?: WindowOptions) {
this.configStore = loadConfig()
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
constructor (private application: Application, private configStore: any, options?: WindowOptions) {
options = options ?? {}
this.windowConfig = new ElectronConfig({ name: 'window' })
@@ -75,6 +72,7 @@ export class Window {
frame: false,
show: false,
backgroundColor: '#00000000',
acceptFirstMouse: true,
}
if (this.windowBounds) {
@@ -135,6 +133,8 @@ export class Window {
this.window.webContents.setVisualZoomLevelLimits(1, 1)
this.window.webContents.setZoomFactor(1)
this.window.webContents.session.setPermissionCheckHandler(() => true)
this.window.webContents.session.setDevicePermissionHandler(() => true)
if (process.platform === 'darwin') {
this.touchBarControl = new TouchBar.TouchBarSegmentedControl({
@@ -180,7 +180,7 @@ export class Window {
console.error('Failed to set window blur', error)
}
} else {
DwmEnableBlurBehindWindow(this.window, enabled)
DwmEnableBlurBehindWindow(this.window.getNativeWindowHandle(), enabled)
}
} else if (process.platform === 'linux') {
this.window.setBackgroundColor(enabled ? '#00000000' : '#131d27')
@@ -413,7 +413,7 @@ export class Window {
this.window.webContents.on('new-window', event => event.preventDefault())
ipcMain.on('window-set-disable-vibrancy-while-dragging', (_event, value) => {
this.disableVibrancyWhileDragging = value
this.disableVibrancyWhileDragging = value && this.configStore.hacks?.disableVibrancyWhileDragging
})
let moveEndedTimeout: any = null

View File

@@ -8,39 +8,39 @@
"email": "e@ajenti.org"
},
"main": "dist/main.js",
"version": "1.0.0-alpha.1",
"version": "1.0.0",
"scripts": {
"postinstall": "patch-package",
"build": "webpack --progress --color --display-modules",
"watch": "webpack --progress --color --watch"
},
"dependencies": {
"@angular/cdk": "^12.2.9",
"@electron/remote": "2.0.1",
"@electron/remote": "2.0.8",
"@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",
"electron-updater": "^5.0.1",
"fontmanager-redux": "1.1.0",
"glasstron": "0.0.7",
"glasstron": "0.1.1",
"js-yaml": "4.1.0",
"keytar": "^7.7.0",
"keytar": "^7.9.0",
"mz": "^2.7.0",
"native-process-working-directory": "^1.0.2",
"npm": "6",
"rxjs": "^7.5.1",
"rxjs": "^7.5.5",
"source-map-support": "^0.5.20",
"v8-compile-cache": "^2.3.0",
"yargs": "^17.3.1"
},
"optionalDependencies": {
"@tabby-gang/windows-blurbehind": "^3.0.0",
"macos-native-processlist": "^2.0.0",
"serialport": "^10.0.2",
"windows-native-registry": "^3.1.0",
"windows-process-tree": "^0.3.2"
"macos-native-processlist": "^2.1.0",
"serialport": "10.4.0",
"serialport-binding-webserialapi": "^1.0.3",
"windows-native-registry": "^3.2.1",
"windows-process-tree": "^0.3.3"
},
"devDependencies": {
"@types/mz": "2.7.4",

View File

@@ -0,0 +1,327 @@
diff --git a/node_modules/@serialport/bindings-cpp/src/serialport_win.cpp b/node_modules/@serialport/bindings-cpp/src/serialport_win.cpp
index b11c07f..910023e 100644
--- a/node_modules/@serialport/bindings-cpp/src/serialport_win.cpp
+++ b/node_modules/@serialport/bindings-cpp/src/serialport_win.cpp
@@ -10,6 +10,7 @@
#include <initguid.h>
#include <devpkey.h>
#include <devguid.h>
+#include <wchar.h>
#pragma comment(lib, "setupapi.lib")
#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
@@ -25,6 +26,29 @@ typedef BOOL (WINAPI *CancelIoExType)(HANDLE hFile, LPOVERLAPPED lpOverlapped);
std::list<int> g_closingHandles;
+void ErrorCodeToString(const wchar_t* prefix, int errorCode, wchar_t *errorStr) {
+ switch (errorCode) {
+ case ERROR_FILE_NOT_FOUND:
+ _snwprintf_s(errorStr, ERROR_STRING_SIZE, _TRUNCATE, L"%ls: File not found", prefix);
+ break;
+ case ERROR_INVALID_HANDLE:
+ _snwprintf_s(errorStr, ERROR_STRING_SIZE, _TRUNCATE, L"%ls: Invalid handle", prefix);
+ break;
+ case ERROR_ACCESS_DENIED:
+ _snwprintf_s(errorStr, ERROR_STRING_SIZE, _TRUNCATE, L"%ls: Access denied", prefix);
+ break;
+ case ERROR_OPERATION_ABORTED:
+ _snwprintf_s(errorStr, ERROR_STRING_SIZE, _TRUNCATE, L"%ls: Operation aborted", prefix);
+ break;
+ case ERROR_INVALID_PARAMETER:
+ _snwprintf_s(errorStr, ERROR_STRING_SIZE, _TRUNCATE, L"%ls: The parameter is incorrect %d", prefix, errorCode);
+ break;
+ default:
+ _snwprintf_s(errorStr, ERROR_STRING_SIZE, _TRUNCATE, L"%ls: Unknown error code %d", prefix, errorCode);
+ break;
+ }
+}
+
void ErrorCodeToString(const char* prefix, int errorCode, char *errorStr) {
switch (errorCode) {
case ERROR_FILE_NOT_FOUND:
@@ -608,9 +632,9 @@ void CloseBaton::Execute() {
}
}
-char *copySubstring(char *someString, int n) {
- char *new_ = reinterpret_cast<char*>(malloc(sizeof(char)*n + 1));
- strncpy_s(new_, n + 1, someString, n);
+wchar_t *copySubstring(wchar_t *someString, int n) {
+ wchar_t *new_ = reinterpret_cast<wchar_t*>(malloc(sizeof(wchar_t)*n + 1));
+ wcsncpy_s(new_, n + 1, someString, n);
new_[n] = '\0';
return new_;
}
@@ -625,7 +649,7 @@ Napi::Value List(const Napi::CallbackInfo& info) {
Napi::Function callback = info[0].As<Napi::Function>();
ListBaton* baton = new ListBaton(callback);
- snprintf(baton->errorString, sizeof(baton->errorString), "");
+ _snwprintf(baton->errorString, sizeof(baton->errorString), L"");
baton->Queue();
return env.Undefined();
@@ -633,20 +657,20 @@ Napi::Value List(const Napi::CallbackInfo& info) {
// It's possible that the s/n is a construct and not the s/n of the parent USB
// composite device. This performs some convoluted registry lookups to fetch the USB s/n.
-void getSerialNumber(const char *vid,
- const char *pid,
+void getSerialNumber(const wchar_t *vid,
+ const wchar_t *pid,
const HDEVINFO hDevInfo,
SP_DEVINFO_DATA deviceInfoData,
const unsigned int maxSerialNumberLength,
- char* serialNumber) {
- _snprintf_s(serialNumber, maxSerialNumberLength, _TRUNCATE, "");
+ wchar_t* serialNumber) {
+ _snwprintf_s(serialNumber, maxSerialNumberLength, _TRUNCATE, L"");
if (vid == NULL || pid == NULL) {
return;
}
DWORD dwSize;
WCHAR szWUuidBuffer[MAX_BUFFER_SIZE];
- WCHAR containerUuid[MAX_BUFFER_SIZE];
+ WCHAR wantedUuid[MAX_BUFFER_SIZE];
// Fetch the "Container ID" for this device node. In USB context, this "Container
@@ -683,7 +707,7 @@ void getSerialNumber(const char *vid,
// Given the UUID bytes, build up a (widechar) string from it. There's some mangling
// going on.
- StringFromGUID2((REFGUID)szWUuidBuffer, containerUuid, ARRAY_SIZE(containerUuid));
+ StringFromGUID2((REFGUID)szWUuidBuffer, wantedUuid, ARRAY_SIZE(wantedUuid));
} else {
// Container UUID could not be fetched, return empty serial number.
return;
@@ -693,21 +717,15 @@ void getSerialNumber(const char *vid,
// This means they're non-removable, and are not handled (yet).
// Maybe they should inherit the s/n from somewhere else.
- // Sanitize input - for whatever reason, StringFromGUID2() returns a WCHAR* but
- // the comparisons later need a plain old char*, in lowercase ASCII.
- char wantedUuid[MAX_BUFFER_SIZE];
- _snprintf_s(wantedUuid, MAX_BUFFER_SIZE, _TRUNCATE, "%ws", containerUuid);
- strlwr(wantedUuid);
-
// Iterate through all the USB devices with the given VendorID/ProductID
HKEY vendorProductHKey;
DWORD retCode;
- char hkeyPath[MAX_BUFFER_SIZE];
+ wchar_t hkeyPath[MAX_BUFFER_SIZE];
- _snprintf_s(hkeyPath, MAX_BUFFER_SIZE, _TRUNCATE, "SYSTEM\\CurrentControlSet\\Enum\\USB\\VID_%s&PID_%s", vid, pid);
+ _snwprintf_s(hkeyPath, MAX_BUFFER_SIZE, _TRUNCATE, L"SYSTEM\\CurrentControlSet\\Enum\\USB\\VID_%s&PID_%s", vid, pid);
- retCode = RegOpenKeyEx(
+ retCode = RegOpenKeyExW(
HKEY_LOCAL_MACHINE,
hkeyPath,
0,
@@ -739,9 +757,9 @@ void getSerialNumber(const char *vid,
// Each of the subkeys here is the serial number of a USB device with the
// given VendorId/ProductId. Now fetch the string for the S/N.
DWORD serialNumberLength = maxSerialNumberLength;
- retCode = RegEnumKeyEx(vendorProductHKey,
+ retCode = RegEnumKeyExW(vendorProductHKey,
i,
- serialNumber,
+ reinterpret_cast<LPWSTR>(serialNumber),
&serialNumberLength,
NULL,
NULL,
@@ -751,21 +769,21 @@ void getSerialNumber(const char *vid,
if (retCode == ERROR_SUCCESS) {
// Lookup info for VID_(vendorId)&PID_(productId)\(serialnumber)
- _snprintf_s(hkeyPath, MAX_BUFFER_SIZE, _TRUNCATE,
- "SYSTEM\\CurrentControlSet\\Enum\\USB\\VID_%s&PID_%s\\%s",
+ _snwprintf_s(hkeyPath, MAX_BUFFER_SIZE, _TRUNCATE,
+ L"SYSTEM\\CurrentControlSet\\Enum\\USB\\VID_%ls&PID_%ls\\%ls",
vid, pid, serialNumber);
HKEY deviceHKey;
- if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, hkeyPath, 0, KEY_READ, &deviceHKey) == ERROR_SUCCESS) {
- char readUuid[MAX_BUFFER_SIZE];
+ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, hkeyPath, 0, KEY_READ, &deviceHKey) == ERROR_SUCCESS) {
+ wchar_t readUuid[MAX_BUFFER_SIZE];
DWORD readSize = sizeof(readUuid);
// Query VID_(vendorId)&PID_(productId)\(serialnumber)\ContainerID
- retCode = RegQueryValueEx(deviceHKey, "ContainerID", NULL, NULL, (LPBYTE)&readUuid, &readSize);
+ retCode = RegQueryValueExW(deviceHKey, L"ContainerID", NULL, NULL, (LPBYTE)&readUuid, &readSize);
if (retCode == ERROR_SUCCESS) {
readUuid[readSize] = '\0';
- if (strcmp(wantedUuid, readUuid) == 0) {
+ if (wcscmp(wantedUuid, readUuid) == 0) {
// The ContainerID UUIDs match, return now that serialNumber has
// the right value.
RegCloseKey(deviceHKey);
@@ -783,7 +801,7 @@ void getSerialNumber(const char *vid,
RegCloseKey(vendorProductHKey);
}
- _snprintf_s(serialNumber, maxSerialNumberLength, _TRUNCATE, "");
+ _snwprintf_s(serialNumber, maxSerialNumberLength, _TRUNCATE, L"");
return;
}
@@ -795,15 +813,15 @@ void ListBaton::Execute() {
int memberIndex = 0;
DWORD dwSize, dwPropertyRegDataType;
- char szBuffer[MAX_BUFFER_SIZE];
- char *pnpId;
- char *vendorId;
- char *productId;
- char *name;
- char *manufacturer;
- char *locationId;
- char *friendlyName;
- char serialNumber[MAX_REGISTRY_KEY_SIZE];
+ wchar_t szBuffer[MAX_BUFFER_SIZE];
+ wchar_t *pnpId;
+ wchar_t *vendorId;
+ wchar_t *productId;
+ wchar_t *name;
+ wchar_t *manufacturer;
+ wchar_t *locationId;
+ wchar_t *friendlyName;
+ wchar_t serialNumber[MAX_REGISTRY_KEY_SIZE];
bool isCom;
while (true) {
isCom = false;
@@ -814,7 +832,6 @@ void ListBaton::Execute() {
manufacturer = NULL;
locationId = NULL;
friendlyName = NULL;
- isCom = false;
ZeroMemory(&deviceInfoData, sizeof(SP_DEVINFO_DATA));
deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
@@ -826,16 +843,16 @@ void ListBaton::Execute() {
}
dwSize = sizeof(szBuffer);
- SetupDiGetDeviceInstanceId(hDevInfo, &deviceInfoData, szBuffer, dwSize, &dwSize);
+ SetupDiGetDeviceInstanceIdW(hDevInfo, &deviceInfoData, reinterpret_cast<PWSTR>(szBuffer), dwSize, &dwSize);
szBuffer[dwSize] = '\0';
- pnpId = strdup(szBuffer);
+ pnpId = wcsdup(szBuffer);
- vendorId = strstr(szBuffer, "VID_");
+ vendorId = wcsstr(szBuffer, L"VID_");
if (vendorId) {
vendorId += 4;
vendorId = copySubstring(vendorId, 4);
}
- productId = strstr(szBuffer, "PID_");
+ productId = wcsstr(szBuffer, L"PID_");
if (productId) {
productId += 4;
productId = copySubstring(productId, 4);
@@ -843,32 +860,29 @@ void ListBaton::Execute() {
getSerialNumber(vendorId, productId, hDevInfo, deviceInfoData, MAX_REGISTRY_KEY_SIZE, serialNumber);
- if (SetupDiGetDeviceRegistryProperty(hDevInfo, &deviceInfoData,
+ if (SetupDiGetDeviceRegistryPropertyW(hDevInfo, &deviceInfoData,
SPDRP_LOCATION_INFORMATION, &dwPropertyRegDataType,
- reinterpret_cast<BYTE*>(szBuffer),
- sizeof(szBuffer), &dwSize)) {
- locationId = strdup(szBuffer);
+ reinterpret_cast<PBYTE>(szBuffer), sizeof(szBuffer), &dwSize)) {
+ locationId = wcsdup(szBuffer);
}
- if (SetupDiGetDeviceRegistryProperty(hDevInfo, &deviceInfoData,
+ if (SetupDiGetDeviceRegistryPropertyW(hDevInfo, &deviceInfoData,
SPDRP_FRIENDLYNAME, &dwPropertyRegDataType,
- reinterpret_cast<BYTE*>(szBuffer),
- sizeof(szBuffer), &dwSize)) {
- friendlyName = strdup(szBuffer);
+ reinterpret_cast<PBYTE>(szBuffer), sizeof(szBuffer), &dwSize)) {
+ friendlyName = wcsdup(szBuffer);
}
- if (SetupDiGetDeviceRegistryProperty(hDevInfo, &deviceInfoData,
+ if (SetupDiGetDeviceRegistryPropertyW(hDevInfo, &deviceInfoData,
SPDRP_MFG, &dwPropertyRegDataType,
- reinterpret_cast<BYTE*>(szBuffer),
- sizeof(szBuffer), &dwSize)) {
- manufacturer = strdup(szBuffer);
+ reinterpret_cast<PBYTE>(szBuffer), sizeof(szBuffer), &dwSize)) {
+ manufacturer = wcsdup(szBuffer);
}
HKEY hkey = SetupDiOpenDevRegKey(hDevInfo, &deviceInfoData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_READ);
if (hkey != INVALID_HANDLE_VALUE) {
dwSize = sizeof(szBuffer);
- if (RegQueryValueEx(hkey, "PortName", NULL, NULL, (LPBYTE)&szBuffer, &dwSize) == ERROR_SUCCESS) {
+ if (RegQueryValueExW(hkey, L"PortName", NULL, NULL, (LPBYTE)&szBuffer, &dwSize) == ERROR_SUCCESS) {
+ name = wcsdup(szBuffer);
szBuffer[dwSize] = '\0';
- name = strdup(szBuffer);
- isCom = strstr(szBuffer, "COM") != NULL;
+ isCom = wcsstr(szBuffer, L"COM") != NULL;
}
}
if (isCom) {
@@ -916,6 +930,16 @@ void setIfNotEmpty(Napi::Object item, std::string key, const char *value) {
}
}
+void setIfNotEmpty(Napi::Object item, std::string key, const wchar_t *value) {
+ Napi::Env env = item.Env();
+ Napi::String v8key = Napi::String::New(env, key);
+ if (wcslen(value) > 0) {
+ (item).Set(v8key, Napi::String::New(env, (const char16_t*) value));
+ } else {
+ (item).Set(v8key, env.Undefined());
+ }
+}
+
void FlushBaton::Execute() {
DWORD purge_all = PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR;
if (!PurgeComm(int2handle(fd), purge_all)) {
diff --git a/node_modules/@serialport/bindings-cpp/src/serialport_win.h b/node_modules/@serialport/bindings-cpp/src/serialport_win.h
index f3e3c32..739b5dd 100644
--- a/node_modules/@serialport/bindings-cpp/src/serialport_win.h
+++ b/node_modules/@serialport/bindings-cpp/src/serialport_win.h
@@ -47,23 +47,24 @@ Napi::Value Read(const Napi::CallbackInfo& info);
Napi::Value List(const Napi::CallbackInfo& info);
void setIfNotEmpty(Napi::Object item, std::string key, const char *value);
+void setIfNotEmpty(Napi::Object item, std::string key, const wchar_t *value);
struct ListResultItem {
- std::string path;
- std::string manufacturer;
- std::string serialNumber;
- std::string pnpId;
- std::string locationId;
- std::string friendlyName;
- std::string vendorId;
- std::string productId;
+ std::wstring path;
+ std::wstring manufacturer;
+ std::wstring serialNumber;
+ std::wstring pnpId;
+ std::wstring locationId;
+ std::wstring friendlyName;
+ std::wstring vendorId;
+ std::wstring productId;
};
struct ListBaton : public Napi::AsyncWorker {
ListBaton(Napi::Function& callback) : Napi::AsyncWorker(callback, "node-serialport:ListBaton"),
errorString() {}
std::list<ListResultItem*> results;
- char errorString[ERROR_STRING_SIZE];
+ wchar_t errorString[ERROR_STRING_SIZE];
void Execute() override;
void OnOK() override {

View File

@@ -21,6 +21,8 @@ const builtinPluginsPath = process.env.TABBY_DEV ? path.dirname(remote.app.getAp
const cachedBuiltinModules = {
'@angular/animations': require('@angular/animations'),
'@angular/cdk/drag-drop': require('@angular/cdk/drag-drop'),
'@angular/cdk/clipboard': require('@angular/cdk/clipboard'),
'@angular/common': require('@angular/common'),
'@angular/compiler': require('@angular/compiler'),
'@angular/core': require('@angular/core'),
@@ -64,18 +66,23 @@ export type ProgressCallback = (current: number, total: number) => void
export function initModuleLookup (userPluginsPath: string): void {
global['module'].paths.map((x: string) => nodeModule.globalPaths.push(normalizePath(x)))
nodeModule.globalPaths.unshift(path.join(userPluginsPath, 'node_modules'))
const paths = []
paths.unshift(path.join(userPluginsPath, 'node_modules'))
paths.unshift(path.join(remote.app.getAppPath(), 'node_modules'))
if (process.env.TABBY_DEV) {
nodeModule.globalPaths.unshift(path.dirname(remote.app.getAppPath()))
paths.unshift(path.dirname(remote.app.getAppPath()))
}
nodeModule.globalPaths.unshift(builtinPluginsPath)
// nodeModule.globalPaths.unshift(path.join((process as any).resourcesPath, 'app.asar', 'node_modules'))
paths.unshift(builtinPluginsPath)
// paths.unshift(path.join((process as any).resourcesPath, 'app.asar', 'node_modules'))
if (process.env.TABBY_PLUGINS) {
process.env.TABBY_PLUGINS.split(':').map(x => nodeModule.globalPaths.push(normalizePath(x)))
process.env.TABBY_PLUGINS.split(':').map(x => paths.push(normalizePath(x)))
}
process.env.NODE_PATH += path.delimiter + paths.join(path.delimiter)
nodeModule._initPaths()
builtinModules.forEach(m => {
if (!cachedBuiltinModules[m]) {
cachedBuiltinModules[m] = nodeRequire(m)

View File

@@ -2,19 +2,10 @@
# yarn lockfile v1
"@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@2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.1.tgz#810cbc595a21f0f94641eb2d7e8264063a3f84de"
integrity sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==
"@electron/remote@2.0.8":
version "2.0.8"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.8.tgz#85ff321f0490222993207106e2f720273bb1a5c3"
integrity sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==
"@iarna/cli@^1.2.0":
version "1.2.0"
@@ -25,73 +16,101 @@
update-notifier "^2.2.0"
yargs "^8.0.2"
"@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==
"@serialport/binding-abstract@^9.0.2":
version "9.2.3"
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-9.2.3.tgz#e7dd273357b6a698af7ad58db6f57f62443a0acb"
integrity sha512-cQs9tbIlG3P0IrOWyVirqlhWuJ7Ms2Zh9m2108z6Y5UW/iVj6wEOiW8EmK9QX9jmJXYllE7wgGgvVozP5oCj3w==
dependencies:
debug "^4.3.2"
"@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==
"@serialport/binding-mock@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-10.2.2.tgz#d322a8116a97806addda13c62f50e73d16125874"
integrity sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==
dependencies:
"@serialport/binding-abstract" "10.0.1"
debug "^4.3.2"
"@serialport/bindings-interface" "^1.2.1"
debug "^4.3.3"
"@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==
"@serialport/bindings-cpp@10.7.0":
version "10.7.0"
resolved "https://registry.yarnpkg.com/@serialport/bindings-cpp/-/bindings-cpp-10.7.0.tgz#9cf7dda78d914ba597933089abe2a8511e875851"
integrity sha512-Xx1wA2UCG2loS32hxNvWJI4smCzGKhWqE85//fLRzHoGgE1lSLe3Nk7W40/ebrlGFHWRbQZmeaIF4chb2XLliA==
dependencies:
"@serialport/binding-abstract" "10.0.1"
"@serialport/parser-readline" "10.0.1"
"@serialport/bindings-interface" "1.2.1"
"@serialport/parser-readline" "^10.2.1"
debug "^4.3.2"
node-addon-api "4.2.0"
node-addon-api "^4.3.0"
node-gyp-build "^4.3.0"
"@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/bindings-interface@1.2.1", "@serialport/bindings-interface@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@serialport/bindings-interface/-/bindings-interface-1.2.1.tgz#1ee80b0951ef4e4fd8a5a186621feff046aa2faf"
integrity sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==
"@serialport/parser-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-byte-length@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-10.3.0.tgz#c650b8883f716af77196e8466e86861b55290201"
integrity sha512-pJ/VoFemzKRRNDHLhFfPThwP40QrGaEnm9TtwL7o2GihEPwzBg3T0bN13ew5TpbbUYZdMpUtpm3CGfl6av9rUQ==
"@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-cctalk@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-10.3.0.tgz#d8fc7ab480910b28362b1ff154c01c170ac201a3"
integrity sha512-8ujmk8EvVbDPrNF4mM33bWvUYJOZ0wXbY3WCRazHRWvyCdL0VO0DQvW81ZqgoTpiDQZm5r8wQu9rmuemahF6vQ==
"@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-delimiter@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-10.3.0.tgz#4bcbbeed7e3c6fed2c116535f0754bbf8a33f015"
integrity sha512-9E4Vj6s0UbbcCCTclwegHGPYjJhdm9qLCS0lowXQDEQC5naZnbsELemMHs93nD9jHPcyx1B4oXkMnVZLxX5TYw==
"@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==
"@serialport/parser-inter-byte-timeout@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.3.0.tgz#57e4fceeeeb13415dcded3ef1ba5d28a9fa0c611"
integrity sha512-wKP0QK85NHgvT6BBB1qBfKBBU4pf8kespNXAZBUYmFT+P4n8r8IZE2mqigCD+AiZcfWNQoAizwOsT/Jx/qeVig==
"@serialport/parser-packet-length@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-packet-length/-/parser-packet-length-10.3.0.tgz#9faefc91841c011925a6d4fa4fad6ed44bf11ed6"
integrity sha512-bj0cWzt8YSQj/E5fRQVYdi4TsfTlZQrXlXrUwjyTsCONv8IPOHzsz+yY0fw5SEMiJtaLyqvPkCHLsttOd/zFsg==
"@serialport/parser-readline@10.3.0", "@serialport/parser-readline@^10.2.1":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-10.3.0.tgz#7db9143ce9a2537a4086b3824a70fe53ae2107b3"
integrity sha512-ki3ATZ3/RAqnqGROBKE7k+OeZ0DZXZ53GTca4q71OU5RazbbNhTOBQLKLXD3v9QZXCMJdg4hGW/2Y0DuMUqMQg==
dependencies:
"@serialport/parser-delimiter" "10.0.1"
"@serialport/parser-delimiter" "10.3.0"
"@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-ready@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-10.3.0.tgz#6a93d8970dc827e57829a9ee54802469be71f185"
integrity sha512-1owywJ4p592dJyVrEJZPIh6pUZ3/y/LN6kGTDH2wxdewRUITo/sGvDy0er5i2+dJD3yuowiAz0dOHSdz8tevJA==
"@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/parser-regex@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-10.3.0.tgz#7c7314036535414bb7ada3520598d233f5ea09d0"
integrity sha512-tIogTs7CvTH+UUFnsvE7i33MSISyTPTGPWlglWYH2/5coipXY503jlaYS1YGe818wWNcSx6YAjMZRdhTWwM39w==
"@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==
"@serialport/parser-slip-encoder@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-slip-encoder/-/parser-slip-encoder-10.3.0.tgz#ff01cd7cda2258ad2ca3ebb113145a0aa7272c78"
integrity sha512-JI0ILF5sylWn8f0MuMzHFBix/iMUTa79/Z95KaPZYnVaEdA7h7hh/o21Jmon/26P3RJwL1SNJCjZ81zfan+LtQ==
"@serialport/parser-spacepacket@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/parser-spacepacket/-/parser-spacepacket-10.3.0.tgz#447d49b0690527ea770410ffe0a2ade2079ae7b2"
integrity sha512-PDF73ClEPsClD1FEJZHNuBevDKsJCkqy/XD5+S5eA6+tY5D4HLrVgSWsg+3qqB6+dlpwf2CzHe+uO8D3teuKHA==
"@serialport/stream@10.3.0":
version "10.3.0"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-10.3.0.tgz#fdb13ed4487379615819203217060b114548c0a6"
integrity sha512-7sooi5fHogYNVEJwxVdg872xO6TuMgQd2E9iRmv+o8pk/1dbBnPkmH6Ka3st1mVE+0KnIJqVlgei+ncSsqXIGw==
dependencies:
"@serialport/bindings-interface" "1.2.1"
debug "^4.3.2"
"@serialport/stream@^9.0.2":
version "9.2.4"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-9.2.4.tgz#9fce093d0b46ed4599953b4fae81718e050d2b33"
integrity sha512-bLye8Ub4vUFQGmkh8qEqehr7SE7EJs2yDs0h9jzuL5oKi+F34CFmWkEErO8GAOQ8YNn7p6b3GxUgs+0BrHHDZQ==
dependencies:
debug "^4.3.2"
@@ -385,10 +404,10 @@ 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==
builder-util-runtime@9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz#3a40ba7382712ccdb24471567f91d7c167e00830"
integrity sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA==
dependencies:
debug "^4.3.2"
sax "^1.2.4"
@@ -731,10 +750,10 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
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==
debug@^4.0.1, debug@^4.3.2, debug@^4.3.3:
version "4.3.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
dependencies:
ms "2.1.2"
@@ -753,12 +772,12 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
decompress-response@^4.2.0:
version "4.2.1"
resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz"
integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
decompress-response@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
dependencies:
mimic-response "^2.0.0"
mimic-response "^3.1.0"
deep-extend@^0.6.0:
version "0.6.0"
@@ -794,10 +813,10 @@ detect-indent@~5.0.0:
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50=
detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-libc@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.0.tgz#c528bc09bc6d1aa30149228240917c225448f204"
integrity sha512-S55LzUl8HUav8l9E2PBTlC5PAJrHK7tkM+XXFGD+fbsbkTzhCpG6K05LxJcUOEWzMa4v6ptcMZ9s3fOdJDu0Zw==
detect-newline@^2.1.0:
version "2.1.0"
@@ -897,13 +916,13 @@ 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==
electron-updater@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-5.0.1.tgz#327915f1b2e573daf1ce1d8102bcab93f4880c1a"
integrity sha512-dNnXPCqYmergXy3jgg4UICuD50Orug9GQe/5xfHy+BE2Fy0icB0QE+y6iQWdCDf7yeONxwMBf4HgIkGG5pIaVg==
dependencies:
"@types/semver" "^7.3.6"
builder-util-runtime "8.9.1"
builder-util-runtime "9.0.0"
fs-extra "^10.0.0"
js-yaml "^4.1.0"
lazy-val "^1.0.5"
@@ -1277,12 +1296,12 @@ github-from-package@0.0.0:
resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz"
integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
glasstron@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/glasstron/-/glasstron-0.0.7.tgz#d0f3e8344351bbcb89a39323282b4ddb06b03ba0"
integrity sha512-zeqfC0E153yBKWHB8ZBA5rT1o1dCCQcPECBryzWLX3uy6VTX3CUcy7kjk/4BlVztEIbpV2plEetpOxSAOe5cqw==
glasstron@0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/glasstron/-/glasstron-0.1.1.tgz#491a2e6f7e7b285c3776c5f7af7aaba2269833b2"
integrity sha512-oLEMQM5wwdAQ44NrXD3wjk+b3dsfQG1XtkLn5pCxQNa3ri1AtWvvzpnhFUd88ZTmguHvkY4c3JKzcPSYaJAKKA==
dependencies:
node-addon-api "^3.0.0"
node-addon-api "^4.0.0"
x11 "^2.3.0"
glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
@@ -1743,13 +1762,13 @@ keyboardevents-areequal@^0.2.1:
resolved "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz"
integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==
keytar@^7.7.0:
version "7.7.0"
resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.7.0.tgz#3002b106c01631aa79b1aa9ee0493b94179bbbd2"
integrity sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==
keytar@^7.9.0:
version "7.9.0"
resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.9.0.tgz#4c6225708f51b50cbf77c5aae81721964c2918cb"
integrity sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==
dependencies:
node-addon-api "^3.0.0"
prebuild-install "^6.0.0"
node-addon-api "^4.3.0"
prebuild-install "^7.0.1"
klaw-sync@^6.0.0:
version "6.0.0"
@@ -2033,12 +2052,12 @@ lru-cache@^6.0.0:
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"
integrity sha512-ciW1n2jL+9f7+9xijMMVmVzRbpVlKjzMFmgpNricm5QKfkUTMEa1suR0pc9pQRrLea4sJtbLo0u+izzHDvkpIA==
macos-native-processlist@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/macos-native-processlist/-/macos-native-processlist-2.1.0.tgz#3ebfc0391083331bfa20acef01a45abd45b554dd"
integrity sha512-qXsNLedPaF7/vo26gOS6HyNvI8Oko5PgvezBsWwXkCFXQdU9+JOFDQvvRZ4WoPgUUkiV7a4PK7xbbkf8X6d/cQ==
dependencies:
node-addon-api "3.0.0"
node-addon-api "3.1.0"
make-dir@^1.0.0:
version "1.3.0"
@@ -2101,10 +2120,10 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
mimic-response@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz"
integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
mimic-response@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
minimatch@^3.0.4:
version "3.0.4"
@@ -2114,9 +2133,9 @@ minimatch@^3.0.4:
brace-expansion "^1.1.7"
minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
version "1.2.6"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
minipass@^2.3.5, minipass@^2.6.0, minipass@^2.9.0:
version "2.9.0"
@@ -2232,28 +2251,30 @@ nice-try@^1.0.4:
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:
node-abi@^2.20.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"
node-addon-api@3.0.0:
version "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-abi@^3.3.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.8.0.tgz#679957dc8e7aa47b0a02589dbfde4f77b29ccb32"
integrity sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==
dependencies:
semver "^7.3.5"
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:
node-addon-api@3.1.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"
integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
node-addon-api@^4.0.0, node-addon-api@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
node-fetch-npm@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4"
@@ -2285,11 +2306,6 @@ node-gyp@^5.0.2, node-gyp@^5.1.0:
tar "^4.4.12"
which "^1.3.1"
noop-logger@^0.1.1:
version "0.1.1"
resolved "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"
integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
nopt@^4.0.1, nopt@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
@@ -2758,11 +2774,6 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
parse5@^5.0.0:
version "5.1.1"
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"
@@ -2841,26 +2852,24 @@ pkg-up@^2.0.0:
dependencies:
find-up "^2.1.0"
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==
prebuild-install@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.1.tgz#c10075727c318efe72412f333e0ef625beaf3870"
integrity sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==
dependencies:
detect-libc "^1.0.3"
detect-libc "^2.0.0"
expand-template "^2.0.3"
github-from-package "0.0.0"
minimist "^1.2.3"
mkdirp-classic "^0.5.3"
napi-build-utils "^1.0.1"
node-abi "^2.7.0"
noop-logger "^0.1.1"
node-abi "^3.3.0"
npmlog "^4.0.1"
pump "^3.0.0"
rc "^1.2.7"
simple-get "^3.0.3"
simple-get "^4.0.0"
tar-fs "^2.0.0"
tunnel-agent "^0.6.0"
which-pm-runs "^1.0.0"
prepend-http@^1.0.1:
version "1.0.4"
@@ -3182,10 +3191,10 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
rxjs@^7.5.1:
version "7.5.1"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.1.tgz#af73df343cbcab37628197f43ea0c8256f54b157"
integrity sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==
rxjs@^7.5.5:
version "7.5.5"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f"
integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==
dependencies:
tslib "^2.1.0"
@@ -3235,22 +3244,33 @@ serialize-error@^5.0.0:
dependencies:
type-fest "^0.8.0"
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==
serialport-binding-webserialapi@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/serialport-binding-webserialapi/-/serialport-binding-webserialapi-1.0.3.tgz#cf4348c075da2de8f6cf9936c0b95645f3ae657b"
integrity sha512-TS7dsvetVoTeiWlzpsT/akjtljiYPO56FoJWSFyJSoO/E8icYJ2neQ7CW5NW/sHZDnMqAxULyAny47UFhWz9oQ==
dependencies:
"@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"
"@serialport/binding-abstract" "^9.0.2"
"@serialport/stream" "^9.0.2"
serialport@10.4.0:
version "10.4.0"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-10.4.0.tgz#93c95ecccc0e314d5bbee3f06cde2c70be70e671"
integrity sha512-PszPM5SnFMgSXom60PkKS2A9nMlNbHkuoyRBlzdSWw9rmgOn258+V0dYbWMrETJMM+TJV32vqBzjg5MmmUMwMw==
dependencies:
"@serialport/binding-mock" "10.2.2"
"@serialport/bindings-cpp" "10.7.0"
"@serialport/parser-byte-length" "10.3.0"
"@serialport/parser-cctalk" "10.3.0"
"@serialport/parser-delimiter" "10.3.0"
"@serialport/parser-inter-byte-timeout" "10.3.0"
"@serialport/parser-packet-length" "10.3.0"
"@serialport/parser-readline" "10.3.0"
"@serialport/parser-ready" "10.3.0"
"@serialport/parser-regex" "10.3.0"
"@serialport/parser-slip-encoder" "10.3.0"
"@serialport/parser-spacepacket" "10.3.0"
"@serialport/stream" "10.3.0"
debug "^4.3.3"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
@@ -3286,12 +3306,12 @@ simple-concat@^1.0.0:
resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
simple-get@^3.0.3:
version "3.1.0"
resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz"
integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
simple-get@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543"
integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==
dependencies:
decompress-response "^4.2.0"
decompress-response "^6.0.0"
once "^1.3.1"
simple-concat "^1.0.0"
@@ -3661,7 +3681,7 @@ tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
tslib@^2.0.0, tslib@^2.1.0, tslib@^2.2.0:
tslib@^2.0.0, tslib@^2.1.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
@@ -3832,11 +3852,6 @@ which-module@^2.0.0:
resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which-pm-runs@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz"
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
which@^1.2.9, which@^1.3.0, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -3858,17 +3873,17 @@ widest-line@^2.0.0:
dependencies:
string-width "^2.1.1"
windows-native-registry@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/windows-native-registry/-/windows-native-registry-3.1.0.tgz#909ef3254519fdec57d2f149ac59a2c9dc84419a"
integrity sha512-WrDysn2V7dH+EYE6cS2RF+7r2P+M0pOYWtU8iBrjV2HaGkCLlUdGUWzOdzT0JPdWwz0BkVu3IOae2xmBajQqBA==
windows-native-registry@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/windows-native-registry/-/windows-native-registry-3.2.1.tgz#8a60feb456398992677a1f8cad1eecb6b4f0d5f4"
integrity sha512-LUHzDUyabwcKNJNlIBVAmg/gdvzOWbuPPyeGmMGSYMAh+m4ZqmafrtyRuyWaviJ1lTzGT/MmhTVb5t8IO3Nlkg==
dependencies:
node-addon-api "^3.1.0"
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==
windows-process-tree@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.3.3.tgz#7c178815f02bf4cfbcac1f93b2f3a3cc10bc9245"
integrity sha512-rkiAMP0AS27xikFyn7i4gPbOK16UdjY8X/C6eo37CnfNLqTvK2eEaT+Dh0e5xnvmlsi0lEKd60O+4ajzfDkq7A==
dependencies:
nan "^2.13.2"

View File

@@ -1,28 +0,0 @@
os: Visual Studio 2017
platform:
- x64
environment:
nodejs_version: "14"
version: "{build}"
install:
- ps: Install-Product node $env:nodejs_version $env:platform
- yarn
- node scripts/build-native.js
build_script:
- yarn run build
- node scripts/prepackage-plugins.js
- node scripts/build-windows.js
artifacts:
- path: 'dist\*.exe'
cache:
- node_modules
- "*\\node_modules"
- "%USERPROFILE%\\.electron"
- "%LOCALAPPDATA%\\Yarn"

View File

@@ -35,20 +35,23 @@ extraResources:
asarUnpack:
- 'dist/*.map'
publish:
- provider: s3
bucket: tabby-updates
path: 'updates-${channel}-${env.ARCH}'
- provider: github
win:
icon: "./build/windows/icon.ico"
artifactName: tabby-${version}-portable.${ext}
artifactName: tabby-${version}-portable-${env.ARCH}.${ext}
rfc3161TimeStampServer: http://timestamp.sectigo.com
nsis:
oneClick: false
artifactName: tabby-${version}-setup.${ext}
artifactName: tabby-${version}-setup-${env.ARCH}.${ext}
installerIcon: "./build/windows/icon.ico"
allowToChangeInstallationDirectory: true
shortcutName: Tabby Terminal
mac:
category: public.app-category.video
category: public.app-category.utilities
icon: "./build/mac/icon.icns"
artifactName: tabby-${version}-macos-${env.ARCH}.${ext}
hardenedRuntime: true
@@ -68,7 +71,7 @@ mac:
linux:
category: "Utility;TerminalEmulator;System"
icon: "./build/icons"
artifactName: tabby-${version}-linux.${ext}
artifactName: tabby-${version}-linux-${env.ARCH}.${ext}
executableArgs:
- "--no-sandbox"
desktop:

Binary file not shown.

File diff suppressed because it is too large Load Diff

2272
locale/bg-BG.po Normal file

File diff suppressed because it is too large Load Diff

2272
locale/da-DK.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5
locale/en-US.po Normal file
View File

@@ -0,0 +1,5 @@
msgid "id.port-forwarding.dynamic"
msgstr "Dynamic"
msgid "id.tab-width.dynamic"
msgstr "Dynamic"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2273
locale/it-IT.po Normal file

File diff suppressed because it is too large Load Diff

2273
locale/ja-JP.po Normal file

File diff suppressed because it is too large Load Diff

2272
locale/ko-KR.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2273
locale/pt-BR.po Normal file

File diff suppressed because it is too large Load Diff

2272
locale/pt-PT.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2273
locale/uk-UA.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +1,23 @@
{
"devDependencies": {
"@angular/animations": "^12.0.0",
"@angular/cdk": "^12.2.9",
"@angular/common": "^12.0.0",
"@angular/compiler": "^12.0.0",
"@angular/core": "^12.0.0",
"@angular/forms": "^12.0.0",
"@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.0.0",
"@biesbjerg/ngx-translate-extract": "^7.0.4",
"@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
"@fortawesome/fontawesome-free": "^6.0.0-beta3",
"@fortawesome/fontawesome-free": "^6.1.1",
"@ng-bootstrap/ng-bootstrap": "^10.0.0",
"@sentry/cli": "^1.71.0",
"@sentry/cli": "^1.74.3",
"@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/fs-extra": "^9.0.13",
"@types/js-yaml": "^4.0.5",
"@types/node": "16.0.1",
"@types/sortablejs": "^1.10.7",
@@ -25,32 +25,34 @@
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"apply-loader": "2.0.0",
"axios": "^0.21.2",
"axios": "^0.27.2",
"browserify-sign": "^4.2.1",
"clone-deep": "^4.0.1",
"compare-versions": "^4",
"core-js": "^3.18.2",
"core-js": "^3.21.1",
"core-js-pure": "^3.21.1",
"cross-env": "7.0.3",
"css-loader": "^6.5.1",
"css-loader": "^6.7.1",
"deep-equal": "2.0.5",
"electron": "16.0.8",
"electron-builder": "^22.14.5",
"electron": "18.2.4",
"electron-builder": "^23.0.9",
"electron-download": "^4.1.1",
"electron-installer-snap": "^5.1.0",
"electron-notarize": "^1.1.1",
"electron-notarize": "^1.2.1",
"electron-rebuild": "^3.2.7",
"eslint": "^7.32.0",
"file-loader": "^6.2.0",
"graceful-fs": "^4.2.9",
"html-loader": "2.1.2",
"gettext-extractor": "^3.5.4",
"graceful-fs": "^4.2.10",
"html-loader": "3.1.0",
"json-loader": "^0.5.7",
"lru-cache": "^6.0.0",
"macos-release": "^3.0.1",
"ngx-sortablejs": "^11.1.0",
"ngx-toastr": "^14.0.0",
"node-abi": "^3.2.0",
"node-abi": "^3.15.0",
"node-sass": "^7.0.1",
"npmlog": "6.0.0",
"npmlog": "6.0.2",
"npx": "^10.2.2",
"patch-package": "^6.4.7",
"po-gettext-loader": "^1.0.0",
@@ -61,28 +63,29 @@
"pug-loader": "^2.4.0",
"pug-static-loader": "2.0.0",
"raw-loader": "4.0.2",
"sass-loader": "^12.4.0",
"sass-loader": "^12.6.0",
"shell-quote": "^1.7.3",
"shelljs": "0.8.5",
"slugify": "^1.6.5",
"sortablejs": "^1.14.0",
"sortablejs": "^1.15.0",
"source-code-pro": "^2.38.0",
"source-map-loader": "^3.0.1",
"source-sans-pro": "3.6.0",
"ssh2": "^1.5.0",
"style-loader": "^3.2.1",
"ssh2": "^1.10.0",
"style-loader": "^3.3.1",
"svg-inline-loader": "^0.8.2",
"ts-loader": "^9.2.3",
"thenby": "^1.3.4",
"ts-loader": "^9.2.8",
"tslib": "^2.3.1",
"typedoc": "^0.22.10",
"typedoc": "^0.22.15",
"typescript": "^4.3.5",
"utils-decorators": "^1.10.4",
"val-loader": "4.0.0",
"webpack": "^5.67.0",
"webpack": "^5.72.1",
"webpack-bundle-analyzer": "^4.5.0",
"webpack-cli": "^4.9.2",
"yaml-loader": "0.6.0",
"zone.js": "^0.11.4"
"zone.js": "^0.11.5"
},
"resolutions": {
"*/pug": "^3",
@@ -99,7 +102,7 @@
"prod": "cross-env TABBY_DEV=1 electron app",
"docs": "node scripts/build-docs.js",
"lint": "eslint --ext ts */src */lib",
"postinstall": "patch-package && node ./scripts/install-deps.js",
"postinstall": "patch-package && node ./scripts/install-deps.js && node ./scripts/build-native.js",
"i18n:pull": "crowdin pull --skip-untranslated-strings",
"i18n:extract": "node scripts/i18n-extract.js",
"i18n:push": "crowdin push"

View File

@@ -4,9 +4,13 @@ const vars = require('./vars')
const isTag = (process.env.GITHUB_REF || '').startsWith('refs/tags/')
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
builder({
dir: true,
linux: ['deb', 'tar.gz', 'rpm', 'pacman'],
armv7l: process.env.ARCH === 'armv7l',
arm64: process.env.ARCH === 'arm64',
config: {
extraMetadata: {
version: vars.version,

View File

@@ -3,12 +3,18 @@ const rebuild = require('electron-rebuild').default
const path = require('path')
const vars = require('./vars')
if (process.platform === 'win32' || process.platform === 'linux') {
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
} else {
process.env.ARCH ??= process.arch
}
let lifecycles = []
for (let dir of ['app', 'tabby-core', 'tabby-local', 'tabby-ssh', 'tabby-terminal']) {
const build = rebuild({
buildPath: path.resolve(__dirname, '../' + dir),
electronVersion: vars.electronVersion,
arch: process.env.ARCH ?? process.arch,
arch: process.env.ARCH,
force: true,
})
build.catch(e => {

View File

@@ -5,9 +5,12 @@ const vars = require('./vars')
const isTag = (process.env.GITHUB_REF || process.env.BUILD_SOURCEBRANCH || '').startsWith('refs/tags/')
const isCI = !!process.env.GITHUB_REF
process.env.ARCH = process.env.ARCH || process.arch
builder({
dir: true,
win: ['nsis', 'zip'],
arm64: process.env.ARCH === 'arm64',
config: {
extraMetadata: {
version: vars.version,

View File

@@ -3,6 +3,9 @@ const sh = require('shelljs')
const fs = require('fs/promises')
const vars = require('./vars')
const log = require('npmlog')
const { GettextExtractor, JsExtractors, HtmlExtractors } = require('gettext-extractor')
let extractor = new GettextExtractor()
const tempOutput = 'locale/app.new.pot'
const pot = 'locale/app.pot'
@@ -11,17 +14,40 @@ const tempHtml = 'locale/tmp-html'
;(async () => {
sh.mkdir('-p', tempHtml)
for (const plugin of vars.builtinPlugins) {
log.info('extract-pug', plugin)
log.info('compile-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-ts')
extractor.createJsParser([
JsExtractors.callExpression('this.translate.instant', {
arguments: { text: 0 },
}),
JsExtractors.callExpression('translate.instant', {
arguments: { text: 0 },
}),
JsExtractors.callExpression('_', {
arguments: { text: 0 },
}),
]).parseFilesGlob('./tabby-*/src/**/*.ts')
log.info('extract-pug')
sh.exec(`node node_modules/.bin/ngx-translate-extract -i ${tempHtml} -f pot -s -o ${tempOutput}`, { fatal: true })
const options = {
attributes: {
context: 'translatecontext',
},
}
extractor.createHtmlParser([
HtmlExtractors.elementContent('translate, [translate=""]', options),
HtmlExtractors.elementAttribute('[translate*=" "]', 'translate', options),
]).parseFilesGlob(`${tempHtml}/**/*.html`)
extractor.savePotFile(tempOutput)
extractor.printStats()
sh.rm('-r', tempHtml)
sh.exec(`msgcat -s ${tempOutput} > ${pot}`, { fatal: true })
await fs.rename(tempOutput, pot)
})()

View File

@@ -9,18 +9,18 @@ sh.exec(`yarn patch-package`, { fatal: true })
log.info('deps', 'app')
sh.cd('app')
sh.exec(`yarn install --force`, { fatal: true })
sh.exec(`yarn install --force --network-timeout 1000000`, { fatal: true })
sh.cd('..')
sh.cd('web')
sh.exec(`yarn install --force`, { fatal: true })
sh.exec(`yarn install --force --network-timeout 1000000`, { fatal: true })
sh.exec(`yarn patch-package`, { fatal: true })
sh.cd('..')
vars.allPackages.forEach(plugin => {
log.info('deps', plugin)
sh.cd(plugin)
sh.exec(`yarn install --force`, { fatal: true })
sh.exec(`yarn install --force --network-timeout 1000000`, { fatal: true })
sh.cd('..')
})

View File

@@ -19,7 +19,6 @@ parts:
- libfontconfig-dev
override-build: |
yarn
./scripts/build-native.js
yarn run build
./scripts/build-linux.js
mkdir -p $SNAPCRAFT_PART_INSTALL/opt/tabby || true

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-core",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Tabby core",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -56,5 +56,9 @@ export abstract class ProfileProvider<P extends Profile> {
return null
}
intoQuickConnectString (profile: P): string|null {
return null
}
deleteProfile (profile: P): void { }
}

View File

@@ -5,6 +5,8 @@ export interface SelectorOption<T> {
result?: T
icon?: string
freeInputPattern?: string
freeInputEquivalent?: string
color?: string
weight?: number
callback?: (string?) => void
}

View File

@@ -4,6 +4,7 @@ import { NewTabParameters } from '../services/tabs.service'
export interface RecoveryToken {
[_: string]: any
type: string
tabIcon?: string|null
tabColor?: string|null
}

View File

@@ -23,6 +23,10 @@ export class ProfileCLIHandler extends CLIHandler {
this.handleOpenProfile(event.argv.profileName)
return true
}
if (op === 'recent') {
this.handleOpenRecentProfile(event.argv.profileNumber)
return true
}
return false
}
@@ -35,6 +39,15 @@ export class ProfileCLIHandler extends CLIHandler {
this.profiles.openNewTabForProfile(profile)
this.hostWindow.bringToFront()
}
private async handleOpenRecentProfile (profileNumber: number) {
const profiles = this.profiles.getRecentProfiles()
if (profileNumber >= profiles.length) {
return
}
this.profiles.openNewTabForProfile(profiles[profileNumber])
this.hostWindow.bringToFront()
}
}
@Injectable()

View File

@@ -26,7 +26,7 @@ title-bar(
[tab]='tab',
[active]='tab == app.activeTab',
@animateTab,
[@.disabled]='hasVerticalTabs()',
[@.disabled]='hasVerticalTabs() || !config.store.accessibility.animations',
(click)='app.selectTab(tab)',
[class.fully-draggable]='hostApp.platform != Platform.macOS',
[class.drag-region]='hostApp.platform == Platform.macOS && !(app.tabDragActive$|async)',

View File

@@ -25,8 +25,8 @@ import { AppService, FileTransfer, HostWindowService, PlatformService, ToolbarBu
animations: [
trigger('animateTab', [
state('in', style({
'flex-basis': '200px',
width: '200px',
'flex-basis': 'auto',
width: 'auto',
})),
transition(':enter', [
style({
@@ -34,14 +34,14 @@ import { AppService, FileTransfer, HostWindowService, PlatformService, ToolbarBu
width: '1px',
}),
animate('250ms ease-in-out', style({
'flex-basis': '200px',
width: '200px',
'flex-basis': 'auto',
width: 'auto',
})),
]),
transition(':leave', [
style({
'flex-basis': '200px',
width: '200px',
'flex-basis': 'auto',
width: 'auto',
}),
animate('250ms ease-in-out', style({
'flex-basis': '1px',
@@ -112,6 +112,12 @@ export class AppRootComponent {
if (hotkey === 'duplicate-tab') {
this.app.duplicateTab(this.app.activeTab)
}
if (hotkey === 'explode-tab' && this.app.activeTab instanceof SplitTabComponent) {
this.app.explodeTab(this.app.activeTab)
}
if (hotkey === 'combine-tabs' && this.app.activeTab instanceof SplitTabComponent) {
this.app.combineTabsInto(this.app.activeTab)
}
}
if (hotkey === 'reopen-tab') {
this.app.reopenLastTab()
@@ -215,7 +221,7 @@ export class AppRootComponent {
}
@HostBinding('class.vibrant') get isVibrant () {
return this.config.store.appearance.vibrancy
return this.config.store?.appearance.vibrancy
}
private getToolbarButtons (aboveZero: boolean): ToolbarButton[] {

View File

@@ -51,6 +51,13 @@ export abstract class BaseTabComponent extends BaseComponent {
set color (value: string|null) { this._color = value }
private _color: string|null = null
/**
* icon override for the tab's header
*/
get icon (): string|null { return this._icon }
set icon (value: string|null) { this._icon = value }
private _icon: string|null = null
hasFocus = false
/**

View File

@@ -0,0 +1,9 @@
i.icon(
class='fa-fw {{icon}}',
[style.color]='color',
*ngIf='!isHTML'
)
.icon(
[fastHtmlBind]='icon',
*ngIf='isHTML'
)

View File

@@ -0,0 +1,15 @@
:host {
display: flex;
align-items: center;
max-width: 1.25rem;
}
::ng-deep img {
max-width: 100%;
max-height: 100%;
}
::ng-deep svg {
width: 100%;
height: 100%;
}

View File

@@ -0,0 +1,18 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { Component, Input } from '@angular/core'
import { BaseComponent } from './base.component'
/** @hidden */
@Component({
selector: 'profile-icon',
template: require('./profileIcon.component.pug'),
styles: [require('./profileIcon.component.scss')],
})
export class ProfileIconComponent extends BaseComponent {
@Input() icon?: string
@Input() color?: string
get isHTML (): boolean {
return this.icon?.startsWith('<') ?? false
}
}

View File

@@ -17,16 +17,18 @@
(click)='selectOption(option)',
[class.active]='selectedIndex == i'
)
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)'
profile-icon(
[icon]='option.icon',
[color]='option.color'
)
.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
.description.no-wrap.text-muted(
*ngIf='option.description !== getOptionText(option)'
) {{option.description}}
.ml-auto
.no-wrap.badge.badge-secondary.text-muted.ml-2(*ngIf='selectedIndex == i && canEditSelected()')
span Backspace
i.fas.fa-pencil.ml-1
.no-wrap.badge.badge-secondary.text-muted.ml-2(*ngIf='selectedIndex == i')
span Enter
i.fas.fa-arrow-right.ml-1

View File

@@ -1,3 +1,4 @@
import { firstBy } from 'thenby'
import { Component, Input, HostListener, ViewChildren, QueryList, ElementRef } from '@angular/core' // eslint-disable-line @typescript-eslint/no-unused-vars
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { SelectorOption } from '../api/selector'
@@ -26,7 +27,7 @@ export class SelectorModalComponent<T> {
this.hasGroups = this.options.some(x => x.group)
}
@HostListener('keyup', ['$event']) onKeyUp (event: KeyboardEvent): void {
@HostListener('keydown', ['$event']) onKeyUp (event: KeyboardEvent): void {
if (event.key === 'ArrowUp') {
this.selectedIndex--
event.preventDefault()
@@ -41,6 +42,10 @@ export class SelectorModalComponent<T> {
if (event.key === 'Escape') {
this.close()
}
if (event.key === 'Backspace' && this.canEditSelected()) {
this.filter = this.filteredOptions[this.selectedIndex].freeInputEquivalent!
this.onFilterChange()
}
this.selectedIndex = (this.selectedIndex + this.filteredOptions.length) % this.filteredOptions.length
Array.from(this.itemChildren)[this.selectedIndex]?.nativeElement.scrollIntoView({
@@ -52,8 +57,11 @@ export class SelectorModalComponent<T> {
onFilterChange (): void {
const f = this.filter.trim().toLowerCase()
if (!f) {
this.filteredOptions = this.options.slice()
.sort((a, b) => a.group?.localeCompare(b.group ?? '') ?? 0)
this.filteredOptions = this.options.slice().sort(
firstBy<SelectorOption<T>, number>(x => x.weight ?? 0)
.thenBy<SelectorOption<T>, string>(x => x.group ?? '')
.thenBy<SelectorOption<T>, string>(x => x.name)
)
.filter(x => !x.freeInputPattern)
} else {
const terms = f.split(' ')
@@ -81,11 +89,11 @@ export class SelectorModalComponent<T> {
this.modalInstance.close(option.result)
}
canEditSelected (): boolean {
return !this.filter && !!this.filteredOptions[this.selectedIndex].freeInputEquivalent && this.options.some(x => x.freeInputPattern)
}
close (): void {
this.modalInstance.dismiss()
}
iconIsSVG (icon?: string): boolean {
return icon?.startsWith('<') ?? false
}
}

View File

@@ -5,9 +5,11 @@ import { TabRecoveryProvider, RecoveryToken } from '../api/tabRecovery'
import { TabsService, NewTabParameters } from '../services/tabs.service'
import { HotkeysService } from '../services/hotkeys.service'
import { TabRecoveryService } from '../services/tabRecovery.service'
import { ConfigService } from '../api'
export type SplitOrientation = 'v' | 'h'
export type SplitDirection = 'r' | 't' | 'b' | 'l'
export type ResizeDirection = 'v' | 'h' | 'dv' | 'dh'
/**
* Describes a horizontal or vertical split row or column
@@ -82,6 +84,18 @@ export class SplitContainer {
this.ratios = this.ratios.map(x => x / s)
}
/**
* Makes all tabs have the same size
*/
equalize (): void {
for (const child of this.children) {
if (child instanceof SplitContainer) {
child.equalize()
}
}
this.ratios.fill(1 / this.ratios.length)
}
/**
* Gets the left/top side offset for the given element index (between 0 and 1)
*/
@@ -158,7 +172,6 @@ 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)'
@@ -198,6 +211,11 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
/** @hidden */
_allFocusMode = false
/**
* Disables display of dynamic window/tab title provided by the shell
*/
disableDynamicTitle = false
/** @hidden */
private focusedTab: BaseTabComponent|null = null
private maximizedTab: BaseTabComponent|null = null
@@ -239,6 +257,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
private hotkeys: HotkeysService,
private tabsService: TabsService,
private tabRecovery: TabRecoveryService,
private config: ConfigService,
) {
super()
this.root = new SplitContainer()
@@ -292,6 +311,33 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
case 'pane-nav-next':
this.navigateLinear(1)
break
case 'pane-nav-1':
this.navigateSpecific(0)
break
case 'pane-nav-2':
this.navigateSpecific(1)
break
case 'pane-nav-3':
this.navigateSpecific(2)
break
case 'pane-nav-4':
this.navigateSpecific(3)
break
case 'pane-nav-5':
this.navigateSpecific(4)
break
case 'pane-nav-6':
this.navigateSpecific(5)
break
case 'pane-nav-7':
this.navigateSpecific(6)
break
case 'pane-nav-8':
this.navigateSpecific(7)
break
case 'pane-nav-9':
this.navigateSpecific(8)
break
case 'pane-maximize':
if (this.maximizedTab) {
this.maximize(null)
@@ -302,6 +348,18 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
case 'close-pane':
this.removeTab(this.focusedTab)
break
case 'pane-increase-vertical':
this.resizePane('v')
break
case 'pane-decrease-vertical':
this.resizePane('dv')
break
case 'pane-increase-horizontal':
this.resizePane('h')
break
case 'pane-decrease-horizontal':
this.resizePane('dh')
break
}
})
}
@@ -450,6 +508,8 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
this.attachTabView(tab)
this.onAfterTabAdded(tab)
}
this.root.normalize()
}
removeTab (tab: BaseTabComponent): void {
@@ -491,6 +551,75 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
this.updateTitle()
}
/**
* Changes the size of the focused pane in the given direction
*/
resizePane (direction: ResizeDirection): void {
const resizeStep = this.config.store.terminal.paneResizeStep
// The direction of the resize pane, vertically or horizontally
let directionvh: SplitOrientation = 'h'
const isDecreasing: boolean = direction === 'dv' || direction === 'dh'
if (direction === 'dh') {
directionvh = 'h'
}
if (direction === 'dv') {
directionvh = 'v'
}
if (direction === 'h') {
directionvh = 'h'
}
if (direction === 'v') {
directionvh = 'v'
}
if (!this.focusedTab) {
console.debug('No currently focused tab')
return
}
let currentContainer: BaseTabComponent | SplitContainer = this.focusedTab
let child: BaseTabComponent | SplitContainer | null = this.focusedTab
let curSplitOrientation: SplitOrientation | null = null
// Find the first split that is in the orientations that the user chooses to change
while (curSplitOrientation !== directionvh) {
const parentContainer = this.getParentOf(currentContainer)
if (!parentContainer) {
return
}
child = currentContainer
currentContainer = parentContainer
if (currentContainer instanceof SplitContainer) {
curSplitOrientation = currentContainer.orientation
}
}
if (!(currentContainer instanceof SplitContainer)) {
return
}
// Determine which index in the ratios refers to the child that will be modified
const currentChildIndex = currentContainer.children.indexOf(child)
let updatedRatio = 0
if (isDecreasing) {
updatedRatio = currentContainer.ratios[currentChildIndex] - resizeStep
if (updatedRatio < 0) {
return
}
} else {
updatedRatio = currentContainer.ratios[currentChildIndex] + resizeStep
if (updatedRatio > 1) {
return
}
}
currentContainer.ratios[currentChildIndex] = updatedRatio
this.layout()
}
/**
* Moves focus in the given direction
*/
@@ -542,6 +671,15 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
this.focus(target)
}
navigateSpecific (target: number): void {
const all = this.getAllTabs()
if (target >= all.length) {
return
}
this.focus(all[target])
}
async splitTab (tab: BaseTabComponent, dir: SplitDirection): Promise<BaseTabComponent|null> {
const newTab = await this.tabsService.duplicate(tab)
if (newTab) {
@@ -604,10 +742,6 @@ 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()) {
@@ -629,6 +763,16 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
super.clearActivity()
}
get icon (): string|null {
return this.getFocusedTab()?.icon ?? null
}
set icon (icon: string|null) {
for (const t of this.getAllTabs()) {
t.icon = icon
}
}
get color (): string|null {
return this.getFocusedTab()?.color ?? null
}
@@ -639,14 +783,25 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
}
}
equalize (): void {
this.root.normalize()
this.root.equalize()
}
private updateTitle (): void {
this.setTitle(this.getAllTabs().map(x => x.title).join(' | '))
if (this.disableDynamicTitle) {
return
}
this.setTitle([...new Set(this.getAllTabs().map(x => x.title))].join(' | '))
}
private attachTabView (tab: BaseTabComponent) {
const ref = tab.insertIntoContainer(this.viewContainer)
this.viewRefs.set(tab, ref)
tab.addEventListenerUntilDestroyed(ref.rootNodes[0], 'click', () => this.focus(tab))
if (this.config.store.terminal.focusFollowsMouse) {
tab.addEventListenerUntilDestroyed(ref.rootNodes[0], 'mousemove', () => this.focus(tab))
}
tab.subscribeUntilDestroyed(tab.titleChange$, () => this.updateTitle())
tab.subscribeUntilDestroyed(tab.activity$, a => a ? this.displayActivity() : this.clearActivity())

View File

@@ -3,7 +3,7 @@ import { Component, Input, HostBinding, ElementRef, Output, EventEmitter } from
import { AppService } from '../services/app.service'
import { BaseTabComponent } from './baseTab.component'
import { SelfPositioningComponent } from './selfPositioning.component'
import { SplitDropZoneInfo } from './splitTab.component'
import { SplitDropZoneInfo, SplitTabComponent } from './splitTab.component'
/** @hidden */
@Component({
@@ -22,31 +22,31 @@ import { SplitDropZoneInfo } from './splitTab.component'
})
export class SplitTabDropZoneComponent extends SelfPositioningComponent {
@Input() dropZone: SplitDropZoneInfo
@Input() parent: BaseTabComponent
@Input() enabled = false
@Input() parent: SplitTabComponent
@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 && this.canActivateFor(tab))
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
canActivateFor (tab: BaseTabComponent): boolean {
const allTabs = this.parent.getAllTabs()
return !(
tab === this.parent ||
allTabs.length === 1 && allTabs.includes(tab) ||
this.dropZone.type === 'relative' && tab === this.dropZone.relativeTo ||
this.dropZone.type === 'absolute' && tab === this.dropZone.container.children[this.dropZone.position]
)
}
ngOnChanges () {

View File

@@ -13,7 +13,8 @@
div {
background: rgba(0, 0, 0, .7);
padding: 20px 30px;
font-size: 18px;
margin: 20px;
font-size: 16px;
color: #fff;
display: flex;
align-items: center;

View File

@@ -20,4 +20,7 @@ footer.d-flex.align-items-center
i.fas.fa-bug
span(translate) Report a problem
.form-control-static.selectable.no-drag {{ 'Version: {version}'|translate:{ version: this.homeBase.appVersion } }}
.form-control-static.selectable.no-drag(
translate='Version: {version}',
[translateParams]='{ version: this.homeBase.appVersion }'
)

View File

@@ -5,6 +5,12 @@
.index(*ngIf='!config.store.terminal.hideTabIndex && hostApp.platform === Platform.macOS', cdkDragHandle) {{index + 1}}
.index(*ngIf='!config.store.terminal.hideTabIndex && hostApp.platform !== Platform.macOS') {{index + 1}}
profile-icon(
*ngIf='config.store.terminal.showTabProfileIcon && tab.icon',
[icon]='tab.icon',
[color]='tab.color'
)
.name(
[title]='tab.customTitle || tab.title',
[class.no-hover]='config.store.terminal.hideCloseButton'

View File

@@ -40,6 +40,11 @@ $tabs-height: 38px;
margin-top: 1px;
}
profile-icon {
font-size: 13px;
margin: 1px 4px 0 0;
}
.name {
flex: auto;
margin-top: 1px;

View File

@@ -4,8 +4,10 @@
.ml-auto(ngbDropdown, placement='bottom-right')
button.btn.btn-link(ngbDropdownToggle, (click)='$event.stopPropagation()')
span(
*ngIf='rememberFor'
) {{ 'Remember for {time}'|translate:{time: getRememberForDisplay(rememberFor)} }}
*ngIf='rememberFor',
translate='Remember for {time}',
[translateParams]='{time: getRememberForDisplay(rememberFor)}'
)
span(*ngIf='!rememberFor', translate) Do not remember
div(ngbDropdownMenu)
button.dropdown-item(

View File

@@ -13,8 +13,8 @@
option([ngValue]='null', translate) Automatic
option(
[value]='lang.code',
*ngFor='let lang of locale.allLanguages'
) {{lang.name|translate}}
*ngFor='let lang of allLanguages'
) {{lang.name}}
.form-line
.header

View File

@@ -13,6 +13,7 @@ import { LocaleService } from '../services/locale.service'
})
export class WelcomeTabComponent extends BaseTabComponent {
enableGlobalHotkey = true
allLanguages = LocaleService.allLanguages
constructor (
public config: ConfigService,

View File

@@ -4,7 +4,7 @@ hotkeys:
close-tab:
- 'Ctrl-Shift-W'
reopen-tab:
- 'Ctrl-Shift-T'
- 'Ctrl-Shift-Z'
toggle-last-tab: []
rename-tab:
- 'Ctrl-Shift-R'
@@ -21,6 +21,10 @@ hotkeys:
rearrange-panes:
- 'Ctrl-Shift'
duplicate-tab: []
explode-tab:
- 'Ctrl-Shift-.'
combine-tabs:
- 'Ctrl-Shift-,'
tab-1:
- 'Alt-1'
tab-2:
@@ -52,7 +56,7 @@ hotkeys:
tab-19: []
tab-20: []
split-right:
- 'Ctrl-Shift-E'
- 'Ctrl-Shift-S'
split-bottom:
- 'Ctrl-Shift-D'
split-left: []
@@ -69,10 +73,23 @@ hotkeys:
- 'Ctrl-Alt-['
pane-nav-next:
- 'Ctrl-Alt-]'
pane-nav-1: []
pane-nav-2: []
pane-nav-3: []
pane-nav-4: []
pane-nav-5: []
pane-nav-6: []
pane-nav-7: []
pane-nav-8: []
pane-nav-9: []
pane-maximize:
- 'Ctrl-Alt-Enter'
pane-increase-vertical: []
pane-decrease-vertical: []
pane-increase-horizontal: []
pane-decrease-horizontal: []
close-pane: []
switch-profile:
- 'Ctrl-Alt-T'
profile-selector:
- 'Ctrl-Shift-T'
- 'Ctrl-Shift-E'

View File

@@ -39,6 +39,10 @@ hotkeys:
tab-10:
- '⌘-0'
duplicate-tab: []
explode-tab:
- '⌘-Shift-.'
combine-tabs:
- '⌘-Shift-,'
tab-11: []
tab-12: []
tab-13: []
@@ -67,10 +71,23 @@ hotkeys:
- '⌘-⌥-['
pane-nav-next:
- '⌘-⌥-]'
pane-nav-1: []
pane-nav-2: []
pane-nav-3: []
pane-nav-4: []
pane-nav-5: []
pane-nav-6: []
pane-nav-7: []
pane-nav-8: []
pane-nav-9: []
pane-maximize:
- '⌘-⌥-Enter'
close-pane:
- '⌘-Shift-W'
pane-increase-vertical: []
pane-decrease-vertical: []
pane-increase-horizontal: []
pane-decrease-horizontal: []
profile-selector:
- '⌘-E'
switch-profile:

View File

@@ -5,7 +5,7 @@ hotkeys:
close-tab:
- 'Ctrl-Shift-W'
reopen-tab:
- 'Ctrl-Shift-T'
- 'Ctrl-Shift-Z'
toggle-last-tab: []
rename-tab:
- 'Ctrl-Shift-R'
@@ -22,6 +22,10 @@ hotkeys:
rearrange-panes:
- 'Ctrl-Shift'
duplicate-tab: []
explode-tab:
- 'Ctrl-Shift-.'
combine-tabs:
- 'Ctrl-Shift-,'
tab-1:
- 'Alt-1'
tab-2:
@@ -53,7 +57,7 @@ hotkeys:
tab-19: []
tab-20: []
split-right:
- 'Ctrl-Shift-E'
- 'Ctrl-Shift-S'
split-bottom:
- 'Ctrl-Shift-D'
split-left: []
@@ -70,10 +74,23 @@ hotkeys:
- 'Ctrl-Alt-['
pane-nav-next:
- 'Ctrl-Alt-]'
pane-nav-1: []
pane-nav-2: []
pane-nav-3: []
pane-nav-4: []
pane-nav-5: []
pane-nav-6: []
pane-nav-7: []
pane-nav-8: []
pane-nav-9: []
pane-maximize:
- 'Ctrl-Alt-Enter'
close-pane: []
pane-increase-vertical: []
pane-decrease-vertical: []
pane-increase-horizontal: []
pane-decrease-horizontal: []
switch-profile:
- 'Ctrl-Alt-T'
profile-selector:
- 'Ctrl-Shift-T'
- 'Ctrl-Shift-E'

View File

@@ -1,3 +1,5 @@
accessibility:
animations: true
appearance:
dock: off
dockScreen: current
@@ -17,6 +19,8 @@ appearance:
terminal:
showBuiltinProfiles: true
showRecentProfiles: 3
paneResizeStep: 0.1
focusFollowsMouse: false
hotkeys:
profile:
__nonStructural: true
@@ -38,4 +42,5 @@ enableExperimentalFeatures: false
pluginBlacklist: []
hacks:
disableGPU: false
disableVibrancyWhileDragging: false
language: null

View File

@@ -56,6 +56,14 @@ export class AppHotkeyProvider extends HotkeyProvider {
id: 'duplicate-tab',
name: this.translate.instant('Duplicate tab'),
},
{
id: 'explode-tab',
name: this.translate.instant('Turn current tab\'s panes into separate tabs'),
},
{
id: 'combine-tabs',
name: this.translate.instant('Combine all tabs into the current tab'),
},
{
id: 'tab-1',
name: this.translate.instant('Tab {number}', { number: 1 }),
@@ -180,6 +188,42 @@ export class AppHotkeyProvider extends HotkeyProvider {
id: 'pane-nav-next',
name: this.translate.instant('Focus next pane'),
},
{
id: 'pane-nav-1',
name: this.translate.instant('Focus pane {number}', { number: 1 }),
},
{
id: 'pane-nav-2',
name: this.translate.instant('Focus pane {number}', { number: 2 }),
},
{
id: 'pane-nav-3',
name: this.translate.instant('Focus pane {number}', { number: 3 }),
},
{
id: 'pane-nav-4',
name: this.translate.instant('Focus pane {number}', { number: 4 }),
},
{
id: 'pane-nav-5',
name: this.translate.instant('Focus pane {number}', { number: 5 }),
},
{
id: 'pane-nav-6',
name: this.translate.instant('Focus pane {number}', { number: 6 }),
},
{
id: 'pane-nav-7',
name: this.translate.instant('Focus pane {number}', { number: 7 }),
},
{
id: 'pane-nav-8',
name: this.translate.instant('Focus pane {number}', { number: 8 }),
},
{
id: 'pane-nav-9',
name: this.translate.instant('Focus pane {number}', { number: 9 }),
},
{
id: 'switch-profile',
name: this.translate.instant('Switch profile in the active pane'),
@@ -188,6 +232,22 @@ export class AppHotkeyProvider extends HotkeyProvider {
id: 'close-pane',
name: this.translate.instant('Close focused pane'),
},
{
id: 'pane-increase-vertical',
name: this.translate.instant('Increase vertical split size'),
},
{
id: 'pane-decrease-vertical',
name: this.translate.instant('Decrease vertical split size'),
},
{
id: 'pane-increase-horizontal',
name: this.translate.instant('Increase horizontal split size'),
},
{
id: 'pane-decrease-horizontal',
name: this.translate.instant('Decrease horizontal split size'),
},
]
constructor (

File diff suppressed because one or more lines are too long

View File

@@ -29,6 +29,7 @@ import { SplitTabPaneLabelComponent } from './components/splitTabPaneLabel.compo
import { UnlockVaultModalComponent } from './components/unlockVaultModal.component'
import { WelcomeTabComponent } from './components/welcomeTab.component'
import { TransfersMenuComponent } from './components/transfersMenu.component'
import { ProfileIconComponent } from './components/profileIcon.component'
import { AutofocusDirective } from './directives/autofocus.directive'
import { AlwaysVisibleTypeaheadDirective } from './directives/alwaysVisibleTypeahead.directive'
@@ -82,7 +83,7 @@ const PROVIDERS = [
},
{
provide: MESSAGE_FORMAT_CONFIG,
useValue: LocaleService.allLocales,
useValue: LocaleService.allLanguages.map(x => x.code),
},
{
provide: TranslateService,
@@ -128,6 +129,7 @@ const PROVIDERS = [
TransfersMenuComponent,
DropZoneDirective,
CdkAutoDropGroup,
ProfileIconComponent,
],
entryComponents: [
PromptModalComponent,
@@ -150,6 +152,7 @@ const PROVIDERS = [
DragDropModule,
TranslateModule,
CdkAutoDropGroup,
ProfileIconComponent,
],
})
export default class AppModule { // eslint-disable-line @typescript-eslint/no-extraneous-class

View File

@@ -1,7 +1,7 @@
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import slugify from 'slugify'
import { v4 as uuidv4 } from 'uuid'
import { Injectable } from '@angular/core'
import { TranslateService } from '@ngx-translate/core'
import { ConfigService, NewTabParameters, PartialProfile, Profile, ProfileProvider } from './api'
import { SplitTabComponent, SplitTabRecoveryProvider } from './components/splitTab.component'
@@ -16,7 +16,7 @@ export interface SplitLayoutProfile extends Profile {
@Injectable({ providedIn: 'root' })
export class SplitLayoutProfilesService extends ProfileProvider<SplitLayoutProfile> {
id = 'split-layout'
name = this.translate.instant('Saved layout')
name = _('Saved layout')
configDefaults = {
options: {
recoveryToken: null,
@@ -26,7 +26,6 @@ export class SplitLayoutProfilesService extends ProfileProvider<SplitLayoutProfi
constructor (
private splitTabRecoveryProvider: SplitTabRecoveryProvider,
private config: ConfigService,
private translate: TranslateService,
) {
super()
}
@@ -39,7 +38,7 @@ export class SplitLayoutProfilesService extends ProfileProvider<SplitLayoutProfi
return this.splitTabRecoveryProvider.recover(profile.options.recoveryToken)
}
getDescription (_: SplitLayoutProfile): string {
getDescription (): string {
return ''
}

View File

@@ -144,7 +144,7 @@ export class AppService {
}
removeTab (tab: BaseTabComponent): void {
const newIndex = Math.max(0, this.tabs.indexOf(tab) - 1)
const newIndex = Math.min(this.tabs.length - 2, this.tabs.indexOf(tab))
this.tabs = this.tabs.filter((x) => x !== tab)
if (tab === this._activeTab) {
this.selectTab(this.tabs[newIndex])
@@ -399,4 +399,40 @@ export class AppService {
showSelector <T> (name: string, options: SelectorOption<T>[]): Promise<T> {
return this.selector.show(name, options)
}
explodeTab (tab: SplitTabComponent): SplitTabComponent[] {
const result: SplitTabComponent[] = []
for (const child of tab.getAllTabs().slice(1)) {
tab.removeTab(child)
result.push(this.wrapAndAddTab(child))
}
return result
}
combineTabsInto (into: SplitTabComponent): void {
this.explodeTab(into)
let allChildren: BaseTabComponent[] = []
for (const tab of this.tabs) {
if (into === tab) {
continue
}
let children = [tab]
if (tab instanceof SplitTabComponent) {
children = tab.getAllTabs()
}
allChildren = allChildren.concat(children)
}
let x = 1
let previous: BaseTabComponent|null = null
const stride = Math.ceil(Math.sqrt(allChildren.length + 1))
for (const child of allChildren) {
into.add(child, x ? previous : null, x ? 'r' : 'b')
previous = child
x = (x + 1) % stride
}
into.equalize()
}
}

View File

@@ -35,6 +35,10 @@ export class HomeBaseService {
this.platform.openExternal('https://twitter.com/eugeeeeny')
}
openTranslations (): void {
this.platform.openExternal('https://translate.tabby.sh/project/tabby')
}
reportBug (): void {
let body = `Version: ${this.appVersion}\n`
body += `Platform: ${this.hostApp.platform} ${process.arch} ${this.platform.getOSRelease()}\n`

View File

@@ -3,12 +3,19 @@ import { registerLocaleData } from '@angular/common'
import { TranslateService } from '@ngx-translate/core'
import localeEN from '@angular/common/locales/en'
import localeBG from '@angular/common/locales/bg'
import localeDA from '@angular/common/locales/da'
import localeDE from '@angular/common/locales/de'
import localeES from '@angular/common/locales/es'
import localeFR from '@angular/common/locales/fr'
import localeHR from '@angular/common/locales/hr'
import localeIT from '@angular/common/locales/it'
import localeJA from '@angular/common/locales/ja'
import localeKO from '@angular/common/locales/ko'
import localePL from '@angular/common/locales/pl'
import localePT from '@angular/common/locales/pt'
import localeRU from '@angular/common/locales/ru'
import localeUK from '@angular/common/locales/uk'
import localeZH from '@angular/common/locales/zh'
import { Observable, Subject } from 'rxjs'
import { distinctUntilChanged } from 'rxjs/operators'
@@ -16,20 +23,45 @@ import { ConfigService } from './config.service'
import { LogService, Logger } from './log.service'
registerLocaleData(localeEN)
registerLocaleData(localeBG)
registerLocaleData(localeDA)
registerLocaleData(localeDE)
registerLocaleData(localeES)
registerLocaleData(localeFR)
registerLocaleData(localeHR)
registerLocaleData(localeIT)
registerLocaleData(localeJA)
registerLocaleData(localeKO)
registerLocaleData(localePL)
registerLocaleData(localePT)
registerLocaleData(localeRU)
registerLocaleData(localeUK)
registerLocaleData(localeZH)
function flattenMessageFormatTranslation (po: any) {
const translation = {}
po = po.translations['']
for (const k of Object.keys(po)) {
translation[k] = po[k].msgstr[0] || k
}
return translation
}
@Injectable({ providedIn: 'root' })
export class TranslateServiceWrapper extends TranslateService {
private _defaultTranslation: Record<string, string>|null
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
getParsedResult (translations: any, key: any, interpolateParams?: any): any {
this.translations[this.defaultLang][key] ??= this.compiler.compile(key, this.defaultLang)
return super.getParsedResult(translations, key, interpolateParams)
if (!this._defaultTranslation) {
const po = require(`../../../locale/en-US.po`)
this._defaultTranslation = flattenMessageFormatTranslation(po)
}
this.translations[this.defaultLang][key] ??= this.compiler.compile(
this._defaultTranslation[key] || key,
this.defaultLang
)
return super.getParsedResult(translations, key, interpolateParams ?? {})
}
}
@@ -37,20 +69,77 @@ export class TranslateServiceWrapper extends TranslateService {
export class LocaleService {
private logger: Logger
static readonly allLocales = [
'en-US',
'de-DE',
'es-ES',
'fr-FR',
'hr-HR',
'pl-PL',
'ru-RU',
'zh-CN',
'zh-TW',
static allLanguages = [
{
code: 'da-DK',
name: 'Dansk',
},
{
code: 'de-DE',
name: 'Deutsch',
},
{
code: 'en-US',
name: 'English',
},
{
code: 'es-ES',
name: 'Español',
},
{
code: 'fr-FR',
name: 'Français',
},
{
code: 'hr-HR',
name: 'Hrvatski',
},
{
code: 'it-IT',
name: 'Italiano',
},
{
code: 'pl-PL',
name: 'Polski',
},
{
code: 'pt-PT',
name: 'Português',
},
{
code: 'pt-BR',
name: 'Português do Brasil',
},
{
code: 'bg-BG',
name: 'Български',
},
{
code: 'ru-RU',
name: 'Русский',
},
{
code: 'uk-UA',
name: 'Українська',
},
{
code: 'ja-JP',
name: '日本語',
},
{
code: 'ko-KR',
name: '한국어',
},
{
code: 'zh-CN',
name: '中文(简体)',
},
{
code: 'zh-TW',
name: '中文 (繁體)',
},
]
readonly allLanguages: { code: string, name: string }[]
get localeChanged$ (): Observable<string> {
return this.localeChanged.pipe(distinctUntilChanged())
}
@@ -70,54 +159,13 @@ export class LocaleService {
config.ready$.subscribe(() => {
this.refresh()
})
this.allLanguages = [
{
code: 'en-US',
name: translate.instant('English'),
},
{
code: 'zh-CN',
name: translate.instant('Chinese (simplified)'),
},
{
code: 'zh-TW',
name: translate.instant('Chinese (traditional)'),
},
{
code: 'hr-HR',
name: translate.instant('Croatian'),
},
{
code: 'de-DE',
name: translate.instant('German'),
},
{
code: 'fr-FR',
name: translate.instant('French'),
},
{
code: 'pl-PL',
name: translate.instant('Polish'),
},
{
code: 'ru-RU',
name: translate.instant('Russian'),
},
{
code: 'es-ES',
name: translate.instant('Spanish'),
},
]
this.translate.setTranslation('en-US', {})
}
refresh (): void {
let lang = this.config.store.language
if (!lang) {
for (const systemLanguage of navigator.languages) {
if (!lang && this.allLanguages.some(x => x.code === systemLanguage)) {
if (!lang && LocaleService.allLanguages.some(x => x.code === systemLanguage)) {
lang = systemLanguage
}
}
@@ -127,15 +175,11 @@ export class LocaleService {
}
async setLocale (lang: string): Promise<void> {
if (!this.translate.langs.includes(lang) && lang !== 'en-US') {
if (!this.translate.langs.includes(lang)) {
this.translate.addLangs([lang])
const po = require(`../../../locale/${lang}.po`).translations['']
const translation = {}
for (const k of Object.keys(po)) {
translation[k] = po[k].msgstr[0] || k
}
const po = require(`../../../locale/${lang}.po`)
const translation = flattenMessageFormatTranslation(po)
this.translate.setTranslation(lang, translation)
}

View File

@@ -54,6 +54,9 @@ export class ProfilesService {
if (fullProfile.color) {
params.inputs['color'] = fullProfile.color
}
if (fullProfile.icon) {
params.inputs['icon'] = fullProfile.icon
}
}
return params
}
@@ -87,9 +90,12 @@ export class ProfilesService {
selectorOptionForProfile <P extends Profile, T> (profile: PartialProfile<P>): SelectorOption<T> {
const fullProfile = this.getConfigProxyForProfile(profile)
const provider = this.providerForProfile(fullProfile)
const freeInputEquivalent = provider?.intoQuickConnectString(fullProfile) ?? undefined
return {
...profile,
description: this.providerForProfile(fullProfile)?.getDescription(fullProfile),
freeInputEquivalent,
description: provider?.getDescription(fullProfile),
}
}
@@ -109,6 +115,7 @@ export class ProfilesService {
group: this.translate.instant('Recent'),
icon: 'fas fa-history',
color: p.color,
weight: -2,
callback: async () => {
if (p.id) {
p = (await this.getProfiles()).find(x => x.id === p.id) ?? p
@@ -121,6 +128,7 @@ export class ProfilesService {
name: this.translate.instant('Clear recent profiles'),
group: this.translate.instant('Recent'),
icon: 'fas fa-eraser',
weight: -1,
callback: async () => {
window.localStorage.removeItem('recentProfiles')
this.config.save()
@@ -139,6 +147,7 @@ export class ProfilesService {
options = [...options, ...profiles.map((p): SelectorOption<void> => ({
...this.selectorOptionForProfile(p),
weight: p.isBuiltin ? 2 : 1,
callback: () => resolve(p),
}))]
@@ -147,6 +156,7 @@ export class ProfilesService {
options.push({
name: this.translate.instant('Manage profiles'),
icon: 'fas fa-window-restore',
weight: 10,
callback: () => {
this.app.openNewTabRaw({
type: SettingsTabComponent,

View File

@@ -35,6 +35,9 @@ export class TabRecoveryService {
if (token) {
token.tabTitle = tab.title
token.tabCustomTitle = tab.customTitle
if (tab.icon) {
token.tabIcon = tab.icon
}
if (tab.color) {
token.tabColor = tab.color
}
@@ -51,6 +54,7 @@ export class TabRecoveryService {
}
const tab = await provider.recover(token)
tab.inputs = tab.inputs ?? {}
tab.inputs.icon = token.tabIcon ?? null
tab.inputs.color = token.tabColor ?? null
tab.inputs.title = token.tabTitle || ''
tab.inputs.customTitle = token.tabCustomTitle || ''

View File

@@ -32,10 +32,6 @@ app-root {
background: rgba(0,0,0,.65);
}
&.no-tabs {
background: rgba(0,0,0,.5);
}
&> .content {
.tab-bar {
.btn-tab-bar {
@@ -62,6 +58,10 @@ app-root {
color: rgba(255, 255, 255, 0.4);
}
.icon {
opacity: .75;
}
button {
color: $body-color;
border: none;
@@ -300,6 +300,10 @@ checkbox i.on {
search-panel {
background: #131d27 !important;
input {
border-radius: 0 !important;
}
}
@@ -389,3 +393,15 @@ hr {
.dropdown-menu {
box-shadow: $dropdown-box-shadow;
}
ngx-colors-panel .opened {
background: $body-bg !important;
button {
color: $body-color !important;
}
.button svg {
fill: white;
}
}

View File

@@ -90,9 +90,9 @@ messageformat@^2.3.0:
messageformat-parser "^4.1.2"
minimist@^1.2.0:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
version "1.2.6"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
mixpanel@^0.13.0:
version "0.13.0"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-electron",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Electron-specific bindings",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -1,7 +1,7 @@
import { NgModule } from '@angular/core'
import { PlatformService, LogService, UpdaterService, DockingService, HostAppService, ThemesService, Platform, AppService, ConfigService, WIN_BUILD_FLUENT_BG_SUPPORTED, isWindowsBuild, HostWindowService, HotkeyProvider, ConfigProvider, FileProvider } from 'tabby-core'
import { TerminalColorSchemeProvider } from 'tabby-terminal'
import { SFTPContextMenuItemProvider, SSHProfileImporter } from 'tabby-ssh'
import { SFTPContextMenuItemProvider, SSHProfileImporter, AutoPrivateKeyLocator } from 'tabby-ssh'
import { auditTime } from 'rxjs'
import { HyperColorSchemes } from './colorSchemes'
@@ -17,7 +17,7 @@ import { ElectronService } from './services/electron.service'
import { ElectronHotkeyProvider } from './hotkeys'
import { ElectronConfigProvider } from './config'
import { EditSFTPContextMenu } from './sftpContextMenu'
import { OpenSSHImporter } from './openSSHImport'
import { OpenSSHImporter, PrivateKeyLocator, StaticFileImporter } from './sshImporters'
@NgModule({
providers: [
@@ -32,7 +32,9 @@ import { OpenSSHImporter } from './openSSHImport'
{ provide: ConfigProvider, useClass: ElectronConfigProvider, multi: true },
{ provide: FileProvider, useClass: ElectronFileProvider, multi: true },
{ provide: SFTPContextMenuItemProvider, useClass: EditSFTPContextMenu, multi: true },
{ provide: SSHProfileImporter, useClass: OpenSSHImporter, multi: true },
{ provide: SSHProfileImporter, useExisting: OpenSSHImporter, multi: true },
{ provide: SSHProfileImporter, useExisting: StaticFileImporter, multi: true },
{ provide: AutoPrivateKeyLocator, useExisting: PrivateKeyLocator, multi: true },
],
})
export default class ElectronModule {

View File

@@ -45,26 +45,26 @@ export class ElectronDockingService extends DockingService {
const [minWidth, minHeight] = this.hostWindow.getWindow().getMinimumSize()
if (dockSide === 'left' || dockSide === 'right') {
newBounds.width = Math.max(minWidth, Math.round(fill * display.bounds.width))
newBounds.height = Math.round(display.bounds.height * space)
newBounds.width = Math.max(minWidth, Math.round(fill * display.workArea.width))
newBounds.height = Math.round(display.workArea.height * space)
}
if (dockSide === 'top' || dockSide === 'bottom') {
newBounds.width = Math.round(display.bounds.width * space)
newBounds.height = Math.max(minHeight, Math.round(fill * display.bounds.height))
newBounds.width = Math.round(display.workArea.width * space)
newBounds.height = Math.max(minHeight, Math.round(fill * display.workArea.height))
}
if (dockSide === 'right') {
newBounds.x = display.bounds.x + display.bounds.width - newBounds.width
newBounds.x = display.workArea.x + display.workArea.width - newBounds.width
} else if (dockSide === 'left') {
newBounds.x = display.bounds.x
newBounds.x = display.workArea.x
} else {
newBounds.x = display.bounds.x + Math.round(display.bounds.width / 2 * (1 - space))
newBounds.x = display.workArea.x + Math.round(display.workArea.width / 2 * (1 - space))
}
if (dockSide === 'bottom') {
newBounds.y = display.bounds.y + display.bounds.height - newBounds.height
newBounds.y = display.workArea.y + display.workArea.height - newBounds.height
} else if (dockSide === 'top') {
newBounds.y = display.bounds.y
newBounds.y = display.workArea.y
} else {
newBounds.y = display.bounds.y + Math.round(display.bounds.height / 2 * (1 - space))
newBounds.y = display.workArea.y + Math.round(display.workArea.height / 2 * (1 - space))
}
const alwaysOnTop = this.config.store.appearance.dockAlwaysOnTop

View File

@@ -65,6 +65,10 @@ export class ElectronHostAppService extends HostAppService {
this.electron.ipcRenderer.send('app:config-change', configStore)
}
saveConfig (data: string): void {
this.electron.ipcRenderer.send('app:save-config', data)
}
emitReady (): void {
this.electron.ipcRenderer.send('app:ready')
}
@@ -74,7 +78,11 @@ export class ElectronHostAppService extends HostAppService {
if (isPortable) {
this.electron.app.relaunch({ execPath: process.env.PORTABLE_EXECUTABLE_FILE })
} else {
this.electron.app.relaunch()
let args: string[] = []
if (this.platform === Platform.Linux) {
args = ['--no-sandbox']
}
this.electron.app.relaunch({ args })
}
this.electron.app.exit()
}

View File

@@ -1,16 +1,15 @@
import * as path from 'path'
import * as fs from 'fs/promises'
import * as gracefulFS from 'graceful-fs'
import * as fsSync from 'fs'
import * as os from 'os'
import { promisify } from 'util'
import promiseIpc, { RendererProcessType } from 'electron-promise-ipc'
import { execFile } from 'mz/child_process'
import { Injectable, NgZone } from '@angular/core'
import { PlatformService, ClipboardContent, HostAppService, Platform, MenuItemOptions, MessageBoxOptions, MessageBoxResult, FileUpload, FileDownload, FileUploadOptions, wrapPromise, TranslateService } from 'tabby-core'
import { PlatformService, ClipboardContent, Platform, MenuItemOptions, MessageBoxOptions, MessageBoxResult, FileUpload, FileDownload, FileUploadOptions, wrapPromise, TranslateService } from 'tabby-core'
import { ElectronService } from '../services/electron.service'
import { ElectronHostWindow } from './hostWindow.service'
import { ShellIntegrationService } from './shellIntegration.service'
import { ElectronHostAppService } from './hostApp.service'
const fontManager = require('fontmanager-redux') // eslint-disable-line
/* eslint-disable block-scoped-var */
@@ -26,10 +25,9 @@ try {
export class ElectronPlatformService extends PlatformService {
supportsWindowControls = true
private configPath: string
private _configSaveInProgress = Promise.resolve()
constructor (
private hostApp: HostAppService,
private hostApp: ElectronHostAppService,
private hostWindow: ElectronHostWindow,
private electron: ElectronService,
private zone: NgZone,
@@ -111,18 +109,7 @@ export class ElectronPlatformService extends PlatformService {
}
async saveConfig (content: string): Promise<void> {
try {
await this._configSaveInProgress
} catch { }
this._configSaveInProgress = this._saveConfigInternal(content)
await this._configSaveInProgress
}
async _saveConfigInternal (content: string): Promise<void> {
const tempPath = this.configPath + '.new'
await fs.writeFile(tempPath, content, 'utf8')
await fs.writeFile(this.configPath + '.backup', content, 'utf8')
await promisify(gracefulFS.rename)(tempPath, this.configPath)
this.hostApp.saveConfig(content)
}
getConfigPath (): string|null {
@@ -151,7 +138,7 @@ export class ElectronPlatformService extends PlatformService {
async listFonts (): Promise<string[]> {
if (this.hostApp.platform === Platform.Windows || this.hostApp.platform === Platform.macOS) {
let fonts = await new Promise<any[]>((resolve) => fontManager.findFonts({ monospace: true }, resolve))
let fonts = await new Promise<any[]>((resolve) => fontManager.findFonts({}, resolve))
fonts = fonts.map(x => x.family.trim())
return fonts
}

View File

@@ -54,11 +54,15 @@ export class ElectronUpdaterService extends UpdaterService {
config.ready$.toPromise().then(() => {
if (config.store.enableAutomaticUpdates && this.electronUpdaterAvailable && !process.env.TABBY_DEV) {
this.logger.debug('Checking for updates')
let arch = process.arch
if (process.platform === 'darwin' && process.arch === 'x64') {
arch = 'x86_64'
}
try {
this.autoUpdater.setFeedURL({
provider: 'github',
repo: 'tabby',
owner: 'eugeny',
provider: 's3',
bucket: 'tabby-updates',
path: `updates-latest-${arch}`,
})
this.autoUpdater.checkForUpdates()
} catch (e) {

View File

@@ -1,15 +1,21 @@
import at from 'core-js-pure/actual/array/at'
import * as fs from 'fs/promises'
import * as fsSync from 'fs'
import * as path from 'path'
import slugify from 'slugify'
import * as yaml from 'js-yaml'
import { Injectable } from '@angular/core'
import { PartialProfile } from 'tabby-core'
import { SSHProfileImporter, PortForwardType, SSHProfile, SSHProfileOptions } from 'tabby-ssh'
import { SSHProfileImporter, PortForwardType, SSHProfile, SSHProfileOptions, AutoPrivateKeyLocator } from 'tabby-ssh'
function deriveID (name: string): string {
return 'openssh-config:' + slugify(name)
}
import { ElectronService } from './services/electron.service'
@Injectable({ providedIn: 'root' })
export class OpenSSHImporter extends SSHProfileImporter {
async getProfiles (): Promise<PartialProfile<SSHProfile>[]> {
const deriveID = name => 'openssh-config:' + slugify(name)
const results: PartialProfile<SSHProfile>[] = []
const configPath = path.join(process.env.HOME ?? '~', '.ssh', 'config')
try {
@@ -20,7 +26,7 @@ export class OpenSSHImporter extends SSHProfileImporter {
if (line.trim().startsWith('#') || !line.trim()) {
continue
}
if (line.startsWith('Host ')) {
if (line.toLowerCase().startsWith('host ')) {
if (currentProfile) {
results.push(currentProfile)
}
@@ -71,8 +77,8 @@ export class OpenSSHImporter extends SSHProfileImporter {
target.forwardedPorts.push({
type: PortForwardType.Local,
description: value,
host: bind.split(':')[0] ?? '127.0.0.1',
port: parseInt(bind.split(':')[1] ?? bind),
host: bind.includes(':') ? bind.split(':')[0] : '127.0.0.1',
port: parseInt(at(bind.split(':'), -1)),
targetAddress: tgt.split(':')[0],
targetPort: parseInt(tgt.split(':')[1]),
})
@@ -82,8 +88,8 @@ export class OpenSSHImporter extends SSHProfileImporter {
target.forwardedPorts.push({
type: PortForwardType.Dynamic,
description: value,
host: bind.split(':')[0] ?? '127.0.0.1',
port: parseInt(bind.split(':')[1] ?? bind),
host: bind.includes(':') ? bind.split(':')[0] : '127.0.0.1',
port: parseInt(at(bind.split(':'), -1)),
targetAddress: '',
targetPort: 22,
})
@@ -127,3 +133,56 @@ export class OpenSSHImporter extends SSHProfileImporter {
}
}
}
@Injectable({ providedIn: 'root' })
export class StaticFileImporter extends SSHProfileImporter {
private configPath: string
constructor (
electron: ElectronService,
) {
super()
this.configPath = path.join(electron.app.getPath('userData'), 'ssh-profiles.yaml')
}
async getProfiles (): Promise<PartialProfile<SSHProfile>[]> {
const deriveID = name => 'file-config:' + slugify(name)
if (!fsSync.existsSync(this.configPath)) {
return []
}
const content = await fs.readFile(this.configPath, 'utf8')
if (!content) {
return []
}
return (yaml.load(content) as PartialProfile<SSHProfile>[]).map(item => ({
...item,
id: deriveID(item.name),
type: 'ssh',
}))
}
}
@Injectable({ providedIn: 'root' })
export class PrivateKeyLocator extends AutoPrivateKeyLocator {
async getKeys (): Promise<[string, Buffer][]> {
const results: [string, Buffer][] = []
const keysPath = path.join(process.env.HOME!, '.ssh')
if (!fsSync.existsSync(keysPath)) {
return results
}
for (const file of await fs.readdir(keysPath)) {
if (/^id_[\w\d]+$/.test(file)) {
const privateKeyContents = await fs.readFile(
path.join(keysPath, file),
{ encoding: null }
)
results.push([file, privateKeyContents])
}
}
return results
}
}

View File

@@ -2,6 +2,11 @@
# yarn lockfile v1
"@colors/colors@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
"@dabh/diagnostics@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31"
@@ -11,10 +16,10 @@
enabled "2.0.x"
kuler "^2.0.0"
async@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
async@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
balanced-match@^1.0.0:
version "1.0.2"
@@ -70,11 +75,6 @@ color@3.0.x:
color-convert "^1.9.1"
color-string "^1.5.2"
colors@^1.2.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
colorspace@1.1.x:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5"
@@ -88,11 +88,6 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@@ -146,11 +141,6 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
fast-safe-stringify@^2.0.4:
version "2.0.7"
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
fecha@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
@@ -217,7 +207,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@^2.0.3, inherits@~2.0.3:
inherits@2, inherits@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -289,25 +279,20 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
dependencies:
has-symbols "^1.0.2"
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
kuler@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
logform@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2"
integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==
logform@^2.3.2, logform@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe"
integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==
dependencies:
colors "^1.2.1"
fast-safe-stringify "^2.0.4"
"@colors/colors" "1.5.0"
fecha "^4.2.0"
ms "^2.1.1"
safe-stable-stringify "^2.3.1"
triple-beam "^1.3.0"
minimatch@^3.0.4:
@@ -371,25 +356,7 @@ path-is-absolute@^1.0.0:
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
readable-stream@^2.3.7:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^3.4.0:
readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -405,16 +372,16 @@ rimraf@^3.0.0:
dependencies:
glob "^7.1.3"
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-stable-stringify@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73"
integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==
serialize-error@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac"
@@ -457,13 +424,6 @@ string_decoder@^1.1.1:
dependencies:
safe-buffer "~5.2.0"
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
text-hex@1.0.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
@@ -483,7 +443,7 @@ tmp@^0.2.0:
dependencies:
rimraf "^3.0.0"
triple-beam@^1.2.0, triple-beam@^1.3.0:
triple-beam@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
@@ -503,7 +463,7 @@ unbox-primitive@^1.0.0:
has-symbols "^1.0.2"
which-boxed-primitive "^1.0.2"
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
util-deprecate@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
@@ -524,28 +484,30 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
winston-transport@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"
integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==
winston-transport@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa"
integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==
dependencies:
readable-stream "^2.3.7"
triple-beam "^1.2.0"
logform "^2.3.2"
readable-stream "^3.6.0"
triple-beam "^1.3.0"
winston@^3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"
integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==
version "3.7.2"
resolved "https://registry.yarnpkg.com/winston/-/winston-3.7.2.tgz#95b4eeddbec902b3db1424932ac634f887c400b1"
integrity sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==
dependencies:
"@dabh/diagnostics" "^2.0.2"
async "^3.1.0"
async "^3.2.3"
is-stream "^2.0.0"
logform "^2.2.0"
logform "^2.4.0"
one-time "^1.0.0"
readable-stream "^3.4.0"
safe-stable-stringify "^2.3.1"
stack-trace "0.0.x"
triple-beam "^1.3.0"
winston-transport "^4.4.0"
winston-transport "^4.5.0"
wrappy@1:
version "1.0.2"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-linkifier",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Makes URLs, IPs and file paths clickable in Tabby",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-local",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Tabby's local shell plugin",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -13,6 +13,8 @@ export interface Shell {
*/
fsBase?: string
cwd?: string
/**
* SVG icon
*/

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