mirror of
https://github.com/Eugeny/tabby.git
synced 2025-08-21 08:41:51 +00:00
Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8116ab733f | ||
![]() |
92513814e4 | ||
![]() |
0f71618cb8 | ||
![]() |
8cba805522 | ||
![]() |
35ca7015c8 | ||
![]() |
2e72774548 | ||
![]() |
beb7c614bc | ||
![]() |
ef3c9e3be0 | ||
![]() |
ceb9b3cca8 | ||
![]() |
55a9aaaf32 | ||
![]() |
9bd7a92bf8 | ||
![]() |
c2e7241a64 | ||
![]() |
685a0ab9f5 | ||
![]() |
abddfe85d5 | ||
![]() |
95f7ad21bb | ||
![]() |
ccaf98aaa0 | ||
![]() |
cdd8be97ed | ||
![]() |
c8b5501a5f | ||
![]() |
aef6037333 | ||
![]() |
441f442915 | ||
![]() |
1e5cfd1d4b |
@@ -1121,6 +1121,15 @@
|
|||||||
"contributions": [
|
"contributions": [
|
||||||
"code"
|
"code"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "karaketir16",
|
||||||
|
"name": "Osman Karaketir",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/27349806?v=4",
|
||||||
|
"profile": "https://github.com/karaketir16",
|
||||||
|
"contributions": [
|
||||||
|
"code"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"contributorsPerLine": 7,
|
"contributorsPerLine": 7,
|
||||||
|
278
.eslintrc.yml
278
.eslintrc.yml
@@ -1,15 +1,3 @@
|
|||||||
parser: '@typescript-eslint/parser'
|
|
||||||
parserOptions:
|
|
||||||
project:
|
|
||||||
- tsconfig.json
|
|
||||||
- '*/tsconfig.typings.json'
|
|
||||||
extends:
|
|
||||||
- 'plugin:@typescript-eslint/all'
|
|
||||||
- plugin:import/recommended
|
|
||||||
- plugin:import/typescript
|
|
||||||
plugins:
|
|
||||||
- '@typescript-eslint'
|
|
||||||
- 'import'
|
|
||||||
settings:
|
settings:
|
||||||
import/resolver:
|
import/resolver:
|
||||||
typescript: true
|
typescript: true
|
||||||
@@ -19,126 +7,148 @@ env:
|
|||||||
es6: true
|
es6: true
|
||||||
node: true
|
node: true
|
||||||
commonjs: true
|
commonjs: true
|
||||||
rules:
|
|
||||||
'@typescript-eslint/semi':
|
overrides:
|
||||||
- error
|
- files: '*.mjs'
|
||||||
- never
|
plugins:
|
||||||
'@typescript-eslint/indent':
|
- 'import'
|
||||||
- error
|
parserOptions:
|
||||||
- 4
|
sourceType: module
|
||||||
'@typescript-eslint/explicit-member-accessibility':
|
ecmaVersion: latest
|
||||||
- error
|
|
||||||
- accessibility: no-public
|
- files: '*.ts'
|
||||||
overrides:
|
parser: '@typescript-eslint/parser'
|
||||||
parameterProperties: explicit
|
parserOptions:
|
||||||
'@typescript-eslint/no-require-imports': off
|
project:
|
||||||
'@typescript-eslint/no-parameter-properties': off
|
- tsconfig.json
|
||||||
'@typescript-eslint/explicit-function-return-type': off
|
- '*/tsconfig.typings.json'
|
||||||
'@typescript-eslint/no-explicit-any': off
|
extends:
|
||||||
'@typescript-eslint/no-magic-numbers': off
|
- 'plugin:@typescript-eslint/all'
|
||||||
'@typescript-eslint/member-delimiter-style': off
|
- plugin:import/recommended
|
||||||
'@typescript-eslint/promise-function-async': off
|
- plugin:import/typescript
|
||||||
'@typescript-eslint/require-array-sort-compare': off
|
plugins:
|
||||||
'@typescript-eslint/no-floating-promises': off
|
- '@typescript-eslint'
|
||||||
'@typescript-eslint/prefer-readonly': off
|
- 'import'
|
||||||
'@typescript-eslint/require-await': off
|
rules:
|
||||||
'@typescript-eslint/strict-boolean-expressions': off
|
'@typescript-eslint/semi':
|
||||||
'@typescript-eslint/no-misused-promises':
|
|
||||||
- error
|
|
||||||
- checksVoidReturn: false
|
|
||||||
'@typescript-eslint/typedef': off
|
|
||||||
'@typescript-eslint/consistent-type-imports': off
|
|
||||||
'@typescript-eslint/sort-type-union-intersection-members': off
|
|
||||||
'@typescript-eslint/no-use-before-define':
|
|
||||||
- error
|
|
||||||
- classes: false
|
|
||||||
no-duplicate-imports: error
|
|
||||||
array-bracket-spacing:
|
|
||||||
- error
|
|
||||||
- never
|
|
||||||
block-scoped-var: error
|
|
||||||
brace-style: off
|
|
||||||
'@typescript-eslint/brace-style':
|
|
||||||
- error
|
|
||||||
- 1tbs
|
|
||||||
- allowSingleLine: true
|
|
||||||
computed-property-spacing:
|
|
||||||
- error
|
|
||||||
- never
|
|
||||||
comma-dangle: off
|
|
||||||
'@typescript-eslint/comma-dangle':
|
|
||||||
- error
|
|
||||||
- always-multiline
|
|
||||||
curly: error
|
|
||||||
eol-last: error
|
|
||||||
eqeqeq:
|
|
||||||
- error
|
|
||||||
- smart
|
|
||||||
max-depth:
|
|
||||||
- 1
|
|
||||||
- 5
|
|
||||||
max-statements:
|
|
||||||
- 1
|
|
||||||
- 80
|
|
||||||
no-multiple-empty-lines: error
|
|
||||||
no-mixed-spaces-and-tabs: error
|
|
||||||
no-trailing-spaces: error
|
|
||||||
'@typescript-eslint/no-unused-vars':
|
|
||||||
- error
|
- error
|
||||||
- vars: all
|
- never
|
||||||
args: after-used
|
'@typescript-eslint/indent':
|
||||||
argsIgnorePattern: ^_
|
- error
|
||||||
no-undef: error
|
- 4
|
||||||
no-var: error
|
'@typescript-eslint/explicit-member-accessibility':
|
||||||
object-curly-spacing: off
|
- error
|
||||||
'@typescript-eslint/object-curly-spacing':
|
- accessibility: no-public
|
||||||
- error
|
overrides:
|
||||||
- always
|
parameterProperties: explicit
|
||||||
quote-props:
|
'@typescript-eslint/no-require-imports': off
|
||||||
- warn
|
'@typescript-eslint/no-parameter-properties': off
|
||||||
- as-needed
|
'@typescript-eslint/explicit-function-return-type': off
|
||||||
- keywords: true
|
'@typescript-eslint/no-explicit-any': off
|
||||||
numbers: true
|
'@typescript-eslint/no-magic-numbers': off
|
||||||
quotes: off
|
'@typescript-eslint/member-delimiter-style': off
|
||||||
'@typescript-eslint/quotes':
|
'@typescript-eslint/promise-function-async': off
|
||||||
- error
|
'@typescript-eslint/require-array-sort-compare': off
|
||||||
- single
|
'@typescript-eslint/no-floating-promises': off
|
||||||
- allowTemplateLiterals: true
|
'@typescript-eslint/prefer-readonly': off
|
||||||
'@typescript-eslint/no-confusing-void-expression':
|
'@typescript-eslint/require-await': off
|
||||||
- error
|
'@typescript-eslint/strict-boolean-expressions': off
|
||||||
- ignoreArrowShorthand: true
|
'@typescript-eslint/no-misused-promises':
|
||||||
'@typescript-eslint/no-non-null-assertion': off
|
- error
|
||||||
'@typescript-eslint/no-unnecessary-condition':
|
- checksVoidReturn: false
|
||||||
- error
|
'@typescript-eslint/typedef': off
|
||||||
- allowConstantLoopConditions: true
|
'@typescript-eslint/consistent-type-imports': off
|
||||||
'@typescript-eslint/restrict-template-expressions': off
|
'@typescript-eslint/sort-type-union-intersection-members': off
|
||||||
'@typescript-eslint/prefer-readonly-parameter-types': off
|
'@typescript-eslint/no-use-before-define':
|
||||||
'@typescript-eslint/no-unsafe-member-access': off
|
- error
|
||||||
'@typescript-eslint/no-unsafe-call': off
|
- classes: false
|
||||||
'@typescript-eslint/no-unsafe-return': off
|
no-duplicate-imports: error
|
||||||
'@typescript-eslint/no-unsafe-assignment': off
|
array-bracket-spacing:
|
||||||
'@typescript-eslint/naming-convention': off
|
- error
|
||||||
'@typescript-eslint/lines-between-class-members':
|
- never
|
||||||
- error
|
block-scoped-var: error
|
||||||
- exceptAfterSingleLine: true
|
brace-style: off
|
||||||
'@typescript-eslint/dot-notation': off
|
'@typescript-eslint/brace-style':
|
||||||
'@typescript-eslint/no-implicit-any-catch': off
|
- error
|
||||||
'@typescript-eslint/member-ordering': off
|
- 1tbs
|
||||||
'@typescript-eslint/no-var-requires': off
|
- allowSingleLine: true
|
||||||
'@typescript-eslint/no-unsafe-argument': off
|
computed-property-spacing:
|
||||||
'@typescript-eslint/restrict-plus-operands': off
|
- error
|
||||||
'@typescript-eslint/space-infix-ops': off
|
- never
|
||||||
'@typescript-eslint/no-type-alias':
|
comma-dangle: off
|
||||||
- error
|
'@typescript-eslint/comma-dangle':
|
||||||
- allowAliases: in-unions-and-intersections
|
- error
|
||||||
allowLiterals: always
|
- always-multiline
|
||||||
allowCallbacks: always
|
curly: error
|
||||||
'@typescript-eslint/sort-type-constituents': off
|
eol-last: error
|
||||||
'@typescript-eslint/parameter-properties':
|
eqeqeq:
|
||||||
- error
|
- error
|
||||||
- prefer: parameter-property
|
- smart
|
||||||
'import/no-named-as-default-member': off
|
max-depth:
|
||||||
'@typescript-eslint/consistent-type-exports': off
|
- 1
|
||||||
'@typescript-eslint/consistent-generic-constructors': off
|
- 5
|
||||||
'keyword-spacing': off
|
max-statements:
|
||||||
'@typescript-eslint/keyword-spacing': off
|
- 1
|
||||||
|
- 80
|
||||||
|
no-multiple-empty-lines: error
|
||||||
|
no-mixed-spaces-and-tabs: error
|
||||||
|
no-trailing-spaces: error
|
||||||
|
'@typescript-eslint/no-unused-vars':
|
||||||
|
- error
|
||||||
|
- vars: all
|
||||||
|
args: after-used
|
||||||
|
argsIgnorePattern: ^_
|
||||||
|
no-undef: error
|
||||||
|
no-var: error
|
||||||
|
object-curly-spacing: off
|
||||||
|
'@typescript-eslint/object-curly-spacing':
|
||||||
|
- error
|
||||||
|
- always
|
||||||
|
quote-props:
|
||||||
|
- warn
|
||||||
|
- as-needed
|
||||||
|
- keywords: true
|
||||||
|
numbers: true
|
||||||
|
quotes: off
|
||||||
|
'@typescript-eslint/quotes':
|
||||||
|
- error
|
||||||
|
- single
|
||||||
|
- allowTemplateLiterals: true
|
||||||
|
'@typescript-eslint/no-confusing-void-expression':
|
||||||
|
- error
|
||||||
|
- ignoreArrowShorthand: true
|
||||||
|
'@typescript-eslint/no-non-null-assertion': off
|
||||||
|
'@typescript-eslint/no-unnecessary-condition':
|
||||||
|
- error
|
||||||
|
- allowConstantLoopConditions: true
|
||||||
|
'@typescript-eslint/restrict-template-expressions': off
|
||||||
|
'@typescript-eslint/prefer-readonly-parameter-types': off
|
||||||
|
'@typescript-eslint/no-unsafe-member-access': off
|
||||||
|
'@typescript-eslint/no-unsafe-call': off
|
||||||
|
'@typescript-eslint/no-unsafe-return': off
|
||||||
|
'@typescript-eslint/no-unsafe-assignment': off
|
||||||
|
'@typescript-eslint/naming-convention': off
|
||||||
|
'@typescript-eslint/lines-between-class-members':
|
||||||
|
- error
|
||||||
|
- exceptAfterSingleLine: true
|
||||||
|
'@typescript-eslint/dot-notation': off
|
||||||
|
'@typescript-eslint/no-implicit-any-catch': off
|
||||||
|
'@typescript-eslint/member-ordering': off
|
||||||
|
'@typescript-eslint/no-var-requires': off
|
||||||
|
'@typescript-eslint/no-unsafe-argument': off
|
||||||
|
'@typescript-eslint/restrict-plus-operands': off
|
||||||
|
'@typescript-eslint/space-infix-ops': off
|
||||||
|
'@typescript-eslint/no-type-alias':
|
||||||
|
- error
|
||||||
|
- allowAliases: in-unions-and-intersections
|
||||||
|
allowLiterals: always
|
||||||
|
allowCallbacks: always
|
||||||
|
'@typescript-eslint/sort-type-constituents': off
|
||||||
|
'@typescript-eslint/parameter-properties':
|
||||||
|
- error
|
||||||
|
- prefer: parameter-property
|
||||||
|
'import/no-named-as-default-member': off
|
||||||
|
'@typescript-eslint/consistent-type-exports': off
|
||||||
|
'@typescript-eslint/consistent-generic-constructors': off
|
||||||
|
'keyword-spacing': off
|
||||||
|
'@typescript-eslint/keyword-spacing': off
|
||||||
|
30
.github/workflows/build.yml
vendored
30
.github/workflows/build.yml
vendored
@@ -68,7 +68,7 @@ jobs:
|
|||||||
run: yarn run build
|
run: yarn run build
|
||||||
|
|
||||||
- name: Prepackage plugins
|
- name: Prepackage plugins
|
||||||
run: scripts/prepackage-plugins.js
|
run: scripts/prepackage-plugins.mjs
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ jobs:
|
|||||||
- run: ln -s ../../node_modules/electron app/node_modules
|
- run: ln -s ../../node_modules/electron app/node_modules
|
||||||
|
|
||||||
- name: Build and sign packages
|
- name: Build and sign packages
|
||||||
run: scripts/build-macos.js
|
run: scripts/build-macos.mjs
|
||||||
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
@@ -92,7 +92,7 @@ jobs:
|
|||||||
# DEBUG: electron-builder,electron-builder:*
|
# DEBUG: electron-builder,electron-builder:*
|
||||||
|
|
||||||
- name: Build packages without signing
|
- name: Build packages without signing
|
||||||
run: scripts/build-macos.js
|
run: scripts/build-macos.mjs
|
||||||
if: "! (github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
if: "! (github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
@@ -101,7 +101,7 @@ jobs:
|
|||||||
- name: Upload symbols
|
- name: Upload symbols
|
||||||
run: |
|
run: |
|
||||||
sudo npm install -g @sentry/cli --unsafe-perm
|
sudo npm install -g @sentry/cli --unsafe-perm
|
||||||
./scripts/sentry-upload.js
|
./scripts/sentry-upload.mjs
|
||||||
env:
|
env:
|
||||||
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
||||||
@@ -162,11 +162,11 @@ jobs:
|
|||||||
if: matrix.build-arch == 'x64'
|
if: matrix.build-arch == 'x64'
|
||||||
|
|
||||||
- name: Prepackage plugins (x64)
|
- name: Prepackage plugins (x64)
|
||||||
run: scripts/prepackage-plugins.js
|
run: scripts/prepackage-plugins.mjs
|
||||||
if: ${{matrix.build-arch == 'x64'}}
|
if: ${{matrix.build-arch == 'x64'}}
|
||||||
|
|
||||||
- name: Build packages (x64)
|
- name: Build packages (x64)
|
||||||
run: scripts/build-linux.js
|
run: scripts/build-linux.mjs
|
||||||
if: ${{matrix.build-arch == 'x64'}}
|
if: ${{matrix.build-arch == 'x64'}}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -193,8 +193,8 @@ jobs:
|
|||||||
cd /github/workspace &&
|
cd /github/workspace &&
|
||||||
yarn --network-timeout 1000000 &&
|
yarn --network-timeout 1000000 &&
|
||||||
yarn run build &&
|
yarn run build &&
|
||||||
scripts/prepackage-plugins.js &&
|
scripts/prepackage-plugins.mjs &&
|
||||||
USE_SYSTEM_FPM=true scripts/build-linux.js"
|
USE_SYSTEM_FPM=true scripts/build-linux.mjs"
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
||||||
@@ -217,8 +217,8 @@ jobs:
|
|||||||
sed -i '/ \"electron\":/c\ \"electron\": \"17.0.0\",' package.json &&
|
sed -i '/ \"electron\":/c\ \"electron\": \"17.0.0\",' package.json &&
|
||||||
yarn --network-timeout 1000000 &&
|
yarn --network-timeout 1000000 &&
|
||||||
yarn run build &&
|
yarn run build &&
|
||||||
scripts/prepackage-plugins.js &&
|
scripts/prepackage-plugins.mjs &&
|
||||||
USE_SYSTEM_FPM=true scripts/build-linux.js"
|
USE_SYSTEM_FPM=true scripts/build-linux.mjs"
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
||||||
@@ -228,7 +228,7 @@ jobs:
|
|||||||
- name: Upload symbols
|
- name: Upload symbols
|
||||||
run: |
|
run: |
|
||||||
sudo npm install -g @sentry/cli --unsafe-perm
|
sudo npm install -g @sentry/cli --unsafe-perm
|
||||||
./scripts/sentry-upload.js
|
./scripts/sentry-upload.mjs
|
||||||
if: matrix.build-arch == 'x64'
|
if: matrix.build-arch == 'x64'
|
||||||
env:
|
env:
|
||||||
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
@@ -308,12 +308,12 @@ jobs:
|
|||||||
npm i -g yarn@1.19.1
|
npm i -g yarn@1.19.1
|
||||||
yarn --network-timeout 1000000
|
yarn --network-timeout 1000000
|
||||||
yarn run build
|
yarn run build
|
||||||
node scripts/prepackage-plugins.js
|
node scripts/prepackage-plugins.mjs
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
|
|
||||||
- name: Build and sign packages
|
- name: Build and sign packages
|
||||||
run: node scripts/build-windows.js
|
run: node scripts/build-windows.mjs
|
||||||
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
@@ -324,7 +324,7 @@ jobs:
|
|||||||
DEBUG: electron-builder,electron-builder:*
|
DEBUG: electron-builder,electron-builder:*
|
||||||
|
|
||||||
- name: Build packages without signing
|
- name: Build packages without signing
|
||||||
run: node scripts/build-windows.js
|
run: node scripts/build-windows.mjs
|
||||||
if: "!(github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
if: "!(github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
||||||
env:
|
env:
|
||||||
ARCH: ${{matrix.arch}}
|
ARCH: ${{matrix.arch}}
|
||||||
@@ -332,7 +332,7 @@ jobs:
|
|||||||
- name: Upload symbols
|
- name: Upload symbols
|
||||||
run: |
|
run: |
|
||||||
npm install @sentry/cli
|
npm install @sentry/cli
|
||||||
node scripts/sentry-upload.js
|
node scripts/sentry-upload.mjs
|
||||||
env:
|
env:
|
||||||
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
||||||
|
@@ -312,6 +312,7 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -314,6 +314,7 @@ Gracias a estas maravillosas personas ([emoji key](https://allcontributors.org/d
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -311,6 +311,7 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -307,6 +307,7 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -311,6 +311,7 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -301,6 +301,7 @@ Pull requests and plugins are welcome!
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -321,6 +321,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -315,6 +315,7 @@ Obrigado vai para essas pessoas maravilhosas ([emoji key](https://allcontributor
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -307,6 +307,7 @@ Pull-запросы и плагины приветствуются!
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -306,6 +306,7 @@
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -12,6 +12,7 @@ html.tabby
|
|||||||
body { transition: 0.5s background; }
|
body { transition: 0.5s background; }
|
||||||
body
|
body
|
||||||
style#custom-css
|
style#custom-css
|
||||||
|
root
|
||||||
app-root
|
app-root
|
||||||
.preload-logo
|
.preload-logo
|
||||||
div
|
div
|
||||||
|
@@ -413,7 +413,9 @@ export class Window {
|
|||||||
this.touchBarControl.selectedIndex = selectedIndex
|
this.touchBarControl.selectedIndex = selectedIndex
|
||||||
})
|
})
|
||||||
|
|
||||||
this.window.webContents.on('new-window', event => event.preventDefault())
|
this.window.webContents.setWindowOpenHandler(() => {
|
||||||
|
return { action: 'deny' }
|
||||||
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-disable-vibrancy-while-dragging', (_event, value) => {
|
ipcMain.on('window-set-disable-vibrancy-while-dragging', (_event, value) => {
|
||||||
this.disableVibrancyWhileDragging = value && this.configStore.hacks?.disableVibrancyWhileDragging
|
this.disableVibrancyWhileDragging = value && this.configStore.hacks?.disableVibrancyWhileDragging
|
||||||
|
@@ -37,17 +37,19 @@
|
|||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@tabby-gang/windows-blurbehind": "^3.0.0",
|
"@tabby-gang/windows-blurbehind": "^3.0.0",
|
||||||
"macos-native-processlist": "^2.1.0",
|
"macos-native-processlist": "^2.1.0",
|
||||||
|
"patch-package": "^6.5.0",
|
||||||
"serialport": "10.5.0",
|
"serialport": "10.5.0",
|
||||||
"serialport-binding-webserialapi": "^1.0.3",
|
"serialport-binding-webserialapi": "^1.0.3",
|
||||||
"windows-native-registry": "^3.2.1",
|
"windows-native-registry": "^3.2.1",
|
||||||
"windows-process-tree": "^0.3.4",
|
"windows-process-tree": "^0.3.4"
|
||||||
"patch-package": "^6.5.0"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@ngx-translate/core": "^14.0.0",
|
||||||
"@types/mz": "2.7.4",
|
"@types/mz": "2.7.4",
|
||||||
"@types/node": "18.7.23",
|
"@types/node": "18.11.19",
|
||||||
"atomically": "^1.7.0",
|
"atomically": "^1.7.0",
|
||||||
"ngx-filesize": "^2.0.16"
|
"filesize": "^9",
|
||||||
|
"ngx-filesize": "^3.0.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"tabby-community-color-schemes": "*",
|
"tabby-community-color-schemes": "*",
|
||||||
|
@@ -1,14 +1,12 @@
|
|||||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||||
import { NgModule } from '@angular/core'
|
import { ApplicationRef, NgModule } from '@angular/core'
|
||||||
import { BrowserModule } from '@angular/platform-browser'
|
import { BrowserModule } from '@angular/platform-browser'
|
||||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
|
||||||
import { ToastrModule } from 'ngx-toastr'
|
import { ToastrModule } from 'ngx-toastr'
|
||||||
|
|
||||||
export function getRootModule (plugins: any[]) {
|
export function getRootModule (plugins: any[]) {
|
||||||
const imports = [
|
const imports = [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
...plugins,
|
...plugins,
|
||||||
NgbModule,
|
|
||||||
ToastrModule.forRoot({
|
ToastrModule.forRoot({
|
||||||
positionClass: 'toast-bottom-center',
|
positionClass: 'toast-bottom-center',
|
||||||
toastClass: 'toast',
|
toastClass: 'toast',
|
||||||
@@ -27,10 +25,12 @@ export function getRootModule (plugins: any[]) {
|
|||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports,
|
imports,
|
||||||
bootstrap,
|
|
||||||
}) class RootModule {
|
}) class RootModule {
|
||||||
ngDoBootstrap () {
|
ngDoBootstrap (appRef: ApplicationRef) {
|
||||||
(window as any)['requestAnimationFrame'] = window[window['Zone'].__symbol__('requestAnimationFrame')]
|
(window as any)['requestAnimationFrame'] = window[window['Zone'].__symbol__('requestAnimationFrame')]
|
||||||
|
|
||||||
|
const componentDef = bootstrap[0]
|
||||||
|
appRef.bootstrap(componentDef)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,5 +6,4 @@ import '@fortawesome/fontawesome-free/css/solid.css'
|
|||||||
import '@fortawesome/fontawesome-free/css/brands.css'
|
import '@fortawesome/fontawesome-free/css/brands.css'
|
||||||
import '@fortawesome/fontawesome-free/css/regular.css'
|
import '@fortawesome/fontawesome-free/css/regular.css'
|
||||||
import '@fortawesome/fontawesome-free/css/fontawesome.css'
|
import '@fortawesome/fontawesome-free/css/fontawesome.css'
|
||||||
import 'ngx-toastr/toastr.css'
|
|
||||||
import './preload.scss'
|
import './preload.scss'
|
||||||
|
@@ -39,8 +39,10 @@ async function bootstrap (bootstrapData: BootstrapData, plugins: PluginInfo[], s
|
|||||||
const pluginModules = await loadPlugins(plugins, (current, total) => {
|
const pluginModules = await loadPlugins(plugins, (current, total) => {
|
||||||
(document.querySelector('.progress .bar') as HTMLElement).style.width = `${100 * current / total}%` // eslint-disable-line
|
(document.querySelector('.progress .bar') as HTMLElement).style.width = `${100 * current / total}%` // eslint-disable-line
|
||||||
})
|
})
|
||||||
|
|
||||||
|
window['pluginModules'] = pluginModules
|
||||||
|
|
||||||
const module = getRootModule(pluginModules)
|
const module = getRootModule(pluginModules)
|
||||||
window['rootModule'] = module
|
|
||||||
const moduleRef = await platformBrowserDynamic([
|
const moduleRef = await platformBrowserDynamic([
|
||||||
{ provide: BOOTSTRAP_DATA, useValue: bootstrapData },
|
{ provide: BOOTSTRAP_DATA, useValue: bootstrapData },
|
||||||
]).bootstrapModule(module)
|
]).bootstrapModule(module)
|
||||||
|
@@ -1,3 +1,7 @@
|
|||||||
|
html {
|
||||||
|
--spaciness: 1;
|
||||||
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -13,10 +17,6 @@ body {
|
|||||||
user-select: text;
|
user-select: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
[ngbradiogroup] input[type="radio"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a, button {
|
a, button {
|
||||||
&.btn {
|
&.btn {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
@@ -25,8 +25,8 @@ a, button {
|
|||||||
|
|
||||||
& > svg {
|
& > svg {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
width: 16px;
|
// width: 16px;
|
||||||
height: 16px;
|
// height: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -53,6 +53,10 @@ a, button {
|
|||||||
&>.form-control, &>.input-group {
|
&>.form-control, &>.input-group {
|
||||||
width: 33%;
|
width: 33%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&>.form-check {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=range] {
|
input[type=range] {
|
||||||
@@ -175,19 +179,19 @@ ngb-typeahead-window {
|
|||||||
|
|
||||||
// Windows high contrast mode
|
// Windows high contrast mode
|
||||||
@media screen and (forced-colors: active) {
|
@media screen and (forced-colors: active) {
|
||||||
.custom-switch .custom-control-label::before {
|
.form-switch .form-check-label::before {
|
||||||
background: buttonface;
|
background: buttonface;
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-switch .custom-control-label::after {
|
.form-switch .form-check-label::after {
|
||||||
background: buttontext;
|
background: buttontext;
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
|
.form-switch .form-check-input:checked ~ .form-check-label::before {
|
||||||
background: activetext;
|
background: activetext;
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
|
.form-switch .form-check-input:checked ~ .form-check-label::after {
|
||||||
background: canvas;
|
background: canvas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
import { Component } from '@angular/core'
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
template: '<app-root></app-root>',
|
|
||||||
})
|
|
||||||
export class RootComponent { } // eslint-disable-line @typescript-eslint/no-extraneous-class
|
|
@@ -8,6 +8,8 @@
|
|||||||
box-shadow: 0 1px 0 rgba(0,0,0,.25);
|
box-shadow: 0 1px 0 rgba(0,0,0,.25);
|
||||||
padding: 7px 12px;
|
padding: 7px 12px;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
|
display: block !important;
|
||||||
|
border: none !important;
|
||||||
width: auto;
|
width: auto;
|
||||||
flex-basis: auto;
|
flex-basis: auto;
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
@@ -15,10 +17,12 @@
|
|||||||
|
|
||||||
&.toast-error {
|
&.toast-error {
|
||||||
background-color: #BD362F;
|
background-color: #BD362F;
|
||||||
|
color: white !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.toast-info {
|
&.toast-info {
|
||||||
background-color: #555;
|
background-color: #555;
|
||||||
|
color: #eee !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,10 @@
|
|||||||
const path = require('path')
|
import * as path from 'path'
|
||||||
const webpack = require('webpack')
|
import wp from 'webpack'
|
||||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
|
||||||
|
import * as url from 'url'
|
||||||
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
|
|
||||||
module.exports = {
|
const config = {
|
||||||
name: 'tabby-main',
|
name: 'tabby-main',
|
||||||
target: 'electron-main',
|
target: 'electron-main',
|
||||||
entry: {
|
entry: {
|
||||||
@@ -55,13 +57,15 @@ module.exports = {
|
|||||||
'yargs/yargs': 'commonjs yargs/yargs',
|
'yargs/yargs': 'commonjs yargs/yargs',
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpack.optimize.ModuleConcatenationPlugin(),
|
new wp.optimize.ModuleConcatenationPlugin(),
|
||||||
new webpack.DefinePlugin({
|
new wp.DefinePlugin({
|
||||||
'process.type': '"main"',
|
'process.type': '"main"',
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.BUNDLE_ANALYZER) {
|
if (process.env.BUNDLE_ANALYZER) {
|
||||||
module.exports.plugins.push(new BundleAnalyzerPlugin())
|
config.plugins.push(new BundleAnalyzerPlugin())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default () => config
|
@@ -1,7 +1,23 @@
|
|||||||
const path = require('path')
|
import * as fs from 'fs'
|
||||||
const webpack = require('webpack')
|
import * as path from 'path'
|
||||||
|
import wp from 'webpack'
|
||||||
|
import * as url from 'url'
|
||||||
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
|
|
||||||
module.exports = {
|
import { AngularWebpackPlugin } from '@ngtools/webpack'
|
||||||
|
import { createEs2015LinkerPlugin } from '@angular/compiler-cli/linker/babel'
|
||||||
|
const linkerPlugin = createEs2015LinkerPlugin({
|
||||||
|
linkerJitMode: true,
|
||||||
|
fileSystem: {
|
||||||
|
resolve: path.resolve,
|
||||||
|
exists: fs.existsSync,
|
||||||
|
dirname: path.dirname,
|
||||||
|
relative: path.relative,
|
||||||
|
readFile: fs.readFileSync,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export default () => ({
|
||||||
name: 'tabby',
|
name: 'tabby',
|
||||||
target: 'node',
|
target: 'node',
|
||||||
entry: {
|
entry: {
|
||||||
@@ -28,13 +44,22 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.(m?)js$/,
|
||||||
|
loader: 'babel-loader',
|
||||||
|
options: {
|
||||||
|
plugins: [linkerPlugin],
|
||||||
|
compact: false,
|
||||||
|
cacheDirectory: true,
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
fullySpecified: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
test: /\.ts$/,
|
test: /\.ts$/,
|
||||||
use: {
|
use: {
|
||||||
loader: 'ts-loader',
|
loader: '@ngtools/webpack',
|
||||||
options: {
|
|
||||||
configFile: path.resolve(__dirname, 'tsconfig.json'),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
|
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
|
||||||
@@ -56,9 +81,14 @@ module.exports = {
|
|||||||
path: 'commonjs path',
|
path: 'commonjs path',
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpack.optimize.ModuleConcatenationPlugin(),
|
new wp.optimize.ModuleConcatenationPlugin(),
|
||||||
new webpack.DefinePlugin({
|
new wp.DefinePlugin({
|
||||||
'process.type': '"renderer"',
|
'process.type': '"renderer"',
|
||||||
}),
|
}),
|
||||||
|
new AngularWebpackPlugin({
|
||||||
|
tsconfig: path.resolve(__dirname, 'tsconfig.json'),
|
||||||
|
directTemplateLoading: false,
|
||||||
|
jitMode: true,
|
||||||
|
})
|
||||||
],
|
],
|
||||||
}
|
})
|
@@ -16,6 +16,13 @@
|
|||||||
update-notifier "^2.2.0"
|
update-notifier "^2.2.0"
|
||||||
yargs "^8.0.2"
|
yargs "^8.0.2"
|
||||||
|
|
||||||
|
"@ngx-translate/core@^14.0.0":
|
||||||
|
version "14.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-14.0.0.tgz#af421d0e1a28376843f0fed375cd2fae7630a5ff"
|
||||||
|
integrity sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==
|
||||||
|
dependencies:
|
||||||
|
tslib "^2.3.0"
|
||||||
|
|
||||||
"@serialport/binding-abstract@^9.0.2":
|
"@serialport/binding-abstract@^9.0.2":
|
||||||
version "9.2.3"
|
version "9.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-9.2.3.tgz#e7dd273357b6a698af7ad58db6f57f62443a0acb"
|
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-9.2.3.tgz#e7dd273357b6a698af7ad58db6f57f62443a0acb"
|
||||||
@@ -140,11 +147,16 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/node@*", "@types/node@18.7.23":
|
"@types/node@*":
|
||||||
version "18.7.23"
|
version "18.7.23"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.23.tgz#75c580983846181ebe5f4abc40fe9dfb2d65665f"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.23.tgz#75c580983846181ebe5f4abc40fe9dfb2d65665f"
|
||||||
integrity sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==
|
integrity sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==
|
||||||
|
|
||||||
|
"@types/node@18.11.19":
|
||||||
|
version "18.11.19"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.19.tgz#35e26df9ec441ab99d73e99e9aca82935eea216d"
|
||||||
|
integrity sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==
|
||||||
|
|
||||||
"@types/node@^10.12.18":
|
"@types/node@^10.12.18":
|
||||||
version "10.17.60"
|
version "10.17.60"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
|
||||||
@@ -1094,10 +1106,10 @@ figgy-pudding@^3.4.1, figgy-pudding@^3.5.1:
|
|||||||
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
|
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
|
||||||
integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
|
integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
|
||||||
|
|
||||||
"filesize@>= 4.0.0":
|
filesize@^9:
|
||||||
version "6.3.0"
|
version "9.0.11"
|
||||||
resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.3.0.tgz#dff53cfb3f104c9e422f346d53be8dbcc971bf11"
|
resolved "https://registry.yarnpkg.com/filesize/-/filesize-9.0.11.tgz#4ac3a42c084232dd9b2a1da0107f32d42fcfa5e4"
|
||||||
integrity sha512-ytx0ruGpDHKWVoiui6+BY/QMNngtDQ/pJaFwfBpQif0J63+E8DLdFyqS3NkKQn7vIruUEpoGD9JUJSg7Kp+I0g==
|
integrity sha512-gTAiTtI0STpKa5xesyTA9hA3LX4ga8sm2nWRcffEa1L/5vQwb4mj2MdzMkoHoGv4QzfDshQZuYscQSf8c4TKOA==
|
||||||
|
|
||||||
fill-range@^7.0.1:
|
fill-range@^7.0.1:
|
||||||
version "7.0.1"
|
version "7.0.1"
|
||||||
@@ -2261,13 +2273,12 @@ native-process-working-directory@^1.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
node-addon-api "^3.1.0"
|
node-addon-api "^3.1.0"
|
||||||
|
|
||||||
ngx-filesize@^2.0.16:
|
ngx-filesize@^3.0.1:
|
||||||
version "2.0.16"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/ngx-filesize/-/ngx-filesize-2.0.16.tgz#fdaba04170edb6cfcdf7be932783cf913b03f016"
|
resolved "https://registry.yarnpkg.com/ngx-filesize/-/ngx-filesize-3.0.1.tgz#620933ae181a1128905404e43b26abb99accba90"
|
||||||
integrity sha512-VdaCirE7hSyfQh8ZEmhzNEhbddiTYUHF4V6OX+KyTmnQSVx4hp9kmzDX5YlkIlmClI6wI+LZmH9/q7XS3fsMPA==
|
integrity sha512-792I4fiG9EEPYjGib2+YTYAzfWIlccfy8uXNSXFFepuAntoS+eijLwnl0m7ajcQuNgbTtwEf9VmYIPN8mS3jqQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
filesize ">= 4.0.0"
|
tslib "^2.3.0"
|
||||||
tslib "^2.0.0"
|
|
||||||
|
|
||||||
nice-try@^1.0.4:
|
nice-try@^1.0.4:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
@@ -3717,11 +3728,16 @@ tough-cookie@~2.5.0:
|
|||||||
psl "^1.1.28"
|
psl "^1.1.28"
|
||||||
punycode "^2.1.1"
|
punycode "^2.1.1"
|
||||||
|
|
||||||
tslib@^2.0.0, tslib@^2.1.0:
|
tslib@^2.1.0:
|
||||||
version "2.3.1"
|
version "2.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
|
||||||
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
|
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
|
||||||
|
|
||||||
|
tslib@^2.3.0:
|
||||||
|
version "2.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
|
||||||
|
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
|
||||||
|
|
||||||
tunnel-agent@^0.6.0:
|
tunnel-agent@^0.6.0:
|
||||||
version "0.6.0"
|
version "0.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
|
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const signHook = require('./afterSignHook')
|
const signHook = require('./afterSignHook.cjs')
|
||||||
|
|
||||||
module.exports = async function (params) {
|
module.exports = async function (params) {
|
||||||
// notarize the app on Mac OS only.
|
// notarize the app on Mac OS only.
|
@@ -3,8 +3,8 @@ appId: org.tabby
|
|||||||
productName: Tabby
|
productName: Tabby
|
||||||
compression: normal
|
compression: normal
|
||||||
npmRebuild: false
|
npmRebuild: false
|
||||||
afterSign: "./build/mac/afterSignHook.js"
|
afterSign: "./build/mac/afterSignHook.cjs"
|
||||||
afterAllArtifactBuild: "./build/mac/afterBuildHook.js"
|
afterAllArtifactBuild: "./build/mac/afterBuildHook.cjs"
|
||||||
files:
|
files:
|
||||||
- '**/*'
|
- '**/*'
|
||||||
- dist
|
- dist
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Afrikaans\n"
|
"Language-Team: Afrikaans\n"
|
||||||
"Language: af_ZA\n"
|
"Language: af_ZA\n"
|
||||||
"PO-Revision-Date: 2023-02-06 19:58\n"
|
"PO-Revision-Date: 2023-03-17 23:07\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Syfers"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr ""
|
msgstr "Opruim"
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Kompak"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr ""
|
msgstr "Opstelling geskrap"
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
|
351
locale/app.pot
351
locale/app.pot
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Language: fr_FR\n"
|
"Language: fr_FR\n"
|
||||||
"PO-Revision-Date: 2023-02-06 19:58\n"
|
"PO-Revision-Date: 2023-03-17 23:07\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Chiffrement"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr ""
|
msgstr "Effacer"
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Effacer le terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr ""
|
msgstr "Effacer le terminal après la connexion"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Compact"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr ""
|
msgstr "Configuration supprimée"
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -410,7 +410,7 @@ msgstr "Copié"
|
|||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:26
|
#: tabby-terminal/src/tabContextMenu.ts:26
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copie"
|
msgstr "Copier"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:70
|
#: tabby-terminal/src/hotkeys.ts:70
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:66
|
#: tabby-terminal/src/tabContextMenu.ts:66
|
||||||
@@ -419,7 +419,7 @@ msgstr "Copier le chemin actuel"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr ""
|
msgstr "Copier le chemin complet"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "Supprimer le mot précédent"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr ""
|
msgstr "Supprimer la configuration du côté distant ?"
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -982,7 +982,7 @@ msgstr "Raccourcis clavier"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr ""
|
msgstr "Comment Tabby se présente à travers les variables d'environnement"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "Bip du terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr ""
|
msgstr "Identification du terminal"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Japanese\n"
|
"Language-Team: Japanese\n"
|
||||||
"Language: ja_JP\n"
|
"Language: ja_JP\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-03-17 23:07\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -23,7 +23,7 @@ msgstr "{name} コピー"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
||||||
msgid "A second font family used to display characters missing in the main font"
|
msgid "A second font family used to display characters missing in the main font"
|
||||||
msgstr "既定フォントに不足してる文字を補う代替フォント"
|
msgstr "既定フォントに不足している文字を表示する際に使用されます"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||||
msgid "Abort all"
|
msgid "Abort all"
|
||||||
@@ -148,7 +148,7 @@ msgstr "自動"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:156
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:156
|
||||||
msgid "Auto-open a terminal on app start"
|
msgid "Auto-open a terminal on app start"
|
||||||
msgstr "アプリケーション起動時に端末を自動で開く"
|
msgstr "アプリケーション起動時に新しい端末を自動で開く"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:13
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:13
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:53
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:53
|
||||||
@@ -268,7 +268,7 @@ msgstr "端末をクリア"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "接続後に端末をクリアします"
|
msgstr "接続後に端末をクリア"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -581,7 +581,7 @@ msgstr "動的なタブ名を無効にする"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
||||||
msgid "Disable fluent background while dragging"
|
msgid "Disable fluent background while dragging"
|
||||||
msgstr "ドラッグ中にFluentを無効にする"
|
msgstr "ドラッグ中はFluentを無効にする"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
||||||
msgid "Disable GPU acceleration"
|
msgid "Disable GPU acceleration"
|
||||||
@@ -646,7 +646,7 @@ msgstr "ドック表示"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:75
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:75
|
||||||
msgid "Double-click selection will stop at these characters"
|
msgid "Double-click selection will stop at these characters"
|
||||||
msgstr "ダブルクリックによる選択時に区切りとなる文字を設定できます"
|
msgstr "ダブルクリックによるテキスト選択時に区切りとなる文字を設定できます"
|
||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:79
|
#: tabby-core/src/tabContextMenu.ts:79
|
||||||
msgid "Down"
|
msgid "Down"
|
||||||
@@ -700,7 +700,7 @@ msgstr "アップデートが利用可能になったら自動的にインスト
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
||||||
msgid "Enable fluent background option"
|
msgid "Enable fluent background option"
|
||||||
msgstr "fluent背景の詳細設定を有効にする"
|
msgstr "Fluent背景設定を有効にする"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||||
msgid "Enable font ligatures"
|
msgid "Enable font ligatures"
|
||||||
@@ -841,7 +841,7 @@ msgstr "フォント"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:201
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:201
|
||||||
msgid "For keyboard shortcuts"
|
msgid "For keyboard shortcuts"
|
||||||
msgstr "キーボードショートカット用"
|
msgstr "キーボードショートカット利用時に反映されます"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:51
|
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:51
|
||||||
msgid "Force CR"
|
msgid "Force CR"
|
||||||
@@ -982,7 +982,7 @@ msgstr "ホットキー"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "環境変数を通してTabbyによる接続であることを接続先に送信します"
|
msgstr "環境変数を利用してTabbyを他の端末のように扱わせます"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -1307,7 +1307,7 @@ msgstr "標準"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:22
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:22
|
||||||
msgid "Normal font weight"
|
msgid "Normal font weight"
|
||||||
msgstr "通常フォントの太さ"
|
msgstr "標準フォントの太さ"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/searchPanel.component.ts:54
|
#: tabby-terminal/src/components/searchPanel.component.ts:54
|
||||||
#: tabby-terminal/src/components/searchPanel.component.ts:64
|
#: tabby-terminal/src/components/searchPanel.component.ts:64
|
||||||
@@ -1458,7 +1458,7 @@ msgstr "テキストを選択していない場合は貼り付け、選択中は
|
|||||||
|
|
||||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:484
|
#: tabby-terminal/src/api/baseTerminalTab.component.ts:484
|
||||||
msgid "Paste multiple lines?"
|
msgid "Paste multiple lines?"
|
||||||
msgstr "複数行の貼り付けを行いますか?"
|
msgstr "複数行の貼り付けを実行してもよろしいですか?"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
||||||
msgid "Paste on middle-click"
|
msgid "Paste on middle-click"
|
||||||
@@ -1608,7 +1608,7 @@ msgstr "リモート"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
||||||
msgid "Remove whitespace and newlines around the copied text"
|
msgid "Remove whitespace and newlines around the copied text"
|
||||||
msgstr "コピーしたテキスト前後のスペースや改行を削除します"
|
msgstr "コピーしたテキストに含まれる前後の余分なスペースや改行を除去します"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||||
#: tabby-core/src/tabContextMenu.ts:120
|
#: tabby-core/src/tabContextMenu.ts:120
|
||||||
@@ -1668,7 +1668,7 @@ msgstr "変更を反映するには再起動が必要です"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:162
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:162
|
||||||
msgid "Restore terminal tabs on app start"
|
msgid "Restore terminal tabs on app start"
|
||||||
msgstr "アプリケーション起動時に端末タブを復元する"
|
msgstr "アプリケーション起動時に以前開いていたタブを復元する"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:147
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:147
|
||||||
msgid "Reuse session for multiple tabs"
|
msgid "Reuse session for multiple tabs"
|
||||||
@@ -1744,7 +1744,7 @@ msgstr "バックスクロール"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
||||||
msgid "Scrolls the terminal to the bottom on user input"
|
msgid "Scrolls the terminal to the bottom on user input"
|
||||||
msgstr "ユーザー入力時に端末を下にスクロール"
|
msgstr "入力時に端末を最下部にスクロールします"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:74
|
#: tabby-terminal/src/hotkeys.ts:74
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
@@ -1862,7 +1862,7 @@ msgstr "{type} プロファイルセレクターを表示"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
||||||
msgid "Show a confirmation box when pasting multiple lines"
|
msgid "Show a confirmation box when pasting multiple lines"
|
||||||
msgstr "複数行を貼り付けるときに確認ボックスを表示します"
|
msgstr "複数行を貼り付ける際に確認ボックスを表示します"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:63
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:63
|
||||||
msgid "Show built-in profiles in selector"
|
msgid "Show built-in profiles in selector"
|
||||||
@@ -2023,7 +2023,7 @@ msgstr "最新情報を受け取る"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:17
|
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:17
|
||||||
msgid "Substitutions allowed."
|
msgid "Substitutions allowed."
|
||||||
msgstr "置換することができます。"
|
msgstr "置き換えに対応しています"
|
||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:290
|
#: tabby-core/src/tabContextMenu.ts:290
|
||||||
msgid "Switch profile"
|
msgid "Switch profile"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "端末音"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "端末情報の送信"
|
msgstr "端末の識別情報"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
@@ -2312,7 +2312,7 @@ msgstr "複数行貼り付け時に警告"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
||||||
msgid "Warn when closing active connections"
|
msgid "Warn when closing active connections"
|
||||||
msgstr "使用中の接続を閉じたときに警告"
|
msgstr "使用中の接続を閉じる際に警告"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
||||||
msgid "Warning: remote host's key has suddenly changed!"
|
msgid "Warning: remote host's key has suddenly changed!"
|
||||||
|
@@ -10,11 +10,11 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Korean\n"
|
"Language-Team: Korean\n"
|
||||||
"Language: ko_KR\n"
|
"Language: ko_KR\n"
|
||||||
"PO-Revision-Date: 2023-02-06 19:58\n"
|
"PO-Revision-Date: 2023-03-17 23:07\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
msgstr "\"{command}\" 명령어가 여전히 동작중입니다. 닫을까요?"
|
msgstr "\"{command}\" 명령어가 동작중입니다. 창을 닫으시겠습니까?"
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:79
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:79
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:90
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:90
|
||||||
@@ -23,7 +23,7 @@ msgstr "{name} 복사"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
||||||
msgid "A second font family used to display characters missing in the main font"
|
msgid "A second font family used to display characters missing in the main font"
|
||||||
msgstr "메인 글꼴에서 누락된 문자를 표시하기 위해 사용하는 2번째 글꼴"
|
msgstr "설정된 폰트 누락시 대체하기 위한 폰트"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||||
msgid "Abort all"
|
msgid "Abort all"
|
||||||
@@ -35,7 +35,7 @@ msgstr "허용 후 키 저장"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||||
msgid "Accept just this once"
|
msgid "Accept just this once"
|
||||||
msgstr "이번 한번만 허용"
|
msgstr "지금만 허용하기"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||||
msgid "Accessibility"
|
msgid "Accessibility"
|
||||||
@@ -256,7 +256,7 @@ msgstr "암호화"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr ""
|
msgstr "지우기"
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "터미널 비우기"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr ""
|
msgstr "연결 후 터미널 지우기"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "콤팩트"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr ""
|
msgstr "설정 삭제됨"
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "현재 경로 복사"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr ""
|
msgstr "전체 경로 복사"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Portuguese, Brazilian\n"
|
"Language-Team: Portuguese, Brazilian\n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
"PO-Revision-Date: 2023-02-06 19:58\n"
|
"PO-Revision-Date: 2023-03-17 23:07\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -209,7 +209,7 @@ msgstr "Colar entre colchetes (requer suporte ao \"shell\")"
|
|||||||
|
|
||||||
#: tabby-terminal/src/services/multifocus.service.ts:19
|
#: tabby-terminal/src/services/multifocus.service.ts:19
|
||||||
msgid "Broadcast mode. Click anywhere to cancel."
|
msgid "Broadcast mode. Click anywhere to cancel."
|
||||||
msgstr ""
|
msgstr "Modo de transmissão. Clique em qualquer lugar para cancelar."
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:54
|
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:54
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:175
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:175
|
||||||
@@ -256,7 +256,7 @@ msgstr "Cifras"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr ""
|
msgstr "Limpar"
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Limpar terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr ""
|
msgstr "Limpar terminal após conexão"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Compacto"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr ""
|
msgstr "Configuração excluída"
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "Copiar o caminho atual"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr ""
|
msgstr "Copiar caminho completo"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "Excluir palavra anterior"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr ""
|
msgstr "Excluir a configuração do lado remoto?"
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -785,7 +785,7 @@ msgstr "Focar todos os painéis"
|
|||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:78
|
#: tabby-terminal/src/hotkeys.ts:78
|
||||||
msgid "Focus all panes at once (broadcast)"
|
msgid "Focus all panes at once (broadcast)"
|
||||||
msgstr "Focar todos os painéis de uma vez (Broadcast)"
|
msgstr "Focar todos os painéis de uma vez (Transmissão)"
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:71
|
#: tabby-terminal/src/tabContextMenu.ts:71
|
||||||
msgid "Focus all tabs"
|
msgid "Focus all tabs"
|
||||||
@@ -1910,7 +1910,7 @@ msgstr "Mostrar conexões em série"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
||||||
msgid "Show tabs in fullscreen mode"
|
msgid "Show tabs in fullscreen mode"
|
||||||
msgstr ""
|
msgstr "Mostrar abas no modo de tela cheia"
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:58
|
#: tabby-terminal/src/tabContextMenu.ts:58
|
||||||
msgid "Show toolbar"
|
msgid "Show toolbar"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Chinese Simplified\n"
|
"Language-Team: Chinese Simplified\n"
|
||||||
"Language: zh_CN\n"
|
"Language: zh_CN\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-03-17 23:07\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -1736,7 +1736,7 @@ msgstr "滚动终端到底部"
|
|||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:86
|
#: tabby-terminal/src/hotkeys.ts:86
|
||||||
msgid "Scroll terminal to top"
|
msgid "Scroll terminal to top"
|
||||||
msgstr "滑动中断到顶端"
|
msgstr "滑动终端到顶端"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:16
|
||||||
msgid "Scrollback"
|
msgid "Scrollback"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Chinese Traditional\n"
|
"Language-Team: Chinese Traditional\n"
|
||||||
"Language: zh_TW\n"
|
"Language: zh_TW\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-03-17 23:07\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -23,7 +23,7 @@ msgstr "{name} 複製"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
||||||
msgid "A second font family used to display characters missing in the main font"
|
msgid "A second font family used to display characters missing in the main font"
|
||||||
msgstr "第二個字體系列,用於顯示主字體中缺少的字元"
|
msgstr "備用字型用於顯示主字型中缺少的字元"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||||
msgid "Abort all"
|
msgid "Abort all"
|
||||||
@@ -52,11 +52,11 @@ msgstr "新增"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:16
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:16
|
||||||
msgid "Add a port forward"
|
msgid "Add a port forward"
|
||||||
msgstr "新增埠轉送"
|
msgstr "新增通訊埠轉送"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:115
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:115
|
||||||
msgid "Add a private key"
|
msgid "Add a private key"
|
||||||
msgstr "添加私密金鑰"
|
msgstr "新增私鑰"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/multiHotkeyInput.component.html:8
|
#: locale/tmp-html/tabby-settings/src/components/multiHotkeyInput.component.html:8
|
||||||
msgid "Add..."
|
msgid "Add..."
|
||||||
@@ -328,7 +328,7 @@ msgstr "指令行"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
||||||
msgid "Command's stdin/stdout is used instead of a network connection"
|
msgid "Command's stdin/stdout is used instead of a network connection"
|
||||||
msgstr "使用 stdin/stdout 指令代替網絡連接"
|
msgstr "使用 stdin/stdout 指令代替網絡連線"
|
||||||
|
|
||||||
#: tabby-core/src/services/commands.service.ts:104
|
#: tabby-core/src/services/commands.service.ts:104
|
||||||
msgid "Commands"
|
msgid "Commands"
|
||||||
@@ -366,7 +366,7 @@ msgstr "設定"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:21
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:21
|
||||||
msgid "Connect through a proxy server"
|
msgid "Connect through a proxy server"
|
||||||
msgstr "通過代理伺服器連接"
|
msgstr "通過代理伺服器連線"
|
||||||
|
|
||||||
#: tabby-core/src/index.ts:227
|
#: tabby-core/src/index.ts:227
|
||||||
#: tabby-core/src/services/profiles.service.ts:178
|
#: tabby-core/src/services/profiles.service.ts:178
|
||||||
@@ -375,7 +375,7 @@ msgstr "正在連線到 \"%s\"..."
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:17
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:17
|
||||||
msgid "Connect to a different host first and use it as a proxy"
|
msgid "Connect to a different host first and use it as a proxy"
|
||||||
msgstr "先連到其它主機並將其作為代理伺服器"
|
msgstr "先連線到其它主機並將其作為代理伺服器"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:19
|
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:19
|
||||||
#: tabby-serial/src/components/serialTab.component.ts:66
|
#: tabby-serial/src/components/serialTab.component.ts:66
|
||||||
@@ -386,7 +386,7 @@ msgstr "正在連線"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:7
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:7
|
||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "連接"
|
msgstr "連線"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:30
|
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:30
|
||||||
msgid "Connection failed: {error}"
|
msgid "Connection failed: {error}"
|
||||||
@@ -394,7 +394,7 @@ msgstr "連線失敗: {error}"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:42
|
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:42
|
||||||
msgid "Connection name will be used instead"
|
msgid "Connection name will be used instead"
|
||||||
msgstr "將改用連接名替换"
|
msgstr "連線名稱將被使用"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:61
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:61
|
||||||
msgid "Context menu"
|
msgid "Context menu"
|
||||||
@@ -581,7 +581,7 @@ msgstr "停用動態分頁標題"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
||||||
msgid "Disable fluent background while dragging"
|
msgid "Disable fluent background while dragging"
|
||||||
msgstr "拖動時禁用 fluent 背景"
|
msgstr "拖曳時停用 fluent 背景"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
||||||
msgid "Disable GPU acceleration"
|
msgid "Disable GPU acceleration"
|
||||||
@@ -600,11 +600,11 @@ msgstr "中斷連線"
|
|||||||
#: tabby-ssh/src/components/sshTab.component.ts:244
|
#: tabby-ssh/src/components/sshTab.component.ts:244
|
||||||
#: tabby-telnet/src/components/telnetTab.component.ts:113
|
#: tabby-telnet/src/components/telnetTab.component.ts:113
|
||||||
msgid "Disconnect from {host}?"
|
msgid "Disconnect from {host}?"
|
||||||
msgstr "與 {host} 斷開連接嗎?"
|
msgstr "與 {host} 中斷連線嗎?"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:30
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:30
|
||||||
msgid "Display images via Sixel escape sequences"
|
msgid "Display images via Sixel escape sequences"
|
||||||
msgstr "通過六像素轉義序列顯示圖像"
|
msgstr "透過Sixel跳脫序列顯示圖片"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:88
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:88
|
||||||
msgid "Display on"
|
msgid "Display on"
|
||||||
@@ -708,7 +708,7 @@ msgstr "啟用合字"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:26
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:26
|
||||||
msgid "Enable global hotkey (Ctrl-Space)"
|
msgid "Enable global hotkey (Ctrl-Space)"
|
||||||
msgstr "啟用全域快捷鍵 (Ctrl+Space)"
|
msgstr "啟用全域快速鍵 (Ctrl+Space)"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:6
|
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:6
|
||||||
msgid "Enables the experimental Windows ConPTY API"
|
msgid "Enables the experimental Windows ConPTY API"
|
||||||
@@ -757,7 +757,7 @@ msgstr "匯出"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:81
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:81
|
||||||
msgid "Fallback font"
|
msgid "Fallback font"
|
||||||
msgstr "後備字型"
|
msgstr "備用字型"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/transfersMenu.component.html:3
|
#: locale/tmp-html/tabby-core/src/components/transfersMenu.component.html:3
|
||||||
msgid "File transfers"
|
msgid "File transfers"
|
||||||
@@ -777,7 +777,7 @@ msgstr "固定寬度"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:230
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:230
|
||||||
msgid "Fluent background sometimes causes drag lag"
|
msgid "Fluent background sometimes causes drag lag"
|
||||||
msgstr "Fluent 背景有時會導致拖動延遲"
|
msgstr "Fluent 背景有時會導致拖曳延遲"
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:78
|
#: tabby-terminal/src/tabContextMenu.ts:78
|
||||||
msgid "Focus all panes"
|
msgid "Focus all panes"
|
||||||
@@ -857,7 +857,7 @@ msgstr "強制使用 LF"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
||||||
msgid "Forces a specific SSH agent connection type."
|
msgid "Forces a specific SSH agent connection type."
|
||||||
msgstr "強制 SSH使用特定的連接類型"
|
msgstr "強制 SSH使用特定的連線類型"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:105
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:105
|
||||||
msgid "Forget"
|
msgid "Forget"
|
||||||
@@ -865,11 +865,11 @@ msgstr "清除"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:58
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:58
|
||||||
msgid "Forward port"
|
msgid "Forward port"
|
||||||
msgstr "轉發埠"
|
msgstr "通訊埠轉發"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingModal.component.html:3
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingModal.component.html:3
|
||||||
msgid "Forwarded ports"
|
msgid "Forwarded ports"
|
||||||
msgstr "已轉發埠"
|
msgstr "已轉發通訊埠"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:47
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:47
|
||||||
msgid "From color scheme"
|
msgid "From color scheme"
|
||||||
@@ -978,7 +978,7 @@ msgstr "主機金鑰驗證"
|
|||||||
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
||||||
#: tabby-settings/src/settings.ts:15
|
#: tabby-settings/src/settings.ts:15
|
||||||
msgid "Hotkeys"
|
msgid "Hotkeys"
|
||||||
msgstr "快捷鍵"
|
msgstr "快速鍵"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
@@ -994,7 +994,7 @@ msgstr "HTTP 代理主機位址"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:65
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:65
|
||||||
msgid "HTTP proxy port"
|
msgid "HTTP proxy port"
|
||||||
msgstr "HTTP 代理連接埠"
|
msgstr "HTTP 代理通訊埠"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:20
|
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:20
|
||||||
msgid "Icon"
|
msgid "Icon"
|
||||||
@@ -1483,22 +1483,22 @@ msgstr "擴充功能資料夾"
|
|||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:38
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:38
|
||||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:10
|
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:10
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "埠"
|
msgstr "通訊埠"
|
||||||
|
|
||||||
#: tabby-serial/src/components/serialTab.component.ts:71
|
#: tabby-serial/src/components/serialTab.component.ts:71
|
||||||
msgid "Port opened"
|
msgid "Port opened"
|
||||||
msgstr "埠已打開"
|
msgstr "通訊埠已打開"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:119
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:119
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:12
|
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:12
|
||||||
msgid "Ports"
|
msgid "Ports"
|
||||||
msgstr "埠"
|
msgstr "通訊埠"
|
||||||
|
|
||||||
#: tabby-serial/src/components/serialTab.component.ts:86
|
#: tabby-serial/src/components/serialTab.component.ts:86
|
||||||
#: tabby-ssh/src/components/sshTab.component.ts:169
|
#: tabby-ssh/src/components/sshTab.component.ts:169
|
||||||
#: tabby-telnet/src/components/telnetTab.component.ts:53
|
#: tabby-telnet/src/components/telnetTab.component.ts:53
|
||||||
msgid "Press any key to reconnect"
|
msgid "Press any key to reconnect"
|
||||||
msgstr "按下任意鍵以重新連接"
|
msgstr "按下任意鍵以重新連線"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/hotkeyInputModal.component.html:3
|
#: locale/tmp-html/tabby-settings/src/components/hotkeyInputModal.component.html:3
|
||||||
msgid "Press the key now"
|
msgid "Press the key now"
|
||||||
@@ -1808,7 +1808,7 @@ msgstr "序列"
|
|||||||
#: tabby-serial/src/profiles.ts:51
|
#: tabby-serial/src/profiles.ts:51
|
||||||
#: tabby-serial/src/profiles.ts:62
|
#: tabby-serial/src/profiles.ts:62
|
||||||
msgid "Serial connection"
|
msgid "Serial connection"
|
||||||
msgstr "序列連接"
|
msgstr "序列埠連線"
|
||||||
|
|
||||||
#: tabby-serial/src/profiles.ts:71
|
#: tabby-serial/src/profiles.ts:71
|
||||||
msgid "Serial: {description}"
|
msgid "Serial: {description}"
|
||||||
@@ -1922,7 +1922,7 @@ msgstr "顯示金鑰庫的內容"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:29
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:29
|
||||||
msgid "Sixel graphics support (experimental)"
|
msgid "Sixel graphics support (experimental)"
|
||||||
msgstr "(實驗性)Sixel圖形支援"
|
msgstr "(實驗性) Sixel圖形支援"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:140
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:140
|
||||||
msgid "Skip MoTD/banner"
|
msgid "Skip MoTD/banner"
|
||||||
@@ -1995,7 +1995,7 @@ msgstr "SSH 連線"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:53
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:53
|
||||||
msgid "SSH connection management is now done through the \"Profiles & connections\" tab"
|
msgid "SSH connection management is now done through the \"Profiles & connections\" tab"
|
||||||
msgstr "SSH連接管理現在位於「設定檔與連線」分頁下"
|
msgstr "SSH連線管理現在位於「設定檔與連線」分頁下"
|
||||||
|
|
||||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:84
|
#: tabby-settings/src/components/vaultSettingsTab.component.ts:84
|
||||||
msgid "SSH password for {user}@{host}:{port}"
|
msgid "SSH password for {user}@{host}:{port}"
|
||||||
@@ -2143,7 +2143,7 @@ msgstr "正在進行檔案傳輸"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||||
msgid "There is a saved password for this connection"
|
msgid "There is a saved password for this connection"
|
||||||
msgstr "此次連接可使用已儲存密碼"
|
msgstr "此次連線可使用已儲存密碼"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:81
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:81
|
||||||
msgid "These apply to all profiles of a given type"
|
msgid "These apply to all profiles of a given type"
|
||||||
@@ -2312,7 +2312,7 @@ msgstr "貼上多行時警告"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
||||||
msgid "Warn when closing active connections"
|
msgid "Warn when closing active connections"
|
||||||
msgstr "關閉連接中的視窗時警告"
|
msgstr "關閉連線中的視窗時警告"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
||||||
msgid "Warning: remote host's key has suddenly changed!"
|
msgid "Warning: remote host's key has suddenly changed!"
|
||||||
@@ -2420,5 +2420,5 @@ msgstr "縮小"
|
|||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:55
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:55
|
||||||
msgctxt "[Dynamic] port forwarding"
|
msgctxt "[Dynamic] port forwarding"
|
||||||
msgid "id.port-forwarding.dynamic"
|
msgid "id.port-forwarding.dynamic"
|
||||||
msgstr "動態端口轉發"
|
msgstr "動態通訊埠轉發"
|
||||||
|
|
||||||
|
68
package.json
68
package.json
@@ -1,17 +1,19 @@
|
|||||||
{
|
{
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular/animations": "^12.0.0",
|
"@angular/animations": "^15.1.3",
|
||||||
"@angular/cdk": "^12.2.9",
|
"@angular/cdk": "^15.1.3",
|
||||||
"@angular/common": "^12.0.0",
|
"@angular/common": "^15.1.3",
|
||||||
"@angular/compiler": "^12.0.0",
|
"@angular/compiler": "^15.1.3",
|
||||||
"@angular/compiler-cli": "^12.0.0",
|
"@angular/compiler-cli": "^15.1.3",
|
||||||
"@angular/core": "^12.0.0",
|
"@angular/core": "^15.1.3",
|
||||||
"@angular/forms": "^12.0.0",
|
"@angular/forms": "^15.1.3",
|
||||||
"@angular/platform-browser": "^12.0.0",
|
"@angular/platform-browser": "^15.1.3",
|
||||||
"@angular/platform-browser-dynamic": "^12.0.0",
|
"@angular/platform-browser-dynamic": "^15.1.3",
|
||||||
"@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
|
"@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
|
||||||
"@fortawesome/fontawesome-free": "^6.2.0",
|
"@fortawesome/fontawesome-free": "^6.2.0",
|
||||||
"@ng-bootstrap/ng-bootstrap": "^10.0.0",
|
"@ng-bootstrap/ng-bootstrap": "^14.0.1",
|
||||||
|
"@ngtools/webpack": "^15.1.4",
|
||||||
|
"@popperjs/core": "^2.11.6",
|
||||||
"@sentry/cli": "^1.74.3",
|
"@sentry/cli": "^1.74.3",
|
||||||
"@sentry/electron": "^2.5.4",
|
"@sentry/electron": "^2.5.4",
|
||||||
"@tabby-gang/to-string-loader": "^1.1.7-beta.2",
|
"@tabby-gang/to-string-loader": "^1.1.7-beta.2",
|
||||||
@@ -21,21 +23,21 @@
|
|||||||
"@types/fs-extra": "^9.0.13",
|
"@types/fs-extra": "^9.0.13",
|
||||||
"@types/js-yaml": "^4.0.5",
|
"@types/js-yaml": "^4.0.5",
|
||||||
"@types/node": "16.0.1",
|
"@types/node": "16.0.1",
|
||||||
"@types/sortablejs": "^1.15.0",
|
|
||||||
"@types/webpack-env": "^1.18.0",
|
"@types/webpack-env": "^1.18.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
||||||
"@typescript-eslint/parser": "^5.45.0",
|
"@typescript-eslint/parser": "^5.45.0",
|
||||||
"apply-loader": "2.0.0",
|
"apply-loader": "2.0.0",
|
||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
|
"babel-loader": "^9.1.2",
|
||||||
"browserify-sign": "^4.2.1",
|
"browserify-sign": "^4.2.1",
|
||||||
"clone-deep": "^4.0.1",
|
"clone-deep": "^4.0.1",
|
||||||
"compare-versions": "^5",
|
"compare-versions": "^5",
|
||||||
"core-js": "^3.21.1",
|
"core-js": "^3.21.1",
|
||||||
"core-js-pure": "^3.21.1",
|
"core-js-pure": "^3.21.1",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"css-loader": "^6.7.1",
|
"css-loader": "^6.7.3",
|
||||||
"deep-equal": "2.0.5",
|
"deep-equal": "2.0.5",
|
||||||
"electron": "21.3.1",
|
"electron": "22.3.1",
|
||||||
"electron-builder": "^24.0.0-alpha.1",
|
"electron-builder": "^24.0.0-alpha.1",
|
||||||
"electron-download": "^4.1.1",
|
"electron-download": "^4.1.1",
|
||||||
"electron-installer-snap": "^5.1.0",
|
"electron-installer-snap": "^5.1.0",
|
||||||
@@ -51,10 +53,8 @@
|
|||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"lru-cache": "^6.0.0",
|
"lru-cache": "^6.0.0",
|
||||||
"macos-release": "^3.1.0",
|
"macos-release": "^3.1.0",
|
||||||
"ngx-sortablejs": "^11.1.0",
|
"ngx-toastr": "^16.0.2",
|
||||||
"ngx-toastr": "^14.0.0",
|
"node-abi": "^3.33.0",
|
||||||
"node-abi": "^3.25.0",
|
|
||||||
"node-sass": "^7.0.3",
|
|
||||||
"npmlog": "6.0.2",
|
"npmlog": "6.0.2",
|
||||||
"npx": "^10.2.2",
|
"npx": "^10.2.2",
|
||||||
"patch-package": "^6.4.7",
|
"patch-package": "^6.4.7",
|
||||||
@@ -66,49 +66,53 @@
|
|||||||
"pug-loader": "^2.4.0",
|
"pug-loader": "^2.4.0",
|
||||||
"pug-static-loader": "2.0.0",
|
"pug-static-loader": "2.0.0",
|
||||||
"raw-loader": "4.0.2",
|
"raw-loader": "4.0.2",
|
||||||
"sass-loader": "^12.6.0",
|
"rxjs": "^7.5.7",
|
||||||
|
"sass": "^1.58.0",
|
||||||
|
"sass-loader": "^13.2.0",
|
||||||
"shell-quote": "^1.7.4",
|
"shell-quote": "^1.7.4",
|
||||||
"shelljs": "0.8.5",
|
"shelljs": "0.8.5",
|
||||||
"slugify": "^1.6.5",
|
"slugify": "^1.6.5",
|
||||||
"sortablejs": "^1.15.0",
|
|
||||||
"source-code-pro": "^2.38.0",
|
"source-code-pro": "^2.38.0",
|
||||||
"source-map-loader": "^3.0.1",
|
"source-map-loader": "^4.0.1",
|
||||||
"source-sans-pro": "3.6.0",
|
"source-sans-pro": "3.6.0",
|
||||||
"ssh2": "Eugeny/ssh2#9de907d62907d6d45debdcc0ed8dda5b7b19dc7c",
|
"ssh2": "Eugeny/ssh2#9de907d62907d6d45debdcc0ed8dda5b7b19dc7c",
|
||||||
"style-loader": "^3.3.1",
|
"style-loader": "^3.3.1",
|
||||||
"svg-inline-loader": "^0.8.2",
|
"svg-inline-loader": "^0.8.2",
|
||||||
"thenby": "^1.3.4",
|
"thenby": "^1.3.4",
|
||||||
"ts-loader": "^9.4.2",
|
"ts-loader": "^9.4.2",
|
||||||
"tslib": "^2.4.0",
|
"tsimportlib": "^0.0.3",
|
||||||
|
"tslib": "^2.5.0",
|
||||||
"typedoc": "^0.22.18",
|
"typedoc": "^0.22.18",
|
||||||
"typescript": "^4.3.5",
|
"typescript": "^4.9.5",
|
||||||
"utils-decorators": "^1.10.4",
|
"utils-decorators": "^1.10.4",
|
||||||
"val-loader": "4.0.0",
|
"val-loader": "5.0.1",
|
||||||
"webpack": "^5.75.0",
|
"webpack": "^5.75.0",
|
||||||
"webpack-bundle-analyzer": "^4.7.0",
|
"webpack-bundle-analyzer": "^4.7.0",
|
||||||
"webpack-cli": "^5.0.0",
|
"webpack-cli": "^5.0.1",
|
||||||
"yaml-loader": "0.6.0",
|
"yaml-loader": "0.8.0",
|
||||||
"zone.js": "^0.11.5"
|
"zone.js": "^0.11.5"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"*/pug": "^3",
|
"*/pug": "^3",
|
||||||
"lzma-native": "^8.0.0",
|
"lzma-native": "^8.0.0",
|
||||||
"*/node-abi": "^3.25.0",
|
"*/node-abi": "^3.33.0",
|
||||||
"**/graceful-fs": "^4.2.4"
|
"**/graceful-fs": "^4.2.4",
|
||||||
|
"nan": "2.17.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run build:typings && node scripts/build-modules.js",
|
"build": "npm run build:typings && node scripts/build-modules.mjs",
|
||||||
"build:typings": "node scripts/build-typings.js",
|
"build:typings": "node scripts/build-typings.mjs",
|
||||||
"watch": "cross-env TABBY_DEV=1 webpack --progress --color --watch",
|
"watch": "cross-env TABBY_DEV=1 webpack --progress --color --watch",
|
||||||
"start": "cross-env TABBY_DEV=1 electron app -d --inspect",
|
"start": "cross-env TABBY_DEV=1 electron app -d --inspect",
|
||||||
"start:prod": "electron app --debug",
|
"start:prod": "electron app --debug",
|
||||||
"prod": "cross-env TABBY_DEV=1 electron app",
|
"prod": "cross-env TABBY_DEV=1 electron app",
|
||||||
"docs": "node scripts/build-docs.js",
|
"docs": "node scripts/build-docs.mjs",
|
||||||
"lint": "eslint --ext ts */src */lib",
|
"lint": "eslint --ext ts */src */lib",
|
||||||
"postinstall": "patch-package && node ./scripts/install-deps.js && node ./scripts/build-native.js",
|
"postinstall": "patch-package && node ./scripts/install-deps.mjs && node ./scripts/build-native.mjs",
|
||||||
"i18n:pull": "crowdin pull --skip-untranslated-strings",
|
"i18n:pull": "crowdin pull --skip-untranslated-strings",
|
||||||
"i18n:extract": "node scripts/i18n-extract.js",
|
"i18n:extract": "node scripts/i18n-extract.mjs",
|
||||||
"i18n:push": "crowdin push"
|
"i18n:push": "crowdin push"
|
||||||
},
|
},
|
||||||
|
"type": "module",
|
||||||
"private": true
|
"private": true
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const sh = require('shelljs')
|
import sh from 'shelljs'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
const log = require('npmlog')
|
import log from 'npmlog'
|
||||||
|
|
||||||
vars.packagesWithDocs.forEach(([dest, src]) => {
|
vars.packagesWithDocs.forEach(([dest, src]) => {
|
||||||
log.info('docs', src)
|
log.info('docs', src)
|
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
||||||
const builder = require('electron-builder').build
|
import { build as builder } from 'electron-builder'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
|
|
||||||
const isTag = (process.env.GITHUB_REF || '').startsWith('refs/tags/')
|
const isTag = (process.env.GITHUB_REF || '').startsWith('refs/tags/')
|
||||||
|
|
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
||||||
const builder = require('electron-builder').build
|
import { build as builder } from 'electron-builder'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
|
|
||||||
const isTag = (process.env.GITHUB_REF || '').startsWith('refs/tags/')
|
const isTag = (process.env.GITHUB_REF || '').startsWith('refs/tags/')
|
||||||
|
|
@@ -1,22 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
const vars = require('./vars')
|
|
||||||
const log = require('npmlog')
|
|
||||||
const webpack = require('webpack')
|
|
||||||
const { promisify } = require('util')
|
|
||||||
|
|
||||||
const configs = [
|
|
||||||
'../app/webpack.main.config.js',
|
|
||||||
'../app/webpack.config.js',
|
|
||||||
...vars.allPackages.map(x => `../${x}/webpack.config.js`),
|
|
||||||
]
|
|
||||||
|
|
||||||
;(async () => {
|
|
||||||
for (const c of configs) {
|
|
||||||
log.info('build', c)
|
|
||||||
const stats = await promisify(webpack)(require(c))
|
|
||||||
console.log(stats.toString({ colors: true }))
|
|
||||||
if (stats.hasErrors()) {
|
|
||||||
process.exit(1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})()
|
|
22
scripts/build-modules.mjs
Executable file
22
scripts/build-modules.mjs
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
import * as vars from './vars.mjs'
|
||||||
|
import log from 'npmlog'
|
||||||
|
import webpack from 'webpack'
|
||||||
|
import { promisify } from 'node:util'
|
||||||
|
|
||||||
|
const configs = [
|
||||||
|
'../app/webpack.config.main.mjs',
|
||||||
|
'../app/webpack.config.mjs',
|
||||||
|
...vars.allPackages.map(x => `../${x}/webpack.config.mjs`),
|
||||||
|
]
|
||||||
|
|
||||||
|
;(async () => {
|
||||||
|
for (const c of configs) {
|
||||||
|
log.info('build', c)
|
||||||
|
const stats = await promisify(webpack)((await import(c)).default())
|
||||||
|
console.log(stats.toString({ colors: true }))
|
||||||
|
if (stats.hasErrors()) {
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})()
|
@@ -1,7 +1,11 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const rebuild = require('electron-rebuild').default
|
import { rebuild } from 'electron-rebuild'
|
||||||
const path = require('path')
|
import * as path from 'path'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
|
|
||||||
|
import * as url from 'url'
|
||||||
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
|
|
||||||
|
|
||||||
if (process.platform === 'win32' || process.platform === 'linux') {
|
if (process.platform === 'win32' || process.platform === 'linux') {
|
||||||
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
|
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
|
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const sh = require('shelljs')
|
import sh from 'shelljs'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
const log = require('npmlog')
|
import log from 'npmlog'
|
||||||
|
|
||||||
vars.builtinPlugins.forEach(plugin => {
|
vars.builtinPlugins.forEach(plugin => {
|
||||||
log.info('typings', plugin)
|
log.info('typings', plugin)
|
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
||||||
const builder = require('electron-builder').build
|
import { build as builder } from 'electron-builder'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
|
|
||||||
const isTag = (process.env.GITHUB_REF || process.env.BUILD_SOURCEBRANCH || '').startsWith('refs/tags/')
|
const isTag = (process.env.GITHUB_REF || process.env.BUILD_SOURCEBRANCH || '').startsWith('refs/tags/')
|
||||||
|
|
@@ -1,7 +1,12 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const jsYaml = require('js-yaml')
|
import jsYaml from 'js-yaml'
|
||||||
const fs = require('fs')
|
import fs from 'node:fs'
|
||||||
const path = require('path')
|
import path from 'node:path'
|
||||||
|
|
||||||
|
import * as url from 'url'
|
||||||
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
|
|
||||||
|
|
||||||
const metadata = jsYaml.load(fs.readFileSync(path.resolve(__dirname, '../node_modules/@fortawesome/fontawesome-free/metadata/icons.yml')))
|
const metadata = jsYaml.load(fs.readFileSync(path.resolve(__dirname, '../node_modules/@fortawesome/fontawesome-free/metadata/icons.yml')))
|
||||||
|
|
||||||
let result = {}
|
let result = {}
|
@@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const sh = require('shelljs')
|
import sh from 'shelljs'
|
||||||
const fs = require('fs/promises')
|
import fs from 'node:fs/promises'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
const log = require('npmlog')
|
import log from 'npmlog'
|
||||||
const { GettextExtractor, JsExtractors, HtmlExtractors } = require('gettext-extractor')
|
import { GettextExtractor, JsExtractors, HtmlExtractors } from 'gettext-extractor'
|
||||||
|
|
||||||
let extractor = new GettextExtractor()
|
let extractor = new GettextExtractor()
|
||||||
|
|
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const sh = require('shelljs')
|
import sh from 'shelljs'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
const log = require('npmlog')
|
import log from 'npmlog'
|
||||||
|
|
||||||
log.info('patch')
|
log.info('patch')
|
||||||
sh.exec(`yarn patch-package`, { fatal: true })
|
sh.exec(`yarn patch-package`, { fatal: true })
|
@@ -1,10 +1,14 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const rebuild = require('electron-rebuild').default
|
import { rebuild } from 'electron-rebuild'
|
||||||
const sh = require('shelljs')
|
import sh from 'shelljs'
|
||||||
const path = require('path')
|
import path from 'node:path'
|
||||||
const fs = require('fs')
|
import fs from 'node:fs'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
const log = require('npmlog')
|
import log from 'npmlog'
|
||||||
|
|
||||||
|
import * as url from 'url'
|
||||||
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
|
|
||||||
|
|
||||||
let target = path.resolve(__dirname, '../builtin-plugins')
|
let target = path.resolve(__dirname, '../builtin-plugins')
|
||||||
sh.mkdir('-p', target)
|
sh.mkdir('-p', target)
|
@@ -1,8 +1,8 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const sh = require('shelljs')
|
import sh from 'shelljs'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
const log = require('npmlog')
|
import log from 'npmlog'
|
||||||
const { execSync } = require('child_process')
|
import { execSync } from 'child_process'
|
||||||
|
|
||||||
vars.allPackages.forEach(plugin => {
|
vars.allPackages.forEach(plugin => {
|
||||||
log.info('bump', plugin)
|
log.info('bump', plugin)
|
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const sh = require('shelljs')
|
import sh from 'shelljs'
|
||||||
const vars = require('./vars')
|
import * as vars from './vars.mjs'
|
||||||
|
|
||||||
const sentryCli = process.platform === 'win32' ? 'node_modules\\.bin\\sentry-cli.cmd' : 'sentry-cli'
|
const sentryCli = process.platform === 'win32' ? 'node_modules\\.bin\\sentry-cli.cmd' : 'sentry-cli'
|
||||||
|
|
@@ -1,19 +1,22 @@
|
|||||||
const path = require('path')
|
import * as path from 'path'
|
||||||
const fs = require('fs')
|
import * as fs from 'fs'
|
||||||
const semver = require('semver')
|
import * as semver from 'semver'
|
||||||
const childProcess = require('child_process')
|
import * as childProcess from 'child_process'
|
||||||
|
|
||||||
|
import * as url from 'url'
|
||||||
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
|
|
||||||
const electronInfo = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../node_modules/electron/package.json')))
|
const electronInfo = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../node_modules/electron/package.json')))
|
||||||
|
|
||||||
exports.version = childProcess.execSync('git describe --tags', { encoding:'utf-8' })
|
export let version = childProcess.execSync('git describe --tags', { encoding:'utf-8' })
|
||||||
exports.version = exports.version.substring(1).trim()
|
version = version.substring(1).trim()
|
||||||
exports.version = exports.version.replace('-', '-c')
|
version = version.replace('-', '-c')
|
||||||
|
|
||||||
if (exports.version.includes('-c')) {
|
if (version.includes('-c')) {
|
||||||
exports.version = semver.inc(exports.version, 'prepatch').replace('-0', `-nightly.${process.env.REV ?? 0}`)
|
version = semver.inc(version, 'prepatch').replace('-0', `-nightly.${process.env.REV ?? 0}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.builtinPlugins = [
|
export const builtinPlugins = [
|
||||||
'tabby-core',
|
'tabby-core',
|
||||||
'tabby-settings',
|
'tabby-settings',
|
||||||
'tabby-terminal',
|
'tabby-terminal',
|
||||||
@@ -22,32 +25,32 @@ exports.builtinPlugins = [
|
|||||||
'tabby-ssh',
|
'tabby-ssh',
|
||||||
'tabby-serial',
|
'tabby-serial',
|
||||||
'tabby-telnet',
|
'tabby-telnet',
|
||||||
'tabby-electron',
|
|
||||||
'tabby-local',
|
'tabby-local',
|
||||||
|
'tabby-electron',
|
||||||
'tabby-plugin-manager',
|
'tabby-plugin-manager',
|
||||||
'tabby-linkifier',
|
'tabby-linkifier',
|
||||||
]
|
]
|
||||||
|
|
||||||
exports.packagesWithDocs = [
|
export const packagesWithDocs = [
|
||||||
['.', 'tabby-core'],
|
['.', 'tabby-core'],
|
||||||
['terminal', 'tabby-terminal'],
|
['terminal', 'tabby-terminal'],
|
||||||
['local', 'tabby-local'],
|
['local', 'tabby-local'],
|
||||||
['settings', 'tabby-settings'],
|
['settings', 'tabby-settings'],
|
||||||
]
|
]
|
||||||
|
|
||||||
exports.allPackages = [
|
export const allPackages = [
|
||||||
...exports.builtinPlugins,
|
...builtinPlugins,
|
||||||
'web',
|
'web',
|
||||||
'tabby-web-demo',
|
'tabby-web-demo',
|
||||||
]
|
]
|
||||||
|
|
||||||
exports.bundledModules = [
|
export const bundledModules = [
|
||||||
'@angular',
|
'@angular',
|
||||||
'@ng-bootstrap',
|
'@ng-bootstrap',
|
||||||
]
|
]
|
||||||
exports.electronVersion = electronInfo.version
|
export const electronVersion = electronInfo.version
|
||||||
|
|
||||||
exports.keygenConfig = {
|
export const keygenConfig = {
|
||||||
provider: 'keygen',
|
provider: 'keygen',
|
||||||
account: 'a06315f2-1031-47c6-9181-e92a20ec815e',
|
account: 'a06315f2-1031-47c6-9181-e92a20ec815e',
|
||||||
channel: 'stable',
|
channel: 'stable',
|
||||||
@@ -70,6 +73,6 @@ exports.keygenConfig = {
|
|||||||
}[process.platform],
|
}[process.platform],
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!exports.keygenConfig.product) {
|
if (!keygenConfig.product) {
|
||||||
throw new Error(`Unrecognized platform ${process.platform}/${process.env.ARCH ?? process.arch}`)
|
throw new Error(`Unrecognized platform ${process.platform}/${process.env.ARCH ?? process.arch}`)
|
||||||
}
|
}
|
@@ -1,6 +0,0 @@
|
|||||||
const config = require('../webpack.plugin.config')
|
|
||||||
module.exports = config({
|
|
||||||
name: 'community-color-schemes',
|
|
||||||
dirname: __dirname,
|
|
||||||
})
|
|
||||||
module.exports.module.rules.push({ test: /[\\\/]schemes[\\\/]/, use: 'raw-loader' })
|
|
14
tabby-community-color-schemes/webpack.config.mjs
Normal file
14
tabby-community-color-schemes/webpack.config.mjs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import * as path from 'path'
|
||||||
|
import * as url from 'url'
|
||||||
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
|
|
||||||
|
import config from '../webpack.plugin.config.mjs'
|
||||||
|
|
||||||
|
export default () => {
|
||||||
|
const cfg = config({
|
||||||
|
name: 'community-color-schemes',
|
||||||
|
dirname: __dirname,
|
||||||
|
})
|
||||||
|
cfg.module.rules.push({ test: /[\\\/]schemes[\\\/]/, use: 'raw-loader' })
|
||||||
|
return cfg
|
||||||
|
}
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tabby-core",
|
"name": "tabby-core",
|
||||||
"version": "1.0.189-nightly.2",
|
"version": "1.0.189-nightly.0",
|
||||||
"description": "Tabby core",
|
"description": "Tabby core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"tabby-builtin-plugin"
|
"tabby-builtin-plugin"
|
||||||
@@ -17,15 +17,13 @@
|
|||||||
"author": "Eugene Pankov",
|
"author": "Eugene Pankov",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ngx-translate/core": "^14.0.0",
|
"bootstrap": "^5.3.0-alpha.1",
|
||||||
"bootstrap": "^4.1.3",
|
"color": "^4.2.3",
|
||||||
"deepmerge": "^4.1.1",
|
"deepmerge": "^4.1.1",
|
||||||
"fuzzy-search": "^3.2.1",
|
"fuzzy-search": "^3.2.1",
|
||||||
"js-yaml": "^4.0.0",
|
"js-yaml": "^4.0.0",
|
||||||
"messageformat": "^2.3.0",
|
"messageformat": "^2.3.0",
|
||||||
"mixpanel": "^0.17.0",
|
"mixpanel": "^0.17.0",
|
||||||
"ngx-filesize": "^2.0.16",
|
|
||||||
"ngx-perfect-scrollbar": "^10.1.0",
|
|
||||||
"ngx-translate-messageformat-compiler": "^4.11.0",
|
"ngx-translate-messageformat-compiler": "^4.11.0",
|
||||||
"readable-stream": "4.2.0",
|
"readable-stream": "4.2.0",
|
||||||
"uuid": "^9.0.0"
|
"uuid": "^9.0.0"
|
||||||
|
@@ -36,6 +36,7 @@ export { TabsService, NewTabParameters, TabComponentType } from '../services/tab
|
|||||||
export { UpdaterService } from '../services/updater.service'
|
export { UpdaterService } from '../services/updater.service'
|
||||||
export { VaultService, Vault, VaultSecret, VaultFileSecret, VAULT_SECRET_TYPE_FILE, StoredVault, VaultSecretKey } from '../services/vault.service'
|
export { VaultService, Vault, VaultSecret, VaultFileSecret, VAULT_SECRET_TYPE_FILE, StoredVault, VaultSecretKey } from '../services/vault.service'
|
||||||
export { FileProvidersService } from '../services/fileProviders.service'
|
export { FileProvidersService } from '../services/fileProviders.service'
|
||||||
export { LocaleService, TranslateServiceWrapper as TranslateService } from '../services/locale.service'
|
export { LocaleService } from '../services/locale.service'
|
||||||
|
export { TranslateService } from '@ngx-translate/core'
|
||||||
export * from '../utils'
|
export * from '../utils'
|
||||||
export { UTF8Splitter } from '../utfSplitter'
|
export { UTF8Splitter } from '../utfSplitter'
|
||||||
|
@@ -176,6 +176,7 @@ export abstract class PlatformService {
|
|||||||
abstract setErrorHandler (handler: (_: any) => void): void
|
abstract setErrorHandler (handler: (_: any) => void): void
|
||||||
abstract popupContextMenu (menu: MenuItemOptions[], event?: MouseEvent): void
|
abstract popupContextMenu (menu: MenuItemOptions[], event?: MouseEvent): void
|
||||||
abstract showMessageBox (options: MessageBoxOptions): Promise<MessageBoxResult>
|
abstract showMessageBox (options: MessageBoxOptions): Promise<MessageBoxResult>
|
||||||
|
abstract pickDirectory (): Promise<string>
|
||||||
abstract quit (): void
|
abstract quit (): void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -13,4 +13,5 @@ export abstract class Theme {
|
|||||||
|
|
||||||
macOSWindowButtonsInsetX?: number
|
macOSWindowButtonsInsetX?: number
|
||||||
macOSWindowButtonsInsetY?: number
|
macOSWindowButtonsInsetY?: number
|
||||||
|
followsColorScheme?: boolean
|
||||||
}
|
}
|
||||||
|
@@ -71,7 +71,7 @@ title-bar(
|
|||||||
ngbDropdown
|
ngbDropdown
|
||||||
)
|
)
|
||||||
button.btn.btn-secondary.btn-tab-bar(
|
button.btn.btn-secondary.btn-tab-bar(
|
||||||
[title]='button.title',
|
[title]='button.label',
|
||||||
(click)='button.run && button.run()',
|
(click)='button.run && button.run()',
|
||||||
[fastHtmlBind]='button.icon',
|
[fastHtmlBind]='button.icon',
|
||||||
ngbDropdownToggle,
|
ngbDropdownToggle,
|
||||||
|
@@ -10,11 +10,12 @@
|
|||||||
cursor: default;
|
cursor: default;
|
||||||
animation: 0.5s ease-out fadeIn;
|
animation: 0.5s ease-out fadeIn;
|
||||||
transition: 0.25s background;
|
transition: 0.25s background;
|
||||||
|
|
||||||
|
--tabs-height: calc(38px * var(--spaciness));
|
||||||
|
--side-tab-width: calc(200px * var(--spaciness));
|
||||||
}
|
}
|
||||||
|
|
||||||
$tabs-height: 38px;
|
|
||||||
$tab-border-radius: 4px;
|
$tab-border-radius: 4px;
|
||||||
$side-tab-width: 200px;
|
|
||||||
|
|
||||||
.wrap {
|
.wrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -46,19 +47,19 @@ $side-tab-width: 200px;
|
|||||||
|
|
||||||
.content.tabs-on-side > .tab-bar {
|
.content.tabs-on-side > .tab-bar {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: $side-tab-width;
|
width: var(--side-tab-width);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
background: rgba(0, 0, 0, 0.25);
|
background: rgba(0, 0, 0, 0.25);
|
||||||
|
|
||||||
.tabs {
|
.tabs {
|
||||||
width: $side-tab-width;
|
width: var(--side-tab-width);
|
||||||
flex: none;
|
flex: none;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
tab-header {
|
tab-header {
|
||||||
flex: 0 0 $tabs-height;
|
flex: 0 0 var(--tabs-height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,18 +70,22 @@ $side-tab-width: 200px;
|
|||||||
&>.inset {
|
&>.inset {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::ng-deep tab-header {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.tab-bar {
|
.tab-bar {
|
||||||
flex: none;
|
flex: none;
|
||||||
height: $tabs-height;
|
height: var(--tabs-height);
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.btn-tab-bar {
|
.btn-tab-bar {
|
||||||
line-height: $tabs-height + 2px;
|
line-height: calc(var(--tabs-height) + 2px);
|
||||||
height: $tabs-height;
|
height: var(--tabs-height);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -113,17 +118,20 @@ $side-tab-width: 200px;
|
|||||||
&>.drag-space {
|
&>.drag-space {
|
||||||
min-width: 1px;
|
min-width: 1px;
|
||||||
flex: 1 0 1%;
|
flex: 1 0 1%;
|
||||||
margin-top: 2px; // for window resizing
|
|
||||||
-webkit-app-region: drag;
|
-webkit-app-region: drag;
|
||||||
|
|
||||||
|
.tabs-on-top & {
|
||||||
|
margin-top: 2px; // for window resizing
|
||||||
|
}
|
||||||
|
|
||||||
&.persistent {
|
&.persistent {
|
||||||
min-width: 72px; // 2 x 36 px height, ie 2 squares
|
min-width: 72px; // 2 x 36 px height, ie 2 squares
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& > .inset {
|
& > .inset {
|
||||||
width: 85px;
|
width: calc(70px + 15px * var(--spaciness));
|
||||||
height: $tabs-height;
|
height: var(--tabs-height);
|
||||||
flex: none;
|
flex: none;
|
||||||
-webkit-app-region: drag;
|
-webkit-app-region: drag;
|
||||||
}
|
}
|
||||||
@@ -170,18 +178,12 @@ hotkey-hint {
|
|||||||
|
|
||||||
::ng-deep .btn-tab-bar svg,
|
::ng-deep .btn-tab-bar svg,
|
||||||
::ng-deep .btn-tab-bar + .dropdown-menu svg {
|
::ng-deep .btn-tab-bar + .dropdown-menu svg {
|
||||||
width: 22px;
|
width: calc(22px * var(--spaciness));
|
||||||
height: 16px;
|
height: calc(16px * var(--spaciness));
|
||||||
fill: white;
|
fill: white;
|
||||||
fill-opacity: 0.75;
|
fill-opacity: 0.75;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-wrapper {
|
|
||||||
display: flex;
|
|
||||||
width: 16px;
|
|
||||||
height: 17px;
|
|
||||||
}
|
|
||||||
|
|
||||||
::ng-deep .btn-update svg {
|
::ng-deep .btn-update svg {
|
||||||
fill: cyan;
|
fill: cyan;
|
||||||
}
|
}
|
||||||
|
@@ -55,8 +55,8 @@ function makeTabAnimation (dimension: string, size: number) {
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: require('./appRoot.component.pug'),
|
templateUrl: './appRoot.component.pug',
|
||||||
styles: [require('./appRoot.component.scss')],
|
styleUrls: ['./appRoot.component.scss'],
|
||||||
animations: [
|
animations: [
|
||||||
trigger('animateTab', makeTabAnimation('width', 200)),
|
trigger('animateTab', makeTabAnimation('width', 200)),
|
||||||
],
|
],
|
||||||
@@ -79,8 +79,8 @@ export class AppRootComponent {
|
|||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private hotkeys: HotkeysService,
|
private hotkeys: HotkeysService,
|
||||||
private updater: UpdaterService,
|
|
||||||
private commands: CommandService,
|
private commands: CommandService,
|
||||||
|
public updater: UpdaterService,
|
||||||
public hostWindow: HostWindowService,
|
public hostWindow: HostWindowService,
|
||||||
public hostApp: HostAppService,
|
public hostApp: HostAppService,
|
||||||
public config: ConfigService,
|
public config: ConfigService,
|
||||||
@@ -90,6 +90,7 @@ export class AppRootComponent {
|
|||||||
ngbModal: NgbModal,
|
ngbModal: NgbModal,
|
||||||
_themes: ThemesService,
|
_themes: ThemesService,
|
||||||
) {
|
) {
|
||||||
|
// document.querySelector('app-root')?.remove()
|
||||||
this.logger = log.create('main')
|
this.logger = log.create('main')
|
||||||
this.logger.info('v', platform.getAppVersion())
|
this.logger.info('v', platform.getAppVersion())
|
||||||
|
|
||||||
|
@@ -19,6 +19,7 @@ export interface GetRecoveryTokenOptions {
|
|||||||
/**
|
/**
|
||||||
* Abstract base class for custom tab components
|
* Abstract base class for custom tab components
|
||||||
*/
|
*/
|
||||||
|
// @Component({ template: '' })
|
||||||
export abstract class BaseTabComponent extends BaseComponent {
|
export abstract class BaseTabComponent extends BaseComponent {
|
||||||
/**
|
/**
|
||||||
* Parent tab (usually a SplitTabComponent)
|
* Parent tab (usually a SplitTabComponent)
|
||||||
@@ -191,6 +192,14 @@ export abstract class BaseTabComponent extends BaseComponent {
|
|||||||
this.viewContainer = undefined
|
this.viewContainer = undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get topmostParent (): BaseTabComponent|null {
|
||||||
|
let parent = this.parent
|
||||||
|
while (parent?.parent) {
|
||||||
|
parent = parent.parent
|
||||||
|
}
|
||||||
|
return parent
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called before the tab is closed
|
* Called before the tab is closed
|
||||||
*/
|
*/
|
||||||
|
@@ -6,9 +6,9 @@ import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'
|
|||||||
@Component({
|
@Component({
|
||||||
selector: 'checkbox',
|
selector: 'checkbox',
|
||||||
template: `
|
template: `
|
||||||
<div class="custom-control custom-checkbox">
|
<div class="form-check form-checkbox">
|
||||||
<input type="checkbox" class="custom-control-input" [(ngModel)]='model'>
|
<input type="checkbox" class="form-check-input" [(ngModel)]='model'>
|
||||||
<label class="custom-control-label">{{text}}</label>
|
<label class="form-check-label">{{text}}</label>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
providers: [
|
providers: [
|
||||||
|
@@ -5,5 +5,5 @@ i.icon(
|
|||||||
)
|
)
|
||||||
.icon(
|
.icon(
|
||||||
[fastHtmlBind]='icon',
|
[fastHtmlBind]='icon',
|
||||||
*ngIf='isHTML'
|
*ngIf='isHTML && icon'
|
||||||
)
|
)
|
||||||
|
@@ -5,8 +5,8 @@ import { BaseComponent } from './base.component'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'profile-icon',
|
selector: 'profile-icon',
|
||||||
template: require('./profileIcon.component.pug'),
|
templateUrl:'./profileIcon.component.pug',
|
||||||
styles: [require('./profileIcon.component.scss')],
|
styleUrls: ['./profileIcon.component.scss'],
|
||||||
})
|
})
|
||||||
export class ProfileIconComponent extends BaseComponent {
|
export class ProfileIconComponent extends BaseComponent {
|
||||||
@Input() icon?: string
|
@Input() icon?: string
|
||||||
|
@@ -14,6 +14,6 @@
|
|||||||
[(ngModel)]='remember',
|
[(ngModel)]='remember',
|
||||||
text='Remember'
|
text='Remember'
|
||||||
)
|
)
|
||||||
button.btn.btn-primary.ml-auto(
|
button.btn.btn-primary.ms-auto(
|
||||||
(click)='ok()',
|
(click)='ok()',
|
||||||
) OK
|
) OK
|
||||||
|
@@ -3,10 +3,11 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
|||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
template: require('./promptModal.component.pug'),
|
templateUrl:'./promptModal.component.pug',
|
||||||
})
|
})
|
||||||
export class PromptModalComponent {
|
export class PromptModalComponent {
|
||||||
@Input() value: string
|
@Input() value: string
|
||||||
|
@Input() prompt: string|undefined
|
||||||
@Input() password: boolean
|
@Input() password: boolean
|
||||||
@Input() remember: boolean
|
@Input() remember: boolean
|
||||||
@Input() showRememberCheckbox: boolean
|
@Input() showRememberCheckbox: boolean
|
||||||
|
@@ -5,7 +5,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'rename-tab-modal',
|
selector: 'rename-tab-modal',
|
||||||
template: require('./renameTabModal.component.pug'),
|
templateUrl:'./renameTabModal.component.pug',
|
||||||
})
|
})
|
||||||
export class RenameTabModalComponent {
|
export class RenameTabModalComponent {
|
||||||
@Input() value: string
|
@Input() value: string
|
||||||
|
@@ -3,7 +3,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
|||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
template: require('./safeModeModal.component.pug'),
|
templateUrl:'./safeModeModal.component.pug',
|
||||||
})
|
})
|
||||||
export class SafeModeModalComponent {
|
export class SafeModeModalComponent {
|
||||||
@Input() error: Error
|
@Input() error: Error
|
||||||
|
@@ -21,14 +21,14 @@
|
|||||||
[icon]='option.icon',
|
[icon]='option.icon',
|
||||||
[color]='option.color'
|
[color]='option.color'
|
||||||
)
|
)
|
||||||
.title.mr-2 {{getOptionText(option)}}
|
.title.me-2 {{getOptionText(option)}}
|
||||||
.description.no-wrap.text-muted(
|
.description.no-wrap.text-muted(
|
||||||
*ngIf='option.description !== getOptionText(option)'
|
*ngIf='option.description !== getOptionText(option)'
|
||||||
) {{option.description}}
|
) {{option.description}}
|
||||||
.ml-auto
|
.ms-auto
|
||||||
.no-wrap.badge.badge-secondary.text-muted.ml-2(*ngIf='selectedIndex == i && canEditSelected()')
|
.no-wrap.badge.text-bg-secondary.text-muted.ms-2(*ngIf='selectedIndex == i && canEditSelected()')
|
||||||
span Backspace
|
span Backspace
|
||||||
i.fas.fa-pencil.ml-1
|
i.fas.fa-pencil.ms-1
|
||||||
.no-wrap.badge.badge-secondary.text-muted.ml-2(*ngIf='selectedIndex == i')
|
.no-wrap.badge.text-bg-secondary.text-muted.ms-2(*ngIf='selectedIndex == i')
|
||||||
span Enter
|
span Enter
|
||||||
i.fas.fa-arrow-right.ml-1
|
i.fas.fa-arrow-right.ms-1
|
||||||
|
@@ -7,8 +7,8 @@ import { SelectorOption } from '../api/selector'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'selector-modal',
|
selector: 'selector-modal',
|
||||||
template: require('./selectorModal.component.pug'),
|
templateUrl:'./selectorModal.component.pug',
|
||||||
styles: [require('./selectorModal.component.scss')],
|
styleUrls: ['./selectorModal.component.scss'],
|
||||||
})
|
})
|
||||||
export class SelectorModalComponent<T> {
|
export class SelectorModalComponent<T> {
|
||||||
@Input() options: SelectorOption<T>[]
|
@Input() options: SelectorOption<T>[]
|
||||||
|
@@ -1,11 +1,12 @@
|
|||||||
import { HostBinding, ElementRef } from '@angular/core'
|
import { HostBinding, ElementRef, Component } from '@angular/core'
|
||||||
import { BaseComponent } from './base.component'
|
import { BaseComponent } from './base.component'
|
||||||
|
|
||||||
|
@Component({})
|
||||||
export abstract class SelfPositioningComponent extends BaseComponent {
|
export abstract class SelfPositioningComponent extends BaseComponent {
|
||||||
@HostBinding('style.left') cssLeft: string
|
@HostBinding('style.left') cssLeft = ''
|
||||||
@HostBinding('style.top') cssTop: string
|
@HostBinding('style.top') cssTop = ''
|
||||||
@HostBinding('style.width') cssWidth: string | null
|
@HostBinding('style.width') cssWidth: string | null = null
|
||||||
@HostBinding('style.height') cssHeight: string | null
|
@HostBinding('style.height') cssHeight: string | null = null
|
||||||
|
|
||||||
constructor (protected element: ElementRef) { super() }
|
constructor (protected element: ElementRef) { super() }
|
||||||
|
|
||||||
|
@@ -186,7 +186,7 @@ export type SplitDropZoneInfo = {
|
|||||||
>
|
>
|
||||||
</split-tab-pane-label>
|
</split-tab-pane-label>
|
||||||
`,
|
`,
|
||||||
styles: [require('./splitTab.component.scss')],
|
styleUrls: ['./splitTab.component.scss'],
|
||||||
})
|
})
|
||||||
export class SplitTabComponent extends BaseTabComponent implements AfterViewInit, OnDestroy {
|
export class SplitTabComponent extends BaseTabComponent implements AfterViewInit, OnDestroy {
|
||||||
static DIRECTIONS: SplitDirection[] = ['t', 'r', 'b', 'l']
|
static DIRECTIONS: SplitDirection[] = ['t', 'r', 'b', 'l']
|
||||||
@@ -458,12 +458,18 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
|||||||
tab.destroy()
|
tab.destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let allTabs: BaseTabComponent[] = []
|
||||||
if (thing instanceof BaseTabComponent) {
|
if (thing instanceof BaseTabComponent) {
|
||||||
if (thing.parent instanceof SplitTabComponent) {
|
allTabs = [thing]
|
||||||
thing.parent.removeTab(thing)
|
} else if (thing instanceof SplitContainer) {
|
||||||
|
allTabs = thing.getAllTabs()
|
||||||
|
}
|
||||||
|
for (const tab of allTabs) {
|
||||||
|
if (tab.parent instanceof SplitTabComponent) {
|
||||||
|
tab.parent.removeTab(tab)
|
||||||
}
|
}
|
||||||
thing.removeFromContainer()
|
tab.removeFromContainer()
|
||||||
thing.parent = this
|
tab.parent = this
|
||||||
}
|
}
|
||||||
|
|
||||||
let target = relative ? this.getParentOf(relative) : null
|
let target = relative ? this.getParentOf(relative) : null
|
||||||
|
@@ -18,7 +18,7 @@ import { SplitDropZoneInfo, SplitTabComponent } from './splitTab.component'
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
styles: [require('./splitTabDropZone.component.scss')],
|
styleUrls: ['./splitTabDropZone.component.scss'],
|
||||||
})
|
})
|
||||||
export class SplitTabDropZoneComponent extends SelfPositioningComponent {
|
export class SplitTabDropZoneComponent extends SelfPositioningComponent {
|
||||||
@Input() dropZone: SplitDropZoneInfo
|
@Input() dropZone: SplitDropZoneInfo
|
||||||
|
@@ -15,11 +15,11 @@ import { SelfPositioningComponent } from './selfPositioning.component'
|
|||||||
(cdkDragStarted)='onTabDragStart(tab)'
|
(cdkDragStarted)='onTabDragStart(tab)'
|
||||||
(cdkDragEnded)='onTabDragEnd()'
|
(cdkDragEnded)='onTabDragEnd()'
|
||||||
>
|
>
|
||||||
<i class="fa fa-window-maximize mr-3"></i>
|
<i class="fa fa-window-maximize me-3"></i>
|
||||||
<label>{{tab.title}}</label>
|
<label>{{tab.title}}</label>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
styles: [require('./splitTabPaneLabel.component.scss')],
|
styleUrls: ['./splitTabPaneLabel.component.scss'],
|
||||||
})
|
})
|
||||||
export class SplitTabPaneLabelComponent extends SelfPositioningComponent {
|
export class SplitTabPaneLabelComponent extends SelfPositioningComponent {
|
||||||
@Input() tab: BaseTabComponent
|
@Input() tab: BaseTabComponent
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
transition: 0.125s background;
|
transition: 0.125s background;
|
||||||
background: rgba(0, 0, 0, .2);
|
|
||||||
|
|
||||||
&.v {
|
&.v {
|
||||||
cursor: ns-resize;
|
cursor: ns-resize;
|
||||||
@@ -16,8 +15,4 @@
|
|||||||
width: 10px;
|
width: 10px;
|
||||||
margin-left: -5px;
|
margin-left: -5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover, &.active {
|
|
||||||
background: rgba(255, 255, 255, .125);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,7 @@ import { SplitContainer } from './splitTab.component'
|
|||||||
@Component({
|
@Component({
|
||||||
selector: 'split-tab-spanner',
|
selector: 'split-tab-spanner',
|
||||||
template: '',
|
template: '',
|
||||||
styles: [require('./splitTabSpanner.component.scss')],
|
styleUrls: ['./splitTabSpanner.component.scss'],
|
||||||
})
|
})
|
||||||
export class SplitTabSpannerComponent extends SelfPositioningComponent {
|
export class SplitTabSpannerComponent extends SelfPositioningComponent {
|
||||||
@Input() container: SplitContainer
|
@Input() container: SplitContainer
|
||||||
|
@@ -1,10 +1,11 @@
|
|||||||
div
|
|
||||||
|
.mt-auto.mb-auto
|
||||||
.tabby-logo
|
.tabby-logo
|
||||||
h1.tabby-title Tabby
|
h1.tabby-title Tabby
|
||||||
sup α
|
sup α
|
||||||
|
|
||||||
.list-group.mb-4
|
.list-group.mb-4
|
||||||
a.list-group-item.list-group-item-action.d-flex(
|
a.list-group-item.list-group-item-action.d-flex.pt-3.pb-3(
|
||||||
*ngFor='let command of commands; trackBy: buttonsTrackBy',
|
*ngFor='let command of commands; trackBy: buttonsTrackBy',
|
||||||
(click)='command.run()',
|
(click)='command.run()',
|
||||||
)
|
)
|
||||||
@@ -12,11 +13,11 @@ div
|
|||||||
span {{command.label}}
|
span {{command.label}}
|
||||||
|
|
||||||
footer.d-flex.align-items-center
|
footer.d-flex.align-items-center
|
||||||
.btn-group.mr-auto
|
.btn-group.me-auto
|
||||||
button.btn.btn-dark((click)='homeBase.openGitHub()')
|
button.btn.btn-link((click)='homeBase.openGitHub()')
|
||||||
i.fab.fa-github
|
i.fab.fa-github
|
||||||
span GitHub
|
span GitHub
|
||||||
button.btn.btn-dark((click)='homeBase.reportBug()')
|
button.btn.btn-link((click)='homeBase.reportBug()')
|
||||||
i.fas.fa-bug
|
i.fas.fa-bug
|
||||||
span(translate) Report a problem
|
span(translate) Report a problem
|
||||||
|
|
||||||
|
@@ -7,8 +7,8 @@ import { Command, CommandLocation } from '../api/commands'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'start-page',
|
selector: 'start-page',
|
||||||
template: require('./startPage.component.pug'),
|
templateUrl:'./startPage.component.pug',
|
||||||
styles: [require('./startPage.component.scss')],
|
styleUrls: ['./startPage.component.scss'],
|
||||||
})
|
})
|
||||||
export class StartPageComponent {
|
export class StartPageComponent {
|
||||||
version: string
|
version: string
|
||||||
@@ -28,7 +28,8 @@ export class StartPageComponent {
|
|||||||
return this.domSanitizer.bypassSecurityTrustHtml(icon ?? '')
|
return this.domSanitizer.bypassSecurityTrustHtml(icon ?? '')
|
||||||
}
|
}
|
||||||
|
|
||||||
buttonsTrackBy (btn: Command): any {
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
||||||
|
buttonsTrackBy (_, btn: Command): any {
|
||||||
return btn.label + btn.icon
|
return btn.label + btn.icon
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -7,9 +7,4 @@
|
|||||||
>* {
|
>* {
|
||||||
flex: auto;
|
flex: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
> perfect-scrollbar {
|
|
||||||
width: auto;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -8,9 +8,9 @@ import { BaseTabComponent } from '../components/baseTab.component'
|
|||||||
template: `
|
template: `
|
||||||
<ng-template #placeholder></ng-template>
|
<ng-template #placeholder></ng-template>
|
||||||
`,
|
`,
|
||||||
styles: [
|
styleUrls: [
|
||||||
require('./tabBody.component.scss'),
|
'./tabBody.component.scss',
|
||||||
require('./tabBody.deep.component.css'),
|
'./tabBody.deep.component.css',
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class TabBodyComponent implements OnChanges {
|
export class TabBodyComponent implements OnChanges {
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
profile-icon(
|
profile-icon(
|
||||||
*ngIf='config.store.terminal.showTabProfileIcon && tab.icon',
|
*ngIf='config.store.terminal.showTabProfileIcon && tab.icon',
|
||||||
[icon]='tab.icon',
|
[icon]='tab.icon',
|
||||||
[color]='tab.color'
|
[color]='tab.color ?? undefined'
|
||||||
)
|
)
|
||||||
|
|
||||||
.name(
|
.name(
|
||||||
|
@@ -35,7 +35,7 @@ $tabs-height: 38px;
|
|||||||
-webkit-app-region: no-drag;
|
-webkit-app-region: no-drag;
|
||||||
cursor: -webkit-grab;
|
cursor: -webkit-grab;
|
||||||
|
|
||||||
width: 22px;
|
width: calc(22px * var(--spaciness));
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transition: 0.25s all;
|
transition: 0.25s all;
|
||||||
@@ -144,6 +144,5 @@ $tabs-height: 38px;
|
|||||||
right: 10px;
|
right: 10px;
|
||||||
bottom: 4px;
|
bottom: 4px;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
z-index: -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -15,8 +15,8 @@ import { PlatformService } from '../api/platform'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'tab-header',
|
selector: 'tab-header',
|
||||||
template: require('./tabHeader.component.pug'),
|
templateUrl:'./tabHeader.component.pug',
|
||||||
styles: [require('./tabHeader.component.scss')],
|
styleUrls: ['./tabHeader.component.scss'],
|
||||||
})
|
})
|
||||||
export class TabHeaderComponent extends BaseComponent {
|
export class TabHeaderComponent extends BaseComponent {
|
||||||
@Input() index: number
|
@Input() index: number
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
.title((dblclick)='hostApp.toggleMaximize()') Tabby
|
.title((dblclick)='hostWindow.toggleMaximize()') Tabby
|
||||||
window-controls
|
window-controls
|
||||||
|
@@ -1,9 +1,12 @@
|
|||||||
import { Component } from '@angular/core'
|
import { Component } from '@angular/core'
|
||||||
|
import { HostWindowService } from '../api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'title-bar',
|
selector: 'title-bar',
|
||||||
template: require('./titleBar.component.pug'),
|
templateUrl:'./titleBar.component.pug',
|
||||||
styles: [require('./titleBar.component.scss')],
|
styleUrls: ['./titleBar.component.scss'],
|
||||||
})
|
})
|
||||||
export class TitleBarComponent { } // eslint-disable-line @typescript-eslint/no-extraneous-class
|
export class TitleBarComponent {
|
||||||
|
constructor (public hostWindow: HostWindowService) { }
|
||||||
|
}
|
||||||
|
@@ -4,17 +4,19 @@
|
|||||||
$height: 30px;
|
$height: 30px;
|
||||||
$padding: 2px;
|
$padding: 2px;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
overflow: visible;
|
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
line-height: $height;
|
line-height: $height;
|
||||||
height: $height;
|
height: $height;
|
||||||
transition: 0.25s opacity;
|
transition: 0.25s opacity;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
overflow: hidden;
|
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
margin-left: -10px;
|
margin-left: -10px;
|
||||||
|
|
||||||
|
.form-check {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
&.disabled {
|
&.disabled {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
@@ -22,4 +24,8 @@
|
|||||||
* {
|
* {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,12 +6,12 @@ import { CheckboxComponent } from './checkbox.component'
|
|||||||
@Component({
|
@Component({
|
||||||
selector: 'toggle',
|
selector: 'toggle',
|
||||||
template: `
|
template: `
|
||||||
<div class="custom-control custom-switch">
|
<div class="form-check form-switch">
|
||||||
<input type="checkbox" class="custom-control-input" [(ngModel)]='model'>
|
<input type="checkbox" class="form-check-input" [(ngModel)]='model'>
|
||||||
<label class="custom-control-label"></label>
|
<label class="cform-check-label"></label>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
styles: [require('./toggle.component.scss')],
|
styleUrls: ['./toggle.component.scss'],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true },
|
{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true },
|
||||||
],
|
],
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
.d-flex.align-items-center
|
.d-flex.align-items-center
|
||||||
.dropdown-header(translate) File transfers
|
.dropdown-header(translate) File transfers
|
||||||
button.btn.btn-link.ml-auto((click)='removeAll(); $event.stopPropagation()') !{require('../icons/times.svg')}
|
button.btn.btn-link.ms-auto((click)='removeAll(); $event.stopPropagation()') !{require('../icons/times.svg')}
|
||||||
.transfer(*ngFor='let transfer of transfers', (click)='showTransfer(transfer)')
|
.transfer(*ngFor='let transfer of transfers', (click)='showTransfer(transfer)')
|
||||||
.icon(*ngIf='isDownload(transfer)') !{require('../icons/download.svg')}
|
.icon(*ngIf='isDownload(transfer)') !{require('../icons/download.svg')}
|
||||||
.icon(*ngIf='!isDownload(transfer)') !{require('../icons/upload.svg')}
|
.icon(*ngIf='!isDownload(transfer)') !{require('../icons/upload.svg')}
|
||||||
|
@@ -5,8 +5,8 @@ import { FileDownload, FileTransfer, PlatformService } from '../api/platform'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'transfers-menu',
|
selector: 'transfers-menu',
|
||||||
template: require('./transfersMenu.component.pug'),
|
templateUrl:'./transfersMenu.component.pug',
|
||||||
styles: [require('./transfersMenu.component.scss')],
|
styleUrls: ['./transfersMenu.component.scss'],
|
||||||
})
|
})
|
||||||
export class TransfersMenuComponent {
|
export class TransfersMenuComponent {
|
||||||
@Input() transfers: FileTransfer[]
|
@Input() transfers: FileTransfer[]
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
.modal-body
|
.modal-body
|
||||||
.d-flex.align-items-center.mb-3
|
.d-flex.align-items-center.mb-3
|
||||||
h3.m-0(translate) Vault is locked
|
h3.m-0(translate) Vault is locked
|
||||||
.ml-auto(ngbDropdown, placement='bottom-right')
|
.ms-auto(ngbDropdown, placement='bottom-right')
|
||||||
button.btn.btn-link(ngbDropdownToggle, (click)='$event.stopPropagation()')
|
button.btn.btn-link(ngbDropdownToggle, (click)='$event.stopPropagation()')
|
||||||
span(
|
span(
|
||||||
*ngIf='rememberFor',
|
*ngIf='rememberFor',
|
||||||
@@ -29,6 +29,5 @@
|
|||||||
(keyup.enter)='ok()',
|
(keyup.enter)='ok()',
|
||||||
(keyup.esc)='cancel()',
|
(keyup.esc)='cancel()',
|
||||||
)
|
)
|
||||||
.input-group-append
|
button.btn.btn-secondary((click)='ok()', *ngIf='passphrase')
|
||||||
button.btn.btn-secondary((click)='ok()', *ngIf='passphrase')
|
i.fas.fa-check
|
||||||
i.fas.fa-check
|
|
||||||
|
@@ -3,7 +3,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
|||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
template: require('./unlockVaultModal.component.pug'),
|
templateUrl:'./unlockVaultModal.component.pug',
|
||||||
})
|
})
|
||||||
export class UnlockVaultModalComponent {
|
export class UnlockVaultModalComponent {
|
||||||
passphrase: string
|
passphrase: string
|
||||||
|
@@ -8,8 +8,8 @@ import { LocaleService } from '../services/locale.service'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'welcome-page',
|
selector: 'welcome-page',
|
||||||
template: require('./welcomeTab.component.pug'),
|
templateUrl:'./welcomeTab.component.pug',
|
||||||
styles: [require('./welcomeTab.component.scss')],
|
styleUrls: ['./welcomeTab.component.scss'],
|
||||||
})
|
})
|
||||||
export class WelcomeTabComponent extends BaseTabComponent {
|
export class WelcomeTabComponent extends BaseTabComponent {
|
||||||
enableGlobalHotkey = true
|
enableGlobalHotkey = true
|
||||||
|
@@ -1,18 +1,18 @@
|
|||||||
button.btn.btn-secondary.btn-minimize(
|
button.btn.btn-dark(
|
||||||
(click)='hostWindow.minimize()',
|
(click)='hostWindow.minimize()',
|
||||||
)
|
)
|
||||||
svg(version='1.1', width='10', height='10')
|
svg(version='1.1', width='10', height='10')
|
||||||
path(d='M 0,5 10,5 10,6 0,6 Z')
|
path(d='M 0,5 10,5 10,6 0,6 Z')
|
||||||
|
|
||||||
button.btn.btn-secondary.btn-maximize((click)='hostWindow.toggleMaximize()', *ngIf='!hostWindow.isMaximized()')
|
button.btn.btn-dark((click)='hostWindow.toggleMaximize()', *ngIf='!hostWindow.isMaximized()')
|
||||||
svg(version='1.1', width='10', height='10')
|
svg(version='1.1', width='10', height='10')
|
||||||
path(d='M 0,0 0,10 10,10 10,0 Z M 1,1 9,1 9,9 1,9 Z')
|
path(d='M 0,0 0,10 10,10 10,0 Z M 1,1 9,1 9,9 1,9 Z')
|
||||||
|
|
||||||
button.btn.btn-secondary.btn-maximize((click)='hostWindow.toggleMaximize()', *ngIf='hostWindow.isMaximized()')
|
button.btn.btn-dark((click)='hostWindow.toggleMaximize()', *ngIf='hostWindow.isMaximized()')
|
||||||
svg(version='1.1', width='10', height='10', viewBox='0 0 512 512')
|
svg(version='1.1', width='10', height='10', viewBox='0 0 512 512')
|
||||||
path(d="M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM32 144c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-80zm448 224c0 8.8-7.2 16-16 16h-48V144c0-26.5-21.5-48-48-48H128V48c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320z")
|
path(d="M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM32 144c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-80zm448 224c0 8.8-7.2 16-16 16h-48V144c0-26.5-21.5-48-48-48H128V48c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320z")
|
||||||
|
|
||||||
button.btn.btn-secondary.btn-close(
|
button.btn.btn-danger(
|
||||||
(click)='closeWindow()'
|
(click)='closeWindow()'
|
||||||
)
|
)
|
||||||
svg(version='1.1', width='10', height='10')
|
svg(version='1.1', width='10', height='10')
|
||||||
|
@@ -6,8 +6,8 @@ import { AppService } from '../services/app.service'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'window-controls',
|
selector: 'window-controls',
|
||||||
template: require('./windowControls.component.pug'),
|
templateUrl:'./windowControls.component.pug',
|
||||||
styles: [require('./windowControls.component.scss')],
|
styleUrls: ['./windowControls.component.scss'],
|
||||||
})
|
})
|
||||||
export class WindowControlsComponent {
|
export class WindowControlsComponent {
|
||||||
constructor (public hostWindow: HostWindowService, public app: AppService) { }
|
constructor (public hostWindow: HostWindowService, public app: AppService) { }
|
||||||
|
@@ -4,10 +4,10 @@ import { Platform } from './api/hostApp'
|
|||||||
/** @hidden */
|
/** @hidden */
|
||||||
export class CoreConfigProvider extends ConfigProvider {
|
export class CoreConfigProvider extends ConfigProvider {
|
||||||
platformDefaults = {
|
platformDefaults = {
|
||||||
[Platform.macOS]: require('./configDefaults.macos.yaml'),
|
[Platform.macOS]: require('./configDefaults.macos.yaml').default,
|
||||||
[Platform.Windows]: require('./configDefaults.windows.yaml'),
|
[Platform.Windows]: require('./configDefaults.windows.yaml').default,
|
||||||
[Platform.Linux]: require('./configDefaults.linux.yaml'),
|
[Platform.Linux]: require('./configDefaults.linux.yaml').default,
|
||||||
[Platform.Web]: require('./configDefaults.web.yaml'),
|
[Platform.Web]: require('./configDefaults.web.yaml').default,
|
||||||
}
|
}
|
||||||
defaults = require('./configDefaults.yaml')
|
defaults = require('./configDefaults.yaml').default
|
||||||
}
|
}
|
||||||
|
@@ -36,8 +36,7 @@ hotkeys:
|
|||||||
- '⌘-8'
|
- '⌘-8'
|
||||||
tab-9:
|
tab-9:
|
||||||
- '⌘-9'
|
- '⌘-9'
|
||||||
tab-10:
|
tab-10: []
|
||||||
- '⌘-0'
|
|
||||||
duplicate-tab: []
|
duplicate-tab: []
|
||||||
restart-tab: []
|
restart-tab: []
|
||||||
explode-tab:
|
explode-tab:
|
||||||
|
@@ -18,6 +18,7 @@ appearance:
|
|||||||
vibrancy: false
|
vibrancy: false
|
||||||
vibrancyType: 'blur'
|
vibrancyType: 'blur'
|
||||||
lastTabClosesWindow: false
|
lastTabClosesWindow: false
|
||||||
|
spaciness: 1
|
||||||
terminal:
|
terminal:
|
||||||
showBuiltinProfiles: true
|
showBuiltinProfiles: true
|
||||||
showRecentProfiles: 3
|
showRecentProfiles: 3
|
||||||
|
@@ -6,7 +6,7 @@ import { PlatformService } from '../api/platform'
|
|||||||
selector: '[fastHtmlBind]',
|
selector: '[fastHtmlBind]',
|
||||||
})
|
})
|
||||||
export class FastHtmlBindDirective implements OnChanges {
|
export class FastHtmlBindDirective implements OnChanges {
|
||||||
@Input() fastHtmlBind: string
|
@Input() fastHtmlBind?: string
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private el: ElementRef,
|
private el: ElementRef,
|
||||||
@@ -14,7 +14,7 @@ export class FastHtmlBindDirective implements OnChanges {
|
|||||||
) { }
|
) { }
|
||||||
|
|
||||||
ngOnChanges (): void {
|
ngOnChanges (): void {
|
||||||
this.el.nativeElement.innerHTML = this.fastHtmlBind || ''
|
this.el.nativeElement.innerHTML = this.fastHtmlBind ?? ''
|
||||||
for (const link of this.el.nativeElement.querySelectorAll('a')) {
|
for (const link of this.el.nativeElement.querySelectorAll('a')) {
|
||||||
link.addEventListener('click', event => {
|
link.addEventListener('click', event => {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user