mirror of
https://github.com/Eugeny/tabby.git
synced 2025-07-25 23:08:34 +00:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c12b445ccd |
@@ -1283,78 +1283,6 @@
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Mxmilu666",
|
||||
"name": "Mxmilu",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/82694310?v=4",
|
||||
"profile": "https://5k.work/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "C41M50N",
|
||||
"name": "Charles Buffington",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/29805363?v=4",
|
||||
"profile": "https://cbuff.dev",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "GeminiLn",
|
||||
"name": "Yu Qin",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/12425057?v=4",
|
||||
"profile": "https://github.com/GeminiLn",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "fireblue",
|
||||
"name": "fireblue",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1034929?v=4",
|
||||
"profile": "https://github.com/fireblue",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "marko1616",
|
||||
"name": "marko1616",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/45327989?v=4",
|
||||
"profile": "https://github.com/marko1616",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "SelfHosted-Club",
|
||||
"name": "SelfHosted",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128927132?v=4",
|
||||
"profile": "https://www.selfhosted.sg/",
|
||||
"contributions": [
|
||||
"financial"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "xhiroga",
|
||||
"name": "Hiroaki Ogasawara",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/13391129?v=4",
|
||||
"profile": "http://hiroga.hatenablog.com/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "geodic",
|
||||
"name": "geodic",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/64704703?v=4",
|
||||
"profile": "https://github.com/geodic",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
|
240
.github/workflows/build.yml
vendored
240
.github/workflows/build.yml
vendored
@@ -2,7 +2,7 @@ name: Package-Build
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
Lint:
|
||||
runs-on: ubuntu-24.04
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -13,12 +13,11 @@ jobs:
|
||||
- name: Installing Node
|
||||
uses: actions/setup-node@v3.7.0
|
||||
with:
|
||||
node-version: 22
|
||||
node-version: 16
|
||||
|
||||
- name: Install deps
|
||||
run: |
|
||||
sudo apt-get update && sudo apt-get install -y libfontconfig1-dev
|
||||
npm i -g yarn
|
||||
npm i -g yarn@1.19.1
|
||||
cd app
|
||||
yarn
|
||||
cd ..
|
||||
@@ -32,21 +31,15 @@ jobs:
|
||||
run: yarn run lint
|
||||
|
||||
macOS-Build:
|
||||
runs-on: macos-15
|
||||
runs-on: macos-12
|
||||
needs: Lint
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- arch: x86_64
|
||||
rust_triple: x86_64-apple-darwin
|
||||
- arch: arm64
|
||||
rust_triple: aarch64-apple-darwin
|
||||
fail-fast: false
|
||||
|
||||
env:
|
||||
ARCH: ${{matrix.arch}}
|
||||
RUST_TARGET_TRIPLE: ${{matrix.rust_triple}}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
@@ -56,16 +49,23 @@ jobs:
|
||||
- name: Installing Node
|
||||
uses: actions/setup-node@v3.7.0
|
||||
with:
|
||||
node-version: 22
|
||||
|
||||
- run: rustup target add ${{matrix.rust_triple}}
|
||||
node-version: 16
|
||||
|
||||
- name: Install deps
|
||||
run: |
|
||||
sudo -H pip3 install setuptools
|
||||
npm config set python python3
|
||||
sudo npm i -g yarn@1.22.1
|
||||
yarn --network-timeout 1000000
|
||||
env:
|
||||
ARCH: ${{matrix.arch}}
|
||||
|
||||
- name: Fix cross build
|
||||
run: |
|
||||
rm -rf app/node_modules/cpu-features
|
||||
rm -rf app/node_modules/ssh2/crypto/build
|
||||
if: matrix.arch == 'arm64'
|
||||
|
||||
- name: Webpack
|
||||
run: yarn run build
|
||||
|
||||
@@ -81,7 +81,7 @@ jobs:
|
||||
|
||||
- name: Build and sign packages
|
||||
run: scripts/build-macos.mjs
|
||||
if: github.event_name == 'push' && (github.ref_protected || 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:
|
||||
ARCH: ${{matrix.arch}}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -96,7 +96,7 @@ jobs:
|
||||
|
||||
- name: Build packages without signing
|
||||
run: scripts/build-macos.mjs
|
||||
if: "! (github.event_name == 'push' && (github.ref_protected || 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:
|
||||
ARCH: ${{matrix.arch}}
|
||||
# DEBUG: electron-builder,electron-builder:*
|
||||
@@ -130,34 +130,25 @@ jobs:
|
||||
path: artifact-zip
|
||||
|
||||
Linux-Build:
|
||||
runs-on: ${{matrix.os}}
|
||||
runs-on: ubuntu-20.04
|
||||
needs: Lint
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- build-arch: x64
|
||||
arch: amd64
|
||||
rust_triple: x86_64-unknown-linux-gnu
|
||||
os: ubuntu-24.04
|
||||
- build-arch: arm64
|
||||
arch: arm64
|
||||
rust_triple: aarch64-unknown-linux-gnu
|
||||
triplet: aarch64-linux-gnu-
|
||||
os: ubuntu-24.04-arm
|
||||
- build-arch: arm
|
||||
arch: armhf
|
||||
rust_triple: arm-unknown-linux-gnueabihf
|
||||
triplet: arm-linux-gnueabihf-
|
||||
os: ubuntu-24.04
|
||||
fail-fast: false
|
||||
|
||||
env:
|
||||
CC: ${{matrix.triplet}}gcc
|
||||
CXX: ${{matrix.triplet}}g++
|
||||
ARCH: ${{matrix.build-arch}}
|
||||
npm_config_arch: ${{matrix.build-arch}}
|
||||
npm_config_target_arch: ${{matrix.build-arch}}
|
||||
RUST_TARGET_TRIPLE: ${{matrix.rust_triple}}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -168,57 +159,54 @@ jobs:
|
||||
- name: Install Node
|
||||
uses: actions/setup-node@v3.7.0
|
||||
with:
|
||||
node-version: 22
|
||||
node-version: 18
|
||||
|
||||
- name: Install FPM
|
||||
run: |
|
||||
sudo gem install fpm
|
||||
|
||||
- run: rustup target add ${{matrix.rust_triple}}
|
||||
|
||||
- name: Install dependencies
|
||||
- name: Install deps (amd64)
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libfontconfig1-dev libarchive-tools zsh crossbuild-essential-${{matrix.arch}}
|
||||
sudo apt-get install libarchive-tools zsh python3-distutils
|
||||
|
||||
- name: Setup tar to run as root
|
||||
run: sudo chmod u+s "$(command -v tar)"
|
||||
if: matrix.build-arch == 'arm'
|
||||
|
||||
- name: Download cached sysroot
|
||||
uses: actions/cache@v3
|
||||
id: dl-cached-sysroot
|
||||
if: matrix.build-arch == 'arm'
|
||||
with:
|
||||
key: sysroot-${{matrix.build-arch}}
|
||||
path: /${{matrix.build-arch}}-sysroot
|
||||
|
||||
- name: Setup crossbuild sysroot
|
||||
- name: Install npm_modules (amd64)
|
||||
run: |
|
||||
sudo apt-get update -y && sudo apt-get install debootstrap qemu-user-static binfmt-support -y
|
||||
sudo qemu-debootstrap --include=libfontconfig1-dev,libsecret-1-dev,libnss3,libatk1.0-0,libatk-bridge2.0-0,libgdk-pixbuf2.0-0,libgtk-3-0,libgbm1 --variant=buildd --exclude=snapd --components=main,restricted,universe,multiverse --extractor=dpkg-deb --arch ${{matrix.arch}} bionic /${{matrix.build-arch}}-sysroot/ http://ports.ubuntu.com/ubuntu-ports/
|
||||
sudo find /${{matrix.build-arch}}-sysroot -type l -lname '/*' -exec sh -c 'file="$0"; dir=$(dirname "$file"); target=$(readlink "$0"); prefix=$(dirname "$dir" | sed 's@[^/]*@\.\.@g'); newtarget="$prefix$target"; ln -snf $newtarget $file' {} \; ;
|
||||
if: matrix.build-arch == 'arm' && steps.dl-cached-sysroot.outputs.cache-hit != 'true'
|
||||
npm i -g yarn
|
||||
yarn --network-timeout 1000000
|
||||
if: matrix.build-arch == 'x64'
|
||||
|
||||
- name: Setup env to use ${{matrix.build-arch}} sysroot
|
||||
- name: Setup Crossbuild (${{matrix.arch}})
|
||||
run: |
|
||||
echo "CFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
||||
echo "CXXFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
||||
echo "LDFLAGS=--sysroot=/${{matrix.build-arch}}-sysroot/" >> $GITHUB_ENV
|
||||
sudo apt-get update -y && sudo apt-get install schroot sbuild debootstrap -y
|
||||
sudo debootstrap --include=git,curl,gnupg,ca-certificates,crossbuild-essential-${{matrix.arch}},python-dev,python3-dev,libarchive-tools,cmake --variant=buildd --exclude=snapd --components=main,restricted,universe,multiverse --extractor=dpkg-deb bionic /build-chroot/
|
||||
echo 'deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse' | sudo tee /build-chroot/etc/apt/sources.list >/dev/null
|
||||
echo 'deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse' | sudo tee -a /build-chroot/etc/apt/sources.list >/dev/null
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee /build-chroot/etc/apt/trusted.gpg.d/nodesource.gpg >/dev/null
|
||||
echo 'deb http://deb.nodesource.com/node_16.x bionic main' | sudo tee /build-chroot/etc/apt/sources.list.d/nodesource.list >/dev/null
|
||||
echo "[build-chroot]
|
||||
description=Ubuntu 18.04 Build chroot
|
||||
type=directory
|
||||
directory=/build-chroot
|
||||
root-groups=root,sudo
|
||||
profile=buildd
|
||||
personality=linux
|
||||
union-type=overlay" | sudo tee /etc/schroot/chroot.d/build-chroot.pref >/dev/null
|
||||
echo "/home /home none rw,bind 0 0" | sudo tee -a /etc/schroot/buildd/fstab >/dev/null
|
||||
|
||||
[[ ${npm_config_arch} == 'arm' ]] && echo "npm_config_arch=armv7l" >> $GITHUB_ENV
|
||||
if: matrix.build-arch != 'x64'
|
||||
|
||||
if [[ ${{matrix.arch}} == 'armhf' ]]; then
|
||||
echo "PKG_CONFIG_PATH=/${{matrix.build-arch}}-sysroot/usr/lib/pkgconfig/:/${{matrix.build-arch}}-sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig/" >> $GITHUB_ENV
|
||||
elif [[ ${{matrix.arch}} == 'arm64' ]]; then
|
||||
echo "PKG_CONFIG_PATH=/${{matrix.build-arch}}-sysroot/usr/lib/pkgconfig/:/${{matrix.build-arch}}-sysroot/usr/lib/aarch64-linux-gnu/pkgconfig/" >> $GITHUB_ENV
|
||||
fi
|
||||
if: matrix.build-arch == 'arm'
|
||||
|
||||
- name: Install npm_modules (native)
|
||||
- name: Install node_modules & CrossBuild native modules for ${{matrix.arch}}
|
||||
run: |
|
||||
npm i -g yarn node-gyp
|
||||
yarn --network-timeout 1000000 --arch=${{matrix.build-arch}} --target-arch=${{matrix.build-arch}}
|
||||
sudo schroot -c build-chroot -u root -- bash -c "apt-get update -y
|
||||
dpkg --add-architecture ${{matrix.arch}}
|
||||
apt-get install -y nodejs libfontconfig-dev:${{matrix.arch}} libsecret-1-dev:${{matrix.arch}} libnss3:${{matrix.arch}} libatk1.0-0:${{matrix.arch}} libatk-bridge2.0-0:${{matrix.arch}} libgdk-pixbuf2.0-0:${{matrix.arch}} libgtk-3-0:${{matrix.arch}} libgbm1:${{matrix.arch}}
|
||||
export CC=${{matrix.triplet}}gcc CXX=${{matrix.triplet}}g++ LD=${{matrix.triplet}}ld
|
||||
if [[ ${{matrix.arch}} == 'arm64' ]]; then
|
||||
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/aarch64-linux-gnu/pkgconfig/
|
||||
elif [[ ${{matrix.arch}} == 'armhf' ]]; then
|
||||
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/arm-linux-gnueabihf/pkgconfig/
|
||||
fi
|
||||
export ARCH=${{matrix.build-arch}} npm_config_arch=${{matrix.build-arch}} npm_config_target_arch=${{matrix.build-arch}}
|
||||
npm i -g yarn
|
||||
yarn --network-timeout 1000000 --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}"
|
||||
if: matrix.build-arch != 'x64'
|
||||
|
||||
- name: Webpack (${{matrix.arch}})
|
||||
run: yarn run build --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}
|
||||
@@ -232,13 +220,59 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
||||
USE_HARD_LINKS: false
|
||||
USE_SYSTEM_FPM: true
|
||||
# DEBUG: electron-builder,electron-builder:*
|
||||
|
||||
- name: Build web resources (amd64 only)
|
||||
- name: Build web resources
|
||||
run: zsh -c 'tar czf tabby-web.tar.gz (tabby-*|web)/dist'
|
||||
if: matrix.build-arch == 'x64'
|
||||
|
||||
# - name: Install deps and Build (arm64)
|
||||
# uses: docker://multiarch/ubuntu-core:arm64-bionic
|
||||
# with:
|
||||
# args: >
|
||||
# bash -c
|
||||
# "apt update && apt install curl lsb-release gnupg -y &&
|
||||
# curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&
|
||||
# apt install make build-essential git ruby libarchive-tools nodejs rpm libsecret-1-dev libfontconfig1-dev -y &&
|
||||
# git config --global --add safe.directory /github/workspace &&
|
||||
# gem install public_suffix -v 4.0.7 &&
|
||||
# gem install fpm --no-document &&
|
||||
# npm i -g yarn &&
|
||||
# cd /github/workspace &&
|
||||
# yarn --network-timeout 1000000 &&
|
||||
# yarn run build &&
|
||||
# scripts/prepackage-plugins.mjs &&
|
||||
# USE_SYSTEM_FPM=true scripts/build-linux.mjs"
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
||||
# USE_HARD_LINKS: false
|
||||
# if: matrix.build-arch == 'arm64' && github.repository == 'Eugeny/tabby' && startsWith(github.ref, 'refs/tags')
|
||||
|
||||
# - name: Install deps and Build (armv7l)
|
||||
# uses: docker://multiarch/ubuntu-core:armhf-bionic
|
||||
# with:
|
||||
# args: >
|
||||
# bash -c
|
||||
# "apt update && apt install curl lsb-release gnupg -y &&
|
||||
# curl -fsSL https://deb.nodesource.com/setup_16.x | bash - &&
|
||||
# apt install make build-essential git ruby libarchive-tools nodejs rpm libsecret-1-dev libfontconfig1-dev -y &&
|
||||
# git config --global --add safe.directory /github/workspace &&
|
||||
# gem install public_suffix -v 4.0.7 &&
|
||||
# gem install fpm --no-document &&
|
||||
# npm i -g yarn &&
|
||||
# cd /github/workspace &&
|
||||
# sed -i '/ \"electron\":/c\ \"electron\": \"17.0.0\",' package.json &&
|
||||
# yarn --network-timeout 1000000 &&
|
||||
# yarn run build &&
|
||||
# scripts/prepackage-plugins.mjs &&
|
||||
# USE_SYSTEM_FPM=true scripts/build-linux.mjs"
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
||||
# USE_HARD_LINKS: false
|
||||
# if: matrix.build-arch == 'arm' && github.repository == 'Eugeny/tabby' && startsWith(github.ref, 'refs/tags')
|
||||
|
||||
- name: Upload symbols (amd64 only)
|
||||
run: |
|
||||
sudo npm install -g @sentry/cli --unsafe-perm
|
||||
@@ -250,15 +284,13 @@ jobs:
|
||||
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
||||
|
||||
- name: Upload packages to packagecloud.io
|
||||
uses: TykTechnologies/packagecloud-action@main
|
||||
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
|
||||
uses: Eugeny/packagecloud-action@main
|
||||
if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
|
||||
env:
|
||||
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
|
||||
with:
|
||||
repo: 'eugeny/tabby'
|
||||
dir: 'dist'
|
||||
rpmvers: 'el/9 el/8 ol/6 ol/7'
|
||||
debvers: 'ubuntu/bionic ubuntu/focal ubuntu/hirsute ubuntu/impish ubuntu/jammy ubuntu/kinetic ubuntu/noble ubuntu/oracular debian/jessie debian/stretch debian/buster debian/bullseye debian/bookworm debian/trixie'
|
||||
|
||||
- uses: actions/upload-artifact@master
|
||||
name: Upload AppImage (${{matrix.arch}})
|
||||
@@ -297,97 +329,57 @@ jobs:
|
||||
path: tabby-web.tar.gz
|
||||
if: matrix.build-arch == 'x64'
|
||||
|
||||
|
||||
Windows-Build:
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2022
|
||||
needs: Lint
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- arch: x64
|
||||
rust_triple: x86_64-pc-windows-msvc
|
||||
- arch: arm64
|
||||
rust_triple: aarch64-pc-windows-msvc
|
||||
fail-fast: false
|
||||
|
||||
env:
|
||||
RUST_TARGET_TRIPLE: ${{matrix.rust_triple}}
|
||||
ARCH: ${{matrix.arch}}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Code signing with Software Trust Manager
|
||||
uses: digicert/ssm-code-signing@v1.0.0
|
||||
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags'))
|
||||
|
||||
- name: Installing Node
|
||||
uses: actions/setup-node@v3.7.0
|
||||
with:
|
||||
node-version: 22
|
||||
|
||||
- run: npm i -g npx
|
||||
- run: rustup target add ${{matrix.rust_triple}}
|
||||
node-version: 16
|
||||
|
||||
- name: Update node-gyp
|
||||
run: |
|
||||
npm install --global node-gyp@10.2.0
|
||||
npm install --global node-gyp@8.4.1
|
||||
npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"}
|
||||
|
||||
- name: Build
|
||||
shell: powershell
|
||||
run: |
|
||||
npm i -g yar node-gyp
|
||||
npm i -g yarn@1.19.1
|
||||
yarn --network-timeout 1000000
|
||||
yarn run build
|
||||
node scripts/prepackage-plugins.mjs
|
||||
env:
|
||||
ARCH: ${{matrix.arch}}
|
||||
|
||||
- name: Decode certificate
|
||||
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags'))
|
||||
env:
|
||||
SM_CLIENT_CERT_FILE_B64: ${{ secrets.SM_CLIENT_CERT_FILE_B64 }}
|
||||
run: |
|
||||
SM_CLIENT_CERT_FILE=$RUNNER_TEMP/certificate.p12
|
||||
echo "$SM_CLIENT_CERT_FILE_B64" | base64 --decode > $SM_CLIENT_CERT_FILE
|
||||
echo "SM_CLIENT_CERT_FILE=$SM_CLIENT_CERT_FILE" >> "$GITHUB_ENV"
|
||||
shell: bash
|
||||
|
||||
- name: Build and sign packages
|
||||
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags'))
|
||||
shell: powershell
|
||||
run: |
|
||||
Get-FileHash $env:SM_CLIENT_CERT_FILE -Algorithm MD5
|
||||
smksp_registrar.exe list
|
||||
smctl.exe healthcheck
|
||||
smctl.exe keypair ls
|
||||
smctl windows certsync --keypair-alias $env:SM_KEYPAIR_ALIAS
|
||||
smctl.exe certificate ls
|
||||
C:\Windows\System32\certutil.exe -csp "DigiCert Signing Manager KSP" -key -user
|
||||
smksp_cert_sync.exe
|
||||
|
||||
# not used but necessary for electron-builder to run
|
||||
$env:WIN_CSC_LINK=$env:SM_CLIENT_CERT_FILE
|
||||
$env:WIN_CSC_KEY_PASSWORD=$env:SM_CLIENT_CERT_PASSWORD
|
||||
node scripts/build-windows.mjs
|
||||
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'))
|
||||
env:
|
||||
ARCH: ${{matrix.arch}}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
KEYGEN_TOKEN: ${{ secrets.KEYGEN_TOKEN }}
|
||||
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
|
||||
SM_PUBLISHER_NAME: ${{ secrets.SM_PUBLISHER_NAME }}
|
||||
SM_API_KEY: ${{ secrets.SM_API_KEY }}
|
||||
SM_HOST: ${{ vars.SM_HOST }}
|
||||
SM_CODE_SIGNING_CERT_SHA1_HASH: ${{ vars.SM_CODE_SIGNING_CERT_SHA1_HASH }}
|
||||
SM_KEYPAIR_ALIAS: ${{ vars.SM_KEYPAIR_ALIAS }}
|
||||
# DEBUG: electron-builder,electron-builder:*
|
||||
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
|
||||
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
|
||||
DEBUG: electron-builder,electron-builder:*
|
||||
|
||||
- name: Build packages without signing
|
||||
run: node scripts/build-windows.mjs
|
||||
if: "! (github.event_name == 'push' && (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:
|
||||
ARCH: ${{matrix.arch}}
|
||||
|
||||
|
3
.github/workflows/docs.yml
vendored
3
.github/workflows/docs.yml
vendored
@@ -14,11 +14,10 @@ jobs:
|
||||
- name: Installing Node
|
||||
uses: actions/setup-node@v3.7.0
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: 16
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
sudo apt update && sudo apt install libfontconfig1-dev
|
||||
yarn cache clean
|
||||
cd app
|
||||
yarn
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -33,7 +33,7 @@ docs/api
|
||||
sentry.properties
|
||||
sentry-symbols.js
|
||||
|
||||
tabby-ssh/util/pagent.exe
|
||||
*.psd
|
||||
|
||||
crowdin.yml
|
||||
.crowdin.env
|
||||
|
@@ -1 +0,0 @@
|
||||
https://null.page/funding.json
|
@@ -23,8 +23,6 @@ sudo apt install libfontconfig-dev libsecret-1-dev libarchive-tools libnss3 liba
|
||||
yarn
|
||||
```
|
||||
|
||||
_⚠️Note: If you forked this repository, you may need to pull down the tags from this repository before installing node modules. `git pull --tags upstream master`_
|
||||
|
||||
Build Tabby:
|
||||
|
||||
```
|
||||
|
@@ -66,7 +66,7 @@ Diese README ist auch verfügbar in: <a href="./README.md">:gb: English</a> ·
|
||||
|
||||

|
||||
|
||||
* Ein VT220-Terminal + verschiedene Erweiterungen
|
||||
* Ein V220-Terminal + verschiedene Erweiterungen
|
||||
* Mehrere verschachtelte, geteilte Fenster
|
||||
* Tabs auf jeder Seite des Fensters
|
||||
* Optional andockbares Fenster mit einem globalen Spawn-Hotkey ("Quake-Konsole")
|
||||
@@ -336,18 +336,6 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -67,7 +67,7 @@ Este fichero README está disponible en: <a href="./README.md">:gb: English</a>
|
||||
|
||||

|
||||
|
||||
* Un terminal VT220 + varias extensiones
|
||||
* Un terminal V220 + varias extensiones
|
||||
* Múltiples paneles divididos anidados
|
||||
* Pestañas en cualquier lado de la ventana
|
||||
* Ventana acoplable opcional con una tecla de acceso directo global ("consola de Quake")
|
||||
@@ -338,18 +338,6 @@ Gracias a estas maravillosas personas ([emoji key](https://allcontributors.org/d
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -67,7 +67,7 @@ This README is also available in: <a href="./README.md">:gb: English</a> · <a
|
||||
|
||||

|
||||
|
||||
* Terminal VT220 + berbagai macam ekstensi
|
||||
* Terminal V220 + berbagai macam ekstensi
|
||||
* Beberapa pembagian panel
|
||||
* Tab di sisi mana pun dari jendela
|
||||
* Jendela dockable opsional dengan hotkey spawn global ("Quake console")
|
||||
@@ -335,18 +335,6 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -68,7 +68,7 @@ Questo README è disponibile anche in: <a href="./README.md">:gb: English</a>
|
||||
|
||||

|
||||
|
||||
* Un terminale VT220 + vari estensioni
|
||||
* Un terminale V220 + vari estensioni
|
||||
* Suddivisione in pannelli
|
||||
* Schede su qualsiasi lato della finestra
|
||||
* Finestra agganciabile opzionale con un tasto di scelta rapida ("Quake console")
|
||||
@@ -331,18 +331,6 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -74,7 +74,7 @@
|
||||
|
||||

|
||||
|
||||
* VT220ターミナル+各種拡張機能
|
||||
* V220ターミナル+各種拡張機能
|
||||
* 複数ネストされたペイン分割に対応
|
||||
* ウィンドウ内に自由に配置可能なタブ
|
||||
* グローバルホットキーで呼び出せるドックウィンドウ機能("Quakeコンソール")
|
||||
@@ -346,18 +346,6 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -66,7 +66,7 @@ This README is also available in: <a href="./README.md">:gb: English</a> · <a
|
||||
|
||||

|
||||
|
||||
* A VT220 터미널 + 다양한 확장
|
||||
* A V220 터미널 + 다양한 확장
|
||||
* 여러 개의 분할 창 중첩
|
||||
* 모든 측면에 탭이 위치함
|
||||
* 전역 스폰 단축키가 있는 도킹 가능한 윈도우 ("Quake console")
|
||||
@@ -330,18 +330,6 @@ Pull requests and plugins are welcome!
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
26
README.md
26
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge"></a> <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> <a href="https://discord.gg/Vn7BjmzhtF"><img alt="Discord" src="https://img.shields.io/discord/1280890060195233934?style=for-the-badge&color=blue&logo=discord&logoColor=white&label=Discord"></a>   <a href="https://translate.tabby.sh/"><img alt="Translate" src="https://shields.io/badge/Translate-UI-white?logo=googletranslate&style=for-the-badge&color=white&logoColor=fff"></a>
|
||||
<a href="https://github.com/Eugeny/tabby/releases/latest"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/eugeny/tabby/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge"></a> <a href="https://nightly.link/Eugeny/tabby/workflows/build/master"><img src="https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge"/></a> <a href="https://matrix.to/#/#tabby-general:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/tabby-general:matrix.org?logo=matrix&style=for-the-badge&color=magenta"></a>   <a href="https://translate.tabby.sh/"><img alt="Translate" src="https://shields.io/badge/Translate-UI-white?logo=googletranslate&style=for-the-badge&color=white&logoColor=fff"></a> <a href="https://twitter.com/eugeeeeny"><img alt="Twitter" src="https://shields.io/badge/Subscribe-News-blue?logo=twitter&style=for-the-badge&color=blue"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -16,6 +16,9 @@
|
||||
|
||||
> 👋 Managing remote environments? Check out [Warpgate, my smart SSH/HTTP/MySQL bastion server](https://github.com/warp-tech/warpgate), it works great with Tabby, you'll love it.
|
||||
|
||||
> 👋 [Tabby-web](https://github.com/Eugeny/tabby-web) is looking for sponsors. As I can't afford to host it myself any longer, I'm looking for a sponsor to cover the hosting costs. If you're interested, please [get in touch](https://twitter.com/eugeeeeny)!
|
||||
|
||||
|
||||
----
|
||||
|
||||
### Downloads:
|
||||
@@ -72,7 +75,7 @@ This README is also available in: <a href="./README.es-ES.md">:es: Spanish</a>
|
||||
|
||||

|
||||
|
||||
* A VT220 terminal + various extensions
|
||||
* A V220 terminal + various extensions
|
||||
* Multiple nested split panes
|
||||
* Tabs on any side of the window
|
||||
* Optional dockable window with a global spawn hotkey ("Quake console")
|
||||
@@ -144,7 +147,7 @@ Plugins and themes can be installed directly from the Settings view inside Tabby
|
||||
|
||||
# Sponsors <!-- omit in toc -->
|
||||
|
||||
<a href="https://packagecloud.io"><img src="https://assets-production.packagecloud.io/assets/logo_v1-d5895e7b89b2dee19030e85515fd0f91d8f3b37c82d218a6531fc89c2b1b613c.png" width="200"></a>
|
||||
[](https://packagecloud.io)
|
||||
|
||||
[**packagecloud**](https://packagecloud.io) has provided free Debian/RPM repository hosting
|
||||
|
||||
@@ -152,11 +155,6 @@ Plugins and themes can be installed directly from the Settings view inside Tabby
|
||||
|
||||
[**keygen**](https://keygen.sh/?via=eugene) has provided free release & auto-update hosting
|
||||
|
||||
<a href="https://iqhive.com/"><img src="https://iqhive.com/img/icons/logo.svg" width="200"></a>
|
||||
|
||||
[**IQ Hive**](https://iqhive.com) is providing financial support for the project development
|
||||
|
||||
|
||||
<a name="contributing"></a>
|
||||
# Contributing
|
||||
|
||||
@@ -354,18 +352,6 @@ 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/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -75,7 +75,7 @@ Ten plik README jest również dostępny w językach: <a href="./README.md">:gb
|
||||
|
||||

|
||||
|
||||
* Konsola VT220 + wiele rozszerzeń
|
||||
* Konsola V220 + wiele rozszerzeń
|
||||
* Wiele nakładających się podzielonych okien
|
||||
* Okna na każdej stronie ekranu
|
||||
* Opcjonalne dokowanie okna za pomocą skrótu ("Quake console")
|
||||
|
@@ -67,7 +67,7 @@ Esse README também está disponível em: <a href="./README.md">:gb: English</a
|
||||
|
||||

|
||||
|
||||
* Um terminal VT220 + várias extensões
|
||||
* Um terminal V220 + várias extensões
|
||||
* Múltiplos painéis divididos aninhados
|
||||
* Guias em qualquer lado da janela
|
||||
* Opção de minimizar para a barra de tarefas com uma tecla de atalho global ("Quake console")
|
||||
@@ -339,18 +339,6 @@ Obrigado vai para essas pessoas maravilhosas ([emoji key](https://allcontributor
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -29,9 +29,9 @@
|
||||
[**Tabby**](https://tabby.sh) (ранее **Terminus**) — широко конфигурируемый эмулятор терминала, SSH- и COM-клиент для Windows, macOS и Linux:
|
||||
|
||||
* Встроенный SSH- и Telnet-клиент и менеджер подключений;
|
||||
* Встроенный последовательный терминал;
|
||||
* Встроенный последовтаельный терминал;
|
||||
* Темы и цветовые схемы;
|
||||
* Полностью настраиваемые сочетания клавиш;
|
||||
* Полностью настраеваемые сочетания клавиш;
|
||||
* Панели;
|
||||
* Запоминание вкладок;
|
||||
* Поддержка PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder и CMD;
|
||||
@@ -39,7 +39,7 @@
|
||||
* Полная поддержка Unicode, включая символы двойной ширины;
|
||||
* Не задыхается при быстром выводе;
|
||||
* Полноценный опыт работы с shell на Windows, включая дополнение слов и команд по Tab (при помощи Clink);
|
||||
* Встроенное защищённое хранилище для SSH-ключей и настроек;
|
||||
* Втроенное защищённое хранилище для SSH-ключей и настроек;
|
||||
* SSH-, SFTP- и Telnet-клиент доступен как [веб-приложение](https://tabby.sh/app) (также для [самостоятелньного хостинга](https://github.com/Eugeny/tabby-web)).
|
||||
|
||||
# Содержание <!-- omit in toc -->
|
||||
@@ -67,11 +67,11 @@
|
||||
|
||||

|
||||
|
||||
* Терминал VT220 + различные дополнения;
|
||||
* Терминал V220 + различные дополнения;
|
||||
* Деление окна на несколько панелей;
|
||||
* Вкладки на любой стороне окна;
|
||||
* Опционально закрепляемое окно с глобальной горячей клавишей для вызова («Quake console»);
|
||||
* Определение прогресса выполняемого процесса;
|
||||
* Определение прогресса процесса;
|
||||
* Уведомления о завершении процессов;
|
||||
* Защита от выполнения команд при вставке, предупреждения о вставке нескольких строк;
|
||||
* Лигатуры шрифтов;
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
* Сохранение соединений;
|
||||
* Поддержка ввода readline;
|
||||
* Опциональный побатный ввод HEX и вывод hexdump;
|
||||
* Опциональый побатный ввод HEX и вывод hexdump;
|
||||
* Преобразование newline;
|
||||
* Автоматическое восстановление соединения.
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
* [save-output](https://github.com/Eugeny/tabby-save-output) — запись вывода терминала в файл;
|
||||
* [sync-config](https://github.com/starxg/terminus-sync-config) — синхронизация конфига в Gist или Gitee;
|
||||
* [clippy](https://github.com/Eugeny/tabby-clippy) — плагин-пример, который постоянно будет вас бесить;
|
||||
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) — позволяет создавать пользовательские профили рабочего окружения на основе конфига;
|
||||
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) — позволяет создавать пользовательские провили рабочего окружеиня на основе конфига;
|
||||
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) — открывает браузер по умолчанию с текстом, выделенном во вкладке Tabby.
|
||||
* [sftp-tab](https://github.com/wljince007/tabby-sftp-tab) - открывает sftp вкладку для ssh соединения, похож на SecureCRT
|
||||
* [sftp-tab](https://github.com/wljince007/tabby-sftp-tab) - open sftp tab for ssh connection like SecureCRT
|
||||
|
||||
<a name="themes"></a>
|
||||
# Темы
|
||||
@@ -331,18 +331,6 @@ Pull-запросы и плагины приветствуются!
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -66,7 +66,7 @@
|
||||
|
||||

|
||||
|
||||
* 一个 VT220 终端 + 各种插件
|
||||
* 一个 V220 终端 + 各种插件
|
||||
* 多个嵌套的拆分窗格
|
||||
* 可以将标签页设置在窗口的任意一侧
|
||||
* 带有全局生成热键的可选可停靠窗口(“Quake console”)
|
||||
@@ -330,18 +330,6 @@
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fireblue"><img src="https://avatars.githubusercontent.com/u/1034929?v=4?s=100" width="100px;" alt="fireblue"/><br /><sub><b>fireblue</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=fireblue" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marko1616"><img src="https://avatars.githubusercontent.com/u/45327989?v=4?s=100" width="100px;" alt="marko1616"/><br /><sub><b>marko1616</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=marko1616" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.selfhosted.sg/"><img src="https://avatars.githubusercontent.com/u/128927132?v=4?s=100" width="100px;" alt="SelfHosted"/><br /><sub><b>SelfHosted</b></sub></a><br /><a href="#financial-SelfHosted-Club" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://hiroga.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/13391129?v=4?s=100" width="100px;" alt="Hiroaki Ogasawara"/><br /><sub><b>Hiroaki Ogasawara</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=xhiroga" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geodic"><img src="https://avatars.githubusercontent.com/u/64704703?v=4?s=100" width="100px;" alt="geodic"/><br /><sub><b>geodic</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=geodic" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -183,10 +183,9 @@ export class Application {
|
||||
}
|
||||
|
||||
enableTray (): void {
|
||||
if (!!this.tray || process.platform === 'linux' || (this.configStore.hideTray ?? false) === true) {
|
||||
if (!!this.tray || process.platform === 'linux') {
|
||||
return
|
||||
}
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
this.tray = new Tray(`${app.getAppPath()}/assets/tray-darwinTemplate.png`)
|
||||
this.tray.setPressedImage(`${app.getAppPath()}/assets/tray-darwinHighlightTemplate.png`)
|
||||
|
@@ -31,8 +31,6 @@ try {
|
||||
app.exit(1)
|
||||
}
|
||||
|
||||
process.mainModule = module
|
||||
|
||||
const application = new Application(configStore)
|
||||
|
||||
ipcMain.on('app:new-window', () => {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import * as glasstron from 'glasstron'
|
||||
import { autoUpdater } from 'electron-updater'
|
||||
|
||||
import { Subject, Observable, debounceTime } from 'rxjs'
|
||||
import { BrowserWindow, app, ipcMain, Rectangle, Menu, screen, BrowserWindowConstructorOptions, TouchBar, nativeImage, WebContents, nativeTheme } from 'electron'
|
||||
import { BrowserWindow, app, ipcMain, Rectangle, Menu, screen, BrowserWindowConstructorOptions, TouchBar, nativeImage, WebContents } from 'electron'
|
||||
import ElectronConfig = require('electron-config')
|
||||
import { enable as enableRemote } from '@electron/remote/main'
|
||||
import * as os from 'os'
|
||||
@@ -26,7 +26,7 @@ abstract class GlasstronWindow extends BrowserWindow {
|
||||
abstract setBlur (_: boolean)
|
||||
}
|
||||
|
||||
const macOSVibrancyType: any = process.platform === 'darwin' ? compareVersions(macOSRelease().version || '0.0', '10.14', '>=') ? 'fullscreen-ui' : 'dark' : null
|
||||
const macOSVibrancyType: any = process.platform === 'darwin' ? compareVersions(macOSRelease().version || '0.0', '10.14', '>=') ? 'under-window' : 'dark' : null
|
||||
|
||||
const activityIcon = nativeImage.createFromPath(`${app.getAppPath()}/assets/activity.png`)
|
||||
|
||||
@@ -100,10 +100,6 @@ export class Window {
|
||||
}
|
||||
}
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
bwOptions.visualEffectState = 'active'
|
||||
}
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
this.window = new BrowserWindow(bwOptions) as GlasstronWindow
|
||||
} else {
|
||||
@@ -112,15 +108,13 @@ export class Window {
|
||||
|
||||
this.webContents = this.window.webContents
|
||||
|
||||
this.window.webContents.once('did-finish-load', () => {
|
||||
this.window.once('ready-to-show', () => {
|
||||
if (process.platform === 'darwin') {
|
||||
this.window.setVibrancy(macOSVibrancyType)
|
||||
} else if (process.platform === 'win32' && this.configStore.appearance?.vibrancy) {
|
||||
this.setVibrancy(true)
|
||||
}
|
||||
|
||||
this.setDarkMode(this.configStore.appearance?.colorSchemeMode ?? 'dark')
|
||||
|
||||
if (!options.hidden) {
|
||||
if (maximized) {
|
||||
this.window.maximize()
|
||||
@@ -145,7 +139,7 @@ export class Window {
|
||||
|
||||
enableRemote(this.window.webContents)
|
||||
|
||||
this.window.loadFile(path.join(app.getAppPath(), 'dist', 'index.html'))
|
||||
this.window.loadURL(`file://${app.getAppPath()}/dist/index.html`, { extraHeaders: 'pragma: no-cache\n' })
|
||||
|
||||
this.window.webContents.setVisualZoomLevelLimits(1, 1)
|
||||
this.window.webContents.setZoomFactor(1)
|
||||
@@ -165,7 +159,6 @@ export class Window {
|
||||
}
|
||||
|
||||
this.setupWindowManagement()
|
||||
this.setupUpdater()
|
||||
|
||||
this.ready = new Promise(resolve => {
|
||||
const listener = event => {
|
||||
@@ -207,18 +200,6 @@ export class Window {
|
||||
}
|
||||
}
|
||||
|
||||
setDarkMode (mode: string): void {
|
||||
if (process.platform === 'darwin') {
|
||||
if ('light' === mode ) {
|
||||
nativeTheme.themeSource = 'light'
|
||||
} else if ('auto' === mode) {
|
||||
nativeTheme.themeSource = 'system'
|
||||
} else {
|
||||
nativeTheme.themeSource = 'dark'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
focus (): void {
|
||||
this.window.focus()
|
||||
}
|
||||
@@ -365,8 +346,11 @@ export class Window {
|
||||
this.send('host:window-focused')
|
||||
})
|
||||
|
||||
this.on('ready', () => {
|
||||
this.window?.webContents.send('start', {
|
||||
ipcMain.on('ready', event => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
this.window.webContents.send('start', {
|
||||
config: this.configStore,
|
||||
executable: app.getPath('exe'),
|
||||
windowID: this.window.id,
|
||||
@@ -375,30 +359,42 @@ export class Window {
|
||||
})
|
||||
})
|
||||
|
||||
this.on('window-minimize', () => {
|
||||
this.window?.minimize()
|
||||
ipcMain.on('window-minimize', event => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
this.window.minimize()
|
||||
})
|
||||
|
||||
this.on('window-set-bounds', (_, bounds) => {
|
||||
this.window?.setBounds(bounds)
|
||||
ipcMain.on('window-set-bounds', (event, bounds) => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
this.window.setBounds(bounds)
|
||||
})
|
||||
|
||||
this.on('window-set-always-on-top', (_, flag) => {
|
||||
this.window?.setAlwaysOnTop(flag)
|
||||
ipcMain.on('window-set-always-on-top', (event, flag) => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
this.window.setAlwaysOnTop(flag)
|
||||
})
|
||||
|
||||
this.on('window-set-vibrancy', (_, enabled, type) => {
|
||||
ipcMain.on('window-set-vibrancy', (event, enabled, type) => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
this.setVibrancy(enabled, type)
|
||||
})
|
||||
|
||||
this.on('window-set-dark-mode', (_, mode) => {
|
||||
this.setDarkMode(mode)
|
||||
})
|
||||
ipcMain.on('window-set-window-controls-color', (event, theme) => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
|
||||
this.on('window-set-window-controls-color', (_, theme) => {
|
||||
if (process.platform === 'win32') {
|
||||
const symbolColor: string = theme.foreground
|
||||
this.window?.setTitleBarOverlay(
|
||||
this.window.setTitleBarOverlay(
|
||||
{
|
||||
symbolColor: symbolColor,
|
||||
height: 32,
|
||||
@@ -407,23 +403,32 @@ export class Window {
|
||||
}
|
||||
})
|
||||
|
||||
this.on('window-set-title', (_, title) => {
|
||||
this.window?.setTitle(title)
|
||||
ipcMain.on('window-set-title', (event, title) => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
this.window.setTitle(title)
|
||||
})
|
||||
|
||||
this.on('window-bring-to-front', () => {
|
||||
if (this.window?.isMinimized()) {
|
||||
ipcMain.on('window-bring-to-front', event => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
if (this.window.isMinimized()) {
|
||||
this.window.restore()
|
||||
}
|
||||
this.present()
|
||||
})
|
||||
|
||||
this.on('window-close', () => {
|
||||
ipcMain.on('window-close', event => {
|
||||
if (!this.window || event.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
this.closing = true
|
||||
this.window.close()
|
||||
})
|
||||
|
||||
this.on('window-set-touch-bar', (_, segments, selectedIndex) => {
|
||||
ipcMain.on('window-set-touch-bar', (_event, segments, selectedIndex) => {
|
||||
this.touchBarControl.segments = segments.map(s => ({
|
||||
label: s.label,
|
||||
icon: s.hasActivity ? activityIcon : undefined,
|
||||
@@ -463,46 +468,8 @@ export class Window {
|
||||
this.window.setOpacity(opacity)
|
||||
})
|
||||
|
||||
this.on('window-set-progress-bar', (_, value) => {
|
||||
this.window?.setProgressBar(value, { mode: value < 0 ? 'none' : 'normal' })
|
||||
})
|
||||
}
|
||||
|
||||
on (event: string, listener: (...args: any[]) => void): void {
|
||||
ipcMain.on(event, (e, ...args) => {
|
||||
if (!this.window || e.sender !== this.window.webContents) {
|
||||
return
|
||||
}
|
||||
listener(e, ...args)
|
||||
})
|
||||
}
|
||||
|
||||
private setupUpdater () {
|
||||
autoUpdater.autoDownload = true
|
||||
autoUpdater.autoInstallOnAppQuit = true
|
||||
|
||||
autoUpdater.on('update-available', () => {
|
||||
this.send('updater:update-available')
|
||||
})
|
||||
|
||||
autoUpdater.on('update-not-available', () => {
|
||||
this.send('updater:update-not-available')
|
||||
})
|
||||
|
||||
autoUpdater.on('error', err => {
|
||||
this.send('updater:error', err)
|
||||
})
|
||||
|
||||
autoUpdater.on('update-downloaded', () => {
|
||||
this.send('updater:update-downloaded')
|
||||
})
|
||||
|
||||
this.on('updater:check-for-updates', () => {
|
||||
autoUpdater.checkForUpdates()
|
||||
})
|
||||
|
||||
this.on('updater:quit-and-install', () => {
|
||||
autoUpdater.quitAndInstall()
|
||||
ipcMain.on('window-set-progress-bar', (_event, value) => {
|
||||
this.window.setProgressBar(value, { mode: value < 0 ? 'none' : 'normal' })
|
||||
})
|
||||
}
|
||||
|
||||
|
@@ -15,8 +15,8 @@
|
||||
"watch": "webpack --progress --color --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@electron/remote": "^2",
|
||||
"node-pty": "^1.0.0",
|
||||
"@electron/remote": "2.0.10",
|
||||
"node-pty": "^1.0",
|
||||
"any-promise": "^1.3.0",
|
||||
"electron-config": "2.0.0",
|
||||
"electron-debug": "^3.2.0",
|
||||
@@ -30,19 +30,18 @@
|
||||
"native-process-working-directory": "^1.0.2",
|
||||
"npm": "6",
|
||||
"rxjs": "^7.5.7",
|
||||
"russh": "0.1.24",
|
||||
"source-map-support": "^0.5.20",
|
||||
"v8-compile-cache": "^2.3.0",
|
||||
"yargs": "^17.7.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@tabby-gang/windows-blurbehind": "^3.1.0",
|
||||
"@tabby-gang/windows-blurbehind": "^3.0.0",
|
||||
"macos-native-processlist": "^2.1.0",
|
||||
"patch-package": "^6.5.0",
|
||||
"serialport": "11.0.1",
|
||||
"serialport-binding-webserialapi": "^1.0.3",
|
||||
"windows-native-registry": "^3.2.1",
|
||||
"@tabby-gang/windows-process-tree": "^0.6.1"
|
||||
"windows-process-tree": "^0.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ngx-translate/core": "^14.0.0",
|
||||
@@ -64,9 +63,8 @@
|
||||
"tabby-terminal": "*"
|
||||
},
|
||||
"resolutions": {
|
||||
"*/node-abi": "^3",
|
||||
"*/node-abi": "^2.20.0",
|
||||
"node-gyp": "^10.0.0",
|
||||
"nan": "2.22.0",
|
||||
"node-addon-api": "^8.3.0"
|
||||
"nan": "github:jkleinsc/nan#remove_accessor_signature"
|
||||
}
|
||||
}
|
||||
|
@@ -1,53 +0,0 @@
|
||||
diff --git a/node_modules/node-pty/binding.gyp b/node_modules/node-pty/binding.gyp
|
||||
index 79a93e7..efb0a3f 100644
|
||||
--- a/node_modules/node-pty/binding.gyp
|
||||
+++ b/node_modules/node-pty/binding.gyp
|
||||
@@ -18,6 +18,9 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
+ 'defines': [
|
||||
+ 'NOMINMAX'
|
||||
+ ]
|
||||
}],
|
||||
],
|
||||
},
|
||||
diff --git a/node_modules/node-pty/src/win/winpty.cc b/node_modules/node-pty/src/win/winpty.cc
|
||||
index b054dee..a094b1c 100644
|
||||
--- a/node_modules/node-pty/src/win/winpty.cc
|
||||
+++ b/node_modules/node-pty/src/win/winpty.cc
|
||||
@@ -164,7 +164,7 @@ static NAN_METHOD(PtyStartProcess) {
|
||||
Nan::ThrowError(why.str().c_str());
|
||||
goto cleanup;
|
||||
}
|
||||
-
|
||||
+ {
|
||||
int cols = info[4]->Int32Value(Nan::GetCurrentContext()).FromJust();
|
||||
int rows = info[5]->Int32Value(Nan::GetCurrentContext()).FromJust();
|
||||
bool debug = Nan::To<bool>(info[6]).FromJust();
|
||||
@@ -179,6 +179,7 @@ static NAN_METHOD(PtyStartProcess) {
|
||||
throw_winpty_error("Error creating WinPTY config", error_ptr);
|
||||
goto cleanup;
|
||||
}
|
||||
+ {
|
||||
winpty_error_free(error_ptr);
|
||||
|
||||
// Set pty size on config
|
||||
@@ -215,7 +216,7 @@ static NAN_METHOD(PtyStartProcess) {
|
||||
winpty_error_free(error_ptr);
|
||||
|
||||
// Set return values
|
||||
- v8::Local<v8::Object> marshal = Nan::New<v8::Object>();
|
||||
+ {v8::Local<v8::Object> marshal = Nan::New<v8::Object>();
|
||||
Nan::Set(marshal, Nan::New<v8::String>("innerPid").ToLocalChecked(), Nan::New<v8::Number>((int)GetProcessId(handle)));
|
||||
Nan::Set(marshal, Nan::New<v8::String>("innerPidHandle").ToLocalChecked(), Nan::New<v8::Number>((int)handle));
|
||||
Nan::Set(marshal, Nan::New<v8::String>("pid").ToLocalChecked(), Nan::New<v8::Number>((int)winpty_agent_process(pc)));
|
||||
@@ -232,7 +233,7 @@ static NAN_METHOD(PtyStartProcess) {
|
||||
Nan::Set(marshal, Nan::New<v8::String>("conout").ToLocalChecked(), Nan::New<v8::String>(conoutPipeNameStr).ToLocalChecked());
|
||||
}
|
||||
info.GetReturnValue().Set(marshal);
|
||||
-
|
||||
+ }}}
|
||||
goto cleanup;
|
||||
|
||||
cleanup:
|
@@ -42,7 +42,6 @@ const config = {
|
||||
'electron-config': 'commonjs electron-config',
|
||||
'electron-debug': 'commonjs electron-debug',
|
||||
'electron-promise-ipc': 'commonjs electron-promise-ipc',
|
||||
'electron-updater': 'commonjs electron-updater',
|
||||
fs: 'commonjs fs',
|
||||
glasstron: 'commonjs glasstron',
|
||||
mz: 'commonjs mz',
|
||||
|
155
app/yarn.lock
155
app/yarn.lock
@@ -2,10 +2,10 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@electron/remote@^2":
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.1.2.tgz#52a97c8faa5b769155b649ef262f2f8c851776e6"
|
||||
integrity sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==
|
||||
"@electron/remote@2.0.10":
|
||||
version "2.0.10"
|
||||
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.10.tgz#133e2f607b1861ac249bd78b5abd1e961feed713"
|
||||
integrity sha512-3SFKKaQXcyWgwmibud+UqJl/XlHOgLcI3fwtB9pNelPSJAcTxocOJrF6FaxBIQaj1+R05Di6xuAswZpXAW7xhA==
|
||||
|
||||
"@iarna/cli@^1.2.0":
|
||||
version "1.2.0"
|
||||
@@ -28,11 +28,6 @@
|
||||
wrap-ansi "^8.1.0"
|
||||
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
|
||||
|
||||
"@napi-rs/cli@^2.18.3":
|
||||
version "2.18.4"
|
||||
resolved "https://registry.yarnpkg.com/@napi-rs/cli/-/cli-2.18.4.tgz#12bebfb7995902fa7ab43cc0b155a7f5a2caa873"
|
||||
integrity sha512-SgJeA4df9DE2iAEpr3M2H0OKl/yjtg1BnRI5/JyowS71tUWhrfSu2LT0V3vlHET+g1hBVlrO60PmEXwUEKp8Mg==
|
||||
|
||||
"@ngx-translate/core@^14.0.0":
|
||||
version "14.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-14.0.0.tgz#af421d0e1a28376843f0fed375cd2fae7630a5ff"
|
||||
@@ -178,20 +173,13 @@
|
||||
dependencies:
|
||||
debug "^4.3.2"
|
||||
|
||||
"@tabby-gang/windows-blurbehind@^3.1.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@tabby-gang/windows-blurbehind/-/windows-blurbehind-3.1.0.tgz#bd1462f2a970d195e277d48cceb8b2c0a20f09bd"
|
||||
integrity sha512-wTvyNrBDNxD4yq1bXv7lvXRQujJYRQ2Ke3LJyE9yzY9e/L9/fHVIuprIgAMiLsnW+BKPERq0k27iC38WnxUBZQ==
|
||||
"@tabby-gang/windows-blurbehind@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@tabby-gang/windows-blurbehind/-/windows-blurbehind-3.0.0.tgz#48d409c2eb14a12c867b70de5ee4d6769ef45e8f"
|
||||
integrity sha512-ah6eJcoQZWOZfu9sd2pWlOJmfl1v+2EZQMeIp7MWvg+/16WS16UFNdnOtlV6AUiABHfZo2QKfCNUEuorCM+Q2A==
|
||||
dependencies:
|
||||
"@types/node" "^10.12.18"
|
||||
|
||||
"@tabby-gang/windows-process-tree@^0.6.1":
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/@tabby-gang/windows-process-tree/-/windows-process-tree-0.6.1.tgz#2a5a5cbbee16f611fc61d53cbadf930c8d3d20a8"
|
||||
integrity sha512-I7AwncTXTmo1+WPfV+O+jYRJzjCMJznIjC/ycl4dP/n2HAocuXCIjTZfoMmL+rgjN2nRFpTyn6P+EhuIPMACbQ==
|
||||
dependencies:
|
||||
node-addon-api "7.1.0"
|
||||
|
||||
"@types/mz@2.7.4":
|
||||
version "2.7.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-2.7.4.tgz#f9d1535cb5171199b28ae6abd6ec29e856551401"
|
||||
@@ -1502,26 +1490,25 @@ glasstron@0.1.1:
|
||||
x11 "^2.3.0"
|
||||
|
||||
glob@^10.2.2, glob@^10.3.10:
|
||||
version "10.4.5"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
|
||||
integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
|
||||
version "10.3.10"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
|
||||
integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
|
||||
dependencies:
|
||||
foreground-child "^3.1.0"
|
||||
jackspeak "^3.1.2"
|
||||
minimatch "^9.0.4"
|
||||
minipass "^7.1.2"
|
||||
package-json-from-dist "^1.0.0"
|
||||
path-scurry "^1.11.1"
|
||||
jackspeak "^2.3.5"
|
||||
minimatch "^9.0.1"
|
||||
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
|
||||
path-scurry "^1.10.1"
|
||||
|
||||
glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
|
||||
version "7.2.3"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
|
||||
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
|
||||
version "7.1.6"
|
||||
resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
|
||||
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.1.1"
|
||||
minimatch "^3.0.4"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
@@ -1944,10 +1931,10 @@ isstream@~0.1.2:
|
||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz"
|
||||
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
|
||||
|
||||
jackspeak@^3.1.2:
|
||||
version "3.4.3"
|
||||
resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
|
||||
integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
|
||||
jackspeak@^2.3.5:
|
||||
version "2.3.6"
|
||||
resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
|
||||
integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
|
||||
dependencies:
|
||||
"@isaacs/cliui" "^8.0.2"
|
||||
optionalDependencies:
|
||||
@@ -2299,18 +2286,13 @@ lowercase-keys@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
|
||||
integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
|
||||
|
||||
lru-cache@^10.0.1:
|
||||
lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0":
|
||||
version "10.0.2"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.2.tgz#34504678cc3266b09b8dfd6fab4e1515258271b7"
|
||||
integrity sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==
|
||||
dependencies:
|
||||
semver "^7.3.5"
|
||||
|
||||
lru-cache@^10.2.0:
|
||||
version "10.4.3"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
|
||||
integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
|
||||
|
||||
lru-cache@^4.0.1:
|
||||
version "4.1.5"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
|
||||
@@ -2430,17 +2412,10 @@ minimatch@^3.0.4:
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimatch@^3.1.1:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimatch@^9.0.4:
|
||||
version "9.0.5"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
|
||||
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
|
||||
minimatch@^9.0.1:
|
||||
version "9.0.3"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
|
||||
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
@@ -2513,11 +2488,6 @@ minipass@^5.0.0:
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
|
||||
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
|
||||
|
||||
minipass@^7.1.2:
|
||||
version "7.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
|
||||
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
|
||||
|
||||
minizlib@^1.3.3:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
|
||||
@@ -2607,10 +2577,9 @@ mz@^2.7.0:
|
||||
object-assign "^4.0.1"
|
||||
thenify-all "^1.0.0"
|
||||
|
||||
nan@2.22.0, nan@^2.17.0:
|
||||
version "2.22.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.22.0.tgz#31bc433fc33213c97bad36404bb68063de604de3"
|
||||
integrity sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==
|
||||
nan@^2.17.0, "nan@github:jkleinsc/nan#remove_accessor_signature":
|
||||
version "2.16.0"
|
||||
resolved "https://codeload.github.com/jkleinsc/nan/tar.gz/6a2f95a6a2209d8aa7542fb18099fd808a802059"
|
||||
|
||||
napi-build-utils@^1.0.1:
|
||||
version "1.0.2"
|
||||
@@ -2641,12 +2610,12 @@ nice-try@^1.0.4:
|
||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||
|
||||
node-abi@^3:
|
||||
version "3.65.0"
|
||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3"
|
||||
integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==
|
||||
node-abi@^2.20.0:
|
||||
version "2.30.1"
|
||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
|
||||
integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
|
||||
dependencies:
|
||||
semver "^7.3.5"
|
||||
semver "^5.4.1"
|
||||
|
||||
node-abi@^3.3.0:
|
||||
version "3.8.0"
|
||||
@@ -2655,10 +2624,20 @@ node-abi@^3.3.0:
|
||||
dependencies:
|
||||
semver "^7.3.5"
|
||||
|
||||
node-addon-api@3.1.0, node-addon-api@6.1.0, node-addon-api@7.1.0, node-addon-api@^3.0.2, node-addon-api@^3.1.0, node-addon-api@^4.0.0, node-addon-api@^4.3.0, node-addon-api@^8.3.0:
|
||||
version "8.3.0"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.3.0.tgz#ec3763f18befc1cdf66d11e157ce44d5eddc0603"
|
||||
integrity sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==
|
||||
node-addon-api@3.1.0, node-addon-api@^3.0.2, node-addon-api@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz"
|
||||
integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
|
||||
|
||||
node-addon-api@6.1.0:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76"
|
||||
integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==
|
||||
|
||||
node-addon-api@^4.0.0, node-addon-api@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
|
||||
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
|
||||
|
||||
node-fetch-npm@^2.0.2:
|
||||
version "2.0.4"
|
||||
@@ -2690,7 +2669,7 @@ node-gyp@^10.0.0, node-gyp@^5.0.2, node-gyp@^5.1.0:
|
||||
tar "^6.1.2"
|
||||
which "^4.0.0"
|
||||
|
||||
node-pty@^1.0.0:
|
||||
node-pty@^1.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.0.0.tgz#7daafc0aca1c4ca3de15c61330373af4af5861fd"
|
||||
integrity sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==
|
||||
@@ -3117,11 +3096,6 @@ p-try@^2.0.0:
|
||||
resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
|
||||
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
||||
|
||||
package-json-from-dist@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00"
|
||||
integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==
|
||||
|
||||
package-json@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
|
||||
@@ -3234,12 +3208,12 @@ path-parse@^1.0.6:
|
||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||
|
||||
path-scurry@^1.11.1:
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
|
||||
integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
|
||||
path-scurry@^1.10.1:
|
||||
version "1.10.1"
|
||||
resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
|
||||
integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
|
||||
dependencies:
|
||||
lru-cache "^10.2.0"
|
||||
lru-cache "^9.1.1 || ^10.0.0"
|
||||
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
|
||||
|
||||
path-type@^2.0.0:
|
||||
@@ -3628,13 +3602,6 @@ run-queue@^1.0.0, run-queue@^1.0.3:
|
||||
dependencies:
|
||||
aproba "^1.1.1"
|
||||
|
||||
russh@0.1.24:
|
||||
version "0.1.24"
|
||||
resolved "https://registry.yarnpkg.com/russh/-/russh-0.1.24.tgz#dce27a3bc63eb78024db60e6767bc80cbf523b9a"
|
||||
integrity sha512-lLMtXHJKL5uwRxwoFNDx71T7+qCXiL80qyGCRgQjYMV10gaW2AlI6mqcz3FVH8dXvdgK2ZE8DuSwlhCBK7schA==
|
||||
dependencies:
|
||||
"@napi-rs/cli" "^2.18.3"
|
||||
|
||||
rxjs@^7.5.2, rxjs@^7.5.7:
|
||||
version "7.5.7"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39"
|
||||
@@ -3942,7 +3909,6 @@ strict-uri-encode@^2.0.0:
|
||||
integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
|
||||
|
||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
name string-width-cjs
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
@@ -4020,7 +3986,6 @@ stringify-package@^1.0.0, stringify-package@^1.0.1:
|
||||
integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==
|
||||
|
||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1:
|
||||
name strip-ansi-cjs
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
@@ -4452,6 +4417,13 @@ windows-native-registry@^3.2.1:
|
||||
dependencies:
|
||||
node-addon-api "^3.1.0"
|
||||
|
||||
windows-process-tree@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.4.0.tgz#31ac49c5da557e628ce7e37a5800972173d3349a"
|
||||
integrity sha512-9LunDnc1WwuhyLeTAXMFX8wbActGJtDCBaiapQXFYk/nO4W4X9YxOKV5g/lQL3XX69QYxveDbjVVrdnTt1qqCQ==
|
||||
dependencies:
|
||||
nan "^2.17.0"
|
||||
|
||||
worker-farm@^1.6.0, worker-farm@^1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
|
||||
@@ -4460,7 +4432,6 @@ worker-farm@^1.6.0, worker-farm@^1.7.0:
|
||||
errno "~0.1.7"
|
||||
|
||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
||||
name wrap-ansi-cjs
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
cat > '/usr/bin/${executable}' << END
|
||||
#!/bin/sh
|
||||
'/opt/${productFilename}/${executable}' --no-sandbox \$@
|
||||
'/opt/${productFilename}/${executable}' --no-sandbox $@
|
||||
END
|
||||
|
||||
chmod +x '/usr/bin/${executable}'
|
||||
|
@@ -2,12 +2,14 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.automation.apple-events</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.microphone</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.camera</key>
|
||||
|
@@ -32,13 +32,11 @@ extraResources:
|
||||
- extras
|
||||
asarUnpack:
|
||||
- 'dist/*.map'
|
||||
- node_modules/keytar/build/Release/*.node
|
||||
- node_modules/**/*.node
|
||||
|
||||
win:
|
||||
icon: "./build/windows/icon.ico"
|
||||
artifactName: tabby-${version}-portable-${env.ARCH}.${ext}
|
||||
signtoolOptions:
|
||||
rfc3161TimeStampServer: http://timestamp.sectigo.com
|
||||
rfc3161TimeStampServer: http://timestamp.sectigo.com
|
||||
nsis:
|
||||
oneClick: false
|
||||
artifactName: tabby-${version}-setup-${env.ARCH}.${ext}
|
||||
@@ -53,7 +51,6 @@ mac:
|
||||
entitlements: "./build/mac/entitlements.plist"
|
||||
entitlementsInherit: "./build/mac/entitlements.plist"
|
||||
extendInfo:
|
||||
ElectronTeamID: ${teamId}
|
||||
NSRequiresAquaSystemAppearance: false
|
||||
NSCameraUsageDescription: "A subprocess requests access to the device's camera."
|
||||
NSMicrophoneUsageDescription: "A subprocess requests access to the device's microphone."
|
||||
@@ -63,7 +60,6 @@ mac:
|
||||
NSDownloadsFolderUsageDescription: "A subprocess requests access to the user's Downloads folder."
|
||||
NSNetworkVolumesUsageDescription: 'A subprocess requests access to files on a network volume.'
|
||||
NSRemovableVolumesUsageDescription: 'A subprocess requests access to files on a removable volume.'
|
||||
NSAppleEventsUsageDescription: 'A subprocess requests permission to send AppleScript events to another application.'
|
||||
|
||||
linux:
|
||||
category: "Utility;TerminalEmulator;System"
|
||||
@@ -72,8 +68,7 @@ linux:
|
||||
executableArgs:
|
||||
- "--no-sandbox"
|
||||
desktop:
|
||||
entry:
|
||||
StartupWMClass: tabby
|
||||
StartupWMClass: tabby
|
||||
snap:
|
||||
plugs:
|
||||
- default
|
||||
@@ -81,6 +76,8 @@ snap:
|
||||
- system-observe
|
||||
deb:
|
||||
depends:
|
||||
- gconf2
|
||||
- gconf-service
|
||||
- gnome-keyring
|
||||
- libnotify4
|
||||
- libsecret-1-0
|
||||
@@ -102,7 +99,3 @@ rpm:
|
||||
- '_build_id_links none'
|
||||
- '--replaces'
|
||||
- 'terminus-terminal'
|
||||
electronFuses:
|
||||
runAsNode: false
|
||||
enableNodeOptionsEnvironmentVariable: false
|
||||
enableNodeCliInspectArguments: false
|
||||
|
1371
extras/clink/CHANGES
1371
extras/clink/CHANGES
File diff suppressed because it is too large
Load Diff
@@ -1,64 +1,63 @@
|
||||
@echo off
|
||||
rem -- Copyright (c) 2012 Martin Ridgers
|
||||
rem -- Portions Copyright (c) 2020-2024 Christopher Antos
|
||||
rem -- License: http://opensource.org/licenses/MIT
|
||||
:: Copyright (c) 2012 Martin Ridgers
|
||||
:: License: http://opensource.org/licenses/MIT
|
||||
|
||||
@echo off
|
||||
setlocal enableextensions
|
||||
set clink_profile_arg=
|
||||
set clink_quiet_arg=
|
||||
|
||||
rem -- Mimic cmd.exe's behaviour when starting from the start menu.
|
||||
if /i "%~1"=="startmenu" (
|
||||
:: Mimic cmd.exe's behaviour when starting from the start menu.
|
||||
if /i "%1"=="startmenu" (
|
||||
cd /d "%userprofile%"
|
||||
shift
|
||||
)
|
||||
|
||||
rem -- Check for the --profile option.
|
||||
if /i "%~1"=="--profile" (
|
||||
:: Check for the --profile option.
|
||||
if /i "%1"=="--profile" (
|
||||
set clink_profile_arg=--profile "%~2"
|
||||
shift
|
||||
shift
|
||||
)
|
||||
|
||||
rem -- Check for the --quiet option.
|
||||
if /i "%~1"=="--quiet" (
|
||||
:: Check for the --quiet option.
|
||||
if /i "%1"=="--quiet" (
|
||||
set clink_quiet_arg= --quiet
|
||||
shift
|
||||
)
|
||||
|
||||
rem -- If the .bat is run without any arguments, then start a cmd.exe instance.
|
||||
if _%1==_ (
|
||||
:: If the .bat is run without any arguments, then start a cmd.exe instance.
|
||||
if "%1"=="" (
|
||||
call :launch
|
||||
goto :end
|
||||
)
|
||||
|
||||
rem -- Test for autorun.
|
||||
if defined CLINK_NOAUTORUN if /i "%~1"=="inject" if /i "%~2"=="--autorun" goto :end
|
||||
:: Test for autorun.
|
||||
if defined CLINK_NOAUTORUN if /i "%1"=="inject" if /i "%2"=="--autorun" goto :end
|
||||
|
||||
rem -- Forward to appropriate loader, and endlocal before inject tags the prompt.
|
||||
:: Endlocal before inject tags the prompt.
|
||||
endlocal
|
||||
|
||||
:: Pass through to appropriate loader.
|
||||
if /i "%processor_architecture%"=="x86" (
|
||||
endlocal
|
||||
"%~dp0\clink_x86.exe" %*
|
||||
) else if /i "%processor_architecture%"=="arm64" (
|
||||
endlocal
|
||||
"%~dp0\clink_arm64.exe" %*
|
||||
) else if /i "%processor_architecture%"=="amd64" (
|
||||
if defined processor_architew6432 (
|
||||
endlocal
|
||||
"%~dp0\clink_x86.exe" %*
|
||||
) else (
|
||||
endlocal
|
||||
"%~dp0\clink_x64.exe" %*
|
||||
)
|
||||
)
|
||||
|
||||
goto :end
|
||||
:end
|
||||
goto :eof
|
||||
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
:launch
|
||||
setlocal enableextensions
|
||||
setlocal
|
||||
set WT_PROFILE_ID=
|
||||
set WT_SESSION=
|
||||
start "Clink" cmd.exe /s /k ""%~dpnx0" inject %clink_profile_arg%%clink_quiet_arg%"
|
||||
endlocal
|
||||
|
||||
:end
|
||||
exit /b 0
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -4,10 +4,10 @@
|
||||
# Override the built-in Readline defaults with ones that provide a more
|
||||
# enhanced Clink experience.
|
||||
|
||||
set colored-completion-prefix on
|
||||
set colored-stats on
|
||||
set mark-symlinked-directories on
|
||||
set completion-auto-query-items on
|
||||
set history-point-at-end-of-anchored-search on
|
||||
set search-ignore-case on
|
||||
colored-completion-prefix on
|
||||
colored-stats on
|
||||
mark-symlinked-directories on
|
||||
completion-auto-query-items on
|
||||
history-point-at-end-of-anchored-search on
|
||||
search-ignore-case on
|
||||
|
||||
|
@@ -1,32 +1,34 @@
|
||||
# When this file is named "default_settings" and is in the binaries
|
||||
# directory or profile directory, it provides enhanced default settings.
|
||||
|
||||
# Override built-in default settings with ones that provide a more
|
||||
# enhanced Clink experience.
|
||||
|
||||
clink.default_bindings = windows
|
||||
clink.autoupdate = off
|
||||
cmd.ctrld_exits = False
|
||||
color.arginfo = sgr 38;5;172
|
||||
color.argmatcher = sgr 1;38;5;40
|
||||
color.cmd = bold
|
||||
color.cmdredir = sgr 38;5;172
|
||||
color.cmdsep = sgr 38;5;135
|
||||
color.comment_row = sgr 38;5;87;48;5;18
|
||||
color.description = sgr 38;5;39
|
||||
color.doskey = sgr 1;38;5;75
|
||||
color.executable = sgr 1;38;5;33
|
||||
color.filtered = bold
|
||||
color.flag = sgr 38;5;117
|
||||
color.hidden = sgr 38;5;160
|
||||
color.histexpand = sgr 97;48;5;55
|
||||
color.horizscroll = sgr 38;5;16;48;5;30
|
||||
color.input = sgr 38;5;214
|
||||
color.readonly = sgr 38;5;28
|
||||
color.selected_completion = sgr 7
|
||||
color.selection = sgr 38;5;16;48;5;179
|
||||
color.unrecognized = sgr 38;5;203
|
||||
history.max_lines = 25000
|
||||
history.time_stamp = show
|
||||
match.expand_envvars = True
|
||||
match.substring = True
|
||||
# When this file is named "default_settings" and is in the binaries
|
||||
# directory or profile directory, it provides enhanced default settings.
|
||||
|
||||
# Override built-in default settings with ones that provide a more
|
||||
# enhanced Clink experience.
|
||||
|
||||
autosuggest.enable = True
|
||||
clink.default_bindings = windows
|
||||
cmd.ctrld_exits = False
|
||||
color.arginfo = sgr 38;5;172
|
||||
color.argmatcher = sgr 1;38;5;40
|
||||
color.cmd = sgr 1;38;5;231
|
||||
color.cmdredir = sgr 38;5;172
|
||||
color.cmdsep = sgr 38;5;214
|
||||
color.comment_row = sgr 38;5;87;48;5;18
|
||||
color.description = sgr 38;5;39
|
||||
color.doskey = sgr 1;38;5;75
|
||||
color.executable = sgr 1;38;5;33
|
||||
color.filtered = sgr 38;5;231
|
||||
color.flag = sgr 38;5;117
|
||||
color.hidden = sgr 38;5;160
|
||||
color.histexpand = sgr 97;48;5;55
|
||||
color.horizscroll = sgr 38;5;16;48;5;30
|
||||
color.input = sgr 38;5;222
|
||||
color.readonly = sgr 38;5;28
|
||||
color.selected_completion = sgr 38;5;16;48;5;254
|
||||
color.selection = sgr 38;5;16;48;5;179
|
||||
color.suggestion = sgr 38;5;239
|
||||
color.unrecognized = sgr 38;5;203
|
||||
history.max_lines = 25000
|
||||
history.time_stamp = show
|
||||
match.expand_envvars = True
|
||||
match.substring = True
|
||||
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
"Language: af_ZA\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Laat toe om 'n terminaal vinnig oop te maak in die geselekteerde vouer"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Altyd Donker"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Altyd Lig"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Agtergrond tipe"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Terugspasie-sleutelmodus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -284,7 +284,7 @@ msgstr "Maak terminaal skoon"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:58
|
||||
msgid "Clear terminal after connection"
|
||||
msgstr "Maak terminaal skoon na verbinding"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||
msgid "Clipboard"
|
||||
@@ -337,12 +337,12 @@ msgstr "Kleur skema"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Kleurskemas"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
msgid "Colors"
|
||||
msgstr "Kleure"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
@@ -362,7 +362,7 @@ msgstr "Bevele"
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "Kompak (erfenis)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
@@ -428,7 +428,7 @@ msgstr "Kontekskieslys"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
||||
msgid "Controls the amount of space between elements"
|
||||
msgstr "Beheer die hoeveelheid spasie tussen elemente"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:240
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:248
|
||||
@@ -449,7 +449,7 @@ msgstr "Kopieer huidige pad"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||
msgid "Copy full path"
|
||||
msgstr "Kopieer volle pad"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||
msgid "Copy on select"
|
||||
@@ -506,7 +506,7 @@ msgstr "Pasgemaakte CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Donker modus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Verminder die vertikale verdelingsgrootte"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Standaard \"Koppel aan\" tiepe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Standaard verbindingssoort gebruik deur die vinnige koppelingsfunksie (bv. SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Verstekprofiel vir nuwe oortjies"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Standaard profielgroepinstellings"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -594,7 +594,7 @@ msgstr "Skrap vorige woord"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||
msgid "Delete the config on the remote side?"
|
||||
msgstr "Verwyder die konfigurasie aan die afgeleë kant?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:226
|
||||
msgid "Delete the group's profiles?"
|
||||
@@ -651,7 +651,7 @@ msgstr "Ontkoppel"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Ontkoppel huidige oortjie (Serieel/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -757,7 +757,7 @@ msgstr "Aktiveer outomatiese installasie van opdaterings wanneer hulle beskikbaa
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:211
|
||||
msgid "Enable fluent background option"
|
||||
msgstr "Aktiveer vloeiende agtergrondopsie"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||
msgid "Enable font ligatures"
|
||||
@@ -806,7 +806,7 @@ msgstr "Voorbeeld:"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:212
|
||||
msgid "Experimental Windows 10 background style known to cause issues"
|
||||
msgstr "Eksperimentele Windows 10 agtergrondstyl wat bekend is om probleme te veroorsaak"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:28
|
||||
msgid "Export"
|
||||
@@ -894,7 +894,7 @@ msgstr "Fokus die ruit aan die regterkant"
|
||||
|
||||
#: tabby-core/src/theme.ts:34
|
||||
msgid "Follow the color scheme"
|
||||
msgstr "Volg die kleurskema"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:5
|
||||
msgid "Font"
|
||||
@@ -939,7 +939,7 @@ msgstr "Van kleurskema"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Van stelsel"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Heksadesimaal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Versteek"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1052,7 +1052,7 @@ msgstr "Sneltoetse"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:83
|
||||
msgid "How Tabby presents itself through environment vars"
|
||||
msgstr "Hoe Tabby homself deur omgewingsveranderlikes voorstel"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||
msgid "HTTP proxy"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Verhoog die vertikale verdelingsgrootte"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Invoer"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Laat die dop Meta-sleutel hanteer in plaas van BS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Ligte modus"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Inheems"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nuwe"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nuwe opstelling op {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nuwe groepnaam"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Nuwe profiel"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Nuwe profielgroep"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "Op GitHub-besprekings"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Sluit net die oortjie wanneer die sessie uitdruklik beëindig is"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1527,7 +1527,7 @@ msgstr "Panele"
|
||||
|
||||
#: tabby-core/src/theme.ts:26
|
||||
msgid "Paper (legacy)"
|
||||
msgstr "Papier (erfenis)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:38
|
||||
msgid "Parity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Gedeeltelike opstelling-sinkronisering is nie moontlik wanneer die opste
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Deurlaat"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Herkoppel"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Herkoppel huidige oortjie (Serieel/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Herbegin die toep om veranderinge toe te pas"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Herstel instellings na verstek ?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Herstel instellings na oorgeërfde verstekwaardes ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Dop Integrasies"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Wys"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2038,7 +2038,7 @@ msgstr "Show Serie verbindings"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:152
|
||||
msgid "Show tabs in fullscreen mode"
|
||||
msgstr "Wys oortjies in volskermmodus"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:62
|
||||
msgid "Show toolbar"
|
||||
@@ -2089,7 +2089,7 @@ msgstr "Bronkode"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:13
|
||||
msgid "Spaciness"
|
||||
msgstr "Ruimtelikheid"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:75
|
||||
msgid "Split"
|
||||
@@ -2135,7 +2135,7 @@ msgstr "SSH-wagwoord vir {user}@{host}:{port}"
|
||||
|
||||
#: tabby-core/src/theme.ts:8
|
||||
msgid "Standard (legacy)"
|
||||
msgstr "Standaard (erfenis)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:150
|
||||
msgid "Startup"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Plaasvervangers toegelaat."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Skakel kleurskema"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2264,7 +2264,7 @@ msgstr "Terminaal klok"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:82
|
||||
msgid "Terminal identification"
|
||||
msgstr "Terminale identifikasie"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||
msgid "Thank you for downloading Tabby!"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Dit is van toepassing op alle profiele van 'n gegewe tipe"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Dit is van toepassing op alle profiele van 'n gegewe tipe in hierdie groep"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Wat's nuut"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Wanneer 'n sessie eindig"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
@@ -2490,7 +2490,7 @@ msgstr "Of 'n pasgemaakte venster of 'n OS-inheemse venster gebruik moet word"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:141
|
||||
msgid "Will prevent the SSH greeting from showing up"
|
||||
msgstr "Sal voorkom dat die SSH-groet verskyn"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:30
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"Language: bg_BG\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Разрешава бързо отваряне на терминал в
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Винаги тъмно"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Винаги светло"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Тип на фона"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Режим на клавиша Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,12 +337,12 @@ msgstr "Цветови схеми"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Цветова схема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
msgid "Colors"
|
||||
msgstr "Цветове"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
@@ -362,7 +362,7 @@ msgstr "Команди"
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "Компактен (наследен)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
@@ -428,7 +428,7 @@ msgstr "Контекстно меню"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
||||
msgid "Controls the amount of space between elements"
|
||||
msgstr "Контролира разстоянието между елементите"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:240
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:248
|
||||
@@ -506,7 +506,7 @@ msgstr "Персонализиран CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Тъмен режим"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Намали размера на вертикалното разделя
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Тип по подразбиране \"Свързване към\""
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Тип връзка по подразбиране, използване на функцията за бързо свързване (например SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Профил по подразбиране за нов таб"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Настройки по подразбиране на групата профили"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Прекъсни"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Прекъсване на връзката с текущия tab (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -894,7 +894,7 @@ msgstr "Фокусирай десния панел"
|
||||
|
||||
#: tabby-core/src/theme.ts:34
|
||||
msgid "Follow the color scheme"
|
||||
msgstr "Следване на цветовата схема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:5
|
||||
msgid "Font"
|
||||
@@ -939,7 +939,7 @@ msgstr "От цветова схема"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "От система"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Шестнайсетичен"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Скрий"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Увеличи размера на вертикалното раздел
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Вход"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Позволява на shell да обработва мета клав
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Светъл режим"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Системна"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Нов"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Нова конфигурация на {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Име на нова група"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Нов профил"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Нов профил на групата"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "В GitHub Discussions"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Затваряне на tab само при изрично прекратяване на сесията"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1527,7 +1527,7 @@ msgstr "Панели"
|
||||
|
||||
#: tabby-core/src/theme.ts:26
|
||||
msgid "Paper (legacy)"
|
||||
msgstr "Хартия (наследена)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:38
|
||||
msgid "Parity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Частична синхронизация на конфигураци
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Пропускане"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Повторно свързване"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Повторно свързване на текущия раздел (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Рестартирайте приложението, за да прил
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Възстановяване на настройките по подразбиране ?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Възстановяване на унаследените настройки по подразбиране ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Shell интеграция"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Покажи"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2089,7 +2089,7 @@ msgstr "Програмен код"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:13
|
||||
msgid "Spaciness"
|
||||
msgstr "Пространство"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:75
|
||||
msgid "Split"
|
||||
@@ -2135,7 +2135,7 @@ msgstr "SSH парола за {user}@{host}:{port}"
|
||||
|
||||
#: tabby-core/src/theme.ts:8
|
||||
msgid "Standard (legacy)"
|
||||
msgstr "Стандартен (наследен)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:150
|
||||
msgid "Startup"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Заместванията са разрешени."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Промяна на цветовата схема"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Прилага се за всички профили от дадения
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Те се прилагат за всички профили от даден тип в тази група"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Какво ново"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Когато дадена сесия приключи"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
@@ -2490,7 +2490,7 @@ msgstr "Дали да се използва потребителски проз
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:141
|
||||
msgid "Will prevent the SSH greeting from showing up"
|
||||
msgstr "Ще предотврати появата на SSH поздрава"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:30
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Czech\n"
|
||||
"Language: cs_CZ\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -1935,7 +1935,7 @@ msgstr "Sériové připojení"
|
||||
|
||||
#: tabby-serial/src/profiles.ts:73
|
||||
msgid "Serial: {description}"
|
||||
msgstr "Sériový: {description}"
|
||||
msgstr "Seriální: {description}"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/setVaultPassphraseModal.component.html:2
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:5
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Danish\n"
|
||||
"Language: da_DK\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Tillader hurtigt at åbne en terminal i den valgte mappe"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Altid mørk"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Altid lys"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -211,7 +211,7 @@ msgstr "Sløring"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:28
|
||||
msgid "Bold font weight"
|
||||
msgstr "Fed skriftvægt"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:132
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:80
|
||||
@@ -272,7 +272,7 @@ msgstr "Ciphers"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||
msgid "Clear"
|
||||
msgstr "Ryd"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/services/profiles.service.ts:248
|
||||
msgid "Clear recent profiles"
|
||||
@@ -324,7 +324,7 @@ msgstr "Luk faner til højre"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:182
|
||||
msgid "Close the window after closing the last tab"
|
||||
msgstr "Luk vinduet efter lukningen af den sidste fane"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:33
|
||||
#: tabby-core/src/tabContextMenu.ts:132
|
||||
@@ -337,16 +337,16 @@ msgstr "Farvetema"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Farveskemaer"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
msgid "Colors"
|
||||
msgstr "Farver"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
msgstr "Kombinér alle faner til den aktuelle fane"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:4
|
||||
msgid "Command line"
|
||||
@@ -358,15 +358,15 @@ msgstr "Kommandoens stdin/stdout bruges i stedet for en netværksforbindelse"
|
||||
|
||||
#: tabby-core/src/services/commands.service.ts:105
|
||||
msgid "Commands"
|
||||
msgstr "Kommandoer"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "Kompakt (ældre)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
msgstr "Konfig slettet"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||
msgid "Config downloaded"
|
||||
@@ -428,7 +428,7 @@ msgstr "Kontekstmenu"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
||||
msgid "Controls the amount of space between elements"
|
||||
msgstr "Styrer mængden af mellemrum mellem elementer"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:240
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:248
|
||||
@@ -449,7 +449,7 @@ msgstr "Kopiér nuværende sti"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||
msgid "Copy full path"
|
||||
msgstr "Kopiér hele stien"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||
msgid "Copy on select"
|
||||
@@ -461,7 +461,7 @@ msgstr "Kopiér til udklipsholder"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:103
|
||||
msgid "Copy with formatting"
|
||||
msgstr "Kopiér med formatering"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/services/config.service.ts:425
|
||||
msgid "Could not decrypt config"
|
||||
@@ -469,12 +469,12 @@ msgstr "Kunne ikke dekryptere konfiguration"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpCreateDirectoryModal.component.html:9
|
||||
msgid "Create"
|
||||
msgstr "Opret"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:7
|
||||
#: tabby-ssh/src/sftpContextMenu.ts:29
|
||||
msgid "Create directory"
|
||||
msgstr "Opret mappe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:90
|
||||
msgid "Current"
|
||||
@@ -498,7 +498,7 @@ msgstr "Markørens form"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsForMode.component.html:46
|
||||
msgid "Custom"
|
||||
msgstr "Tilpasset"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:90
|
||||
msgid "Custom CSS"
|
||||
@@ -506,7 +506,7 @@ msgstr "Brugerdefineret CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Mørk tilstand"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -518,15 +518,15 @@ msgstr "Fejlfinding"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:256
|
||||
msgid "Decrease horizontal split size"
|
||||
msgstr "Reducér den vandrette splitstørrelse"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:248
|
||||
msgid "Decrease vertical split size"
|
||||
msgstr "Reducér den lodrette splitstørrelse"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Standard \"Forbind til\"-type"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
@@ -582,7 +582,7 @@ msgstr "Slet {fullPath}?"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:42
|
||||
msgid "Delete entire line"
|
||||
msgstr "Slet hele linjen"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:46
|
||||
msgid "Delete next word"
|
||||
@@ -594,7 +594,7 @@ msgstr "Slet forrige ord"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||
msgid "Delete the config on the remote side?"
|
||||
msgstr "Slet konfigurationen på fjernsiden?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:226
|
||||
msgid "Delete the group's profiles?"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de_DE\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -35,7 +35,7 @@ msgstr "Schlüssel akzeptieren und merken"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||
msgid "Accept just this once"
|
||||
msgstr "Nur diesmal akzeptieren"
|
||||
msgstr "Nur einmal akzeptieren"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||
msgid "Accessibility"
|
||||
@@ -100,12 +100,12 @@ msgstr "Ermöglicht das schnelle Öffnen eines Terminals im ausgewählten Ordner
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Immer dunkel"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Immer hell"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Hintergrundtyp"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Backspace-Tastenmodus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Teilweise Konfigurations-Synchronisation ist nicht möglich, wenn die Ko
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Pass-through"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1786,7 +1786,7 @@ msgstr "Standard Einstellungen wiederherstellen?"
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Standard Einstellungen wiederherstellen?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: English, United Kingdom\n"
|
||||
"Language: en_GB\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -337,7 +337,7 @@ msgstr "Colour scheme"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Colour schemes"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -2160,7 +2160,7 @@ msgstr ""
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Switch colour scheme"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Language: es_ES\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Permite abrir rápidamente un terminal en la carpeta seleccionada"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Siempre a oscuras"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Siempre ligero"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Tipo de fondo"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Modo de tecla de retroceso"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,7 +337,7 @@ msgstr "Esquema de color"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Esquemas de color"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "CSS personalizado"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Modo oscuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Reducir tamaño de división vertical"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Tipo predeterminado \"Conectar a\""
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Tipo de conexión predeterminado utilizado por la función de conexión rápida (por ejemplo, SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Perfil predeterminado para nuevas pestañas"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Configuración predeterminada del grupo de perfiles"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Desconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Desconectar pestaña actual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "Desde un color de esquema"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Del sistema"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Hexadecimal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Aumentar tamaño de división vertical"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Permita que la shell maneje la tecla Meta en lugar del sistema operativo
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Modo claro"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Nativo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nueva configuración en {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nuevo nombre del grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Nuevo perfil"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Nuevo grupo de perfiles"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "En discusiones de GitHub"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Cierre la pestaña solo cuando la sesión finalice explícitamente"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "La sincronización parcial de configuración no es posible cuando la con
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Pasado-por-clave"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Reconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Reconecta la pestaña actual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Reiniciar la aplicación para aplicar cambios"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "¿Restaurar los ajustes de fábrica?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "¿Restaurar los ajustes a los heredados por defecto?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Integración con la Shell"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Sustituciones permitidas."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Cambiar esquema de colores"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Estos se aplican a todos los perfiles de un tipo determinado"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Estos aplican a todos los perfiles de un tipo en este grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Qué hay de nuevo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Cuando una sesión finalice"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: French\n"
|
||||
"Language: fr_FR\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -526,7 +526,7 @@ msgstr "Diminuer la taille de la séparation verticale"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Type de connexion par défaut"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "La synchronisation partielle de la configuration n'est pas possible lors
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Passage à travers"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1786,7 +1786,7 @@ msgstr "Restaurer les paramètres par défaut ?"
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Restaurer les paramètres par défaut hérités ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Croatian\n"
|
||||
"Language: hr_HR\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Omogućuje brzo otvaranje terminala u odabranoj mapi"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Uvijek tamno"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Uvijek svijetlo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -337,7 +337,7 @@ msgstr "Shema boja"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Sheme boja"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "Prilagođeni CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Tamni modus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -538,7 +538,7 @@ msgstr "Standardni profil za nove kartice"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Postavke standardnog profila grupe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Odspoji"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Odspoji trenutačnu karticu (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "Iz sheme boja"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Od sustava"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Heksadecimalni"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Sakrij"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Povećaj veličinu okomite podjele"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Unos"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Omogućuje ljusci baratanje meta-tipkom umjesto OS-a"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Svijetli modus"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Izvorni"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nova"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nova konfiguracija na {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Novo ime grupe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Ponovo spoji"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Ponovo poveži trenutačnu karticu (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Za primjenu promjena ponovo pokreni program"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Obnoviti na standardne postavke?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Obnoviti postavke na naslijeđene standardne vrijednosti?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Integracija ljuske"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Prikaži"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Zamjene su dozvoljene."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Promijeni shemu boja"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Primjenjuju se na sve profile zadane vrste"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Primjenjuju se na sve profile zadane vrste u ovoj grupi"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Novosti"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Kada sesija završi"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"Language: id_ID\n"
|
||||
"PO-Revision-Date: 2025-01-22 22:02\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -23,7 +23,7 @@ msgstr "{name} salin"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:77
|
||||
msgid "A second font family used to display characters missing in the main font"
|
||||
msgstr "Keluarga huruf kedua digunakan untuk menampilkan karakter yang hilang di huruf utama"
|
||||
msgstr "Keluarga font kedua digunakan untuk menampilkan karakter yang hilang di font utama"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||
msgid "Abort all"
|
||||
@@ -100,12 +100,12 @@ msgstr "Izinkan buka dengan cepat terminal di direktori terpilih"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Selalu gelap"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Selalu terang"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -255,7 +255,7 @@ msgstr "Ubah baud rate"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:133
|
||||
msgid "Change tab color"
|
||||
msgstr "Rubah warna label"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:12
|
||||
msgid "Change the master passphrase"
|
||||
@@ -337,7 +337,7 @@ msgstr "Skema warna"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Warna Skema"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -362,7 +362,7 @@ msgstr "Perintah-perintah"
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "Padat (tua)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
@@ -449,7 +449,7 @@ msgstr "Salin jalur saat ini"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||
msgid "Copy full path"
|
||||
msgstr "Salin alamat lengkap"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||
msgid "Copy on select"
|
||||
@@ -1732,7 +1732,7 @@ msgstr "Ganti Nama"
|
||||
#: tabby-core/src/hotkeys.ts:24
|
||||
#: tabby-core/src/tabContextMenu.ts:121
|
||||
msgid "Rename tab"
|
||||
msgstr "Ganti nama label"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:3
|
||||
msgid "Rendering"
|
||||
@@ -1762,15 +1762,15 @@ msgstr "Ukuran Semula"
|
||||
|
||||
#: tabby-serial/src/hotkeys.ts:14
|
||||
msgid "Restart current serial session"
|
||||
msgstr "Mulai ulang sesi serial saat ini"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/hotkeys.ts:10
|
||||
msgid "Restart current SSH session"
|
||||
msgstr "Mulai ulang sesi SSH saat ini"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-telnet/src/hotkeys.ts:10
|
||||
msgid "Restart current Telnet session"
|
||||
msgstr "Mulai ulang sesi Telnet saat ini"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:64
|
||||
msgid "Restart tab"
|
||||
@@ -1782,7 +1782,7 @@ msgstr "Mulai ulang aplikasi untuk menerapkan perubahan"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Kembali ke settingan sebelumnya ?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
@@ -2401,7 +2401,7 @@ msgstr ""
|
||||
|
||||
#: tabby-ssh/src/session/ssh.ts:465
|
||||
msgid "Using preset password"
|
||||
msgstr "Gunakan kata sandi yang telah disetel sebelumnya"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:9
|
||||
msgid "Vault"
|
||||
|
268
locale/it-IT.po
268
locale/it-IT.po
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Italian\n"
|
||||
"Language: it_IT\n"
|
||||
"PO-Revision-Date: 2025-01-22 22:02\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -23,7 +23,7 @@ msgstr "{name} copia"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:77
|
||||
msgid "A second font family used to display characters missing in the main font"
|
||||
msgstr "Un set di caratteri secondario usato per mostrare quelli mancanti del font principale"
|
||||
msgstr "Un set di caratteri secondario usato per mostrare quelli mancanti nel principale"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||
msgid "Abort all"
|
||||
@@ -31,7 +31,7 @@ msgstr "Annulla tutto"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:24
|
||||
msgid "Accept and remember key"
|
||||
msgstr "Accetta e ricorda chiave"
|
||||
msgstr "Accetta e ricorda la chiave"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||
msgid "Accept just this once"
|
||||
@@ -43,7 +43,7 @@ msgstr "Accessibilità"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:27
|
||||
msgid "Acrylic background"
|
||||
msgstr "Sfondo acrilico"
|
||||
msgstr "Sfondo traslucido"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:24
|
||||
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:11
|
||||
@@ -79,19 +79,19 @@ msgstr "Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:134
|
||||
msgid "Agent forwarding"
|
||||
msgstr "Inoltro dell'agente"
|
||||
msgstr "Inoltro dell'Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:35
|
||||
msgid "Agent pipe path"
|
||||
msgstr "Percorso pipe agente"
|
||||
msgstr "Percorso pipe dell'Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:24
|
||||
msgid "Agent type"
|
||||
msgstr "Tipo di agente"
|
||||
msgstr "Tipo di Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:169
|
||||
msgid "Allows opening .bat files in tabs, but breaks some shells"
|
||||
msgstr "Permetti l'apertura di file .bat nelle schede, potrebbe bloccare alcune shell"
|
||||
msgstr "Permette l'apertura di file .bat nelle schede, potrebbe bloccare alcune shell"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:60
|
||||
msgid "Allows quickly opening a terminal in the selected folder"
|
||||
@@ -122,8 +122,7 @@ msgstr "Impostazioni applicazione"
|
||||
|
||||
#: tabby-web/src/services/hostWindow.service.ts:19
|
||||
msgid "Are you sure you want to close Tabby? You can disable this prompt in Settings -> Window."
|
||||
msgstr "Sei sicuro di voler chiudere Tabby? \n"
|
||||
"Puoi disabilitare questo avviso in Impostazioni -> Finestra."
|
||||
msgstr "Sei sicuro di voler chiudere Tabby? Puoi disabilitare questo avviso in Impostazioni -> Finestra."
|
||||
|
||||
#: tabby-core/src/services/config.service.ts:440
|
||||
msgid "Are you sure?"
|
||||
@@ -192,7 +191,7 @@ msgstr "Modalità tasto backspace"
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
#: tabby-serial/src/profiles.ts:88
|
||||
msgid "Baud rate"
|
||||
msgstr "Velocità trasmissione"
|
||||
msgstr "Velocità di trasmissione"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:22
|
||||
msgid "Beginning of the line"
|
||||
@@ -225,7 +224,7 @@ msgstr "Incolla tra parentesi (richiede una shell che lo supporti)"
|
||||
|
||||
#: tabby-terminal/src/services/multifocus.service.ts:19
|
||||
msgid "Broadcast mode. Click anywhere to cancel."
|
||||
msgstr "Modalità broadcast. Fai clic ovunque per disabilitare."
|
||||
msgstr "Modalità broadcast. Clicca ovunque per annullare."
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:50
|
||||
#: tabby-core/src/services/profiles.service.ts:411
|
||||
@@ -273,7 +272,7 @@ msgstr "Crittografie"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||
msgid "Clear"
|
||||
msgstr "Azzera"
|
||||
msgstr "Pulisci"
|
||||
|
||||
#: tabby-core/src/services/profiles.service.ts:248
|
||||
msgid "Clear recent profiles"
|
||||
@@ -281,11 +280,11 @@ msgstr "Cancella profili recenti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:50
|
||||
msgid "Clear terminal"
|
||||
msgstr "Azzera contenuto terminale"
|
||||
msgstr "Pulisci il terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:58
|
||||
msgid "Clear terminal after connection"
|
||||
msgstr "Azzera contenuto terminale dopo la connessione"
|
||||
msgstr "Pulisci il terminale dopo la connessione"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||
msgid "Clipboard"
|
||||
@@ -300,7 +299,7 @@ msgstr "Chiudi"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:45
|
||||
msgid "Close and never show again"
|
||||
msgstr "Chiudi e non visualizzare più"
|
||||
msgstr "Chiudi e non mostrare più"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:240
|
||||
msgid "Close focused pane"
|
||||
@@ -334,11 +333,11 @@ msgstr "Colore"
|
||||
|
||||
#: tabby-terminal/src/settings.ts:29
|
||||
msgid "Color scheme"
|
||||
msgstr "Tema terminale"
|
||||
msgstr "Tema del terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Schemi colore"
|
||||
msgstr "Tema del terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -347,7 +346,7 @@ msgstr "Colori"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
msgstr "Unisci tutte le schede all'interno della scheda attuale"
|
||||
msgstr "Unisci tutte le schede all'interno della scheda corrente"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:4
|
||||
msgid "Command line"
|
||||
@@ -355,7 +354,7 @@ msgstr "Riga di comando"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
||||
msgid "Command's stdin/stdout is used instead of a network connection"
|
||||
msgstr "Viene usato lo stdin/stdout invece di una connessione di rete"
|
||||
msgstr "Viene utilizzato lo stdin/stdout invece di una connessione di rete"
|
||||
|
||||
#: tabby-core/src/services/commands.service.ts:105
|
||||
msgid "Commands"
|
||||
@@ -376,7 +375,7 @@ msgstr "Configurazione scaricata"
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:115
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:120
|
||||
msgid "Config file"
|
||||
msgstr "File configurazione"
|
||||
msgstr "File di configurazione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:73
|
||||
@@ -446,7 +445,7 @@ msgstr "Copia"
|
||||
#: tabby-terminal/src/hotkeys.ts:70
|
||||
#: tabby-terminal/src/tabContextMenu.ts:70
|
||||
msgid "Copy current path"
|
||||
msgstr "Copia percorso attuale"
|
||||
msgstr "Copia percorso corrente"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||
msgid "Copy full path"
|
||||
@@ -479,7 +478,7 @@ msgstr "Crea cartella"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:90
|
||||
msgid "Current"
|
||||
msgstr "Attuale"
|
||||
msgstr "Corrente"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsForMode.component.html:3
|
||||
msgid "Current color scheme"
|
||||
@@ -487,15 +486,15 @@ msgstr "Tema in uso"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:17
|
||||
msgid "Current host key fingerprint"
|
||||
msgstr "Firma chiave host attuale"
|
||||
msgstr "Firma della chiave host corrente"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:184
|
||||
msgid "Current process: {name}"
|
||||
msgstr "Processo attuale: {name}"
|
||||
msgstr "Processo corrente: {name}"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:51
|
||||
msgid "Cursor shape"
|
||||
msgstr "Forma cursore"
|
||||
msgstr "Forma del cursore"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsForMode.component.html:46
|
||||
msgid "Custom"
|
||||
@@ -507,7 +506,7 @@ msgstr "CSS personalizzato"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Tema scuro"
|
||||
msgstr "Modalità scura"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -531,7 +530,7 @@ msgstr "\"Connetti a\" predefinito"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Tipo di connessione predefinita usato dalla funzione di connessione rapida (es. SSH, Telnet)"
|
||||
msgstr "Tipo di connessione predefinito utilizzato dalla funzione di connessione rapida (es. SSH, Telnet)"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -575,11 +574,11 @@ msgstr "Elimina"
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:213
|
||||
#: tabby-terminal/src/components/colorSchemeSettingsForMode.component.ts:90
|
||||
msgid "Delete \"{name}\"?"
|
||||
msgstr "Vuoi eliminare \"{name}\"?"
|
||||
msgstr "Eliminare \"{name}\"?"
|
||||
|
||||
#: tabby-ssh/src/sftpContextMenu.ts:35
|
||||
msgid "Delete {fullPath}?"
|
||||
msgstr "Vuoi eliminare {fullPath}?"
|
||||
msgstr "Eliminare {fullPath}?"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:42
|
||||
msgid "Delete entire line"
|
||||
@@ -595,19 +594,19 @@ msgstr "Elimina parola precedente"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||
msgid "Delete the config on the remote side?"
|
||||
msgstr "Vuoi eliminare la configurazione sul dispositivo remoto?"
|
||||
msgstr "Eliminare la configurazione sul dispositivo remoto?"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:226
|
||||
msgid "Delete the group's profiles?"
|
||||
msgstr "Vuoi eliminare i profili del gruppo?"
|
||||
msgstr "Eliminare i profili del gruppo?"
|
||||
|
||||
#: tabby-terminal/src/components/loginScriptsSettings.component.ts:29
|
||||
msgid "Delete this script?"
|
||||
msgstr "Vuoi eliminare questo script?"
|
||||
msgstr "Eliminare questo script?"
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:50
|
||||
msgid "Delete vault contents?"
|
||||
msgstr "Vuoi eliminare il contenuto della cassaforte?"
|
||||
msgstr "Eliminare il contenuto della Cassaforte?"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpDeleteModal.component.html:3
|
||||
msgid "Deleting"
|
||||
@@ -652,12 +651,12 @@ msgstr "Disconnetti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Disconnetti la scheda attuale (serial/telnet/SSH)"
|
||||
msgstr "Disconnetti la scheda corrente (Serial/Telnet/SSH)"
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
msgid "Disconnect from {host}?"
|
||||
msgstr "Vuoi disconnetti da {host}?"
|
||||
msgstr "Disconnetti da {host}?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:30
|
||||
msgid "Display images via Sixel escape sequences"
|
||||
@@ -665,7 +664,7 @@ msgstr "Visualizza le immagini tramite sequenze di escape di Sixel"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:85
|
||||
msgid "Display on"
|
||||
msgstr "Visualizza in"
|
||||
msgstr "Mostra su"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:50
|
||||
msgid "Do not abort"
|
||||
@@ -683,7 +682,7 @@ msgstr "Non ricordare"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:97
|
||||
msgid "Dock always on top"
|
||||
msgstr "Visualizza sempre in primo piano"
|
||||
msgstr "Mostra sempre in primo piano"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:67
|
||||
msgid "Dock the terminal"
|
||||
@@ -707,7 +706,7 @@ msgstr "La selezione con doppio clic si fermerà a questi caratteri"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:79
|
||||
msgid "Down"
|
||||
msgstr "In basso"
|
||||
msgstr "Giù"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:43
|
||||
msgid "Download"
|
||||
@@ -754,15 +753,15 @@ msgstr "Abilita animazioni"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:74
|
||||
msgid "Enable automatic installation of updates when they become available."
|
||||
msgstr "Abilita l'installazione automatica degli aggiornamenti quando disponibili."
|
||||
msgstr "Abilita l'installazione automatica degli aggiornamenti quando sono disponibili."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:211
|
||||
msgid "Enable fluent background option"
|
||||
msgstr "Abilita opzione di sfondo fluente"
|
||||
msgstr "Abilita l'opzione di sfondo fluente"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||
msgid "Enable font ligatures"
|
||||
msgstr "Abilita le legature tra font"
|
||||
msgstr "Abilita le legature tra caratteri"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:39
|
||||
msgid "Enable global hotkey (Ctrl-Space)"
|
||||
@@ -791,7 +790,7 @@ msgstr "Cancella configurazione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:12
|
||||
msgid "Erase the Vault"
|
||||
msgstr "Cancella cassaforte"
|
||||
msgstr "Cancella la Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:6
|
||||
msgid "Error in {plugin}:"
|
||||
@@ -895,7 +894,7 @@ msgstr "Evidenzia il riquadro a destra"
|
||||
|
||||
#: tabby-core/src/theme.ts:34
|
||||
msgid "Follow the color scheme"
|
||||
msgstr "Segui il tema di sistema"
|
||||
msgstr "Segui lo schema dei colori"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:5
|
||||
msgid "Font"
|
||||
@@ -919,7 +918,7 @@ msgstr "Forza LF"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
||||
msgid "Forces a specific SSH agent connection type."
|
||||
msgstr "Per la connessione SSH forza un tipo specifico di agente ."
|
||||
msgstr "Forza un tipo specifico di agente per la connessione SSH."
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:105
|
||||
msgid "Forget"
|
||||
@@ -978,7 +977,7 @@ msgstr "Dona alla finestra una trasparenza sfocata per lo sfondo"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:24
|
||||
msgid "Go up"
|
||||
msgstr "Livello superiore"
|
||||
msgstr "Vai su"
|
||||
|
||||
#: tabby-core/src/utils.ts:61
|
||||
msgid "Green"
|
||||
@@ -1031,7 +1030,7 @@ msgstr "Nasconde il terminale agganciato quando si fa click fuori."
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:26
|
||||
msgid "Homepage"
|
||||
msgstr "Pagina home"
|
||||
msgstr "Homepage"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:34
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:6
|
||||
@@ -1049,7 +1048,7 @@ msgstr "Verifica della chiave host"
|
||||
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:15
|
||||
msgid "Hotkeys"
|
||||
msgstr "Tasti scelta rapida"
|
||||
msgstr "Tasti di scelta rapida"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:83
|
||||
msgid "How Tabby presents itself through environment vars"
|
||||
@@ -1081,7 +1080,7 @@ msgstr "Se disabilitato, solo i profili personalizzati verranno visualizzati nel
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:23
|
||||
msgid "Immediately echoes your input locally"
|
||||
msgstr "Riporta immediatamente gli input locali"
|
||||
msgstr "Riporta immediatamente i tuoi input locali"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:252
|
||||
msgid "Increase horizontal split size"
|
||||
@@ -1107,7 +1106,7 @@ msgstr "Modalità di inserimento"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:15
|
||||
msgid "Input newlines"
|
||||
msgstr "Input ritorni a capo"
|
||||
msgstr "Input newlines"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:39
|
||||
msgid "Installed"
|
||||
@@ -1115,11 +1114,11 @@ msgstr "Installato"
|
||||
|
||||
#: tabby-electron/src/services/updater.service.ts:131
|
||||
msgid "Installing the update will close all tabs and restart Tabby."
|
||||
msgstr "L'installazione dell'aggiornamento chiuderà tutte le schede e riavvierà Tabby."
|
||||
msgstr "Installare l'aggiornamento chiuderà tutte le schede e riavvierà Tabby."
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:66
|
||||
msgid "Intelligent Ctrl-C (copy/abort)"
|
||||
msgstr "Ctrl-C intelligente (copia/annulla)"
|
||||
msgstr "Ctrl-C Intelligente (copia/annulla)"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:94
|
||||
msgid "Interactive"
|
||||
@@ -1156,7 +1155,7 @@ msgstr "Mantieni"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:154
|
||||
msgid "Keep Alive Interval (Milliseconds)"
|
||||
msgstr "Intervallo keep alive (Millisecondi)"
|
||||
msgstr "Keep Alive Interval (Millisecondi)"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:98
|
||||
msgid "Keep docked terminal always on top"
|
||||
@@ -1189,7 +1188,7 @@ msgstr "Lingua"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:11
|
||||
msgid "Last known host key fingerprint"
|
||||
msgstr "Ultima firma nota chiave host"
|
||||
msgstr "Ultima firma nota della chiave host"
|
||||
|
||||
#: tabby-ssh/src/tabContextMenu.ts:32
|
||||
msgid "Launch WinSCP"
|
||||
@@ -1197,7 +1196,7 @@ msgstr "Avvia WinSCP"
|
||||
|
||||
#: tabby-ssh/src/hotkeys.ts:14
|
||||
msgid "Launch WinSCP for current SSH session"
|
||||
msgstr "Avvia WinSCP per la sessione SSH attuale"
|
||||
msgstr "Avvia WinSCP per la sessione SSH corrente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:16
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:7
|
||||
@@ -1208,7 +1207,7 @@ msgstr "Scopri come consentire a Tabby di rilevare la cartella di lavoro della s
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:76
|
||||
#: tabby-core/src/tabContextMenu.ts:80
|
||||
msgid "Left"
|
||||
msgstr "A sinistra"
|
||||
msgstr "Sinistra"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:40
|
||||
msgid "Lets the shell handle Meta key instead of OS"
|
||||
@@ -1228,7 +1227,7 @@ msgstr "Editor in linea, l'input viene inviato dopo aver premuto Invio"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:83
|
||||
msgid "Line padding"
|
||||
msgstr "Riempimento riga"
|
||||
msgstr "Spessore della riga"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:21
|
||||
msgid "Loading"
|
||||
@@ -1255,11 +1254,11 @@ msgstr "Terminale locale"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:221
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:16
|
||||
msgid "Login scripts"
|
||||
msgstr "Script di accesso"
|
||||
msgstr "Script di login"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:57
|
||||
msgid "Long-click for context menu"
|
||||
msgstr "Clic prolungato per il menu contestuale"
|
||||
msgstr "Click prolungato per il menu contestuale"
|
||||
|
||||
#: tabby-core/src/services/profiles.service.ts:279
|
||||
msgid "Manage profiles"
|
||||
@@ -1267,7 +1266,7 @@ msgstr "Gestione profili"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:160
|
||||
msgid "Max Keep Alive Count"
|
||||
msgstr "Numero massimo keep Alive"
|
||||
msgstr "Numero massimo di Keep Alive"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:172
|
||||
msgid "Maximize the active pane"
|
||||
@@ -1330,11 +1329,11 @@ msgstr "Nuova scheda amministratore"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:58
|
||||
msgid "New config on {platform}"
|
||||
msgstr "Nuova configurazione IN {platform}"
|
||||
msgstr "Nuova configurazione su {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nome nuovo gruppo"
|
||||
msgstr "Nome del nuovo gruppo"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1404,7 +1403,7 @@ msgstr "Normale"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:22
|
||||
msgid "Normal font weight"
|
||||
msgstr "Peso font normale"
|
||||
msgstr "Peso del carattere normale"
|
||||
|
||||
#: tabby-terminal/src/components/searchPanel.component.ts:54
|
||||
#: tabby-terminal/src/components/searchPanel.component.ts:64
|
||||
@@ -1439,7 +1438,7 @@ msgstr "Nelle discussioni di GitHub"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Chiudi la scheda solo quando la sessione è esplicitamente terminata"
|
||||
msgstr "Chiude la scheda solo quando la sessione è esplicitamente terminata"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1447,7 +1446,7 @@ msgstr "Opacità"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:82
|
||||
msgid "Open DevTools"
|
||||
msgstr "Apri strumenti di sviluppo"
|
||||
msgstr "Apri Strumenti di Sviluppo"
|
||||
|
||||
#: tabby-settings/src/hotkeys.ts:11
|
||||
msgid "Open Settings"
|
||||
@@ -1476,19 +1475,19 @@ msgstr "Arancione"
|
||||
|
||||
#: tabby-electron/src/shells/macDefault.ts:25
|
||||
msgid "OS default"
|
||||
msgstr "Predefinito S.O."
|
||||
msgstr "Predefinito del OS"
|
||||
|
||||
#: tabby-electron/src/shells/winDefault.ts:43
|
||||
msgid "OS default ({name})"
|
||||
msgstr "Predefinito S.O. ({name})"
|
||||
msgstr "Predefinito del OS ({name})"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:46
|
||||
msgid "Output is shown as a hexdump"
|
||||
msgstr "L'output è visualizzato come un dump esadecimale"
|
||||
msgstr "L'output è mostrato come un hexdump"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:41
|
||||
msgid "Output is shown as it is received"
|
||||
msgstr "L'output è visualizzato come viene ricevuto"
|
||||
msgstr "L'output è mostrato come viene ricevuto"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:23
|
||||
msgid "Output mode"
|
||||
@@ -1496,7 +1495,7 @@ msgstr "Modalità di output"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:34
|
||||
msgid "Output newlines"
|
||||
msgstr "Output ritorni a capo"
|
||||
msgstr "Output newlines"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:42
|
||||
msgid "Override X11 display"
|
||||
@@ -1536,7 +1535,7 @@ msgstr "Parità"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:64
|
||||
msgid "Partial config sync is not possible when the config is encrypted via Vault."
|
||||
msgstr "La sincronizzazione parziale della configurazione non è possibile quando questa è cifrata all'interno della cassaforte."
|
||||
msgstr "La sincronizzazione parziale della configurazione non è possibile quando questa è cifrata all'interno della Cassaforte."
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
@@ -1567,7 +1566,7 @@ msgstr "Incolla quando non selezionato, altrimenti copia"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:528
|
||||
msgid "Paste multiple lines?"
|
||||
msgstr "Vuoi incollare righe multiple?"
|
||||
msgstr "Incollare righe multiple?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
||||
msgid "Paste on middle-click"
|
||||
@@ -1587,7 +1586,7 @@ msgstr "Plugin"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:4
|
||||
msgid "Plugins folder"
|
||||
msgstr "Cartella plugin"
|
||||
msgstr "Cartella dei plugin"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:38
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:10
|
||||
@@ -1605,7 +1604,7 @@ msgstr "Porte"
|
||||
|
||||
#: tabby-terminal/src/api/connectableTerminalTab.component.ts:87
|
||||
msgid "Press any key to reconnect"
|
||||
msgstr "Premi un tasto per riconnetterti"
|
||||
msgstr "Premi un tasto per riconnettersi"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/hotkeyInputModal.component.html:3
|
||||
msgid "Press the key now"
|
||||
@@ -1617,7 +1616,7 @@ msgstr "Previene la chiusura accidentale"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:110
|
||||
msgid "Prevents accidental execution of pasted commands"
|
||||
msgstr "Impedisci l'esecuzione accidentale di comandi incollati"
|
||||
msgstr "Impedisce l'esecuzione accidentale di comandi incollati"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:44
|
||||
msgid "Previous tab"
|
||||
@@ -1660,7 +1659,7 @@ msgstr "Viola"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:38
|
||||
msgid "Puts all of Tabby's configuration into the vault"
|
||||
msgstr "Trasferisci tutta la configurazione di Tabby all'interno della cassaforte"
|
||||
msgstr "Trasferisce tutta la configurazione di Tabby all'interno della Cassaforte"
|
||||
|
||||
#: tabby-core/src/index.ts:219
|
||||
#: tabby-core/src/services/profiles.service.ts:295
|
||||
@@ -1678,7 +1677,7 @@ msgstr "Connessione raw socket"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:166
|
||||
msgid "Ready Timeout (Milliseconds)"
|
||||
msgstr "Tempo stato pronto (millisecondi)"
|
||||
msgstr "Tempo di preparazione (in millisecondi)"
|
||||
|
||||
#: tabby-core/src/services/profiles.service.ts:235
|
||||
#: tabby-core/src/services/profiles.service.ts:249
|
||||
@@ -1694,11 +1693,11 @@ msgstr "Recente"
|
||||
#: tabby-terminal/src/tabContextMenu.ts:115
|
||||
#: tabby-terminal/src/tabContextMenu.ts:119
|
||||
msgid "Reconnect"
|
||||
msgstr "Riconnetti"
|
||||
msgstr "Riconetti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Riconnetti la scheda attuale (serial/telnet/SSH)"
|
||||
msgstr "Riconnetti la scheda corrente (Serial/Telnet/SSH)"
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1723,7 +1722,7 @@ msgstr "Remoto"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
||||
msgid "Remove whitespace and newlines around the copied text"
|
||||
msgstr "Rimuovi spazi bianchi e a ritorni a capo dal testo copiato"
|
||||
msgstr "Rimuovi spazi bianchi e a capo dal testo copiato"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:26
|
||||
#: tabby-core/src/tabContextMenu.ts:120
|
||||
@@ -1755,7 +1754,7 @@ msgstr "Segnala un problema"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:81
|
||||
msgid "Require a key to click links"
|
||||
msgstr "Richiedi una chiave per fare clic sui collegamenti"
|
||||
msgstr "Richiede una chiave per fare clic sui collegamenti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:62
|
||||
msgid "Reset zoom"
|
||||
@@ -1763,15 +1762,15 @@ msgstr "Reimposta zoom"
|
||||
|
||||
#: tabby-serial/src/hotkeys.ts:14
|
||||
msgid "Restart current serial session"
|
||||
msgstr "Riavvia la sessione seriale attuale"
|
||||
msgstr "Riavvia la sessione seriale corrente"
|
||||
|
||||
#: tabby-ssh/src/hotkeys.ts:10
|
||||
msgid "Restart current SSH session"
|
||||
msgstr "Riavvia la sessione SSH attuale"
|
||||
msgstr "Riavvia la sessione SSH corrente"
|
||||
|
||||
#: tabby-telnet/src/hotkeys.ts:10
|
||||
msgid "Restart current Telnet session"
|
||||
msgstr "Riavvia la sessione telnet attuale"
|
||||
msgstr "Riavvia la sessione Telnet corrente"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:64
|
||||
msgid "Restart tab"
|
||||
@@ -1783,11 +1782,11 @@ msgstr "Riavvia l'app per applicare le modifiche"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Vuoi ripristinare le impostazioni predefinite?"
|
||||
msgstr "Ripristinare le impostazioni predefinite?"
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Vuoi ripristinare le impostazioni predefinite ereditate?"
|
||||
msgstr "Ripristinare le impostazioni predefinite ereditate?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1795,17 +1794,17 @@ msgstr "Ripristina le schede del terminale all'avvio dell'app"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:147
|
||||
msgid "Reuse session for multiple tabs"
|
||||
msgstr "Riusa la sessione per più schede"
|
||||
msgstr "Riutilizzare la sessione per più schede"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:136
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:78
|
||||
#: tabby-core/src/tabContextMenu.ts:78
|
||||
msgid "Right"
|
||||
msgstr "A destra"
|
||||
msgstr "Destra"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:56
|
||||
msgid "Right click"
|
||||
msgstr "Clic destro"
|
||||
msgstr "Click destro"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/localProfileSettings.component.html:5
|
||||
msgid "Run as administrator"
|
||||
@@ -1868,7 +1867,7 @@ msgstr "Scorrimento"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
||||
msgid "Scrolls the terminal to the bottom on user input"
|
||||
msgstr "Scorri il terminale in basso durante l'input utente"
|
||||
msgstr "Scorre il terminale in basso durante l'input dell'utente"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:74
|
||||
msgid "Search"
|
||||
@@ -1877,7 +1876,7 @@ msgstr "Cerca"
|
||||
#: tabby-terminal/src/components/colorSchemeSelector.component.ts:9
|
||||
#: tabby-terminal/src/components/colorSchemeSettingsForMode.component.ts:10
|
||||
msgid "Search color schemes"
|
||||
msgstr "Cerca tema terminale"
|
||||
msgstr "Ricerca tema del terminale"
|
||||
|
||||
#: tabby-settings/src/components/hotkeySettingsTab.component.ts:12
|
||||
msgid "Search hotkeys"
|
||||
@@ -1974,7 +1973,7 @@ msgstr "Shell"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:593
|
||||
msgid "Shell does not support current path detection"
|
||||
msgstr "La shell non supporta il rilevamento del percorso attuale"
|
||||
msgstr "La shell non supporta il rilevamento del percorso corrente"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:59
|
||||
msgid "Shell integration"
|
||||
@@ -1983,71 +1982,71 @@ msgstr "Integrazione shell"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Visualizza"
|
||||
msgstr "Mostra"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
msgstr "Visualizza il selettore profilo {type}"
|
||||
msgstr "Mostra il selettore profilo {type}"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
||||
msgid "Show a confirmation box when pasting multiple lines"
|
||||
msgstr "Visualizza una casella di conferma quando incolli più righe"
|
||||
msgstr "Mostra una casella di conferma quando incolli più righe"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:75
|
||||
msgid "Show built-in profiles in selector"
|
||||
msgstr "Visualizza profili integrati nel selettore"
|
||||
msgstr "Mostra profili integrati nel selettore"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:12
|
||||
msgid "Show command selector"
|
||||
msgstr "Visualizza selettore comandi"
|
||||
msgstr "Mostra selettore comandi"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:132
|
||||
msgid "Show config file"
|
||||
msgstr "Visualizza file di configurazione"
|
||||
msgstr "Mostra file di configurazione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:131
|
||||
msgid "Show defaults"
|
||||
msgstr "Visualizza predefiniti"
|
||||
msgstr "Mostra predefiniti"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:146
|
||||
msgid "Show Mixer"
|
||||
msgstr "Visualizza mixer"
|
||||
msgstr "Mostra Mixer"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:56
|
||||
msgid "Show pane labels (for rearranging)"
|
||||
msgstr "Visualizza etichette riquadro (per riorganizzare)"
|
||||
msgstr "Mostra etichette riquadro (per riorganizzare)"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:164
|
||||
msgid "Show profile icon on tab"
|
||||
msgstr "Visualizza l'icona del profilo nella scheda"
|
||||
msgstr "Mostra l'icona del profilo nella scheda"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:16
|
||||
msgid "Show profile selector"
|
||||
msgstr "Visualizza selettore profilo"
|
||||
msgstr "Mostra selettore profilo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:68
|
||||
msgid "Show recent profiles in selector"
|
||||
msgstr "Visualizza i profili recenti nel selettore"
|
||||
msgstr "Mostra i profili recenti nel selettore"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:36
|
||||
msgid "Show release notes"
|
||||
msgstr "Visualizza note di rilascio"
|
||||
msgstr "Mostra note di rilascio"
|
||||
|
||||
#: tabby-serial/src/hotkeys.ts:10
|
||||
msgid "Show Serial connections"
|
||||
msgstr "Visualizza connessioni seriali"
|
||||
msgstr "Mostra connessioni seriali"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:152
|
||||
msgid "Show tabs in fullscreen mode"
|
||||
msgstr "Visualizza schede in modalità schermo intero"
|
||||
msgstr "Mostra schede in modalità schermo intero"
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:62
|
||||
msgid "Show toolbar"
|
||||
msgstr "Visualizza barra degli strumenti"
|
||||
msgstr "Mostra barra degli strumenti"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:45
|
||||
msgid "Show vault contents"
|
||||
msgstr "Visualizza contenuto della cassaforte"
|
||||
msgstr "Mostra contenuto della Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:29
|
||||
msgid "Sixel graphics support (experimental)"
|
||||
@@ -2144,7 +2143,7 @@ msgstr "Avvio"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:32
|
||||
msgid "Stop bits"
|
||||
msgstr "Bit stop"
|
||||
msgstr "Ferma i bit"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:52
|
||||
msgid "Strip"
|
||||
@@ -2177,7 +2176,7 @@ msgstr "Cambia l'implementazione del frontend del terminale (sperimentale)"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:4
|
||||
msgid "Sync"
|
||||
msgstr "Sincronizzazione"
|
||||
msgstr "Sincronizazione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:53
|
||||
msgid "Sync automatically"
|
||||
@@ -2193,7 +2192,7 @@ msgstr "Sincronizza tasti di scelta rapida"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:80
|
||||
msgid "Sync Vault"
|
||||
msgstr "Sincronizza cassaforte"
|
||||
msgstr "Sincronizza Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:74
|
||||
msgid "Sync window settings"
|
||||
@@ -2228,8 +2227,7 @@ msgstr "Attività della scheda"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/safeModeModal.component.html:3
|
||||
msgid "Tabby could not start with your plugins, so all third party plugins have been disabled in this session. The error was:"
|
||||
msgstr "Tabby non può avviarsi con i plugin, quindi tutti i plugin di terze parti sono stati disabilitati in questa sessione. \n"
|
||||
"L'errore era:"
|
||||
msgstr "Tabby non può avviarsi con i tuoi plugin, quindi tutti i plugin di terze parti sono stati disabilitati in questa sessione. L'errore era:"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:41
|
||||
msgid "Tabby news and updates on Twitter"
|
||||
@@ -2249,7 +2247,7 @@ msgstr "Larghezza schede"
|
||||
|
||||
#: tabby-telnet/src/profiles.ts:34
|
||||
msgid "Telnet session"
|
||||
msgstr "Sessione telnet"
|
||||
msgstr "Sessione Telnet"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:210
|
||||
#: tabby-terminal/src/settings.ts:43
|
||||
@@ -2282,7 +2280,7 @@ msgstr "Ci sono trasferimenti di file attivi"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||
msgid "There is a saved password for this connection"
|
||||
msgstr "Per questa connessione è presente una password salvata"
|
||||
msgstr "È presente una password salvata per questa connessione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:102
|
||||
msgid "These apply to all profiles of a given type"
|
||||
@@ -2302,7 +2300,7 @@ msgstr "Seleziona se stai sperimentando aliasing, ghosting o altri problemi visi
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:20
|
||||
msgid "Toggle fullscreen mode"
|
||||
msgstr "Attiva/disattiva schermo intero"
|
||||
msgstr "Attiva/Disattiva schermo intero"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:36
|
||||
msgid "Toggle last tab"
|
||||
@@ -2310,11 +2308,11 @@ msgstr "Attiva/disattiva ultima scheda"
|
||||
|
||||
#: tabby-electron/src/hotkeys.ts:14
|
||||
msgid "Toggle terminal window"
|
||||
msgstr "Attiva/disattiva finestra terminale"
|
||||
msgstr "Attiva/disattiva finestra del terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:40
|
||||
msgid "Toggles the Tabby window visibility"
|
||||
msgstr "Attiva/disattiva visibilità della finestra di Tabby"
|
||||
msgstr "Attiva/disattiva la visibilità della finestra di Tabby"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:130
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:74
|
||||
@@ -2360,7 +2358,7 @@ msgstr "Sgancia"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:81
|
||||
msgid "Up"
|
||||
msgstr "In alto"
|
||||
msgstr "Su"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:14
|
||||
#: tabby-electron/src/services/updater.service.ts:133
|
||||
@@ -2369,7 +2367,7 @@ msgstr "Aggiorna"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:52
|
||||
msgid "Upgrade to {version}"
|
||||
msgstr "Aggiorna alla {version}"
|
||||
msgstr "Aggiornamento alla {version}"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:42
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:10
|
||||
@@ -2382,7 +2380,7 @@ msgstr "Carica come nuova configurazione"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:39
|
||||
msgid "Use {altKeyName} as the Meta key"
|
||||
msgstr "Come chiave meta usa {altKeyName} "
|
||||
msgstr "Usa {altKeyName} come chiave Meta"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:5
|
||||
msgid "Use ConPTY"
|
||||
@@ -2403,7 +2401,7 @@ msgstr "Attraverso il metodo CONNECT"
|
||||
|
||||
#: tabby-ssh/src/session/ssh.ts:465
|
||||
msgid "Using preset password"
|
||||
msgstr "Usa password preimpostata"
|
||||
msgstr "Usare password preimpostata"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:9
|
||||
msgid "Vault"
|
||||
@@ -2411,11 +2409,11 @@ msgstr "Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:4
|
||||
msgid "Vault is an always-encrypted container for secrets such as SSH passwords and private key passphrases."
|
||||
msgstr "La cassaforte è un contenitore protetto da cifratura per proteggere password SSH e frasi segrete delle chiavi private."
|
||||
msgstr "La Cassaforte è un contenitore protetto da cifratura per proteggere password SSH e frasi segrete delle chiavi private."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:17
|
||||
msgid "Vault is empty"
|
||||
msgstr "La cassaforte è vuota"
|
||||
msgstr "La Cassaforte è vuota"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/unlockVaultModal.component.html:4
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:44
|
||||
@@ -2424,11 +2422,11 @@ msgstr "Cassaforte bloccata"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:3
|
||||
msgid "Vault is not configured"
|
||||
msgstr "La cassaforte non è configurata"
|
||||
msgstr "La Cassaforte non è configurata"
|
||||
|
||||
#: tabby-core/src/services/fileProviders.service.ts:40
|
||||
msgid "Vault master passphrase needs to be set to allow storing secrets"
|
||||
msgstr "Per consentire la memorizzazione di dati cifrati deve essere impostata la frase segreta principale della cassaforte"
|
||||
msgstr "La frase segreta principale della Cassaforte deve essere impostata per consentire la memorizzazione di dati cifrati"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:11
|
||||
msgid "Verify host keys when connecting"
|
||||
@@ -2452,11 +2450,11 @@ msgstr "Visive"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:116
|
||||
msgid "Warn on multi-line paste"
|
||||
msgstr "Avvisa prima di incollare righe multiple"
|
||||
msgstr "Avviso prima di incollare righe multiple"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
||||
msgid "Warn when closing active connections"
|
||||
msgstr "Avvisa quando chiudi le connessioni attive"
|
||||
msgstr "Avverti quando chiudi le connessioni attive"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
||||
msgid "Warning: remote host's key has suddenly changed!"
|
||||
@@ -2480,11 +2478,11 @@ msgstr "Quando termina una sessione"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
msgstr "Quando abilitato, i collegamentisono cliccabili solo tenendo premuto questo tasto"
|
||||
msgstr "Quando abilitato, i link sono cliccabili solo tenendo premuto questo tasto"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:18
|
||||
msgid "When WinSCP is detected, you can launch an SCP session from the context menu."
|
||||
msgstr "Quando viene rilevato WinSCP, è possibile avviare una sessione SCP dal menu contestuale."
|
||||
msgstr "Quando si rileva WinSCP, è possibile avviare una sessione SCP dal menu contestuale."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:53
|
||||
msgid "Whether a custom window or an OS native window should be used"
|
||||
@@ -2505,7 +2503,7 @@ msgstr "Dimensione finestra lungo il bordo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:105
|
||||
msgid "Window dimension away from the edge"
|
||||
msgstr "Dimensione finestra fuori dal bordo"
|
||||
msgstr "Dimensione della finestra fuori dal bordo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:52
|
||||
msgid "Window frame"
|
||||
@@ -2521,7 +2519,7 @@ msgstr "Windows 10 build 18309 o superiore è raccomandato per ConPTY"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:17
|
||||
msgid "WinSCP path"
|
||||
msgstr "Percorso WinSCP"
|
||||
msgstr "Posizione di WinSCP"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:74
|
||||
msgid "Word separators"
|
||||
@@ -2554,11 +2552,11 @@ msgstr "Giallo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/setVaultPassphraseModal.component.html:4
|
||||
msgid "You can change it later, but it's unrecoverable if forgotten."
|
||||
msgstr "Si può modificare più tardi, ma è irrecuperabile se dimenticata."
|
||||
msgstr "Si può cambiare più tardi, ma è irrecuperabile se dimenticato."
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:7
|
||||
msgid "You could be under a man-in-the-middle attack right now, or the host key could have just been changed."
|
||||
msgstr "In questo momento potresti essere sotto un attacco man-in-the-middle, o la chiave dell'host potrebbe essere stata appena cambiata."
|
||||
msgstr "Potresti essere sotto un attacco man-in-the-middle in questo momento, o la chiave dell'host potrebbe essere stata appena cambiata."
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:54
|
||||
msgid "Zoom in"
|
||||
|
@@ -10,11 +10,11 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"Language: ja_JP\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
msgstr "\"{command}\"が実行中です。閉じてもよろしいですか?"
|
||||
msgstr "\"{command}\"が実行中です。閉じますか?"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:78
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:88
|
||||
@@ -23,7 +23,7 @@ msgstr "{name} コピー"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:77
|
||||
msgid "A second font family used to display characters missing in the main font"
|
||||
msgstr "メインフォントに不足している文字を表示する際に使用されます"
|
||||
msgstr "既定フォントに不足している文字を表示する際に使用されます"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||
msgid "Abort all"
|
||||
@@ -64,7 +64,7 @@ msgstr "追加..."
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:84
|
||||
msgid "Additional space between lines"
|
||||
msgstr "行と行の間隔を広げます"
|
||||
msgstr "行間にスペースを空けます"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:22
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:61
|
||||
@@ -79,15 +79,15 @@ msgstr "SSHエージェント"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:134
|
||||
msgid "Agent forwarding"
|
||||
msgstr "SSHエージェント転送"
|
||||
msgstr "SSHエージェントの転送"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:35
|
||||
msgid "Agent pipe path"
|
||||
msgstr "SSHエージェントのパイプ名"
|
||||
msgstr "SSHエージェントのパイプのパス"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:24
|
||||
msgid "Agent type"
|
||||
msgstr "SSHエージェントの指定"
|
||||
msgstr "SSHエージェントの種類"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:169
|
||||
msgid "Allows opening .bat files in tabs, but breaks some shells"
|
||||
@@ -185,7 +185,7 @@ msgstr "透過の種類"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Backspaceキー"
|
||||
msgstr "BackSpaceキー"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -354,7 +354,7 @@ msgstr "コマンドライン"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
||||
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:105
|
||||
msgid "Commands"
|
||||
@@ -486,7 +486,7 @@ msgstr "使用中の配色"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:17
|
||||
msgid "Current host key fingerprint"
|
||||
msgstr "現在のホスト鍵のフィンガープリント"
|
||||
msgstr "使用中のホストキーのフィンガープリント"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:184
|
||||
msgid "Current process: {name}"
|
||||
@@ -526,7 +526,7 @@ msgstr "垂直方向の分割サイズを縮小"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "既定の接続方式"
|
||||
msgstr "既定の接続"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
@@ -618,7 +618,7 @@ msgstr "デバイス"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:10
|
||||
msgid "Direct"
|
||||
msgstr "直接接続"
|
||||
msgstr "直接"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:57
|
||||
msgid "Disable"
|
||||
@@ -630,7 +630,7 @@ msgstr "動的なタブ名を無効にする"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:218
|
||||
msgid "Disable fluent background while dragging"
|
||||
msgstr "ドラッグ中はFluent背景を無効化する"
|
||||
msgstr "ドラッグ中はFluentを無効にする"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:204
|
||||
msgid "Disable GPU acceleration"
|
||||
@@ -757,7 +757,7 @@ msgstr "アップデートが利用可能になったら自動的にインスト
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:211
|
||||
msgid "Enable fluent background option"
|
||||
msgstr "Fluent背景オプションを有効にする"
|
||||
msgstr "Fluent背景設定を有効にする"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||
msgid "Enable font ligatures"
|
||||
@@ -806,7 +806,7 @@ msgstr "例:"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:212
|
||||
msgid "Experimental Windows 10 background style known to cause issues"
|
||||
msgstr "不具合が報告されているWindows10風の実験的な背景"
|
||||
msgstr "Windows10では問題が発生する場合があります。"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:28
|
||||
msgid "Export"
|
||||
@@ -834,7 +834,7 @@ msgstr "固定"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:219
|
||||
msgid "Fluent background sometimes causes drag lag"
|
||||
msgstr "Fluent背景はドラッグ中にラグを発生させることがあります"
|
||||
msgstr "Fluentはドラッグ中にラグを発生させる場合があります"
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:82
|
||||
msgid "Focus all panes"
|
||||
@@ -1039,11 +1039,11 @@ msgstr "ホスト"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:206
|
||||
msgid "Host key"
|
||||
msgstr "ホスト鍵"
|
||||
msgstr "ホストキー"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:3
|
||||
msgid "Host key verification"
|
||||
msgstr "ホスト鍵の検証"
|
||||
msgstr "ホストキーの検証"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:15
|
||||
@@ -1052,7 +1052,7 @@ msgstr "ホットキー"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:83
|
||||
msgid "How Tabby presents itself through environment vars"
|
||||
msgstr "環境変数を利用して、Tabbyを他の端末として認識させます"
|
||||
msgstr "環境変数を利用してTabbyを他の端末のように扱わせます"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||
msgid "HTTP proxy"
|
||||
@@ -1131,7 +1131,7 @@ msgstr "無効な構文"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:16
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:43
|
||||
msgid "Jump host"
|
||||
msgstr "踏み台サーバー"
|
||||
msgstr "ジャンプサーバー"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:34
|
||||
msgid "Jump to next word"
|
||||
@@ -1188,7 +1188,7 @@ msgstr "言語"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:11
|
||||
msgid "Last known host key fingerprint"
|
||||
msgstr "最後に使われたホスト鍵のフィンガープリント"
|
||||
msgstr "最後に使用したホストキーのフィンガープリント"
|
||||
|
||||
#: tabby-ssh/src/tabContextMenu.ts:32
|
||||
msgid "Launch WinSCP"
|
||||
@@ -1201,7 +1201,7 @@ msgstr "現在のSSHセッションでWinSCPを起動"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:16
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:7
|
||||
msgid "Learn how to allow Tabby to detect remote shell's working directory."
|
||||
msgstr "リモート上の作業ディレクトリを自動検出する方法をご紹介します。"
|
||||
msgstr "Tabbyにリモート側の作業ディレクトリを検出させる方法をご紹介します。"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:134
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:76
|
||||
@@ -1227,7 +1227,7 @@ msgstr "Enterキーを押すと入力が送信されます"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:83
|
||||
msgid "Line padding"
|
||||
msgstr "行間"
|
||||
msgstr "行間の大きさ"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:21
|
||||
msgid "Loading"
|
||||
@@ -1299,7 +1299,7 @@ msgstr "\"未分類\" に移動"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:197
|
||||
msgid "Moving the mouse over an inactive pane will cause it to activate"
|
||||
msgstr "マウスの移動に合わせてアクティブなペインを切り替えます。"
|
||||
msgstr "マウスの移動でアクティブなペインを切り替えることができます。"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:9
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:12
|
||||
@@ -1325,7 +1325,7 @@ msgstr "新規"
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
msgstr "新しい管理者権限タブ"
|
||||
msgstr "新しい管理者タブ"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:58
|
||||
msgid "New config on {platform}"
|
||||
@@ -1366,7 +1366,7 @@ msgstr "新しいタブ: {profile}"
|
||||
#: tabby-local/src/buttonProvider.ts:20
|
||||
#: tabby-local/src/tabContextMenu.ts:27
|
||||
msgid "New terminal"
|
||||
msgstr "新しい端末"
|
||||
msgstr "新しいターミナル"
|
||||
|
||||
#: tabby-electron/src/hotkeys.ts:10
|
||||
msgid "New window"
|
||||
@@ -1511,11 +1511,11 @@ msgstr "リモートを上書きして同期"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:76
|
||||
msgid "Overwrite the config on the remote side and start syncing?"
|
||||
msgstr "リモート上の設定を上書きして、同期を開始しますか?"
|
||||
msgstr "リモート上の設定を上書きして同期を開始しますか?"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:96
|
||||
msgid "Overwrite the local config and start syncing?"
|
||||
msgstr "現在のローカル上の設定を上書きして、同期を開始しますか?"
|
||||
msgstr "これまでのローカル上の設定を上書きして、同期を開始しますか?"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:189
|
||||
msgid "Pane resize step"
|
||||
@@ -1535,7 +1535,7 @@ msgstr "パリティ"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:64
|
||||
msgid "Partial config sync is not possible when the config is encrypted via Vault."
|
||||
msgstr "Vaultによって設定ファイルを暗号化した場合、設定の一部だけを同期から外すことはできません。"
|
||||
msgstr "設定ファイルがVaultによって暗号化されている場合、部分的な設定の同期はできません。"
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
@@ -1562,11 +1562,11 @@ msgstr "クリップボードから貼り付け"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:63
|
||||
msgid "Paste if no selection, else copy"
|
||||
msgstr "通常は貼り付け、テキスト選択時のみコピー"
|
||||
msgstr "通常は貼り付け、テキスト選択時のみコピー、"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:528
|
||||
msgid "Paste multiple lines?"
|
||||
msgstr "複数行貼り付けを実行してもよろしいですか?"
|
||||
msgstr "複数行の貼り付けを実行してもよろしいですか?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
||||
msgid "Paste on middle-click"
|
||||
@@ -1956,11 +1956,11 @@ msgstr "Tabbyを %COMSPEC% に設定"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:69
|
||||
msgid "Set to 0 to disable recent profiles"
|
||||
msgstr "セレクターに最近使用したプロファイルを表示したくない場合は、0に設定してください"
|
||||
msgstr "最近使用したプロファイルをセレクターに表示しない場合は0に設定してください"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:36
|
||||
msgid "Sets the SSH agent's named pipe path."
|
||||
msgstr "SSHエージェントの名前付きパイプのパスを指定します。"
|
||||
msgstr "SSHエージェントの名前付きパイプのパスを設定"
|
||||
|
||||
#: tabby-settings/src/buttonProvider.ts:28
|
||||
#: tabby-settings/src/components/settingsTab.component.ts:57
|
||||
@@ -1990,11 +1990,11 @@ msgstr "{type} プロファイルセレクターを表示"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
||||
msgid "Show a confirmation box when pasting multiple lines"
|
||||
msgstr "複数行の貼り付けをする際に確認画面を表示します"
|
||||
msgstr "複数行を貼り付ける際に確認ボックスを表示します"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:75
|
||||
msgid "Show built-in profiles in selector"
|
||||
msgstr "標準プロファイルをセレクターに表示"
|
||||
msgstr "セレクターに標準プロファイルを表示する"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:12
|
||||
msgid "Show command selector"
|
||||
@@ -2089,7 +2089,7 @@ msgstr "ソースコード"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:13
|
||||
msgid "Spaciness"
|
||||
msgstr "UI間隔"
|
||||
msgstr "UIの間隔"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:75
|
||||
msgid "Split"
|
||||
@@ -2268,7 +2268,7 @@ msgstr "端末の識別情報"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||
msgid "Thank you for downloading Tabby!"
|
||||
msgstr "Tabbyをダウンロードしてくださり、ありがとうございます!"
|
||||
msgstr "Tabbyをダウンロードしていただきありがとうございます!"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:5
|
||||
msgid "Theme"
|
||||
@@ -2280,7 +2280,7 @@ msgstr "ファイル転送を使用中"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||
msgid "There is a saved password for this connection"
|
||||
msgstr "この接続に使用するパスワードを保存しています。"
|
||||
msgstr "この接続に利用可能なパスワードが保存されています。"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:102
|
||||
msgid "These apply to all profiles of a given type"
|
||||
@@ -2397,7 +2397,7 @@ msgstr "ユーザー名"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:25
|
||||
msgid "Using CONNECT method"
|
||||
msgstr "CONNECTメソッドを使用します"
|
||||
msgstr "CONNECTメソッドの使用"
|
||||
|
||||
#: tabby-ssh/src/session/ssh.ts:465
|
||||
msgid "Using preset password"
|
||||
@@ -2426,11 +2426,11 @@ msgstr "Vaultが設定されていません"
|
||||
|
||||
#: tabby-core/src/services/fileProviders.service.ts:40
|
||||
msgid "Vault master passphrase needs to be set to allow storing secrets"
|
||||
msgstr "機密性の高い情報を保存するには、Vaultにマスターパスフレーズを設定する必要があります"
|
||||
msgstr "機密性の高い情報を保存するには、Vaultのマスターパスフレーズを設定する必要があります"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:11
|
||||
msgid "Verify host keys when connecting"
|
||||
msgstr "接続時にホスト鍵を検証"
|
||||
msgstr "接続時にホストキーを確認"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:75
|
||||
msgid "Version"
|
||||
@@ -2478,7 +2478,7 @@ msgstr "セッション終了時"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
msgstr "有効にすると、特定のキーを押しながらクリックした時のみリンクを開きます"
|
||||
msgstr "有効にすると、特定のキーを押しながらクリックした時のみリンクが開けるようになります"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:18
|
||||
msgid "When WinSCP is detected, you can launch an SCP session from the context menu."
|
||||
@@ -2556,7 +2556,7 @@ msgstr "後から変更できますが、忘れた場合復元することはで
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:7
|
||||
msgid "You could be under a man-in-the-middle attack right now, or the host key could have just been changed."
|
||||
msgstr "現在中間者攻撃を受けているか、もしくはホスト鍵が変更された可能性があります。"
|
||||
msgstr "現在中間者攻撃を受けているか、もしくは、ホストキーが変更された可能性があります。"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:54
|
||||
msgid "Zoom in"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Korean\n"
|
||||
"Language: ko_KR\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -362,7 +362,7 @@ msgstr "명령어"
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "컴팩트 (레거시)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
@@ -916,6 +916,14 @@ msgstr "CRLF 강제"
|
||||
msgid "Force LF"
|
||||
msgstr "LF 강제"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:56
|
||||
msgid "Implicit CR in every LF"
|
||||
msgstr "LF에만 CR 추가"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:57
|
||||
msgid "Implicit LF in every CR"
|
||||
msgstr "CR에만 LF 추가"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
||||
msgid "Forces a specific SSH agent connection type."
|
||||
msgstr "특정 SSH 에이전트로 연결 유형 강제"
|
||||
@@ -1052,7 +1060,7 @@ msgstr "단축키"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:83
|
||||
msgid "How Tabby presents itself through environment vars"
|
||||
msgstr "Tabby가 환경 변수에서 표시되는 방식"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||
msgid "HTTP proxy"
|
||||
@@ -1088,13 +1096,13 @@ msgstr "가로 분할 크기 크게"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:244
|
||||
msgid "Increase vertical split size"
|
||||
msgstr "세로 분할 크기 크게"
|
||||
msgstr "세로 분할 크기 작게"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:91
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "입력"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1471,7 +1479,7 @@ msgstr "옵션"
|
||||
|
||||
#: tabby-core/src/utils.ts:62
|
||||
msgid "Orange"
|
||||
msgstr "주황색"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-electron/src/shells/macDefault.ts:25
|
||||
msgid "OS default"
|
||||
@@ -1527,7 +1535,7 @@ msgstr "패널"
|
||||
|
||||
#: tabby-core/src/theme.ts:26
|
||||
msgid "Paper (legacy)"
|
||||
msgstr "종이 (레거시)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:38
|
||||
msgid "Parity"
|
||||
@@ -1539,11 +1547,11 @@ msgstr "구성이 Vault를 통해 암호화된 경우 부분 구성 동기화를
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "왼쪽 글자 삭제"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
msgstr "해시 {hash} 의 개인 키(Private key) 암호..."
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:100
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:82
|
||||
@@ -1683,7 +1691,7 @@ msgstr "타임아웃 (밀리초)"
|
||||
#: tabby-core/src/services/profiles.service.ts:249
|
||||
#: tabby-electron/src/services/dockMenu.service.ts:28
|
||||
msgid "Recent"
|
||||
msgstr "최근"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialTab.component.html:5
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:52
|
||||
@@ -2010,11 +2018,11 @@ msgstr "기본값 표시"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:146
|
||||
msgid "Show Mixer"
|
||||
msgstr "믹서 표시"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:56
|
||||
msgid "Show pane labels (for rearranging)"
|
||||
msgstr "항목 라벨 표시 (재배열 용도)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:164
|
||||
msgid "Show profile icon on tab"
|
||||
@@ -2135,7 +2143,7 @@ msgstr "{user}@{host}:{port} 의 SSH 비밀번호"
|
||||
|
||||
#: tabby-core/src/theme.ts:8
|
||||
msgid "Standard (legacy)"
|
||||
msgstr "기본 (레거시)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:150
|
||||
msgid "Startup"
|
||||
@@ -2147,7 +2155,7 @@ msgstr "정지 비트"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:52
|
||||
msgid "Strip"
|
||||
msgstr "스트립(Strip)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:41
|
||||
msgid "Subscribe to updates"
|
||||
@@ -2264,7 +2272,7 @@ msgstr "터미널 벨"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:82
|
||||
msgid "Terminal identification"
|
||||
msgstr "터미널 식별 방식"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||
msgid "Thank you for downloading Tabby!"
|
||||
@@ -2276,7 +2284,7 @@ msgstr "테마"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:47
|
||||
msgid "There are active file transfers"
|
||||
msgstr "활성화된 파일 전송이 있습니다"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||
msgid "There is a saved password for this connection"
|
||||
@@ -2288,7 +2296,7 @@ msgstr "이와 같은 유형의 모든 프로필에 적용됩니다."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "이 그룹의 해당 유형을 가진 모든 프로필에 적용됩니다"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2312,7 +2320,7 @@ msgstr "터미널 창 전환"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:40
|
||||
msgid "Toggles the Tabby window visibility"
|
||||
msgstr "Tabby 창 표시 전환"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:130
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:74
|
||||
@@ -2350,7 +2358,7 @@ msgstr "알 수 없음"
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:98
|
||||
msgid "Unknown secret of type {type} for {key}"
|
||||
msgstr "{key} 에 대한 알 수 없는 타입 {type}"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalToolbar.component.html:4
|
||||
msgid "Unpin"
|
||||
@@ -2540,7 +2548,7 @@ msgstr "WSL 터미널의 벨은 오직 볼륨 믹서를 통해서만 음소거
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:14
|
||||
msgid "WSL terminal only supports TrueColor with ConPTY"
|
||||
msgstr "WSL terminal의 TrueColor는 ConPTY가 활성화 되어있을 때만 지원됨"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:128
|
||||
msgid "X11 forwarding"
|
||||
@@ -2570,5 +2578,5 @@ msgstr "축소"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:5
|
||||
msgctxt "[Dynamic] port forwarding"
|
||||
msgid "id.port-forwarding.dynamic"
|
||||
msgstr "동적"
|
||||
msgstr ""
|
||||
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Polish\n"
|
||||
"Language: pl_PL\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Pozwala na szybkie otwarcie terminalu w wybranym folderze"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Zawsze ciemny"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Zawsze jasny"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -538,7 +538,7 @@ msgstr "Domyślny profil dla nowych kart"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Domyślne ustawienia profilu grupy"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -745,7 +745,7 @@ msgstr "Włącz"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:32
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:66
|
||||
msgid "Enable analytics"
|
||||
msgstr "Włącz Analitykę"
|
||||
msgstr "Wyłącz Analitykę"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:87
|
||||
msgid "Enable animations"
|
||||
@@ -939,7 +939,7 @@ msgstr "Ze schematu kolorów"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Z systemu"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Natywna"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nowy"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nowa konfiguracja na {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nazwa nowej grupy"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Nowy profil"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Nowy grupa profili"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Zresetuj aplikację, aby zastosować zmiany"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Przywrócić ustawienia domyślne?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Przywrócić ustawienia do odziedziczonych domyślnych?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Zastępstwa dozwolone."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Zmień schemat kolorów"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"Language: pt_BR\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Permite abrir rapidamente um terminal na pasta selecionada"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Sempre escuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Sempre claro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Tipo de fundo"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Modo botão Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,7 +337,7 @@ msgstr "Esquema de cores"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Esquema de cores"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "CSS Personalizado"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Modo escuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Diminuir tamanho de divisão horizontal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Tipo de \"Conectar a \" padrão"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Tipo de conexão padrão usado pelo recurso de conexão rápida (ex. SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Perfil padrão para novas abas"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Configurações de grupo de perfil padrão"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Desconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Desconectar aba atual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "Do esquema de cores"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Do sistema"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Hexadecimal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Aumentar o tamanho da divisão vertical"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Permite que o shell manipule Meta key em vez de S.O"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Modo claro"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Nativo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Novo"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nova configuração em {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nome do novo grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Novo perfil"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Novo Grupo de Perfil"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "Nas discussões no GitHub"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Só fechar a aba quando a sessão for terminada explicitamente"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Sincronização parcial de configuração não é possível quando a con
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Passar"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Reconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Reconectar a aba atual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Reinicie o aplicativo para aplicar as alterações"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Restaurar as configurações para o padrão?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Restaurar configurações para padrões herdados ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Integração com o Shell"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Substituições permitidas."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Alternar esquema de cores"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Estas se aplicam a todos os perfis de um determinado tipo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Estas se aplicam a todos os perfis de um determinado tipo neste grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Novidades"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Quando uma sessão termina"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"Language: pt_PT\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -39,7 +39,7 @@ msgstr "Aceitar apenas desta vez"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||
msgid "Accessibility"
|
||||
msgstr "acessibilidade"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:27
|
||||
msgid "Acrylic background"
|
||||
@@ -100,12 +100,12 @@ msgstr "Permite abrir um terminal rapidamente na pasta selecionada"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "sempre escuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Sempre luminoso"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -498,7 +498,7 @@ msgstr "Formato do cursor"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsForMode.component.html:46
|
||||
msgid "Custom"
|
||||
msgstr "Personalizado"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:90
|
||||
msgid "Custom CSS"
|
||||
@@ -538,7 +538,7 @@ msgstr "Perfil padrão para novas abas"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Parâmetros do grupo de perfis por defeito"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -736,7 +736,7 @@ msgstr "Editar"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:35
|
||||
msgid "Edit locally"
|
||||
msgstr "Editar localmente"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:58
|
||||
msgid "Enable"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru_RU\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Позволяет быстро открыть терминал в вы
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Всегда тёмная"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Всегда светлая"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Тип фона"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Режим работы клавиши Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,7 +337,7 @@ msgstr "Цветовая схема"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Цветовая схема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "Пользовательский CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Тёмная тема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Уменьшить размер разделения по вертика
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "«Подключиться к» по умолчанию"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Подключение по умолчанию, используемое быстрым подключением (например, SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Профиль по умолчанию для новых вкладок"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Настройки группы профилей по умолчанию"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Отсоединиться"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Отключиться в текущей вкладке (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -660,7 +660,7 @@ msgstr "Отключиться от {host}?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:30
|
||||
msgid "Display images via Sixel escape sequences"
|
||||
msgstr "Отображать изображения при помощи управляющей последовательности Sixel"
|
||||
msgstr "Отображать изображения при помощи сиксельной управляющей последовательности"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:85
|
||||
msgid "Display on"
|
||||
@@ -939,7 +939,7 @@ msgstr "Из цветовой схемы"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Системная"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Шестнадцатеричный"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Скрыть"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Увеличить размер разделения по вертика
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Ввод"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Позволяет оболочке обрабатывать клави
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Светлая тема"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Системная"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Новый"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Новая конфигурация на {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Имя новой группы"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Новый профиль"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Новая группа профилей"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "На GitHub Discussions"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Закрывать вкладки только при явном закрытии сеанса"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Частичная синхронизация конфигурации
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Пропускать насквозь"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Переподключение"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Переподключиться в текущей вкладке (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Перезапустите приложение, чтобы примен
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Восстановить настройки по умолчанию?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Восстановить унаследованные настройки по умолчанию?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Интеграция в систему"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Показать"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Допускаются подстановки."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Переключить цветовую схему"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Применяются для всех профилей данного
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Они применяются ко всем профилям данного типа в группе"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Что нового"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "При завершении сеанса"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
2574
locale/sr-SP.po
2574
locale/sr-SP.po
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Swedish\n"
|
||||
"Language: sv_SE\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -35,7 +35,7 @@ msgstr "Acceptera och kom ihåg nyckel"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||
msgid "Accept just this once"
|
||||
msgstr "Acceptera bara den här gången"
|
||||
msgstr "Acceptera bara denna gång"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||
msgid "Accessibility"
|
||||
|
2575
locale/tr-TR.po
2575
locale/tr-TR.po
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"Language: uk_UA\n"
|
||||
"PO-Revision-Date: 2024-12-24 22:58\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Дозволяє швидко відкрити термінал у ви
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Завжди темна"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Завжди світла"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Тип фону"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Режим клавіші Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -530,7 +530,7 @@ msgstr "За замовчуванням \"Під'єднатись до\" тип"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Тип підключення за замовчуванням використовується для швидкого з'єднання (напр., SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Зменшити розмір поділу по вертикалі"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Налаштування групи за замовчуванням"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Від'єднатися"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Відключити поточну вкладку (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "З колірної схеми"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "З системи"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Збільшити розмір поділу по вертикалі"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Input"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Рідний"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Новий"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Нова конфігурація на {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Нова назва групи"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Новий профіль"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Нова група профілів"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "На GitHub Discussions"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Закривати вкладку при явному припиненні сеансу"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Часткова синхронізація конфігурації н
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Дохід"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Відновити з'єднання"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Повторне підключення поточної вкладки (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Перезапустіть програму, щоб застосуват
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Відновити налаштування за замовчуванням?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Відновити параметри до типових значень?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Допускаються заміни."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Переключити колірну схему"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Це застосовується до всіх профілів зад
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "До всіх профілів даного типу в цій групі"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Що нового"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Коли сесія закінчиться"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"Language: zh_CN\n"
|
||||
"PO-Revision-Date: 2025-01-22 22:02\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -43,7 +43,7 @@ msgstr "辅助功能"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:27
|
||||
msgid "Acrylic background"
|
||||
msgstr "毛玻璃背景"
|
||||
msgstr "亚克力背景"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:24
|
||||
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:11
|
||||
@@ -100,7 +100,7 @@ msgstr "允许在选定的文件夹中快速打开终端"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "始终使用暗色"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"Language: zh_TW\n"
|
||||
"PO-Revision-Date: 2025-01-22 22:02\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -1039,7 +1039,7 @@ msgstr "主機"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:206
|
||||
msgid "Host key"
|
||||
msgstr "主機金鑰"
|
||||
msgstr "快速鍵"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:3
|
||||
msgid "Host key verification"
|
||||
@@ -1390,7 +1390,7 @@ msgstr "無色彩"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:85
|
||||
msgid "No modifier"
|
||||
msgstr "無修飾鍵"
|
||||
msgstr "不可修改"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:41
|
||||
msgid "None"
|
||||
|
14
package.json
14
package.json
@@ -39,11 +39,11 @@
|
||||
"cross-env": "7.0.3",
|
||||
"css-loader": "^6.7.3",
|
||||
"deep-equal": "2.0.5",
|
||||
"electron": "^32.2.7",
|
||||
"electron-builder": "^26.0.0-alpha.10",
|
||||
"electron": "^27.0.4",
|
||||
"electron-builder": "^24.6.4",
|
||||
"electron-download": "^4.1.1",
|
||||
"electron-installer-snap": "^5.1.0",
|
||||
"@electron/rebuild": "^3.7.1",
|
||||
"electron-rebuild": "^3.2.9",
|
||||
"eslint": "^8.48.0",
|
||||
"eslint-import-resolver-typescript": "^3.6.0",
|
||||
"eslint-plugin-import": "^2.28.1",
|
||||
@@ -53,9 +53,9 @@
|
||||
"html-loader": "4.2.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"lru-cache": "^6.0.0",
|
||||
"macos-release": "^3.3.0",
|
||||
"macos-release": "^3.1.0",
|
||||
"ngx-toastr": "^16.0.2",
|
||||
"node-abi": "^3.71.0",
|
||||
"node-abi": "^3.51.0",
|
||||
"npmlog": "6.0.2",
|
||||
"npx": "^10.2.2",
|
||||
"patch-package": "^6.4.7",
|
||||
@@ -76,6 +76,7 @@
|
||||
"source-code-pro": "^2.38.0",
|
||||
"source-map-loader": "^4.0.1",
|
||||
"source-sans-pro": "3.6.0",
|
||||
"ssh2": "^1.14.0",
|
||||
"style-loader": "^3.3.1",
|
||||
"svg-inline-loader": "^0.8.2",
|
||||
"thenby": "^1.3.4",
|
||||
@@ -96,8 +97,7 @@
|
||||
"*/pug": "^3",
|
||||
"lzma-native": "^8.0.6",
|
||||
"**/graceful-fs": "^4.2.4",
|
||||
"nan": "2.22.0",
|
||||
"node-gyp": "^10.0.0"
|
||||
"nan": "2.17.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "npm run build:typings && node scripts/build-modules.mjs",
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/node_modules/app-builder-lib/out/appInfo.js b/node_modules/app-builder-lib/out/appInfo.js
|
||||
index 7fbbef7..0821807 100644
|
||||
index 49f6dca..0ea11f2 100644
|
||||
--- a/node_modules/app-builder-lib/out/appInfo.js
|
||||
+++ b/node_modules/app-builder-lib/out/appInfo.js
|
||||
@@ -116,9 +116,7 @@ class AppInfo {
|
||||
@@ -112,9 +112,7 @@ class AppInfo {
|
||||
return this.info.metadata.name;
|
||||
}
|
||||
get linuxPackageName() {
|
39
patches/ssh2+1.11.0.patch
Normal file
39
patches/ssh2+1.11.0.patch
Normal file
@@ -0,0 +1,39 @@
|
||||
diff --git a/node_modules/ssh2/lib/protocol/keyParser.js b/node_modules/ssh2/lib/protocol/keyParser.js
|
||||
index 9860e3f..ee82e51 100644
|
||||
--- a/node_modules/ssh2/lib/protocol/keyParser.js
|
||||
+++ b/node_modules/ssh2/lib/protocol/keyParser.js
|
||||
@@ -15,6 +15,7 @@ const {
|
||||
sign: sign_,
|
||||
verify: verify_,
|
||||
} = require('crypto');
|
||||
+const { createVerify: createVerifyDSS } = require('browserify-sign')
|
||||
const supportedOpenSSLCiphers = getCiphers();
|
||||
|
||||
const { Ber } = require('asn1');
|
||||
@@ -404,6 +405,17 @@ const BaseKey = {
|
||||
return new Error('No public key available');
|
||||
if (!algo || typeof algo !== 'string')
|
||||
algo = this[SYM_HASH_ALGO];
|
||||
+
|
||||
+ if (algo === 'dss1') {
|
||||
+ const verifier = createVerifyDSS('DSA-SHA1');
|
||||
+ verifier.update(data);
|
||||
+ try {
|
||||
+ return verifier.verify(pem, signature);
|
||||
+ } catch (ex) {
|
||||
+ return ex;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
try {
|
||||
return verify_(algo, data, pem, signature);
|
||||
} catch (ex) {
|
||||
@@ -1343,7 +1355,7 @@ function parseDER(data, baseType, comment, fullType) {
|
||||
return new Error('Malformed OpenSSH public key');
|
||||
pubPEM = genOpenSSLDSAPub(p, q, g, y);
|
||||
pubSSH = genOpenSSHDSAPub(p, q, g, y);
|
||||
- algo = 'sha1';
|
||||
+ algo = 'dss1';
|
||||
break;
|
||||
}
|
||||
case 'ssh-ed25519': {
|
@@ -25,7 +25,7 @@ builder({
|
||||
},
|
||||
] : undefined,
|
||||
},
|
||||
publish: (process.env.KEYGEN_TOKEN && isTag) ? 'always' : 'never',
|
||||
publish: process.env.KEYGEN_TOKEN ? isTag ? 'always' : 'onTagOrDraft' : 'never',
|
||||
}).catch(e => {
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
|
@@ -24,11 +24,13 @@ builder({
|
||||
config: {
|
||||
extraMetadata: {
|
||||
version: vars.version,
|
||||
teamId: process.env.APPLE_TEAM_ID,
|
||||
},
|
||||
mac: {
|
||||
identity: !process.env.CI || process.env.CSC_LINK ? undefined : null,
|
||||
notarize: !!process.env.APPLE_TEAM_ID,
|
||||
notarize: process.env.APPLE_TEAM_ID ? {
|
||||
appBundleId: 'org.tabby',
|
||||
teamId: process.env.APPLE_TEAM_ID,
|
||||
} : false,
|
||||
},
|
||||
npmRebuild: process.env.ARCH !== 'arm64',
|
||||
publish: process.env.KEYGEN_TOKEN ? [
|
||||
@@ -39,7 +41,7 @@ builder({
|
||||
},
|
||||
] : undefined,
|
||||
},
|
||||
publish: (process.env.KEYGEN_TOKEN && isTag) ? 'always' : 'never',
|
||||
publish: process.env.KEYGEN_TOKEN ? isTag ? 'always' : 'onTagOrDraft' : 'never',
|
||||
}).catch(e => {
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
import { rebuild } from '@electron/rebuild'
|
||||
import { rebuild } from 'electron-rebuild'
|
||||
import * as path from 'path'
|
||||
import * as vars from './vars.mjs'
|
||||
|
||||
|
@@ -2,15 +2,11 @@
|
||||
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
||||
import { build as builder } from 'electron-builder'
|
||||
import * as vars from './vars.mjs'
|
||||
import { execSync } from 'child_process'
|
||||
|
||||
const isTag = (process.env.GITHUB_REF || process.env.BUILD_SOURCEBRANCH || '').startsWith('refs/tags/')
|
||||
const keypair = process.env.SM_KEYPAIR_ALIAS
|
||||
|
||||
process.env.ARCH = process.env.ARCH || process.arch
|
||||
|
||||
console.log('Signing enabled:', !!keypair)
|
||||
|
||||
builder({
|
||||
dir: true,
|
||||
win: ['nsis', 'zip'],
|
||||
@@ -26,35 +22,8 @@ builder({
|
||||
channel: `latest-${process.env.ARCH}`,
|
||||
},
|
||||
] : undefined,
|
||||
forceCodeSigning: !!keypair,
|
||||
win: {
|
||||
signtoolOptions: {
|
||||
certificateSha1: process.env.SM_CODE_SIGNING_CERT_SHA1_HASH,
|
||||
publisherName: process.env.SM_PUBLISHER_NAME,
|
||||
signingHashAlgorithms: ['sha256'],
|
||||
sign: keypair ? async function (configuration) {
|
||||
console.log('Signing', configuration)
|
||||
if (configuration.path) {
|
||||
try {
|
||||
const out = execSync(
|
||||
`smctl sign --keypair-alias=${keypair} --input "${String(configuration.path)}"`
|
||||
)
|
||||
if (out.toString().includes('FAILED')) {
|
||||
throw new Error(out.toString())
|
||||
}
|
||||
console.log(out.toString())
|
||||
} catch (e) {
|
||||
console.error(`Failed to sign ${configuration.path}`)
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
} : undefined,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
publish: (process.env.KEYGEN_TOKEN && isTag) ? 'always' : 'never',
|
||||
publish: process.env.KEYGEN_TOKEN ? isTag ? 'always' : 'onTagOrDraft' : 'never',
|
||||
}).catch(e => {
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
|
@@ -10,8 +10,6 @@ log.info('deps', 'app')
|
||||
|
||||
sh.cd('app')
|
||||
sh.exec(`yarn install --force --network-timeout 1000000`, { fatal: true })
|
||||
// Some native packages might fail to build before patch-package gets a chance to run via postinstall
|
||||
sh.exec(`yarn postinstall`, { fatal: false })
|
||||
sh.cd('..')
|
||||
|
||||
sh.cd('web')
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
import { rebuild } from '@electron/rebuild'
|
||||
import { rebuild } from 'electron-rebuild'
|
||||
import sh from 'shelljs'
|
||||
import path from 'node:path'
|
||||
import fs from 'node:fs'
|
||||
|
@@ -3,7 +3,7 @@ import * as fs from 'fs'
|
||||
import * as semver from 'semver'
|
||||
import * as childProcess from 'child_process'
|
||||
|
||||
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : (process.env.ARCH || process.arch)
|
||||
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
|
||||
|
||||
import * as url from 'url'
|
||||
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||
|
@@ -1,44 +0,0 @@
|
||||
!
|
||||
! Generated with :
|
||||
! XRDB2Xreources.py
|
||||
!
|
||||
*.foreground: #c0caf5
|
||||
*.background: #1a1b26
|
||||
*.cursorColor: #c0caf5
|
||||
!
|
||||
! Black
|
||||
*.color0: #15161e
|
||||
*.color8: #414868
|
||||
!
|
||||
! Red
|
||||
*.color1: #f7768e
|
||||
*.color9: #f7768e
|
||||
!
|
||||
! Green
|
||||
*.color2: #9ece6a
|
||||
*.color10: #9ece6a
|
||||
!
|
||||
! Yellow
|
||||
*.color3: #e0af68
|
||||
*.color11: #e0af68
|
||||
!
|
||||
! Blue
|
||||
*.color4: #7aa2f7
|
||||
*.color12: #7aa2f7
|
||||
!
|
||||
! Magenta
|
||||
*.color5: #bb9af7
|
||||
*.color13: #bb9af7
|
||||
!
|
||||
! Cyan
|
||||
*.color6: #7dcfff
|
||||
*.color14: #7dcfff
|
||||
!
|
||||
! White
|
||||
*.color7: #a9b1d6
|
||||
*.color15: #c0caf5
|
||||
!
|
||||
! Bold, Italic, Underline
|
||||
*.colorBD: #eeeeee
|
||||
!*.colorIT:
|
||||
!*.colorUL:
|
@@ -1,44 +0,0 @@
|
||||
!
|
||||
! Generated with :
|
||||
! XRDB2Xreources.py
|
||||
!
|
||||
*.foreground: #3760bf
|
||||
*.background: #e1e2e7
|
||||
*.cursorColor: #3760bf
|
||||
!
|
||||
! Black
|
||||
*.color0: #e9e9ed
|
||||
*.color8: #a1a6c5
|
||||
!
|
||||
! Red
|
||||
*.color1: #f52a65
|
||||
*.color9: #f52a65
|
||||
!
|
||||
! Green
|
||||
*.color2: #587539
|
||||
*.color10: #587539
|
||||
!
|
||||
! Yellow
|
||||
*.color3: #8c6c3e
|
||||
*.color11: #8c6c3e
|
||||
!
|
||||
! Blue
|
||||
*.color4: #2e7de9
|
||||
*.color12: #2e7de9
|
||||
!
|
||||
! Magenta
|
||||
*.color5: #9854f1
|
||||
*.color13: #9854f1
|
||||
!
|
||||
! Cyan
|
||||
*.color6: #007197
|
||||
*.color14: #007197
|
||||
!
|
||||
! White
|
||||
*.color7: #6172b0
|
||||
*.color15: #3760bf
|
||||
!
|
||||
! Bold, Italic, Underline
|
||||
*.colorBD: #eeeeee
|
||||
!*.colorIT:
|
||||
!*.colorUL:
|
@@ -1,44 +0,0 @@
|
||||
!
|
||||
! Generated with :
|
||||
! XRDB2Xreources.py
|
||||
!
|
||||
*.foreground: #c0caf5
|
||||
*.background: #24283b
|
||||
*.cursorColor: #c0caf5
|
||||
!
|
||||
! Black
|
||||
*.color0: #1d202f
|
||||
*.color8: #414868
|
||||
!
|
||||
! Red
|
||||
*.color1: #f7768e
|
||||
*.color9: #f7768e
|
||||
!
|
||||
! Green
|
||||
*.color2: #9ece6a
|
||||
*.color10: #9ece6a
|
||||
!
|
||||
! Yellow
|
||||
*.color3: #e0af68
|
||||
*.color11: #e0af68
|
||||
!
|
||||
! Blue
|
||||
*.color4: #7aa2f7
|
||||
*.color12: #7aa2f7
|
||||
!
|
||||
! Magenta
|
||||
*.color5: #bb9af7
|
||||
*.color13: #bb9af7
|
||||
!
|
||||
! Cyan
|
||||
*.color6: #7dcfff
|
||||
*.color14: #7dcfff
|
||||
!
|
||||
! White
|
||||
*.color7: #a9b1d6
|
||||
*.color15: #c0caf5
|
||||
!
|
||||
! Bold, Italic, Underline
|
||||
*.colorBD: #eeeeee
|
||||
!*.colorIT:
|
||||
!*.colorUL:
|
@@ -1,3 +1,4 @@
|
||||
import slugify from 'slugify'
|
||||
import { BaseTabComponent } from '../components/baseTab.component'
|
||||
import { MenuItemOptions } from './menu'
|
||||
import { ToolbarButton } from './toolbarButtonProvider'
|
||||
@@ -6,34 +7,33 @@ export enum CommandLocation {
|
||||
LeftToolbar = 'left-toolbar',
|
||||
RightToolbar = 'right-toolbar',
|
||||
StartPage = 'start-page',
|
||||
TabHeaderMenu = 'tab-header-menu',
|
||||
TabBodyMenu = 'tab-body-menu',
|
||||
}
|
||||
|
||||
export class Command {
|
||||
id?: string
|
||||
id: string
|
||||
label: string
|
||||
sublabel?: string
|
||||
locations?: CommandLocation[]
|
||||
run: () => Promise<void>
|
||||
fullLabel?: string
|
||||
locations: CommandLocation[]
|
||||
run?: () => Promise<any>
|
||||
|
||||
/**
|
||||
* Raw SVG icon code
|
||||
*/
|
||||
icon?: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar icon ID
|
||||
*/
|
||||
touchBarNSImage?: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar button label
|
||||
*/
|
||||
touchBarTitle?: string
|
||||
|
||||
weight?: number
|
||||
|
||||
parent?: string
|
||||
|
||||
group?: string
|
||||
|
||||
checked?: boolean
|
||||
|
||||
static fromToolbarButton (button: ToolbarButton): Command {
|
||||
const command = new Command()
|
||||
command.id = `legacy:${slugify(button.title)}`
|
||||
command.label = button.title
|
||||
command.run = async () => button.click?.()
|
||||
command.icon = button.icon
|
||||
@@ -44,18 +44,29 @@ export class Command {
|
||||
if ((button.weight ?? 0) > 0) {
|
||||
command.locations.push(CommandLocation.RightToolbar)
|
||||
}
|
||||
command.touchBarNSImage = button.touchBarNSImage
|
||||
command.touchBarTitle = button.touchBarTitle
|
||||
command.weight = button.weight
|
||||
return command
|
||||
}
|
||||
|
||||
static fromMenuItem (item: MenuItemOptions): Command {
|
||||
const command = new Command()
|
||||
command.label = item.commandLabel ?? item.label ?? ''
|
||||
command.sublabel = item.sublabel
|
||||
command.run = async () => item.click?.()
|
||||
return command
|
||||
static fromMenuItem (item: MenuItemOptions): Command[] {
|
||||
if (item.type === 'separator') {
|
||||
return []
|
||||
}
|
||||
const commands: Command[] = [{
|
||||
id: `legacy:${slugify(item.commandLabel ?? item.label).toLowerCase()}`,
|
||||
label: item.commandLabel ?? item.label,
|
||||
run: async () => item.click?.(),
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
checked: item.checked,
|
||||
}]
|
||||
for (const submenu of item.submenu ?? []) {
|
||||
commands.push(...Command.fromMenuItem(submenu).map(x => ({
|
||||
...x,
|
||||
id: `${commands[0].id}:${slugify(x.label).toLowerCase()}`,
|
||||
parent: commands[0].id,
|
||||
})))
|
||||
}
|
||||
return commands
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -10,7 +10,7 @@ export { Theme } from './theme'
|
||||
export { TabContextMenuItemProvider } from './tabContextMenuProvider'
|
||||
export { SelectorOption } from './selector'
|
||||
export { CLIHandler, CLIEvent } from './cli'
|
||||
export { PlatformService, ClipboardContent, MessageBoxResult, MessageBoxOptions, FileDownload, FileUpload, FileTransfer, HTMLFileUpload, FileUploadOptions, DirectoryUpload } from './platform'
|
||||
export { PlatformService, ClipboardContent, MessageBoxResult, MessageBoxOptions, FileDownload, FileUpload, FileTransfer, HTMLFileUpload, FileUploadOptions } from './platform'
|
||||
export { MenuItemOptions } from './menu'
|
||||
export { BootstrapData, PluginInfo, BOOTSTRAP_DATA } from './mainProcess'
|
||||
export { HostWindowService } from './hostWindow'
|
||||
@@ -37,6 +37,7 @@ export { UpdaterService } from '../services/updater.service'
|
||||
export { VaultService, Vault, VaultSecret, VaultFileSecret, VAULT_SECRET_TYPE_FILE, StoredVault, VaultSecretKey } from '../services/vault.service'
|
||||
export { FileProvidersService } from '../services/fileProviders.service'
|
||||
export { LocaleService } from '../services/locale.service'
|
||||
export { CommandService } from '../services/commands.service'
|
||||
export { TranslateService } from '@ngx-translate/core'
|
||||
export * from '../utils'
|
||||
export { UTF8Splitter } from '../utfSplitter'
|
||||
|
@@ -1,6 +1,4 @@
|
||||
export interface MenuItemOptions {
|
||||
type?: 'normal' | 'separator' | 'submenu' | 'checkbox' | 'radio'
|
||||
label?: string
|
||||
export type MenuItemOptions = {
|
||||
sublabel?: string
|
||||
enabled?: boolean
|
||||
checked?: boolean
|
||||
@@ -9,4 +7,10 @@ export interface MenuItemOptions {
|
||||
|
||||
/** @hidden */
|
||||
commandLabel?: string
|
||||
}
|
||||
} & ({
|
||||
type: 'separator',
|
||||
label?: string,
|
||||
} | {
|
||||
type?: 'normal' | 'submenu' | 'checkbox' | 'radio',
|
||||
label: string,
|
||||
})
|
||||
|
@@ -63,24 +63,22 @@ export abstract class FileTransfer {
|
||||
}
|
||||
|
||||
export abstract class FileDownload extends FileTransfer {
|
||||
abstract write (buffer: Uint8Array): Promise<void>
|
||||
abstract write (buffer: Buffer): Promise<void>
|
||||
}
|
||||
|
||||
export abstract class FileUpload extends FileTransfer {
|
||||
abstract read (): Promise<Uint8Array>
|
||||
abstract read (): Promise<Buffer>
|
||||
|
||||
async readAll (): Promise<Uint8Array> {
|
||||
const result = new Uint8Array(this.getSize())
|
||||
let pos = 0
|
||||
async readAll (): Promise<Buffer> {
|
||||
const buffers: Buffer[] = []
|
||||
while (true) {
|
||||
const buf = await this.read()
|
||||
if (!buf.length) {
|
||||
break
|
||||
}
|
||||
result.set(buf, pos)
|
||||
pos += buf.length
|
||||
buffers.push(Buffer.from(buf))
|
||||
}
|
||||
return result
|
||||
return Buffer.concat(buffers)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,26 +86,6 @@ export interface FileUploadOptions {
|
||||
multiple: boolean
|
||||
}
|
||||
|
||||
export class DirectoryUpload {
|
||||
private childrens: (FileUpload|DirectoryUpload)[] = []
|
||||
|
||||
constructor (private name = '') {
|
||||
// Just set name for now.
|
||||
}
|
||||
|
||||
getName (): string {
|
||||
return this.name
|
||||
}
|
||||
|
||||
getChildrens (): (FileUpload|DirectoryUpload)[] {
|
||||
return this.childrens
|
||||
}
|
||||
|
||||
pushChildren (item: FileUpload|DirectoryUpload): void {
|
||||
this.childrens.push(item)
|
||||
}
|
||||
}
|
||||
|
||||
export type PlatformTheme = 'light'|'dark'
|
||||
|
||||
export abstract class PlatformService {
|
||||
@@ -128,54 +106,23 @@ export abstract class PlatformService {
|
||||
|
||||
abstract startDownload (name: string, mode: number, size: number): Promise<FileDownload|null>
|
||||
abstract startUpload (options?: FileUploadOptions): Promise<FileUpload[]>
|
||||
abstract startUploadDirectory (paths?: string[]): Promise<DirectoryUpload>
|
||||
|
||||
async startUploadFromDragEvent (event: DragEvent, multiple = false): Promise<DirectoryUpload> {
|
||||
const result = new DirectoryUpload()
|
||||
|
||||
startUploadFromDragEvent (event: DragEvent, multiple = false): FileUpload[] {
|
||||
const result: FileUpload[] = []
|
||||
if (!event.dataTransfer) {
|
||||
return Promise.resolve(result)
|
||||
return []
|
||||
}
|
||||
|
||||
const traverseFileTree = (item: any, root: DirectoryUpload = result): Promise<void> => {
|
||||
return new Promise((resolve) => {
|
||||
if (item.isFile) {
|
||||
item.file((file: File) => {
|
||||
const transfer = new HTMLFileUpload(file)
|
||||
this.fileTransferStarted.next(transfer)
|
||||
root.pushChildren(transfer)
|
||||
resolve()
|
||||
})
|
||||
} else if (item.isDirectory) {
|
||||
const dirReader = item.createReader()
|
||||
const childrenFolder = new DirectoryUpload(item.name)
|
||||
dirReader.readEntries(async (entries: any[]) => {
|
||||
for (const entry of entries) {
|
||||
await traverseFileTree(entry, childrenFolder)
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
root.pushChildren(childrenFolder)
|
||||
} else {
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const promises: Promise<void>[] = []
|
||||
|
||||
const items = event.dataTransfer.items
|
||||
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
||||
for (let i = 0; i < items.length; i++) {
|
||||
const item = items[i].webkitGetAsEntry()
|
||||
if (item) {
|
||||
promises.push(traverseFileTree(item))
|
||||
if (!multiple) {
|
||||
break
|
||||
}
|
||||
for (let i = 0; i < event.dataTransfer.files.length; i++) {
|
||||
const file = event.dataTransfer.files[i]
|
||||
const transfer = new HTMLFileUpload(file)
|
||||
this.fileTransferStarted.next(transfer)
|
||||
result.push(transfer)
|
||||
if (!multiple) {
|
||||
break
|
||||
}
|
||||
}
|
||||
return Promise.all(promises).then(() => result)
|
||||
return result
|
||||
}
|
||||
|
||||
getConfigPath (): string|null {
|
||||
@@ -263,12 +210,12 @@ export class HTMLFileUpload extends FileUpload {
|
||||
return this.file.size
|
||||
}
|
||||
|
||||
async read (): Promise<Uint8Array> {
|
||||
async read (): Promise<Buffer> {
|
||||
const result: any = await this.reader.read()
|
||||
if (result.done || !result.value) {
|
||||
return new Uint8Array(0)
|
||||
return Buffer.from('')
|
||||
}
|
||||
const chunk = new Uint8Array(result.value)
|
||||
const chunk = Buffer.from(result.value)
|
||||
this.increaseProgress(chunk.length)
|
||||
return chunk
|
||||
}
|
||||
|
@@ -9,16 +9,6 @@ export interface ToolbarButton {
|
||||
|
||||
title: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar icon ID
|
||||
*/
|
||||
touchBarNSImage?: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar button label
|
||||
*/
|
||||
touchBarTitle?: string
|
||||
|
||||
weight?: number
|
||||
|
||||
click?: () => void
|
||||
|
@@ -1,10 +1,20 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Injectable } from '@angular/core'
|
||||
import { TranslateService } from '@ngx-translate/core'
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
|
||||
import { HostAppService, Platform } from './api/hostApp'
|
||||
import { ProfilesService } from './services/profiles.service'
|
||||
import { CommandProvider, Command, CommandLocation } from './api/commands'
|
||||
import { AppService } from './services/app.service'
|
||||
import { CommandProvider, Command, CommandLocation, CommandContext } from './api/commands'
|
||||
import { SplitDirection, SplitTabComponent } from './components/splitTab.component'
|
||||
import { BaseTabComponent } from './components/baseTab.component'
|
||||
import { PromptModalComponent } from './components/promptModal.component'
|
||||
import { HotkeysService } from './services/hotkeys.service'
|
||||
import { TabsService } from './services/tabs.service'
|
||||
import { SplitLayoutProfilesService } from './profiles'
|
||||
import { TAB_COLORS } from './utils'
|
||||
import { Subscription } from 'rxjs'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable({ providedIn: 'root' })
|
||||
@@ -13,38 +23,327 @@ export class CoreCommandProvider extends CommandProvider {
|
||||
private hostApp: HostAppService,
|
||||
private profilesService: ProfilesService,
|
||||
private translate: TranslateService,
|
||||
private app: AppService,
|
||||
private splitLayoutProfilesService: SplitLayoutProfilesService,
|
||||
private ngbModal: NgbModal,
|
||||
private tabsService: TabsService,
|
||||
hotkeys: HotkeysService,
|
||||
) {
|
||||
super()
|
||||
hotkeys.hotkey$.subscribe(hotkey => {
|
||||
if (hotkey === 'switch-profile') {
|
||||
let tab = this.app.activeTab
|
||||
if (tab instanceof SplitTabComponent) {
|
||||
tab = tab.getFocusedTab()
|
||||
if (tab) {
|
||||
this.switchTabProfile(tab)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async activate () {
|
||||
async switchTabProfile (tab: BaseTabComponent) {
|
||||
const profile = await this.profilesService.showProfileSelector().catch(() => null)
|
||||
if (!profile) {
|
||||
return
|
||||
}
|
||||
|
||||
const params = await this.profilesService.newTabParametersForProfile(profile)
|
||||
if (!params) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!await tab.canClose()) {
|
||||
return
|
||||
}
|
||||
|
||||
const newTab = this.tabsService.create(params)
|
||||
;(tab.parent as SplitTabComponent).replaceTab(tab, newTab)
|
||||
|
||||
tab.destroy()
|
||||
}
|
||||
|
||||
async showProfileSelector () {
|
||||
const profile = await this.profilesService.showProfileSelector().catch(() => null)
|
||||
if (profile) {
|
||||
this.profilesService.launchProfile(profile)
|
||||
}
|
||||
}
|
||||
|
||||
async provide (): Promise<Command[]> {
|
||||
return [
|
||||
async provide (context: CommandContext): Promise<Command[]> {
|
||||
const commands: Command[] = [
|
||||
{
|
||||
id: 'core:profile-selector',
|
||||
locations: [CommandLocation.LeftToolbar, CommandLocation.StartPage],
|
||||
label: this.translate.instant('Profiles & connections'),
|
||||
weight: 12,
|
||||
icon: this.hostApp.platform === Platform.Web
|
||||
? require('./icons/plus.svg')
|
||||
: require('./icons/profiles.svg'),
|
||||
run: async () => this.activate(),
|
||||
run: async () => this.showProfileSelector(),
|
||||
},
|
||||
...this.profilesService.getRecentProfiles().map((profile, index) => ({
|
||||
id: `core:recent-profile-${index}`,
|
||||
label: profile.name,
|
||||
locations: [CommandLocation.StartPage],
|
||||
icon: require('./icons/history.svg'),
|
||||
weight: 20,
|
||||
run: async () => {
|
||||
const p = (await this.profilesService.getProfiles()).find(x => x.id === profile.id) ?? profile
|
||||
this.profilesService.launchProfile(p)
|
||||
},
|
||||
})),
|
||||
]
|
||||
|
||||
if (context.tab) {
|
||||
const tab = context.tab
|
||||
|
||||
commands.push({
|
||||
id: `core:close-tab`,
|
||||
label: this.translate.instant('Close tab'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -35,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
if (this.app.tabs.includes(tab)) {
|
||||
this.app.closeTab(tab, true)
|
||||
} else {
|
||||
tab.destroy()
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
commands.push({
|
||||
id: `core:close`,
|
||||
label: this.translate.instant('Close'),
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
weight: 99,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
tab.destroy()
|
||||
},
|
||||
})
|
||||
|
||||
if (!context.tab.parent) {
|
||||
commands.push(...[{
|
||||
id: 'core:close-other-tabs',
|
||||
label: this.translate.instant('Close other tabs'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -34,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
for (const t of this.app.tabs.filter(x => x !== tab)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'core:close-tabs-to-the-right',
|
||||
label: this.translate.instant('Close tabs to the right'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -33,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
for (const t of this.app.tabs.slice(this.app.tabs.indexOf(tab) + 1)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'core:close-tabs-to-the-left',
|
||||
label: this.translate.instant('Close tabs to the left'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -32,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
for (const t of this.app.tabs.slice(0, this.app.tabs.indexOf(tab))) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
}])
|
||||
}
|
||||
|
||||
commands.push({
|
||||
id: 'core:rename-tab',
|
||||
label: this.translate.instant('Rename tab'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
group: 'core:common',
|
||||
weight: -13,
|
||||
run: async () => this.app.renameTab(tab),
|
||||
})
|
||||
commands.push({
|
||||
id: 'core:duplicate-tab',
|
||||
label: this.translate.instant('Duplicate tab'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
group: 'core:common',
|
||||
weight: -12,
|
||||
run: async () => this.app.duplicateTab(tab),
|
||||
})
|
||||
commands.push({
|
||||
id: 'core:tab-color',
|
||||
label: this.translate.instant('Color'),
|
||||
group: 'core:common',
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -11,
|
||||
})
|
||||
for (const color of TAB_COLORS) {
|
||||
commands.push({
|
||||
id: `core:tab-color-${color.name.toLowerCase()}`,
|
||||
parent: 'core:tab-color',
|
||||
label: this.translate.instant(color.name) ?? color.name,
|
||||
fullLabel: this.translate.instant('Set tab color to {color}', { color: this.translate.instant(color.name) }),
|
||||
checked: tab.color === color.value,
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
tab.color = color.value
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (tab.parent instanceof SplitTabComponent) {
|
||||
const directions: SplitDirection[] = ['r', 'b', 'l', 't']
|
||||
commands.push({
|
||||
id: 'core:split',
|
||||
label: this.translate.instant('Split'),
|
||||
group: 'core:panes',
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
})
|
||||
for (const dir of directions) {
|
||||
commands.push({
|
||||
id: `core:split-${dir}`,
|
||||
label: {
|
||||
r: this.translate.instant('Right'),
|
||||
b: this.translate.instant('Down'),
|
||||
l: this.translate.instant('Left'),
|
||||
t: this.translate.instant('Up'),
|
||||
}[dir],
|
||||
fullLabel: {
|
||||
r: this.translate.instant('Split to the right'),
|
||||
b: this.translate.instant('Split to the down'),
|
||||
l: this.translate.instant('Split to the left'),
|
||||
t: this.translate.instant('Split to the up'),
|
||||
}[dir],
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
parent: 'core:split',
|
||||
run: async () => {
|
||||
(tab.parent as SplitTabComponent).splitTab(tab, dir)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
commands.push({
|
||||
id: 'core:switch-profile',
|
||||
label: this.translate.instant('Switch profile'),
|
||||
group: 'core:common',
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
run: async () => this.switchTabProfile(tab),
|
||||
})
|
||||
}
|
||||
|
||||
if (tab instanceof SplitTabComponent && tab.getAllTabs().length > 1) {
|
||||
commands.push({
|
||||
id: 'core:save-split-tab-as-profile',
|
||||
label: this.translate.instant('Save layout as profile'),
|
||||
group: 'core:common',
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
const modal = this.ngbModal.open(PromptModalComponent)
|
||||
modal.componentInstance.prompt = this.translate.instant('Profile name')
|
||||
const name = (await modal.result.catch(() => null))?.value
|
||||
if (!name) {
|
||||
return
|
||||
}
|
||||
this.splitLayoutProfilesService.createProfile(tab, name)
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return commands
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class TaskCompletionCommandProvider extends CommandProvider {
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async provide (context: CommandContext): Promise<Command[]> {
|
||||
if (!context.tab) {
|
||||
return []
|
||||
}
|
||||
|
||||
const process = await context.tab.getCurrentProcess()
|
||||
const items: Command[] = []
|
||||
|
||||
const extTab: (BaseTabComponent & { __completionNotificationEnabled?: boolean, __outputNotificationSubscription?: Subscription|null }) = context.tab
|
||||
|
||||
if (process) {
|
||||
items.push({
|
||||
id: 'core:process-name',
|
||||
label: this.translate.instant('Current process: {name}', process),
|
||||
group: 'core:process',
|
||||
weight: -1,
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
})
|
||||
items.push({
|
||||
id: 'core:notify-when-done',
|
||||
label: this.translate.instant('Notify when done'),
|
||||
group: 'core:process',
|
||||
weight: 0,
|
||||
checked: extTab.__completionNotificationEnabled,
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
extTab.__completionNotificationEnabled = !extTab.__completionNotificationEnabled
|
||||
|
||||
if (extTab.__completionNotificationEnabled) {
|
||||
this.app.observeTabCompletion(extTab).subscribe(() => {
|
||||
new Notification(this.translate.instant('Process completed'), {
|
||||
body: process.name,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(extTab)
|
||||
})
|
||||
extTab.__completionNotificationEnabled = false
|
||||
})
|
||||
} else {
|
||||
this.app.stopObservingTabCompletion(extTab)
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
items.push({
|
||||
id: 'core:notify-on-activity',
|
||||
label: this.translate.instant('Notify on activity'),
|
||||
group: 'core:process',
|
||||
checked: !!extTab.__outputNotificationSubscription,
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
extTab.clearActivity()
|
||||
|
||||
if (extTab.__outputNotificationSubscription) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
} else {
|
||||
extTab.__outputNotificationSubscription = extTab.activity$.subscribe(active => {
|
||||
if (extTab.__outputNotificationSubscription && active) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
new Notification(this.translate.instant('Tab activity'), {
|
||||
body: extTab.title,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(extTab)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
@@ -238,7 +238,7 @@ export class AppRootComponent {
|
||||
|
||||
private async getToolbarButtons (aboveZero: boolean): Promise<Command[]> {
|
||||
return (await this.commands.getCommands({ tab: this.app.activeTab ?? undefined }))
|
||||
.filter(x => x.locations?.includes(aboveZero ? CommandLocation.RightToolbar : CommandLocation.LeftToolbar))
|
||||
.filter(x => x.locations.includes(aboveZero ? CommandLocation.RightToolbar : CommandLocation.LeftToolbar))
|
||||
}
|
||||
|
||||
toggleMaximize (): void {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { Observable, Subject, BehaviorSubject, distinctUntilChanged, filter, debounceTime } from 'rxjs'
|
||||
import { Observable, Subject, distinctUntilChanged, filter, debounceTime } from 'rxjs'
|
||||
import { EmbeddedViewRef, Injector, ViewContainerRef, ViewRef } from '@angular/core'
|
||||
import { RecoveryToken } from '../api/tabRecovery'
|
||||
import { BaseComponent } from './base.component'
|
||||
@@ -75,9 +75,9 @@ export abstract class BaseTabComponent extends BaseComponent {
|
||||
private titleChange = new Subject<string>()
|
||||
private focused = new Subject<void>()
|
||||
private blurred = new Subject<void>()
|
||||
protected visibility = new BehaviorSubject<boolean>(false)
|
||||
protected progress = new BehaviorSubject<number|null>(null)
|
||||
protected activity = new BehaviorSubject<boolean>(false)
|
||||
private visibility = new Subject<boolean>()
|
||||
private progress = new Subject<number|null>()
|
||||
private activity = new Subject<boolean>()
|
||||
private destroyed = new Subject<void>()
|
||||
|
||||
private _destroyCalled = false
|
||||
@@ -195,10 +195,7 @@ export abstract class BaseTabComponent extends BaseComponent {
|
||||
if (!this.viewContainer || !this.viewContainerEmbeddedRef) {
|
||||
return
|
||||
}
|
||||
const viewIndex = this.viewContainer.indexOf(this.viewContainerEmbeddedRef)
|
||||
if (viewIndex !== -1) {
|
||||
this.viewContainer.detach(viewIndex)
|
||||
}
|
||||
this.viewContainer.detach(this.viewContainer.indexOf(this.viewContainerEmbeddedRef))
|
||||
this.viewContainerEmbeddedRef = undefined
|
||||
this.viewContainer = undefined
|
||||
}
|
||||
@@ -229,6 +226,7 @@ export abstract class BaseTabComponent extends BaseComponent {
|
||||
this.destroyed.next()
|
||||
}
|
||||
this.destroyed.complete()
|
||||
this.hostView.destroy()
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { Observable, Subject, takeWhile } from 'rxjs'
|
||||
import { Observable, Subject } from 'rxjs'
|
||||
import { Component, Injectable, ViewChild, ViewContainerRef, EmbeddedViewRef, AfterViewInit, OnDestroy, Injector } from '@angular/core'
|
||||
import { BaseTabComponent, BaseTabProcess, GetRecoveryTokenOptions } from './baseTab.component'
|
||||
import { TabRecoveryProvider, RecoveryToken } from '../api/tabRecovery'
|
||||
@@ -381,9 +381,6 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
}
|
||||
}
|
||||
}, 100)
|
||||
|
||||
// Propagate visibility to new children
|
||||
this.emitVisibility(this.visibility.value)
|
||||
}
|
||||
this.initialized.next()
|
||||
this.initialized.complete()
|
||||
@@ -474,8 +471,6 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
}
|
||||
tab.removeFromContainer()
|
||||
tab.parent = this
|
||||
|
||||
tab.emitVisibility(this.visibility.value)
|
||||
}
|
||||
|
||||
let target = relative ? this.getParentOf(relative) : null
|
||||
@@ -772,10 +767,10 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
}
|
||||
|
||||
destroy (): void {
|
||||
super.destroy()
|
||||
for (const x of this.getAllTabs()) {
|
||||
x.destroy()
|
||||
}
|
||||
super.destroy()
|
||||
}
|
||||
|
||||
layout (): void {
|
||||
@@ -821,13 +816,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
if (this.disableDynamicTitle) {
|
||||
return
|
||||
}
|
||||
const titles = [
|
||||
this.getFocusedTab()?.title,
|
||||
...this.getAllTabs()
|
||||
.filter(x => x !== this.getFocusedTab())
|
||||
.map(x => x.title),
|
||||
]
|
||||
this.setTitle([...new Set(titles)].join(' | '))
|
||||
this.setTitle([...new Set(this.getAllTabs().map(x => x.title))].join(' | '))
|
||||
}
|
||||
|
||||
private attachTabView (tab: BaseTabComponent) {
|
||||
@@ -843,42 +832,20 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
})
|
||||
}
|
||||
|
||||
tab.subscribeUntilDestroyed(
|
||||
this.observeUntilChildDetached(tab, tab.focused$),
|
||||
() => this.updateTitle(),
|
||||
)
|
||||
tab.subscribeUntilDestroyed(
|
||||
this.observeUntilChildDetached(tab, tab.titleChange$),
|
||||
() => this.updateTitle(),
|
||||
)
|
||||
tab.subscribeUntilDestroyed(
|
||||
this.observeUntilChildDetached(tab, tab.activity$),
|
||||
a => a ? this.displayActivity() : this.clearActivity(),
|
||||
)
|
||||
tab.subscribeUntilDestroyed(
|
||||
this.observeUntilChildDetached(tab, tab.progress$),
|
||||
p => this.setProgress(p),
|
||||
)
|
||||
tab.subscribeUntilDestroyed(tab.titleChange$, () => this.updateTitle())
|
||||
tab.subscribeUntilDestroyed(tab.activity$, a => a ? this.displayActivity() : this.clearActivity())
|
||||
tab.subscribeUntilDestroyed(tab.progress$, p => this.setProgress(p))
|
||||
if (tab.title) {
|
||||
this.updateTitle()
|
||||
}
|
||||
tab.subscribeUntilDestroyed(
|
||||
this.observeUntilChildDetached(tab, tab.recoveryStateChangedHint$),
|
||||
() => {
|
||||
this.recoveryStateChangedHint.next()
|
||||
},
|
||||
)
|
||||
tab.destroyed$.subscribe(() => {
|
||||
tab.subscribeUntilDestroyed(tab.recoveryStateChangedHint$, () => {
|
||||
this.recoveryStateChangedHint.next()
|
||||
})
|
||||
tab.subscribeUntilDestroyed(tab.destroyed$, () => {
|
||||
this.removeTab(tab)
|
||||
})
|
||||
}
|
||||
|
||||
private observeUntilChildDetached<T> (tab: BaseTabComponent, event: Observable<T>): Observable<T> {
|
||||
return event.pipe(takeWhile(() => {
|
||||
return this.getAllTabs().includes(tab)
|
||||
}))
|
||||
}
|
||||
|
||||
private onAfterTabAdded (tab: BaseTabComponent) {
|
||||
setImmediate(() => {
|
||||
this.layout()
|
||||
|
@@ -1,5 +1,6 @@
|
||||
import { Component } from '@angular/core'
|
||||
import { DomSanitizer } from '@angular/platform-browser'
|
||||
import { firstBy } from 'thenby'
|
||||
import { HomeBaseService } from '../services/homeBase.service'
|
||||
import { CommandService } from '../services/commands.service'
|
||||
import { Command, CommandLocation } from '../api/commands'
|
||||
@@ -20,7 +21,8 @@ export class StartPageComponent {
|
||||
commands: CommandService,
|
||||
) {
|
||||
commands.getCommands({}).then(c => {
|
||||
this.commands = c.filter(x => x.locations?.includes(CommandLocation.StartPage))
|
||||
this.commands = c.filter(x => x.locations.includes(CommandLocation.StartPage))
|
||||
this.commands.sort(firstBy(x => x.weight ?? 0))
|
||||
})
|
||||
}
|
||||
|
||||
|
@@ -1,16 +1,19 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Component, Input, Optional, Inject, HostBinding, HostListener, NgZone } from '@angular/core'
|
||||
import { Component, Input, HostBinding, HostListener, NgZone } from '@angular/core'
|
||||
import { auditTime } from 'rxjs'
|
||||
import { TabContextMenuItemProvider } from '../api/tabContextMenuProvider'
|
||||
|
||||
import { BaseTabComponent } from './baseTab.component'
|
||||
import { SplitTabComponent } from './splitTab.component'
|
||||
import { HotkeysService } from '../services/hotkeys.service'
|
||||
import { AppService } from '../services/app.service'
|
||||
import { HostAppService, Platform } from '../api/hostApp'
|
||||
import { ConfigService } from '../services/config.service'
|
||||
import { BaseComponent } from './base.component'
|
||||
import { CommandService } from '../services/commands.service'
|
||||
import { MenuItemOptions } from '../api/menu'
|
||||
import { PlatformService } from '../api/platform'
|
||||
import { CommandContext, CommandLocation } from '../api/commands'
|
||||
|
||||
import { BaseComponent } from './base.component'
|
||||
import { SplitTabComponent } from './splitTab.component'
|
||||
|
||||
/** @hidden */
|
||||
@Component({
|
||||
@@ -31,8 +34,8 @@ export class TabHeaderComponent extends BaseComponent {
|
||||
public hostApp: HostAppService,
|
||||
private hotkeys: HotkeysService,
|
||||
private platform: PlatformService,
|
||||
private commands: CommandService,
|
||||
private zone: NgZone,
|
||||
@Optional() @Inject(TabContextMenuItemProvider) protected contextMenuProviders: TabContextMenuItemProvider[],
|
||||
) {
|
||||
super()
|
||||
this.subscribeUntilDestroyed(this.hotkeys.hotkey$, (hotkey) => {
|
||||
@@ -42,7 +45,6 @@ export class TabHeaderComponent extends BaseComponent {
|
||||
}
|
||||
}
|
||||
})
|
||||
this.contextMenuProviders.sort((a, b) => a.weight - b.weight)
|
||||
}
|
||||
|
||||
ngOnInit () {
|
||||
@@ -56,26 +58,17 @@ export class TabHeaderComponent extends BaseComponent {
|
||||
}
|
||||
|
||||
async buildContextMenu (): Promise<MenuItemOptions[]> {
|
||||
let items: MenuItemOptions[] = []
|
||||
const contexts: CommandContext[] = [{ tab: this.tab }]
|
||||
|
||||
// Top-level tab menu
|
||||
for (const section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(this.tab, true)))) {
|
||||
items.push({ type: 'separator' })
|
||||
items = items.concat(section)
|
||||
}
|
||||
if (this.tab instanceof SplitTabComponent) {
|
||||
const tab = this.tab.getFocusedTab()
|
||||
if (tab) {
|
||||
for (let section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(tab, true)))) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
section = section.filter(item => !items.some(ex => ex.label === item.label))
|
||||
if (section.length) {
|
||||
items.push({ type: 'separator' })
|
||||
items = items.concat(section)
|
||||
}
|
||||
}
|
||||
contexts.push({ tab })
|
||||
}
|
||||
}
|
||||
return items.slice(1)
|
||||
|
||||
return this.commands.buildContextMenu(contexts, CommandLocation.TabHeaderMenu)
|
||||
}
|
||||
|
||||
onTabDragStart (tab: BaseTabComponent) {
|
||||
|
@@ -31,8 +31,6 @@ hotkeys:
|
||||
__nonStructural: true
|
||||
profile-selectors:
|
||||
__nonStructural: true
|
||||
group-selectors:
|
||||
__nonStructural: true
|
||||
profiles: []
|
||||
groups: []
|
||||
profileDefaults:
|
||||
@@ -45,7 +43,6 @@ enableWelcomeTab: true
|
||||
electronFlags:
|
||||
- ['force_discrete_gpu', '0']
|
||||
enableAutomaticUpdates: true
|
||||
hideTray: false
|
||||
version: 1
|
||||
vault: null
|
||||
encrypted: false
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { Directive, Output, ElementRef, EventEmitter, AfterViewInit } from '@angular/core'
|
||||
import { DirectoryUpload, PlatformService } from '../api/platform'
|
||||
import { FileUpload, PlatformService } from '../api/platform'
|
||||
import './dropZone.directive.scss'
|
||||
|
||||
/** @hidden */
|
||||
@@ -7,7 +7,7 @@ import './dropZone.directive.scss'
|
||||
selector: '[dropZone]',
|
||||
})
|
||||
export class DropZoneDirective implements AfterViewInit {
|
||||
@Output() transfer = new EventEmitter<DirectoryUpload>()
|
||||
@Output() transfer = new EventEmitter<FileUpload>()
|
||||
private dropHint?: HTMLElement
|
||||
|
||||
constructor (
|
||||
@@ -27,9 +27,11 @@ export class DropZoneDirective implements AfterViewInit {
|
||||
})
|
||||
}
|
||||
})
|
||||
this.el.nativeElement.addEventListener('drop', async (event: DragEvent) => {
|
||||
this.el.nativeElement.addEventListener('drop', (event: DragEvent) => {
|
||||
this.removeHint()
|
||||
this.transfer.emit(await this.platform.startUploadFromDragEvent(event, true))
|
||||
for (const transfer of this.platform.startUploadFromDragEvent(event, true)) {
|
||||
this.transfer.emit(transfer)
|
||||
}
|
||||
})
|
||||
this.el.nativeElement.addEventListener('dragleave', () => {
|
||||
this.removeHint()
|
||||
|
@@ -264,7 +264,6 @@ export class AppHotkeyProvider extends HotkeyProvider {
|
||||
|
||||
async provide (): Promise<HotkeyDescription[]> {
|
||||
const profiles = await this.profilesService.getProfiles()
|
||||
const groups = await this.profilesService.getProfileGroups()
|
||||
return [
|
||||
...this.hotkeys,
|
||||
...profiles.map(profile => ({
|
||||
@@ -275,10 +274,6 @@ export class AppHotkeyProvider extends HotkeyProvider {
|
||||
id: `profile-selectors.${provider.id}`,
|
||||
name: this.translate.instant('Show {type} profile selector', { type: provider.name }),
|
||||
})),
|
||||
...groups.map(group => ({
|
||||
id: `group-selectors.${group.id}`,
|
||||
name: this.translate.instant('Show profile selector for group {name}', { name: group.name }),
|
||||
})),
|
||||
]
|
||||
}
|
||||
|
||||
|
@@ -37,7 +37,7 @@ import { FastHtmlBindDirective } from './directives/fastHtmlBind.directive'
|
||||
import { DropZoneDirective } from './directives/dropZone.directive'
|
||||
import { CdkAutoDropGroup } from './directives/cdkAutoDropGroup.directive'
|
||||
|
||||
import { Theme, CLIHandler, TabContextMenuItemProvider, TabRecoveryProvider, HotkeyProvider, ConfigProvider, PlatformService, FileProvider, ProfilesService, ProfileProvider, QuickConnectProfileProvider, SelectorOption, Profile, SelectorService, CommandProvider, PartialProfileGroup, ProfileGroup } from './api'
|
||||
import { Theme, CLIHandler, TabRecoveryProvider, HotkeyProvider, ConfigProvider, PlatformService, FileProvider, ProfilesService, ProfileProvider, QuickConnectProfileProvider, SelectorOption, Profile, SelectorService, CommandProvider } from './api'
|
||||
|
||||
import { AppService } from './services/app.service'
|
||||
import { ConfigService } from './services/config.service'
|
||||
@@ -46,13 +46,12 @@ import { HotkeysService } from './services/hotkeys.service'
|
||||
import { CustomMissingTranslationHandler, LocaleService } from './services/locale.service'
|
||||
import { CommandService } from './services/commands.service'
|
||||
|
||||
import { NewTheme } from './theme'
|
||||
import { StandardTheme, StandardCompactTheme, PaperTheme, NewTheme } from './theme'
|
||||
import { CoreConfigProvider } from './config'
|
||||
import { AppHotkeyProvider } from './hotkeys'
|
||||
import { TaskCompletionContextMenu, CommonOptionsContextMenu, TabManagementContextMenu, ProfilesContextMenu } from './tabContextMenu'
|
||||
import { LastCLIHandler, ProfileCLIHandler } from './cli'
|
||||
import { SplitLayoutProfilesService } from './profiles'
|
||||
import { CoreCommandProvider } from './commands'
|
||||
import { CoreCommandProvider, TaskCompletionCommandProvider } from './commands'
|
||||
|
||||
export function TranslateMessageFormatCompilerFactory (): TranslateMessageFormatCompiler {
|
||||
return new TranslateMessageFormatCompiler()
|
||||
@@ -60,18 +59,18 @@ export function TranslateMessageFormatCompilerFactory (): TranslateMessageFormat
|
||||
|
||||
const PROVIDERS = [
|
||||
{ provide: HotkeyProvider, useClass: AppHotkeyProvider, multi: true },
|
||||
{ provide: Theme, useClass: StandardTheme, multi: true },
|
||||
{ provide: Theme, useClass: StandardCompactTheme, multi: true },
|
||||
{ provide: Theme, useClass: PaperTheme, multi: true },
|
||||
{ provide: Theme, useClass: NewTheme, multi: true },
|
||||
{ provide: ConfigProvider, useClass: CoreConfigProvider, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: CommonOptionsContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: TabManagementContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: TaskCompletionContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: ProfilesContextMenu, multi: true },
|
||||
{ provide: TabRecoveryProvider, useExisting: SplitTabRecoveryProvider, multi: true },
|
||||
{ provide: CLIHandler, useClass: ProfileCLIHandler, multi: true },
|
||||
{ provide: CLIHandler, useClass: LastCLIHandler, multi: true },
|
||||
{ provide: FileProvider, useClass: VaultFileProvider, multi: true },
|
||||
{ provide: ProfileProvider, useExisting: SplitLayoutProfilesService, multi: true },
|
||||
{ provide: CommandProvider, useExisting: CoreCommandProvider, multi: true },
|
||||
{ provide: CommandProvider, useExisting: TaskCompletionCommandProvider, multi: true },
|
||||
{
|
||||
provide: LOCALE_ID,
|
||||
deps: [LocaleService],
|
||||
@@ -178,24 +177,20 @@ export default class AppModule { // eslint-disable-line @typescript-eslint/no-ex
|
||||
if (profile) {
|
||||
profilesService.openNewTabForProfile(profile)
|
||||
}
|
||||
} else if (hotkey.startsWith('profile-selectors.')) {
|
||||
}
|
||||
if (hotkey.startsWith('profile-selectors.')) {
|
||||
const id = hotkey.substring(hotkey.indexOf('.') + 1)
|
||||
const provider = profilesService.getProviders().find(x => x.id === id)
|
||||
if (!provider) {
|
||||
return
|
||||
}
|
||||
this.showSelector(provider).catch(() => null)
|
||||
} else if (hotkey.startsWith('group-selectors.')) {
|
||||
const id = hotkey.substring(hotkey.indexOf('.') + 1)
|
||||
const groups = await this.profilesService.getProfileGroups({ includeProfiles: true })
|
||||
const group = groups.find(x => x.id === id)
|
||||
if (!group) {
|
||||
return
|
||||
}
|
||||
this.showGroupSelector(group).catch(() => null)
|
||||
} else if (hotkey === 'command-selector') {
|
||||
}
|
||||
if (hotkey === 'command-selector') {
|
||||
commands.showSelector().catch(() => null)
|
||||
} else if (hotkey === 'profile-selector') {
|
||||
}
|
||||
|
||||
if (hotkey === 'profile-selector') {
|
||||
commands.run('core:profile-selector', {})
|
||||
}
|
||||
})
|
||||
@@ -233,21 +228,6 @@ export default class AppModule { // eslint-disable-line @typescript-eslint/no-ex
|
||||
await this.selector.show(this.translate.instant('Select profile'), options)
|
||||
}
|
||||
|
||||
async showGroupSelector (group: PartialProfileGroup<ProfileGroup>): Promise<void> {
|
||||
if (this.selector.active) {
|
||||
return
|
||||
}
|
||||
|
||||
const profiles = group.profiles ?? []
|
||||
|
||||
const options: SelectorOption<void>[] = profiles.map(p => ({
|
||||
...this.profilesService.selectorOptionForProfile(p),
|
||||
callback: () => this.profilesService.openNewTabForProfile(p),
|
||||
}))
|
||||
|
||||
await this.selector.show(this.translate.instant('Select profile'), options)
|
||||
}
|
||||
|
||||
static forRoot (): ModuleWithProviders<AppModule> {
|
||||
return {
|
||||
ngModule: AppModule,
|
||||
|
@@ -1,6 +1,10 @@
|
||||
import { Inject, Injectable, Optional } from '@angular/core'
|
||||
import { AppService, Command, CommandContext, CommandProvider, ConfigService, MenuItemOptions, SplitTabComponent, TabContextMenuItemProvider, ToolbarButton, ToolbarButtonProvider, TranslateService } from '../api'
|
||||
import { TranslateService } from '@ngx-translate/core'
|
||||
import { Command, CommandContext, CommandLocation, CommandProvider, MenuItemOptions, SplitTabComponent, TabContextMenuItemProvider, ToolbarButton, ToolbarButtonProvider } from '../api'
|
||||
import { AppService } from './app.service'
|
||||
import { ConfigService } from './config.service'
|
||||
import { SelectorService } from './selector.service'
|
||||
import { firstBy } from 'thenby'
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class CommandService {
|
||||
@@ -11,11 +15,11 @@ export class CommandService {
|
||||
private config: ConfigService,
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
@Optional() @Inject(TabContextMenuItemProvider) protected contextMenuProviders: TabContextMenuItemProvider[],
|
||||
@Optional() @Inject(TabContextMenuItemProvider) protected contextMenuProviders: TabContextMenuItemProvider[]|null,
|
||||
@Optional() @Inject(ToolbarButtonProvider) private toolbarButtonProviders: ToolbarButtonProvider[],
|
||||
@Inject(CommandProvider) private commandProviders: CommandProvider[],
|
||||
) {
|
||||
this.contextMenuProviders.sort((a, b) => a.weight - b.weight)
|
||||
this.contextMenuProviders?.sort((a, b) => a.weight - b.weight)
|
||||
}
|
||||
|
||||
async getCommands (context: CommandContext): Promise<Command[]> {
|
||||
@@ -29,8 +33,8 @@ export class CommandService {
|
||||
let items: MenuItemOptions[] = []
|
||||
if (context.tab) {
|
||||
for (const tabHeader of [false, true]) {
|
||||
// Top-level tab menu
|
||||
for (let section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(context.tab!, tabHeader)))) {
|
||||
// Top-level tab menu
|
||||
for (let section of await Promise.all(this.contextMenuProviders?.map(x => x.getItems(context.tab!, tabHeader)) ?? [])) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
section = section.filter(item => !items.some(ex => ex.label === item.label))
|
||||
items = items.concat(section)
|
||||
@@ -38,7 +42,7 @@ export class CommandService {
|
||||
if (context.tab instanceof SplitTabComponent) {
|
||||
const tab = context.tab.getFocusedTab()
|
||||
if (tab) {
|
||||
for (let section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(tab, tabHeader)))) {
|
||||
for (let section of await Promise.all(this.contextMenuProviders?.map(x => x.getItems(tab, tabHeader)) ?? [])) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
section = section.filter(item => !items.some(ex => ex.label === item.label))
|
||||
items = items.concat(section)
|
||||
@@ -50,21 +54,10 @@ export class CommandService {
|
||||
|
||||
items = items.filter(x => (x.enabled ?? true) && x.type !== 'separator')
|
||||
|
||||
const flatItems: MenuItemOptions[] = []
|
||||
function flattenItem (item: MenuItemOptions, prefix?: string): void {
|
||||
if (item.submenu) {
|
||||
item.submenu.forEach(x => flattenItem(x, (prefix ? `${prefix} > ` : '') + (item.commandLabel ?? item.label)))
|
||||
} else {
|
||||
flatItems.push({
|
||||
...item,
|
||||
label: (prefix ? `${prefix} > ` : '') + (item.commandLabel ?? item.label),
|
||||
})
|
||||
}
|
||||
}
|
||||
items.forEach(x => flattenItem(x))
|
||||
|
||||
const commands = buttons.map(x => Command.fromToolbarButton(x))
|
||||
commands.push(...flatItems.map(x => Command.fromMenuItem(x)))
|
||||
const commands = [
|
||||
...buttons.map(x => Command.fromToolbarButton(x)),
|
||||
...items.map(x => Command.fromMenuItem(x)).flat(),
|
||||
]
|
||||
|
||||
for (const provider of this.config.enabledServices(this.commandProviders)) {
|
||||
commands.push(...await provider.provide(context))
|
||||
@@ -74,20 +67,36 @@ export class CommandService {
|
||||
.filter(c => !this.config.store.commandBlacklist.includes(c.id))
|
||||
.sort((a, b) => (a.weight ?? 0) - (b.weight ?? 0))
|
||||
.map(command => {
|
||||
const run = command.run
|
||||
command.run = async () => {
|
||||
// Serialize execution
|
||||
this.lastCommand = this.lastCommand.finally(run)
|
||||
await this.lastCommand
|
||||
if (command.run) {
|
||||
const run = command.run
|
||||
command.run = async () => {
|
||||
// Serialize execution
|
||||
this.lastCommand = this.lastCommand.finally(run)
|
||||
await this.lastCommand
|
||||
}
|
||||
}
|
||||
return command
|
||||
})
|
||||
}
|
||||
|
||||
async getCommandsWithContexts (context: CommandContext[]): Promise<Command[]> {
|
||||
let commands: Command[] = []
|
||||
|
||||
for (const commandSet of await Promise.all(context.map(x => this.getCommands(x)))) {
|
||||
for (const command of commandSet) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
commands = commands.filter(x => x.id !== command.id)
|
||||
commands.push(command)
|
||||
}
|
||||
}
|
||||
|
||||
return commands
|
||||
}
|
||||
|
||||
async run (id: string, context: CommandContext): Promise<void> {
|
||||
const commands = await this.getCommands(context)
|
||||
const command = commands.find(x => x.id === id)
|
||||
await command?.run()
|
||||
await command?.run?.()
|
||||
}
|
||||
|
||||
async showSelector (): Promise<void> {
|
||||
@@ -95,20 +104,80 @@ export class CommandService {
|
||||
return
|
||||
}
|
||||
|
||||
const context: CommandContext = {}
|
||||
const tab = this.app.activeTab
|
||||
if (tab instanceof SplitTabComponent) {
|
||||
context.tab = tab.getFocusedTab() ?? undefined
|
||||
const contexts: CommandContext[] = [{}]
|
||||
if (this.app.activeTab) {
|
||||
contexts.push({ tab: this.app.activeTab })
|
||||
}
|
||||
const commands = await this.getCommands(context)
|
||||
if (this.app.activeTab instanceof SplitTabComponent) {
|
||||
const tab = this.app.activeTab.getFocusedTab()
|
||||
if (tab) {
|
||||
contexts.push({ tab })
|
||||
}
|
||||
}
|
||||
|
||||
const commands = (await this.getCommandsWithContexts(contexts))
|
||||
.filter(x => x.run)
|
||||
.sort(firstBy(x => x.weight ?? 0))
|
||||
|
||||
return this.selector.show(
|
||||
this.translate.instant('Commands'),
|
||||
commands.map(c => ({
|
||||
name: c.label,
|
||||
name: c.fullLabel ?? c.label,
|
||||
callback: c.run,
|
||||
description: c.sublabel,
|
||||
icon: c.icon,
|
||||
})),
|
||||
)
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
async buildContextMenu (contexts: CommandContext[], location: CommandLocation): Promise<MenuItemOptions[]> {
|
||||
let commands = await this.getCommandsWithContexts(contexts)
|
||||
|
||||
commands = commands.filter(x => x.locations.includes(location))
|
||||
commands.sort(firstBy(x => x.weight ?? 0))
|
||||
|
||||
interface Group {
|
||||
id?: string
|
||||
weight: number
|
||||
commands: Command[]
|
||||
}
|
||||
|
||||
const groups: Group[] = []
|
||||
|
||||
for (const command of commands.filter(x => !x.parent)) {
|
||||
let group = groups.find(x => x.id === command.group)
|
||||
if (!group) {
|
||||
group = {
|
||||
id: command.group,
|
||||
weight: 0,
|
||||
commands: [],
|
||||
}
|
||||
groups.push(group)
|
||||
}
|
||||
group.weight += command.weight ?? 0
|
||||
group.commands.push(command)
|
||||
}
|
||||
|
||||
groups.sort(firstBy(x => x.weight / x.commands.length))
|
||||
|
||||
function mapCommand (command: Command): MenuItemOptions {
|
||||
const submenu = command.id ? commands.filter(x => x.parent === command.id).map(mapCommand) : []
|
||||
return {
|
||||
label: command.label,
|
||||
submenu: submenu.length ? submenu : undefined,
|
||||
checked: command.checked,
|
||||
enabled: !!command.run || !!submenu.length,
|
||||
type: command.checked ? 'checkbox' : undefined,
|
||||
click: () => command.run?.(),
|
||||
}
|
||||
}
|
||||
|
||||
const items: MenuItemOptions[] = []
|
||||
for (const group of groups) {
|
||||
items.push({ type: 'separator' })
|
||||
items.push(...group.commands.map(mapCommand))
|
||||
}
|
||||
|
||||
return items.slice(1)
|
||||
}
|
||||
}
|
||||
|
@@ -27,8 +27,12 @@ export class HomeBaseService {
|
||||
this.platform.openExternal('https://github.com/Eugeny/tabby')
|
||||
}
|
||||
|
||||
openDiscord (): void {
|
||||
this.platform.openExternal('https://discord.gg/Vn7BjmzhtF')
|
||||
openDiscussions (): void {
|
||||
this.platform.openExternal('https://github.com/Eugeny/tabby/discussions')
|
||||
}
|
||||
|
||||
openTwitter (): void {
|
||||
this.platform.openExternal('https://twitter.com/eugeeeeny')
|
||||
}
|
||||
|
||||
openTranslations (): void {
|
||||
|
@@ -20,9 +20,7 @@ import localeKO from '@angular/common/locales/ko'
|
||||
import localePL from '@angular/common/locales/pl'
|
||||
import localePT from '@angular/common/locales/pt'
|
||||
import localeRU from '@angular/common/locales/ru'
|
||||
import localeSRSP from '@angular/common/locales/sr-Cyrl'
|
||||
import localeSV from '@angular/common/locales/sv'
|
||||
import localeTR from '@angular/common/locales/tr'
|
||||
import localeUK from '@angular/common/locales/uk'
|
||||
import localeZH from '@angular/common/locales/zh'
|
||||
import { Observable, Subject } from 'rxjs'
|
||||
@@ -47,9 +45,7 @@ registerLocaleData(localeKO)
|
||||
registerLocaleData(localePL)
|
||||
registerLocaleData(localePT)
|
||||
registerLocaleData(localeRU)
|
||||
registerLocaleData(localeSRSP)
|
||||
registerLocaleData(localeSV)
|
||||
registerLocaleData(localeTR)
|
||||
registerLocaleData(localeUK)
|
||||
registerLocaleData(localeZH)
|
||||
|
||||
@@ -140,10 +136,6 @@ export class LocaleService {
|
||||
code: 'sv-SE',
|
||||
name: 'Svenska',
|
||||
},
|
||||
{
|
||||
code: 'tr-TR',
|
||||
name: 'Türkçe',
|
||||
},
|
||||
{
|
||||
code: 'bg-BG',
|
||||
name: 'Български',
|
||||
@@ -152,10 +144,6 @@ export class LocaleService {
|
||||
code: 'ru-RU',
|
||||
name: 'Русский',
|
||||
},
|
||||
{
|
||||
code: 'sr-SP',
|
||||
name: 'Српски',
|
||||
},
|
||||
{
|
||||
code: 'uk-UA',
|
||||
name: 'Українська',
|
||||
|
@@ -487,12 +487,6 @@ export class ProfilesService {
|
||||
delete profile.group
|
||||
}
|
||||
}
|
||||
if (this.config.store.hotkeys['group-selectors'].hasOwnProperty(group.id)) {
|
||||
const groupSelectorsHotkeys = { ...this.config.store.hotkeys['group-selectors'] }
|
||||
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
||||
delete groupSelectorsHotkeys[group.id]
|
||||
this.config.store.hotkeys['group-selectors'] = groupSelectorsHotkeys
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -37,7 +37,6 @@ export class TabsService {
|
||||
const componentRef = componentFactory.create(this.injector)
|
||||
const tab = componentRef.instance
|
||||
tab.hostView = componentRef.hostView
|
||||
tab.destroyed$.subscribe(() => componentRef.destroy())
|
||||
Object.assign(tab, params.inputs ?? {})
|
||||
return tab
|
||||
}
|
||||
|
@@ -23,7 +23,6 @@ export class ThemesService {
|
||||
) {
|
||||
this.rootElementStyleBackup = document.documentElement.style.cssText
|
||||
this.applyTheme(standardTheme)
|
||||
this.applyThemeVariables()
|
||||
config.ready$.toPromise().then(() => {
|
||||
this.applyCurrentTheme()
|
||||
this.applyThemeVariables()
|
||||
@@ -38,11 +37,6 @@ export class ThemesService {
|
||||
})
|
||||
}
|
||||
|
||||
private getConfigStoreOrDefaults (): any {
|
||||
/// Theme service is active before the vault is unlocked and config is available
|
||||
return this.config.store ?? this.config.getDefaults()
|
||||
}
|
||||
|
||||
private applyThemeVariables () {
|
||||
if (!this.findCurrentTheme().followsColorScheme) {
|
||||
document.documentElement.style.cssText = this.rootElementStyleBackup
|
||||
@@ -66,7 +60,7 @@ export class ThemesService {
|
||||
}
|
||||
|
||||
let background = Color(theme.background)
|
||||
if (this.getConfigStoreOrDefaults().appearance.vibrancy) {
|
||||
if (this.config.store?.appearance.vibrancy) {
|
||||
background = background.fade(0.6)
|
||||
}
|
||||
// const background = theme.background
|
||||
@@ -154,13 +148,13 @@ export class ThemesService {
|
||||
vars['--bs-form-switch-bg'] = `url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27${switchBackground}%27/%3e%3c/svg%3e")`
|
||||
}
|
||||
|
||||
vars['--spaciness'] = this.getConfigStoreOrDefaults().appearance.spaciness
|
||||
vars['--spaciness'] = this.config.store.appearance.spaciness
|
||||
|
||||
for (const [bg, fg] of contrastPairs) {
|
||||
const colorBg = Color(vars[bg]).hsl()
|
||||
const colorFg = Color(vars[fg]).hsl()
|
||||
const bgContrast = colorBg.contrast(colorFg)
|
||||
if (bgContrast < this.getConfigStoreOrDefaults().terminal.minimumContrastRatio) {
|
||||
if (bgContrast < this.config.store.terminal.minimumContrastRatio) {
|
||||
vars[fg] = this.ensureContrast(colorFg, colorBg).string()
|
||||
}
|
||||
}
|
||||
@@ -169,7 +163,7 @@ export class ThemesService {
|
||||
document.documentElement.style.setProperty(key, value)
|
||||
}
|
||||
|
||||
document.body.classList.toggle('no-animations', !this.getConfigStoreOrDefaults().accessibility.animations)
|
||||
document.body.classList.toggle('no-animations', !this.config.store.accessibility.animations)
|
||||
}
|
||||
|
||||
private ensureContrast (color: Color, against: Color): Color {
|
||||
@@ -184,7 +178,7 @@ export class ThemesService {
|
||||
while (
|
||||
(step < 1 && color.color[2] > 1 ||
|
||||
step > 1 && color.color[2] < 99) &&
|
||||
color.contrast(against) < this.getConfigStoreOrDefaults().terminal.minimumContrastRatio) {
|
||||
color.contrast(against) < this.config.store.terminal.minimumContrastRatio) {
|
||||
color.color[2] *= step
|
||||
}
|
||||
return color
|
||||
@@ -195,22 +189,22 @@ export class ThemesService {
|
||||
}
|
||||
|
||||
findCurrentTheme (): Theme {
|
||||
return this.findTheme(this.getConfigStoreOrDefaults().appearance.theme) ?? this.standardTheme
|
||||
return this.findTheme(this.config.store.appearance.theme) ?? this.standardTheme
|
||||
}
|
||||
|
||||
/// @hidden
|
||||
_getActiveColorScheme (): any {
|
||||
let theme: PlatformTheme = 'dark'
|
||||
if (this.getConfigStoreOrDefaults().appearance.colorSchemeMode === 'light') {
|
||||
if (this.config.store.appearance.colorSchemeMode === 'light') {
|
||||
theme = 'light'
|
||||
} else if (this.getConfigStoreOrDefaults().appearance.colorSchemeMode === 'auto') {
|
||||
} else if (this.config.store.appearance.colorSchemeMode === 'auto') {
|
||||
theme = this.platform.getTheme()
|
||||
}
|
||||
|
||||
if (theme === 'light') {
|
||||
return this.getConfigStoreOrDefaults().terminal.lightColorScheme
|
||||
return this.config.store.terminal.lightColorScheme
|
||||
} else {
|
||||
return this.getConfigStoreOrDefaults().terminal.colorScheme
|
||||
return this.config.store.terminal.colorScheme
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,7 +215,7 @@ export class ThemesService {
|
||||
document.querySelector('head')!.appendChild(this.styleElement)
|
||||
}
|
||||
this.styleElement.textContent = theme.css
|
||||
document.querySelector('style#custom-css')!.innerHTML = this.getConfigStoreOrDefaults().appearance.css
|
||||
document.querySelector('style#custom-css')!.innerHTML = this.config.store?.appearance?.css
|
||||
this.themeChanged.next(theme)
|
||||
}
|
||||
|
||||
|
@@ -195,13 +195,7 @@ export class VaultService {
|
||||
if (!vault) {
|
||||
return null
|
||||
}
|
||||
let vaultSecret = vault.secrets.find(s => s.type === type && this.keyMatches(key, s))
|
||||
if (!vaultSecret) {
|
||||
// search for secret without host in vault (like a default user/password used in multiple servers)
|
||||
key['host'] = null
|
||||
vaultSecret = vault.secrets.find(s => s.type === type && this.keyMatches(key, s))
|
||||
}
|
||||
return vaultSecret ?? null
|
||||
return vault.secrets.find(s => s.type === type && this.keyMatches(key, s)) ?? null
|
||||
}
|
||||
|
||||
async addSecret (secret: VaultSecret): Promise<void> {
|
||||
@@ -312,7 +306,7 @@ export class VaultFileProvider extends FileProvider {
|
||||
id,
|
||||
description: `${description} (${transfer.getName()})`,
|
||||
},
|
||||
value: Buffer.from(await transfer.readAll()).toString('base64'),
|
||||
value: (await transfer.readAll()).toString('base64'),
|
||||
})
|
||||
return `${this.prefix}${id}`
|
||||
}
|
||||
|
@@ -1,298 +0,0 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Injectable } from '@angular/core'
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { TranslateService } from '@ngx-translate/core'
|
||||
import { Subscription } from 'rxjs'
|
||||
import { AppService } from './services/app.service'
|
||||
import { BaseTabComponent } from './components/baseTab.component'
|
||||
import { SplitTabComponent, SplitDirection } from './components/splitTab.component'
|
||||
import { TabContextMenuItemProvider } from './api/tabContextMenuProvider'
|
||||
import { MenuItemOptions } from './api/menu'
|
||||
import { ProfilesService } from './services/profiles.service'
|
||||
import { TabsService } from './services/tabs.service'
|
||||
import { HotkeysService } from './services/hotkeys.service'
|
||||
import { PromptModalComponent } from './components/promptModal.component'
|
||||
import { SplitLayoutProfilesService } from './profiles'
|
||||
import { TAB_COLORS } from './utils'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class TabManagementContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 99
|
||||
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
let items: MenuItemOptions[] = [
|
||||
{
|
||||
label: this.translate.instant('Close'),
|
||||
commandLabel: this.translate.instant('Close tab'),
|
||||
click: () => {
|
||||
if (this.app.tabs.includes(tab)) {
|
||||
this.app.closeTab(tab, true)
|
||||
} else {
|
||||
tab.destroy()
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
||||
if (!tab.parent) {
|
||||
items = [
|
||||
...items,
|
||||
{
|
||||
label: this.translate.instant('Close other tabs'),
|
||||
click: () => {
|
||||
for (const t of this.app.tabs.filter(x => x !== tab)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Close tabs to the right'),
|
||||
click: () => {
|
||||
for (const t of this.app.tabs.slice(this.app.tabs.indexOf(tab) + 1)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Close tabs to the left'),
|
||||
click: () => {
|
||||
for (const t of this.app.tabs.slice(0, this.app.tabs.indexOf(tab))) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
||||
} else if (tab.parent instanceof SplitTabComponent) {
|
||||
const directions: SplitDirection[] = ['r', 'b', 'l', 't']
|
||||
items.push({
|
||||
label: this.translate.instant('Split'),
|
||||
submenu: directions.map(dir => ({
|
||||
label: {
|
||||
r: this.translate.instant('Right'),
|
||||
b: this.translate.instant('Down'),
|
||||
l: this.translate.instant('Left'),
|
||||
t: this.translate.instant('Up'),
|
||||
}[dir],
|
||||
commandLabel: {
|
||||
r: this.translate.instant('Split to the right'),
|
||||
b: this.translate.instant('Split to the down'),
|
||||
l: this.translate.instant('Split to the left'),
|
||||
t: this.translate.instant('Split to the up'),
|
||||
}[dir],
|
||||
click: () => {
|
||||
(tab.parent as SplitTabComponent).splitTab(tab, dir)
|
||||
},
|
||||
})) as MenuItemOptions[],
|
||||
})
|
||||
}
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class CommonOptionsContextMenu extends TabContextMenuItemProvider {
|
||||
weight = -1
|
||||
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private ngbModal: NgbModal,
|
||||
private splitLayoutProfilesService: SplitLayoutProfilesService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent, tabHeader?: boolean): Promise<MenuItemOptions[]> {
|
||||
let items: MenuItemOptions[] = []
|
||||
if (tabHeader) {
|
||||
const currentColor = TAB_COLORS.find(x => x.value === tab.color)?.name
|
||||
items = [
|
||||
...items,
|
||||
{
|
||||
label: this.translate.instant('Rename'),
|
||||
commandLabel: this.translate.instant('Rename tab'),
|
||||
click: () => {
|
||||
this.app.renameTab(tab)
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Duplicate'),
|
||||
commandLabel: this.translate.instant('Duplicate tab'),
|
||||
click: () => this.app.duplicateTab(tab),
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Color'),
|
||||
commandLabel: this.translate.instant('Change tab color'),
|
||||
sublabel: currentColor ? this.translate.instant(currentColor) : undefined,
|
||||
submenu: TAB_COLORS.map(color => ({
|
||||
label: this.translate.instant(color.name) ?? color.name,
|
||||
type: 'radio',
|
||||
checked: tab.color === color.value,
|
||||
click: () => {
|
||||
tab.color = color.value
|
||||
},
|
||||
})) as MenuItemOptions[],
|
||||
},
|
||||
]
|
||||
|
||||
if (tab instanceof SplitTabComponent && tab.getAllTabs().length > 1) {
|
||||
items.push({
|
||||
label: this.translate.instant('Save layout as profile'),
|
||||
click: async () => {
|
||||
const modal = this.ngbModal.open(PromptModalComponent)
|
||||
modal.componentInstance.prompt = this.translate.instant('Profile name')
|
||||
const name = (await modal.result.catch(() => null))?.value
|
||||
if (!name) {
|
||||
return
|
||||
}
|
||||
this.splitLayoutProfilesService.createProfile(tab, name)
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class TaskCompletionContextMenu extends TabContextMenuItemProvider {
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
const process = await tab.getCurrentProcess()
|
||||
const items: MenuItemOptions[] = []
|
||||
|
||||
const extTab: (BaseTabComponent & { __completionNotificationEnabled?: boolean, __outputNotificationSubscription?: Subscription|null }) = tab
|
||||
|
||||
if (process) {
|
||||
items.push({
|
||||
enabled: false,
|
||||
label: this.translate.instant('Current process: {name}', process),
|
||||
})
|
||||
items.push({
|
||||
label: this.translate.instant('Notify when done'),
|
||||
type: 'checkbox',
|
||||
checked: extTab.__completionNotificationEnabled,
|
||||
click: () => {
|
||||
extTab.__completionNotificationEnabled = !extTab.__completionNotificationEnabled
|
||||
|
||||
if (extTab.__completionNotificationEnabled) {
|
||||
this.app.observeTabCompletion(tab).subscribe(() => {
|
||||
new Notification(this.translate.instant('Process completed'), {
|
||||
body: process.name,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(tab)
|
||||
})
|
||||
extTab.__completionNotificationEnabled = false
|
||||
})
|
||||
} else {
|
||||
this.app.stopObservingTabCompletion(tab)
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
items.push({
|
||||
label: this.translate.instant('Notify on activity'),
|
||||
type: 'checkbox',
|
||||
checked: !!extTab.__outputNotificationSubscription,
|
||||
click: () => {
|
||||
tab.clearActivity()
|
||||
|
||||
if (extTab.__outputNotificationSubscription) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
} else {
|
||||
extTab.__outputNotificationSubscription = tab.activity$.subscribe(active => {
|
||||
if (extTab.__outputNotificationSubscription && active) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
new Notification(this.translate.instant('Tab activity'), {
|
||||
body: tab.title,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(tab)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class ProfilesContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 10
|
||||
|
||||
constructor (
|
||||
private profilesService: ProfilesService,
|
||||
private tabsService: TabsService,
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
hotkeys: HotkeysService,
|
||||
) {
|
||||
super()
|
||||
hotkeys.hotkey$.subscribe(hotkey => {
|
||||
if (hotkey === 'switch-profile') {
|
||||
let tab = this.app.activeTab
|
||||
if (tab instanceof SplitTabComponent) {
|
||||
tab = tab.getFocusedTab()
|
||||
if (tab) {
|
||||
this.switchTabProfile(tab)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async switchTabProfile (tab: BaseTabComponent) {
|
||||
const profile = await this.profilesService.showProfileSelector().catch(() => null)
|
||||
if (!profile) {
|
||||
return
|
||||
}
|
||||
|
||||
const params = await this.profilesService.newTabParametersForProfile(profile)
|
||||
if (!params) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!await tab.canClose()) {
|
||||
return
|
||||
}
|
||||
|
||||
const newTab = this.tabsService.create(params)
|
||||
;(tab.parent as SplitTabComponent).replaceTab(tab, newTab)
|
||||
|
||||
tab.destroy()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
|
||||
if (tab.parent instanceof SplitTabComponent && tab.parent.getAllTabs().length > 1) {
|
||||
return [
|
||||
{
|
||||
label: this.translate.instant('Switch profile'),
|
||||
click: () => this.switchTabProfile(tab),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
return []
|
||||
}
|
||||
}
|
36
tabby-core/src/theme.compact.scss
Normal file
36
tabby-core/src/theme.compact.scss
Normal file
@@ -0,0 +1,36 @@
|
||||
@import './theme.scss';
|
||||
|
||||
app-root {
|
||||
.tabs-on-side .tab-bar {
|
||||
height: 100% !important;
|
||||
}
|
||||
|
||||
.tab-bar {
|
||||
height: 27px !important;
|
||||
|
||||
.btn-tab-bar {
|
||||
line-height: 29px !important;
|
||||
height: 27px !important;
|
||||
align-items: center;
|
||||
svg {
|
||||
height: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.inset {
|
||||
width: 70 !important;
|
||||
}
|
||||
}
|
||||
|
||||
terminaltab .content {
|
||||
margin: 5px !important;
|
||||
}
|
||||
|
||||
ssh-tab .content {
|
||||
margin: 5px !important;
|
||||
}
|
||||
|
||||
serial-tab .content {
|
||||
margin: 5px !important;
|
||||
}
|
||||
}
|
407
tabby-core/src/theme.paper.scss
Normal file
407
tabby-core/src/theme.paper.scss
Normal file
@@ -0,0 +1,407 @@
|
||||
$black: #002b36;
|
||||
$base02: #073642;
|
||||
$base01: #586e75;
|
||||
$base00: #657b83;
|
||||
$base0: #839496;
|
||||
$base1: #93a1a1;
|
||||
$base2: #eee8d5;
|
||||
$white: #fdf6e3;
|
||||
$yellow: #b58900;
|
||||
$orange: #cb4b16;
|
||||
$red: #dc322f;
|
||||
$pink: #d33682;
|
||||
$purple: #6c71c4;
|
||||
$blue: #268bd2;
|
||||
$teal: #2aa198;
|
||||
$green: #859900;
|
||||
|
||||
$tab-border-radius: 5px;
|
||||
$button-hover-bg: rgba(0, 0, 0, .125);
|
||||
$button-active-bg: rgba(0, 0, 0, .25);
|
||||
|
||||
|
||||
$primary: #fd7e14;
|
||||
$secondary: #495057;
|
||||
|
||||
$content-bg: rgba($white, 0.65);
|
||||
$content-bg-solid: $white;
|
||||
$body-bg: $base2;
|
||||
$body-bg2: $base1;
|
||||
|
||||
$body-color: $black;
|
||||
$font-family-sans-serif: "Source Sans Pro";
|
||||
$font-size-base: 14rem / 16;
|
||||
|
||||
$btn-border-radius: 0;
|
||||
|
||||
$nav-tabs-border-width: 0;
|
||||
$nav-tabs-border-radius: 0;
|
||||
$nav-tabs-link-hover-border-color: $body-bg;
|
||||
$nav-tabs-active-link-hover-color: $white;
|
||||
$nav-tabs-active-link-hover-bg: $blue;
|
||||
$nav-tabs-active-link-hover-border-color: darken($blue, 30%);
|
||||
$nav-pills-border-radius: 0;
|
||||
|
||||
$input-bg: $base2;
|
||||
$input-disabled-bg: $base1;
|
||||
|
||||
$input-color: $body-color;
|
||||
$input-color-placeholder: $base1;
|
||||
$input-border-color: $base1;
|
||||
//$input-box-shadow: inset 0 1px 1px rgba($black,.075);
|
||||
$input-border-radius: 0;
|
||||
$custom-select-border-radius: 0;
|
||||
$input-bg-focus: $input-bg;
|
||||
//$input-border-focus: lighten($brand-primary, 25%);
|
||||
//$input-box-shadow-focus: $input-box-shadow, rgba($input-border-focus, .6);
|
||||
$input-color-focus: $input-color;
|
||||
$input-group-addon-bg: $body-bg;
|
||||
$input-group-addon-border-color: $input-border-color;
|
||||
|
||||
$modal-content-bg: $content-bg-solid;
|
||||
$modal-content-border-color: $body-bg;
|
||||
$modal-header-border-color: transparent;
|
||||
$modal-footer-border-color: transparent;
|
||||
|
||||
$popover-bg: $body-bg;
|
||||
|
||||
$dropdown-bg: $body-bg;
|
||||
$dropdown-link-color: $body-color;
|
||||
$dropdown-link-hover-color: #333;
|
||||
$dropdown-link-hover-bg: $body-bg2;
|
||||
//$dropdown-link-active-color: $component-active-color;
|
||||
//$dropdown-link-active-bg: $component-active-bg;
|
||||
$dropdown-link-disabled-color: #333;
|
||||
$dropdown-header-color: #333;
|
||||
|
||||
$list-group-color: $body-color;
|
||||
$list-group-bg: rgba($black,.05);
|
||||
$list-group-border-color: rgba($black,.1);
|
||||
$list-group-hover-bg: rgba($black,.1);
|
||||
$list-group-link-active-bg: rgba($black,.2);
|
||||
|
||||
$list-group-action-color: $body-color;
|
||||
$list-group-action-bg: rgba($black,.05);
|
||||
$list-group-action-active-bg: $list-group-link-active-bg;
|
||||
|
||||
$list-group-border-radius: 0;
|
||||
|
||||
$pre-bg: $dropdown-bg;
|
||||
$pre-color: $dropdown-link-color;
|
||||
|
||||
$headings-font-weight: lighter;
|
||||
$headings-color: $base0;
|
||||
|
||||
@import '~bootstrap/scss/bootstrap.scss';
|
||||
|
||||
|
||||
window-controls {
|
||||
svg {
|
||||
transition: 0.25s fill;
|
||||
fill: $base01;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background: rgba($black, 0.125);
|
||||
|
||||
svg {
|
||||
fill: $black;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-close:hover {
|
||||
background: #8a2828;
|
||||
}
|
||||
}
|
||||
|
||||
$border-color: $base1;
|
||||
|
||||
app-root {
|
||||
background: $body-bg;
|
||||
|
||||
&.vibrant {
|
||||
background: rgba(255, 255, 255,.4) !important;
|
||||
}
|
||||
|
||||
&> .content {
|
||||
.tab-bar {
|
||||
.btn-tab-bar {
|
||||
background: transparent;
|
||||
line-height: 42px;
|
||||
align-items: center;
|
||||
svg, path {
|
||||
fill: $black;
|
||||
fill-opacity: 0.75;
|
||||
}
|
||||
|
||||
&:hover { background: rgba(0, 0, 0, .125) !important; }
|
||||
&:active { background: rgba(0, 0, 0, .25) !important; }
|
||||
}
|
||||
|
||||
&>.tabs {
|
||||
tab-header {
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
color: $base01;
|
||||
transition: 0.125s ease-out width;
|
||||
|
||||
.index {
|
||||
color: rgba($black, 0.4);
|
||||
}
|
||||
|
||||
button {
|
||||
color: $body-color;
|
||||
border: none;
|
||||
transition: 0.25s all;
|
||||
|
||||
&:hover { background: $button-hover-bg !important; }
|
||||
&:active { background: $button-active-bg !important; }
|
||||
}
|
||||
|
||||
.progressbar {
|
||||
background: $blue;
|
||||
}
|
||||
|
||||
.activity-indicator {
|
||||
background:rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: $black;
|
||||
background: $content-bg;
|
||||
border-left: 1px solid $border-color;
|
||||
border-right: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.tabs-on-top .tab-bar {
|
||||
&>.background {
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
|
||||
tab-header {
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
&.active {
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:not(.tabs-on-top) .tab-bar {
|
||||
&>.background {
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
|
||||
tab-header {
|
||||
border-top: 1px solid $border-color;
|
||||
|
||||
&.active {
|
||||
margin-top: -1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.platform-win32, &.platform-linux {
|
||||
border: 1px solid #111;
|
||||
&>.content .tab-bar .tabs tab-header:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tab-body {
|
||||
background: $content-bg;
|
||||
}
|
||||
|
||||
settings-tab > .content {
|
||||
& > .nav {
|
||||
background: rgba(0, 0, 0, 0.25);
|
||||
border-right: 1px solid $body-bg;
|
||||
|
||||
& > .nav-item > .nav-link {
|
||||
border: none;
|
||||
padding: 10px 50px 10px 20px;
|
||||
font-size: 14px;
|
||||
|
||||
&:not(.active) {
|
||||
color: $body-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
multi-hotkey-input {
|
||||
.item {
|
||||
background: $body-bg2;
|
||||
border: 1px solid $blue;
|
||||
border-radius: 3px;
|
||||
margin-right: 5px;
|
||||
|
||||
.body {
|
||||
padding: 3px 0 2px;
|
||||
|
||||
.stroke {
|
||||
padding: 0 6px;
|
||||
border-right: 1px solid $content-bg;
|
||||
}
|
||||
}
|
||||
|
||||
.remove {
|
||||
padding: 3px 8px 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.item:has(.duplicate) {
|
||||
background-color: map-get($theme-colors, 'danger');
|
||||
border: 1px solid map-get($theme-colors, 'danger');
|
||||
}
|
||||
|
||||
.add {
|
||||
color: #777;
|
||||
padding: 4px 10px 0;
|
||||
}
|
||||
|
||||
.add, .item .body, .item .remove {
|
||||
&:hover { background: darken($body-bg2, 5%); }
|
||||
&:active { background: darken($body-bg2, 15%); }
|
||||
}
|
||||
|
||||
.add:has(.duplicate), .item:has(.duplicate) .body, .item:has(.duplicate) .remove {
|
||||
&:hover { background: darken(map-get($theme-colors, 'danger'), 5%); }
|
||||
&:active { background: darken(map-get($theme-colors, 'danger'), 15%); }
|
||||
}
|
||||
}
|
||||
|
||||
hotkey-input-modal {
|
||||
.input {
|
||||
background: $input-bg;
|
||||
padding: 10px;
|
||||
font-size: 24px;
|
||||
line-height: 27px;
|
||||
height: 55px;
|
||||
|
||||
.stroke {
|
||||
background: $body-bg2;
|
||||
border: 1px solid $blue;
|
||||
border-radius: 3px;
|
||||
margin-right: 10px;
|
||||
padding: 3px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.timeout {
|
||||
background: $input-bg;
|
||||
|
||||
div {
|
||||
background: $blue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mb-3 label {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.nav-tabs {
|
||||
.nav-link {
|
||||
transition: 0.25s all;
|
||||
border-bottom-color: $nav-tabs-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-check:checked + label {
|
||||
background: $blue;
|
||||
}
|
||||
|
||||
.btn {
|
||||
i + * {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
&.btn-lg i + * {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.input-group-addon + .form-control {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.input-group > select.form-control {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
transition: 0.25s background;
|
||||
|
||||
&:not(:first-child) {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
i + * {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
select.form-control {
|
||||
-webkit-appearance: none;
|
||||
background-image: url("data:image/svg+xml;utf8,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'><path fill='#444' d='M7.406 7.828l4.594 4.594 4.594-4.594 1.406 1.406-6 6-6-6z'></path></svg>");
|
||||
background-position: 100% 50%;
|
||||
background-repeat: no-repeat;
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
checkbox i.on {
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
toggle {
|
||||
.body {
|
||||
border-color: $base0 !important;
|
||||
|
||||
.toggle {
|
||||
background: $base0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.active .body .toggle {
|
||||
background: map-get($theme-colors, primary) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.list-group-item svg {
|
||||
fill: $black;
|
||||
}
|
||||
|
||||
.tabby-title {
|
||||
color: $base01;
|
||||
}
|
||||
|
||||
.tabby-logo {
|
||||
filter: saturate(0);
|
||||
}
|
||||
|
||||
start-page footer {
|
||||
background: $white !important;
|
||||
}
|
||||
|
||||
terminal-toolbar {
|
||||
background: #ffffff4a !important;
|
||||
border-bottom: 1px solid #00000026 !important;
|
||||
}
|
||||
|
||||
.bg-dark{
|
||||
background-color: $base2 !important;
|
||||
}
|
||||
|
||||
split-tab-spanner {
|
||||
background: rgba(0, 0, 0, .2);
|
||||
|
||||
&:hover, &.active {
|
||||
background: rgba(255, 255, 255, .125);
|
||||
}
|
||||
}
|
428
tabby-core/src/theme.scss
Normal file
428
tabby-core/src/theme.scss
Normal file
@@ -0,0 +1,428 @@
|
||||
@import "./theme.vars";
|
||||
|
||||
// ---------
|
||||
|
||||
|
||||
$button-hover-bg: rgba(0, 0, 0, .25);
|
||||
$button-active-bg: rgba(0, 0, 0, .5);
|
||||
|
||||
@import '~bootstrap/scss/bootstrap.scss';
|
||||
@import "./theme.vendor.scss";
|
||||
|
||||
window-controls {
|
||||
svg {
|
||||
transition: 0.25s fill;
|
||||
fill: #aaa;
|
||||
}
|
||||
|
||||
button:hover svg {
|
||||
fill: white;
|
||||
}
|
||||
|
||||
.btn-close:hover {
|
||||
background: #8a2828;
|
||||
}
|
||||
}
|
||||
|
||||
$border-color: #111;
|
||||
|
||||
app-root {
|
||||
background: $body-bg;
|
||||
|
||||
&.vibrant {
|
||||
background: rgba(0,0,0,.65);
|
||||
}
|
||||
|
||||
&> .content {
|
||||
.tab-bar {
|
||||
.btn-tab-bar {
|
||||
background: transparent;
|
||||
&:hover { background: rgba(0, 0, 0, .25) !important; }
|
||||
&:active, &[aria-expanded-true] { background: rgba(0, 0, 0, .5) !important; }
|
||||
&:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&>.tabs {
|
||||
tab-header {
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
|
||||
transition: 0.125s ease-out width;
|
||||
|
||||
.index {
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
.icon {
|
||||
opacity: .75;
|
||||
}
|
||||
|
||||
button {
|
||||
color: $body-color;
|
||||
border: none;
|
||||
transition: 0.25s all;
|
||||
|
||||
right: 5px;
|
||||
|
||||
&:hover { background: $button-active-bg !important; }
|
||||
&:active { background: $button-active-bg !important; }
|
||||
}
|
||||
|
||||
.progressbar {
|
||||
background: $green;
|
||||
}
|
||||
|
||||
.activity-indicator {
|
||||
background:rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: white;
|
||||
background: $content-bg;
|
||||
border-left: 1px solid $border-color;
|
||||
border-right: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.tabs-on-top .tab-bar {
|
||||
&>.background {
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
|
||||
tab-header {
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
&.active {
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:not(.tabs-on-top) .tab-bar {
|
||||
&>.background {
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
|
||||
tab-header {
|
||||
border-top: 1px solid $border-color;
|
||||
|
||||
&.active {
|
||||
margin-top: -1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.platform-win32, &.platform-linux {
|
||||
border: 1px solid #111;
|
||||
|
||||
&>.content {
|
||||
margin: -1px; // expand the content into the border
|
||||
|
||||
.tab-bar .tabs tab-header:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tab-body {
|
||||
background: $content-bg;
|
||||
|
||||
terminal-toolbar .btn, .toolbar-pin-button {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
multi-hotkey-input {
|
||||
.item {
|
||||
background: $body-bg2;
|
||||
border: 1px solid $blue;
|
||||
border-radius: 3px;
|
||||
margin-right: 5px;
|
||||
|
||||
.body {
|
||||
padding: 3px 0 2px;
|
||||
|
||||
.stroke {
|
||||
padding: 0 6px;
|
||||
border-right: 1px solid $content-bg;
|
||||
}
|
||||
}
|
||||
|
||||
.remove {
|
||||
padding: 3px 8px 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.item:has(.duplicate) {
|
||||
background-color: map-get($theme-colors, 'danger');
|
||||
border: 1px solid map-get($theme-colors, 'danger');
|
||||
}
|
||||
|
||||
.add {
|
||||
color: #777;
|
||||
padding: 4px 10px 0;
|
||||
}
|
||||
|
||||
.add, .item .body, .item .remove {
|
||||
&:hover { background: darken($body-bg2, 5%); }
|
||||
&:active { background: darken($body-bg2, 15%); }
|
||||
}
|
||||
|
||||
.add:has(.duplicate), .item:has(.duplicate) .body, .item:has(.duplicate) .remove {
|
||||
&:hover { background: darken(map-get($theme-colors, 'danger'), 5%); }
|
||||
&:active { background: darken(map-get($theme-colors, 'danger'), 15%); }
|
||||
}
|
||||
}
|
||||
|
||||
hotkey-input-modal {
|
||||
.input {
|
||||
background: $input-bg;
|
||||
padding: 10px;
|
||||
font-size: 24px;
|
||||
line-height: 27px;
|
||||
height: 55px;
|
||||
|
||||
.stroke {
|
||||
background: $body-bg2;
|
||||
border: 1px solid $blue;
|
||||
border-radius: 3px;
|
||||
margin-right: 10px;
|
||||
padding: 3px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.timeout {
|
||||
background: $input-bg;
|
||||
|
||||
div {
|
||||
background: $blue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mb-3 label {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.btn-check:checked + label {
|
||||
background: $blue;
|
||||
}
|
||||
|
||||
.btn {
|
||||
i + * {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
&.btn-lg i + * {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.input-group-addon + .form-control {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.input-group > select.form-control {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
// transition: 0.0625s background ease;
|
||||
|
||||
i + * {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.list-group.list-group-flush .list-group-item {
|
||||
background: transparent;
|
||||
border: none;
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.list-group-item-action {
|
||||
&:hover, &.active {
|
||||
background: $list-group-hover-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-group-light {
|
||||
.list-group-item {
|
||||
border: none !important;
|
||||
outline: none !important;
|
||||
background: transparent;
|
||||
border-radius: $border-radius;
|
||||
margin: 0 !important;
|
||||
|
||||
&.list-group-item-action {
|
||||
&:hover, &.active {
|
||||
background: $component-active-bg;
|
||||
color: $component-active-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
checkbox i.on {
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
.modal .modal-footer {
|
||||
background: rgba(0, 0, 0, .25);
|
||||
|
||||
.btn {
|
||||
font-weight: bold;
|
||||
padding: 0.375rem 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.list-group-item svg {
|
||||
fill: white;
|
||||
fill-opacity: 0.75;
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar {
|
||||
background: rgba(0, 0, 0, .125);
|
||||
width: 10px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-thumb {
|
||||
background: rgba(255, 255, 255, .25);
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-corner,
|
||||
*::-webkit-resizer {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
search-panel {
|
||||
background: #131d27 !important;
|
||||
|
||||
input {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
justify-content: flex-start;
|
||||
overflow: hidden;
|
||||
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-warning:not(:disabled):not(.disabled) {
|
||||
&.active, &:active {
|
||||
color: $gray-900;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-secondary:not(:disabled):not(.disabled) {
|
||||
&.active, &:active {
|
||||
background: #191e23;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-link {
|
||||
text-decoration: none;
|
||||
|
||||
&:hover, &[aria-expanded=true], &:active, &.active {
|
||||
color: $link-hover-color;
|
||||
border-radius: $btn-border-radius;
|
||||
}
|
||||
|
||||
&[aria-expanded=true], &:active, &.active {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
.btn-group .btn.active {
|
||||
border-color: transparent !important;
|
||||
}
|
||||
|
||||
.nav-tabs {
|
||||
margin-bottom: 10px;
|
||||
|
||||
&.nav-justified .nav-link {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
border: none;
|
||||
border-bottom: $nav-tabs-border-width solid transparent;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
padding: 5px 0;
|
||||
margin-right: 20px;
|
||||
|
||||
uib-tab-heading > i {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
// @include hover-focus {
|
||||
// color: $nav-tabs-link-active-color;
|
||||
// }
|
||||
|
||||
&.disabled {
|
||||
color: $nav-link-disabled-color;
|
||||
border-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-item:last-child .nav-link {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.nav-link.active,
|
||||
.nav-item.show .nav-link {
|
||||
color: $nav-tabs-link-active-color;
|
||||
border-color: $nav-tabs-link-active-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: $list-group-border-color;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
box-shadow: $dropdown-box-shadow;
|
||||
}
|
||||
|
||||
ngx-colors-panel .opened {
|
||||
background: $body-bg !important;
|
||||
|
||||
button {
|
||||
color: $body-color !important;
|
||||
}
|
||||
|
||||
.button svg {
|
||||
fill: white;
|
||||
}
|
||||
}
|
||||
|
||||
split-tab-spanner {
|
||||
background: rgba(0, 0, 0, .2);
|
||||
|
||||
&:hover, &.active {
|
||||
background: rgba(255, 255, 255, .125);
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user