diff --git a/.all-contributorsrc b/.all-contributorsrc
index 97c51061..e6040402 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -1301,6 +1301,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "GeminiLn",
+ "name": "Yu Qin",
+ "avatar_url": "https://avatars.githubusercontent.com/u/12425057?v=4",
+ "profile": "https://github.com/GeminiLn",
+ "contributions": [
+ "code"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 542bbf7a..efeb7e7b 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -13,11 +13,11 @@ jobs:
- name: Installing Node
uses: actions/setup-node@v3.7.0
with:
- node-version: 16
+ node-version: 18
- name: Install deps
run: |
- npm i -g yarn@1.19.1
+ npm i -g yarn
cd app
yarn
cd ..
@@ -55,16 +55,17 @@ jobs:
- name: Installing Node
uses: actions/setup-node@v3.7.0
with:
- node-version: 16
+ node-version: 18
- run: rustup target add ${{matrix.rust_triple}}
- name: Install deps
run: |
sudo -H pip3 install setuptools
- npm config set python python3
- sudo npm i -g yarn@1.22.1
+ sudo npm i -g yarn
yarn --network-timeout 1000000
+ env:
+ ARCH: ${{matrix.arch}}
- name: Fix cross build
run: |
@@ -77,6 +78,8 @@ jobs:
- name: Prepackage plugins
run: scripts/prepackage-plugins.mjs
+ env:
+ ARCH: ${{matrix.arch}}
- run: sed -i '' 's/updateInfo = await/\/\/updateInfo = await/g' node_modules/app-builder-lib/out/targets/ArchiveTarget.js
@@ -173,57 +176,49 @@ jobs:
- run: rustup target add ${{matrix.rust_triple}}
- - name: Install deps (amd64)
+ - name: Install dependencies
run: |
sudo apt-get update
- sudo apt-get install libarchive-tools zsh python3-distutils
+ sudo apt-get install libarchive-tools zsh crossbuild-essential-${{matrix.arch}}
+
+ - name: Setup tar to run as root
+ run: sudo chmod u+s "$(command -v tar)"
+ if: matrix.build-arch != 'x64'
+
+ - name: Download cached sysroot
+ uses: actions/cache@v3
+ id: dl-cached-sysroot
+ if: matrix.build-arch !='x64'
+ with:
+ key: sysroot-${{matrix.build-arch}}
+ path: /${{matrix.build-arch}}-sysroot
+
+ - name: Setup crossbuild sysroot
+ 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 != 'x64' && steps.dl-cached-sysroot.outputs.cache-hit != 'true'
+
+ - name: Setup env to use ${{matrix.build-arch}} sysroot
+ 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
+
+ [[ ${npm_config_arch} == 'arm' ]] && echo "npm_config_arch=armv7l" >> $GITHUB_ENV
+
+ 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 != 'x64'
- name: Install npm_modules (amd64)
run: |
- npm i -g yarn
- yarn --network-timeout 1000000
- if: matrix.build-arch == 'x64'
-
- - name: Setup Crossbuild (${{matrix.arch}})
- run: |
- sudo apt-get update -y && sudo apt-get install schroot sbuild debootstrap -y
- sudo debootstrap --include=git,curl,gnupg,ca-certificates,crossbuild-essential-${{matrix.arch}},python-dev,python3-dev,libarchive-tools,cmake --variant=buildd --exclude=snapd --components=main,restricted,universe,multiverse --extractor=dpkg-deb bionic /build-chroot/
- echo 'deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse' | sudo tee /build-chroot/etc/apt/sources.list >/dev/null
- echo 'deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse' | sudo tee -a /build-chroot/etc/apt/sources.list >/dev/null
- curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee /build-chroot/etc/apt/trusted.gpg.d/nodesource.gpg >/dev/null
- echo 'deb http://deb.nodesource.com/node_16.x bionic main' | sudo tee /build-chroot/etc/apt/sources.list.d/nodesource.list >/dev/null
- echo "[build-chroot]
- description=Ubuntu 18.04 Build chroot
- type=directory
- directory=/build-chroot
- root-groups=root,sudo
- profile=buildd
- personality=linux
- union-type=overlay" | sudo tee /etc/schroot/chroot.d/build-chroot.pref >/dev/null
- echo "/home /home none rw,bind 0 0" | sudo tee -a /etc/schroot/buildd/fstab >/dev/null
-
- if: matrix.build-arch != 'x64'
-
- - name: Install node_modules & CrossBuild native modules for ${{matrix.arch}}
- run: |
- sudo schroot -c build-chroot -u root -- bash -ex -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 RUSTUP_HOME=/rustup
- export CARGO_HOME=/cargo
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- source "/cargo/env"
- rustup target add ${{matrix.rust_triple}}
- export ARCH=${{matrix.build-arch}} npm_config_arch=${{matrix.build-arch}} npm_config_target_arch=${{matrix.build-arch}} RUST_TARGET_TRIPLE=${{matrix.rust_triple}}
- npm i -g yarn
- yarn --network-timeout 1000000 --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}"
- if: matrix.build-arch != 'x64'
+ npm i -g yarn node-gyp
+ yarn --network-timeout 1000000 --arch=${{matrix.build-arch}} --target-arch=${{matrix.build-arch}}
- name: Webpack (${{matrix.arch}})
run: yarn run build --arch=${{matrix.build-arch}} --target_arch=${{matrix.build-arch}}
@@ -239,7 +234,7 @@ jobs:
USE_HARD_LINKS: false
# DEBUG: electron-builder,electron-builder:*
- - name: Build web resources
+ - name: Build web resources (amd64 only)
run: zsh -c 'tar czf tabby-web.tar.gz (tabby-*|web)/dist'
if: matrix.build-arch == 'x64'
@@ -324,7 +319,7 @@ jobs:
- name: Installing Node
uses: actions/setup-node@v3.7.0
with:
- node-version: 16
+ node-version: 18
- run: npm i -g npx
- run: rustup target add ${{matrix.rust_triple}}
@@ -337,10 +332,12 @@ jobs:
- name: Build
shell: powershell
run: |
- npm i -g yarn@1.19.1
+ npm i -g yar node-gyp
yarn --network-timeout 1000000
yarn run build
node scripts/prepackage-plugins.mjs
+ env:
+ ARCH: ${{matrix.arch}}
- name: Build and sign packages
run: node scripts/build-windows.mjs
@@ -355,7 +352,9 @@ jobs:
- name: Build packages without signing
run: node scripts/build-windows.mjs
- if: "!(github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
+ if: "! (github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
+ env:
+ ARCH: ${{matrix.arch}}
- name: Upload symbols
run: |
diff --git a/README.de-DE.md b/README.de-DE.md
index e07fd082..13175c0b 100644
--- a/README.de-DE.md
+++ b/README.de-DE.md
@@ -339,6 +339,7 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.es-ES.md b/README.es-ES.md
index 6b7ceb13..20202a6c 100644
--- a/README.es-ES.md
+++ b/README.es-ES.md
@@ -341,6 +341,7 @@ Gracias a estas maravillosas personas ([emoji key](https://allcontributors.org/d
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.id-ID.md b/README.id-ID.md
index 33f1b274..973e7c74 100644
--- a/README.id-ID.md
+++ b/README.id-ID.md
@@ -338,6 +338,7 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.it-IT.md b/README.it-IT.md
index 38c22aa2..679a5e3c 100644
--- a/README.it-IT.md
+++ b/README.it-IT.md
@@ -334,6 +334,7 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.ja-JP.md b/README.ja-JP.md
index 9bf11428..270ba75e 100644
--- a/README.ja-JP.md
+++ b/README.ja-JP.md
@@ -349,6 +349,7 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.ko-KR.md b/README.ko-KR.md
index 74379bde..e3c8170a 100644
--- a/README.ko-KR.md
+++ b/README.ko-KR.md
@@ -333,6 +333,7 @@ Pull requests and plugins are welcome!
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.md b/README.md
index 848c4e29..119cba65 100644
--- a/README.md
+++ b/README.md
@@ -355,6 +355,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.pt-BR.md b/README.pt-BR.md
index 6811f251..f7b14f83 100644
--- a/README.pt-BR.md
+++ b/README.pt-BR.md
@@ -342,6 +342,7 @@ Obrigado vai para essas pessoas maravilhosas ([emoji key](https://allcontributor
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.ru-RU.md b/README.ru-RU.md
index 02f7ee42..d5c1c803 100644
--- a/README.ru-RU.md
+++ b/README.ru-RU.md
@@ -334,6 +334,7 @@ Pull-запросы и плагины приветствуются!
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 55789378..f772043c 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -333,6 +333,7 @@
 Mxmilu 💻 |
 Charles Buffington 💻 |
+  Yu Qin 💻 |
diff --git a/app/lib/index.ts b/app/lib/index.ts
index cc55f413..5326393c 100644
--- a/app/lib/index.ts
+++ b/app/lib/index.ts
@@ -31,6 +31,8 @@ try {
app.exit(1)
}
+process.mainModule = module
+
const application = new Application(configStore)
ipcMain.on('app:new-window', () => {
diff --git a/app/lib/window.ts b/app/lib/window.ts
index 63ce9fef..d1887fae 100644
--- a/app/lib/window.ts
+++ b/app/lib/window.ts
@@ -1,5 +1,5 @@
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 } from 'electron'
import ElectronConfig = require('electron-config')
@@ -159,6 +159,7 @@ export class Window {
}
this.setupWindowManagement()
+ this.setupUpdater()
this.ready = new Promise(resolve => {
const listener = event => {
@@ -346,11 +347,8 @@ export class Window {
this.send('host:window-focused')
})
- ipcMain.on('ready', event => {
- if (!this.window || event.sender !== this.window.webContents) {
- return
- }
- this.window.webContents.send('start', {
+ this.on('ready', () => {
+ this.window?.webContents.send('start', {
config: this.configStore,
executable: app.getPath('exe'),
windowID: this.window.id,
@@ -359,42 +357,26 @@ export class Window {
})
})
- ipcMain.on('window-minimize', event => {
- if (!this.window || event.sender !== this.window.webContents) {
- return
- }
- this.window.minimize()
+ this.on('window-minimize', () => {
+ this.window?.minimize()
})
- ipcMain.on('window-set-bounds', (event, bounds) => {
- if (!this.window || event.sender !== this.window.webContents) {
- return
- }
- this.window.setBounds(bounds)
+ this.on('window-set-bounds', (_, bounds) => {
+ this.window?.setBounds(bounds)
})
- 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-always-on-top', (_, flag) => {
+ this.window?.setAlwaysOnTop(flag)
})
- ipcMain.on('window-set-vibrancy', (event, enabled, type) => {
- if (!this.window || event.sender !== this.window.webContents) {
- return
- }
+ this.on('window-set-vibrancy', (_, enabled, type) => {
this.setVibrancy(enabled, type)
})
- 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,
@@ -403,32 +385,23 @@ export class Window {
}
})
- ipcMain.on('window-set-title', (event, title) => {
- if (!this.window || event.sender !== this.window.webContents) {
- return
- }
- this.window.setTitle(title)
+ this.on('window-set-title', (_, title) => {
+ this.window?.setTitle(title)
})
- ipcMain.on('window-bring-to-front', event => {
- if (!this.window || event.sender !== this.window.webContents) {
- return
- }
- if (this.window.isMinimized()) {
+ this.on('window-bring-to-front', () => {
+ if (this.window?.isMinimized()) {
this.window.restore()
}
this.present()
})
- ipcMain.on('window-close', event => {
- if (!this.window || event.sender !== this.window.webContents) {
- return
- }
+ this.on('window-close', () => {
this.closing = true
this.window.close()
})
- ipcMain.on('window-set-touch-bar', (_event, segments, selectedIndex) => {
+ this.on('window-set-touch-bar', (_, segments, selectedIndex) => {
this.touchBarControl.segments = segments.map(s => ({
label: s.label,
icon: s.hasActivity ? activityIcon : undefined,
@@ -468,8 +441,46 @@ export class Window {
this.window.setOpacity(opacity)
})
- ipcMain.on('window-set-progress-bar', (_event, value) => {
- this.window.setProgressBar(value, { mode: value < 0 ? 'none' : 'normal' })
+ 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()
})
}
diff --git a/app/package.json b/app/package.json
index 4afd4279..4ee6651e 100644
--- a/app/package.json
+++ b/app/package.json
@@ -15,7 +15,7 @@
"watch": "webpack --progress --color --watch"
},
"dependencies": {
- "@electron/remote": "2.0.10",
+ "@electron/remote": "^2",
"node-pty": "^1.1.0-beta.14",
"any-promise": "^1.3.0",
"electron-config": "2.0.0",
@@ -64,8 +64,7 @@
"tabby-terminal": "*"
},
"resolutions": {
- "*/node-abi": "^2.20.0",
- "node-gyp": "^10.0.0",
- "nan": "github:jkleinsc/nan#remove_accessor_signature"
+ "*/node-abi": "^3",
+ "node-gyp": "^10.0.0"
}
}
diff --git a/app/patches/@serialport+bindings-cpp+11.0.1.patch b/app/patches/@serialport+bindings-cpp+11.0.3.patch
similarity index 100%
rename from app/patches/@serialport+bindings-cpp+11.0.1.patch
rename to app/patches/@serialport+bindings-cpp+11.0.3.patch
diff --git a/app/webpack.config.main.mjs b/app/webpack.config.main.mjs
index 920f0b11..ab8599de 100644
--- a/app/webpack.config.main.mjs
+++ b/app/webpack.config.main.mjs
@@ -42,6 +42,7 @@ 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',
diff --git a/app/yarn.lock b/app/yarn.lock
index 8ea336dd..5b9b7513 100644
--- a/app/yarn.lock
+++ b/app/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@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==
+"@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==
"@iarna/cli@^1.2.0":
version "1.2.0"
@@ -2582,9 +2582,10 @@ mz@^2.7.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
-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"
+nan@^2.17.0:
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3"
+ integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==
napi-build-utils@^1.0.1:
version "1.0.2"
@@ -2615,12 +2616,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@^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==
+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==
dependencies:
- semver "^5.4.1"
+ semver "^7.3.5"
node-abi@^3.3.0:
version "3.8.0"
diff --git a/locale/af-ZA.po b/locale/af-ZA.po
index ea3ceb64..fe1ad36b 100644
--- a/locale/af-ZA.po
+++ b/locale/af-ZA.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Afrikaans\n"
"Language: af_ZA\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/bg-BG.po b/locale/bg-BG.po
index f14a3068..ad716e7c 100644
--- a/locale/bg-BG.po
+++ b/locale/bg-BG.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Bulgarian\n"
"Language: bg_BG\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/cs-CZ.po b/locale/cs-CZ.po
index 3d48a056..b64f641c 100644
--- a/locale/cs-CZ.po
+++ b/locale/cs-CZ.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\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 "Seriální: {description}"
+msgstr "Sériový: {description}"
#: locale/tmp-html/tabby-settings/src/components/setVaultPassphraseModal.component.html:2
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:5
diff --git a/locale/da-DK.po b/locale/da-DK.po
index 22107fe2..4167f328 100644
--- a/locale/da-DK.po
+++ b/locale/da-DK.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Danish\n"
"Language: da_DK\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\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 ""
+msgstr "Altid mørk"
#: 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 "Altid lys"
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
#: tabby-terminal/src/settings.ts:14
@@ -272,7 +272,7 @@ msgstr "Ciphers"
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
msgid "Clear"
-msgstr ""
+msgstr "Ryd"
#: 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 ""
+msgstr "Luk vinduet efter lukningen af den sidste fane"
#: 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 ""
+msgstr "Farveskemaer"
#: 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 "Farver"
#: tabby-core/src/hotkeys.ts:72
msgid "Combine all tabs into the current tab"
-msgstr ""
+msgstr "Kombinér alle faner til den aktuelle fane"
#: 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 ""
+msgstr "Kommandoer"
#: tabby-core/src/theme.ts:16
msgid "Compact (legacy)"
-msgstr ""
+msgstr "Kompakt (ældre)"
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
msgid "Config deleted"
-msgstr ""
+msgstr "Konfig slettet"
#: 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 ""
+msgstr "Styrer mængden af mellemrum mellem elementer"
#: 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 ""
+msgstr "Kopiér hele stien"
#: 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 ""
+msgstr "Kopiér med formatering"
#: 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 ""
+msgstr "Opret"
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:7
#: tabby-ssh/src/sftpContextMenu.ts:29
msgid "Create directory"
-msgstr ""
+msgstr "Opret mappe"
#: 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 ""
+msgstr "Tilpasset"
#: 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 ""
+msgstr "Mørk tilstand"
#: 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 ""
+msgstr "Reducér den vandrette splitstørrelse"
#: tabby-core/src/hotkeys.ts:248
msgid "Decrease vertical split size"
-msgstr ""
+msgstr "Reducér den lodrette splitstørrelse"
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
msgid "Default \"Connect to\" type"
-msgstr ""
+msgstr "Standard \"Forbind til\"-type"
#: 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 ""
+msgstr "Slet hele linjen"
#: 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 ""
+msgstr "Slet konfigurationen på fjernsiden?"
#: tabby-settings/src/components/profilesSettingsTab.component.ts:226
msgid "Delete the group's profiles?"
diff --git a/locale/de-DE.po b/locale/de-DE.po
index 2c008848..57865e50 100644
--- a/locale/de-DE.po
+++ b/locale/de-DE.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: German\n"
"Language: de_DE\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/en-GB.po b/locale/en-GB.po
index 724d623e..1e0d3afc 100644
--- a/locale/en-GB.po
+++ b/locale/en-GB.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: English, United Kingdom\n"
"Language: en_GB\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
@@ -2036,10 +2036,6 @@ msgstr ""
msgid "Show Serial connections"
msgstr ""
-#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:73
-msgid "Hide Tabby in tray or menu bar."
-msgstr ""
-
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:152
msgid "Show tabs in fullscreen mode"
msgstr ""
@@ -2048,10 +2044,6 @@ msgstr ""
msgid "Show toolbar"
msgstr ""
-#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:73
-msgid "Hide tray"
-msgstr ""
-
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:45
msgid "Show vault contents"
msgstr ""
diff --git a/locale/es-ES.po b/locale/es-ES.po
index a74b1bb4..8babe83e 100644
--- a/locale/es-ES.po
+++ b/locale/es-ES.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/fr-FR.po b/locale/fr-FR.po
index b2a11448..28fcd425 100644
--- a/locale/fr-FR.po
+++ b/locale/fr-FR.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: French\n"
"Language: fr_FR\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/hr-HR.po b/locale/hr-HR.po
index f0eacff1..968e0d85 100644
--- a/locale/hr-HR.po
+++ b/locale/hr-HR.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Croatian\n"
"Language: hr_HR\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/id-ID.po b/locale/id-ID.po
index aafeba7c..0135dbb8 100644
--- a/locale/id-ID.po
+++ b/locale/id-ID.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
@@ -1762,11 +1762,11 @@ msgstr "Ukuran Semula"
#: tabby-serial/src/hotkeys.ts:14
msgid "Restart current serial session"
-msgstr ""
+msgstr "Mulai ulang sesi serial saat ini"
#: tabby-ssh/src/hotkeys.ts:10
msgid "Restart current SSH session"
-msgstr ""
+msgstr "Mulai ulang sesi SSH saat ini"
#: tabby-telnet/src/hotkeys.ts:10
msgid "Restart current Telnet session"
@@ -2401,7 +2401,7 @@ msgstr ""
#: tabby-ssh/src/session/ssh.ts:465
msgid "Using preset password"
-msgstr ""
+msgstr "Gunakan kata sandi yang telah disetel sebelumnya"
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:9
msgid "Vault"
diff --git a/locale/it-IT.po b/locale/it-IT.po
index bb49deb7..d69e27c6 100644
--- a/locale/it-IT.po
+++ b/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: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
@@ -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 la chiave"
+msgstr "Accetta e ricorda 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 traslucido"
+msgstr "Sfondo acrilico"
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:24
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:11
@@ -225,8 +225,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. \n"
-"Fai clic ovunque per annullare."
+msgstr "Modalità broadcast. Fai clic ovunque per disabilitare."
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:50
#: tabby-core/src/services/profiles.service.ts:411
@@ -508,7 +507,7 @@ msgstr "CSS personalizzato"
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
msgid "Dark mode"
-msgstr "Modalità scura"
+msgstr "Tema scuro"
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
msgid "Data bits"
@@ -708,7 +707,7 @@ msgstr "La selezione con doppio clic si fermerà a questi caratteri"
#: tabby-core/src/tabContextMenu.ts:79
msgid "Down"
-msgstr "Giù"
+msgstr "In basso"
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:43
msgid "Download"
@@ -896,7 +895,7 @@ msgstr "Evidenzia il riquadro a destra"
#: tabby-core/src/theme.ts:34
msgid "Follow the color scheme"
-msgstr "Segui lo schema dei colori"
+msgstr "Segui il tema di sistema"
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:5
msgid "Font"
@@ -1209,7 +1208,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 "Sinistra"
+msgstr "A sinistra"
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:40
msgid "Lets the shell handle Meta key instead of OS"
@@ -1802,7 +1801,7 @@ msgstr "Riusa la sessione per più schede"
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:78
#: tabby-core/src/tabContextMenu.ts:78
msgid "Right"
-msgstr "Destra"
+msgstr "A destra"
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:56
msgid "Right click"
@@ -2361,7 +2360,7 @@ msgstr "Sgancia"
#: tabby-core/src/tabContextMenu.ts:81
msgid "Up"
-msgstr "Su"
+msgstr "In alto"
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:14
#: tabby-electron/src/services/updater.service.ts:133
@@ -2429,7 +2428,7 @@ 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 "Per consentire la memorizzazione di dati cifrati deve essere impostata la frase segreta principale della cassaforte"
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:11
msgid "Verify host keys when connecting"
@@ -2465,7 +2464,7 @@ msgstr "Attenzione: la chiave dell'host remoto è improvvisamente cambiata!"
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:67
msgid "We're only tracking your Tabby and OS versions."
-msgstr "Monitoreremo soltanto le versioni di Tabby e del sistema operativo."
+msgstr "Monitoreremo soltanto le versioni di Tabby e del Sistema Operativo."
#: tabby-core/src/components/welcomeTab.component.ts:25
msgid "Welcome"
@@ -2510,7 +2509,7 @@ msgstr "Dimensione finestra fuori dal bordo"
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:52
msgid "Window frame"
-msgstr "Cornice finestra"
+msgstr "Cornice della finestra"
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:165
msgid "Windows"
@@ -2526,7 +2525,7 @@ msgstr "Percorso WinSCP"
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:74
msgid "Word separators"
-msgstr "Separatori parole"
+msgstr "Separatori di parole"
#: locale/tmp-html/tabby-local/src/components/localProfileSettings.component.html:10
msgid "Working directory"
@@ -2563,11 +2562,11 @@ msgstr "In questo momento potresti essere sotto un attacco man-in-the-middle, o
#: tabby-terminal/src/hotkeys.ts:54
msgid "Zoom in"
-msgstr "Zoom +"
+msgstr "Zoom avanti"
#: tabby-terminal/src/hotkeys.ts:58
msgid "Zoom out"
-msgstr "Zoom -"
+msgstr "Zoom indietro"
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:43
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:5
diff --git a/locale/ja-JP.po b/locale/ja-JP.po
index f07ed778..b721fbb9 100644
--- a/locale/ja-JP.po
+++ b/locale/ja-JP.po
@@ -10,11 +10,11 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\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"
@@ -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}"
@@ -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"
@@ -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
@@ -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 "Tabbyにリモート側の作業ディレクトリを検出させる方法をご紹介します。"
+msgstr "リモート上の作業ディレクトリを自動検出する方法をご紹介します。"
#: 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"
@@ -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}"
@@ -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"
@@ -1960,7 +1960,7 @@ msgstr "最近使用したプロファイルをセレクターに表示しない
#: 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,7 +1990,7 @@ 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"
@@ -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"
diff --git a/locale/ko-KR.po b/locale/ko-KR.po
index 90164d4d..4b2467b5 100644
--- a/locale/ko-KR.po
+++ b/locale/ko-KR.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/pl-PL.po b/locale/pl-PL.po
index 9a8587e3..0db05073 100644
--- a/locale/pl-PL.po
+++ b/locale/pl-PL.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/pt-BR.po b/locale/pt-BR.po
index 2d089820..a81d2f48 100644
--- a/locale/pt-BR.po
+++ b/locale/pt-BR.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/pt-PT.po b/locale/pt-PT.po
index a8540ca8..629ef7bb 100644
--- a/locale/pt-PT.po
+++ b/locale/pt-PT.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\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 ""
+msgstr "acessibilidade"
#: 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 ""
+msgstr "sempre escuro"
#: 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 "Sempre luminoso"
#: 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 ""
+msgstr "Personalizado"
#: 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 ""
+msgstr "Parâmetros do grupo de perfis por defeito"
#: 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 ""
+msgstr "Editar localmente"
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:58
msgid "Enable"
diff --git a/locale/ru-RU.po b/locale/ru-RU.po
index e490cd03..6c836b51 100644
--- a/locale/ru-RU.po
+++ b/locale/ru-RU.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/sr-SP.po b/locale/sr-SP.po
index e5c36177..69b980e4 100644
--- a/locale/sr-SP.po
+++ b/locale/sr-SP.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Serbian (Cyrillic)\n"
"Language: sr_SP\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/sv-SE.po b/locale/sv-SE.po
index e27a020b..5cc640d8 100644
--- a/locale/sv-SE.po
+++ b/locale/sv-SE.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\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 denna gång"
+msgstr "Acceptera bara den här gången"
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
msgid "Accessibility"
diff --git a/locale/tr-TR.po b/locale/tr-TR.po
index a8b26a35..9f3df279 100644
--- a/locale/tr-TR.po
+++ b/locale/tr-TR.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/uk-UA.po b/locale/uk-UA.po
index a040deec..f6ad1e3d 100644
--- a/locale/uk-UA.po
+++ b/locale/uk-UA.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/zh-CN.po b/locale/zh-CN.po
index ebc376b8..55e8afec 100644
--- a/locale/zh-CN.po
+++ b/locale/zh-CN.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/locale/zh-TW.po b/locale/zh-TW.po
index 893fb43f..ae206d35 100644
--- a/locale/zh-TW.po
+++ b/locale/zh-TW.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: tabby\n"
"Language-Team: Chinese Traditional\n"
"Language: zh_TW\n"
-"PO-Revision-Date: 2024-03-11 20:11\n"
+"PO-Revision-Date: 2024-07-10 09:04\n"
#: tabby-local/src/components/terminalTab.component.ts:113
msgid "\"{command}\" is still running. Close?"
diff --git a/package.json b/package.json
index 1cbb181d..ea9a461f 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
"cross-env": "7.0.3",
"css-loader": "^6.7.3",
"deep-equal": "2.0.5",
- "electron": "^27.0.4",
+ "electron": "^29",
"electron-builder": "^24.6.4",
"electron-download": "^4.1.1",
"electron-installer-snap": "^5.1.0",
@@ -55,7 +55,7 @@
"lru-cache": "^6.0.0",
"macos-release": "^3.1.0",
"ngx-toastr": "^16.0.2",
- "node-abi": "^3.51.0",
+ "node-abi": "^3.65.0",
"npmlog": "6.0.2",
"npx": "^10.2.2",
"patch-package": "^6.4.7",
diff --git a/patches/app-builder-lib+24.4.0.patch b/patches/app-builder-lib+24.6.4.patch
similarity index 100%
rename from patches/app-builder-lib+24.4.0.patch
rename to patches/app-builder-lib+24.6.4.patch
diff --git a/scripts/vars.mjs b/scripts/vars.mjs
index 11ade76e..218402f8 100755
--- a/scripts/vars.mjs
+++ b/scripts/vars.mjs
@@ -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))
diff --git a/tabby-core/src/components/splitTab.component.ts b/tabby-core/src/components/splitTab.component.ts
index a2c428e2..1e4f4c29 100644
--- a/tabby-core/src/components/splitTab.component.ts
+++ b/tabby-core/src/components/splitTab.component.ts
@@ -1,4 +1,4 @@
-import { Observable, Subject } from 'rxjs'
+import { Observable, Subject, takeWhile } 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,6 +381,9 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
}
}
}, 100)
+
+ // Propagate visibility to new children
+ this.emitVisibility(this.visibility.value)
}
this.initialized.next()
this.initialized.complete()
@@ -834,20 +837,38 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
})
}
- tab.subscribeUntilDestroyed(tab.titleChange$, () => this.updateTitle())
- tab.subscribeUntilDestroyed(tab.activity$, a => a ? this.displayActivity() : this.clearActivity())
- tab.subscribeUntilDestroyed(tab.progress$, p => this.setProgress(p))
+ 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),
+ )
if (tab.title) {
this.updateTitle()
}
- tab.subscribeUntilDestroyed(tab.recoveryStateChangedHint$, () => {
- this.recoveryStateChangedHint.next()
- })
+ tab.subscribeUntilDestroyed(
+ this.observeUntilChildDetached(tab, tab.recoveryStateChangedHint$),
+ () => {
+ this.recoveryStateChangedHint.next()
+ },
+ )
tab.destroyed$.subscribe(() => {
this.removeTab(tab)
})
}
+ private observeUntilChildDetached (tab: BaseTabComponent, event: Observable): Observable {
+ return event.pipe(takeWhile(() => {
+ return this.getAllTabs().includes(tab)
+ }))
+ }
+
private onAfterTabAdded (tab: BaseTabComponent) {
setImmediate(() => {
this.layout()
diff --git a/tabby-electron/src/services/electron.service.ts b/tabby-electron/src/services/electron.service.ts
index a56e32ca..24e88a61 100644
--- a/tabby-electron/src/services/electron.service.ts
+++ b/tabby-electron/src/services/electron.service.ts
@@ -16,7 +16,6 @@ export class ElectronService {
clipboard: Clipboard
globalShortcut: GlobalShortcut
screen: Screen
- remote = remote
process: any
autoUpdater: AutoUpdater
powerSaveBlocker: PowerSaveBlocker
@@ -44,7 +43,6 @@ export class ElectronService {
this.BrowserWindow = remote.BrowserWindow
this.Menu = remote.Menu
this.MenuItem = remote.MenuItem
- this.MenuItem = remote.MenuItem
this.nativeTheme = remote.nativeTheme
}
}
diff --git a/tabby-electron/src/services/updater.service.ts b/tabby-electron/src/services/updater.service.ts
index ae6132a9..141ca2fc 100644
--- a/tabby-electron/src/services/updater.service.ts
+++ b/tabby-electron/src/services/updater.service.ts
@@ -1,4 +1,3 @@
-import type { AppUpdater } from 'electron-updater'
import { Injectable } from '@angular/core'
import axios from 'axios'
@@ -13,7 +12,6 @@ export class ElectronUpdaterService extends UpdaterService {
private downloaded: Promise
private electronUpdaterAvailable = true
private updateURL: string
- private autoUpdater: AppUpdater
constructor (
log: LogService,
@@ -30,32 +28,28 @@ export class ElectronUpdaterService extends UpdaterService {
return
}
- this.autoUpdater = electron.remote.require('electron-updater').autoUpdater
- this.autoUpdater.autoDownload = true
- this.autoUpdater.autoInstallOnAppQuit = false
-
- this.autoUpdater.on('update-available', () => {
+ this.electron.ipcRenderer.on('updater:update-available', () => {
this.logger.info('Update available')
})
- this.autoUpdater.on('update-not-available', () => {
+ this.electron.ipcRenderer.on('updater:update-not-available', () => {
this.logger.info('No updates')
})
- this.autoUpdater.on('error', err => {
+ this.electron.ipcRenderer.on('updater:error', err => {
this.logger.error(err)
this.electronUpdaterAvailable = false
})
this.downloaded = new Promise(resolve => {
- this.autoUpdater.once('update-downloaded', () => resolve(true))
+ this.electron.ipcRenderer.once('updater:update-downloaded', () => resolve(true))
})
config.ready$.toPromise().then(() => {
if (config.store.enableAutomaticUpdates && this.electronUpdaterAvailable && !process.env.TABBY_DEV) {
this.logger.debug('Checking for updates')
try {
- this.autoUpdater.checkForUpdates()
+ this.electron.ipcRenderer.send('updater:check-for-updates')
} catch (e) {
this.electronUpdaterAvailable = false
this.logger.info('Electron updater unavailable, falling back', e)
@@ -82,26 +76,26 @@ export class ElectronUpdaterService extends UpdaterService {
reject(err)
}
cancel = () => {
- this.autoUpdater.off('error', onError)
- this.autoUpdater.off('update-not-available', onNoUpdate)
- this.autoUpdater.off('update-available', onUpdate)
+ this.electron.ipcRenderer.off('updater:error', onError)
+ this.electron.ipcRenderer.off('updater:update-not-available', onNoUpdate)
+ this.electron.ipcRenderer.off('updater:update-available', onUpdate)
}
- this.autoUpdater.on('error', onError)
- this.autoUpdater.on('update-not-available', onNoUpdate)
- this.autoUpdater.on('update-available', onUpdate)
+ this.electron.ipcRenderer.on('updater:error', onError)
+ this.electron.ipcRenderer.on('updater:update-not-available', onNoUpdate)
+ this.electron.ipcRenderer.on('updater:update-available', onUpdate)
try {
- this.autoUpdater.checkForUpdates()
+ this.electron.ipcRenderer.send('updater:check-for-updates')
} catch (e) {
this.electronUpdaterAvailable = false
this.logger.info('Electron updater unavailable, falling back', e)
}
})
- this.autoUpdater.on('update-available', () => {
+ this.electron.ipcRenderer.on('updater:update-available', () => {
this.logger.info('Update available')
})
- this.autoUpdater.once('update-not-available', () => {
+ this.electron.ipcRenderer.once('updater:update-not-available', () => {
this.logger.info('No updates')
})
@@ -138,7 +132,7 @@ export class ElectronUpdaterService extends UpdaterService {
},
)).response === 0) {
await this.downloaded
- this.autoUpdater.quitAndInstall()
+ this.electron.ipcRenderer.send('updater:quit-and-install')
}
}
}
diff --git a/tabby-linkifier/yarn.lock b/tabby-linkifier/yarn.lock
index 93475bf7..81339e7b 100644
--- a/tabby-linkifier/yarn.lock
+++ b/tabby-linkifier/yarn.lock
@@ -11,8 +11,3 @@ untildify@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
-
-xterm-addon-web-links@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.7.0.tgz#dceac36170605f9db10a01d716bd83ee38f65c17"
- integrity sha512-6PqoqzzPwaeSq22skzbvyboDvSnYk5teUYEoKBwMYvhbkwOQkemZccjWHT5FnNA8o1aInTc4PRYAl4jjPucCKA==
diff --git a/tabby-ssh/src/components/sshTab.component.pug b/tabby-ssh/src/components/sshTab.component.pug
index f4ef807f..f6dd1aac 100644
--- a/tabby-ssh/src/components/sshTab.component.pug
+++ b/tabby-ssh/src/components/sshTab.component.pug
@@ -1,7 +1,10 @@
terminal-toolbar([tab]='this')
i.fas.fa-xs.fa-circle.text-success.me-2(*ngIf='session && session.open')
i.fas.fa-xs.fa-circle.text-danger.me-2(*ngIf='!session || !session.open')
- strong.me-auto {{profile.options.user}}@{{profile.options.host}}:{{profile.options.port}}
+ strong.me-auto(
+ style='user-select: text; cursor: text;'
+ onclick='event.stopPropagation()'
+ ) {{profile.options.user}}@{{profile.options.host}}:{{profile.options.port}}
.me-2(
ngbDropdown,
diff --git a/tabby-ssh/src/polyfills.ts b/tabby-ssh/src/polyfills.ts
index 0893d22e..06235b1f 100644
--- a/tabby-ssh/src/polyfills.ts
+++ b/tabby-ssh/src/polyfills.ts
@@ -1,4 +1,12 @@
+import 'ssh2'
const nodeCrypto = require('crypto')
const browserDH = require('diffie-hellman/browser')
nodeCrypto.createDiffieHellmanGroup = browserDH.createDiffieHellmanGroup
nodeCrypto.createDiffieHellman = browserDH.createDiffieHellman
+
+// Declare function missing from @types
+declare module 'ssh2' {
+ interface Client {
+ setNoDelay: (enable?: boolean) => this
+ }
+}
diff --git a/tabby-ssh/yarn.lock b/tabby-ssh/yarn.lock
index 75d5e470..34474ca1 100644
--- a/tabby-ssh/yarn.lock
+++ b/tabby-ssh/yarn.lock
@@ -9,15 +9,22 @@
dependencies:
ipv6 "*"
-"@types/node@*", "@types/node@20.3.1":
+"@types/node@*":
+ version "22.1.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b"
+ integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==
+ dependencies:
+ undici-types "~6.13.0"
+
+"@types/node@20.3.1":
version "20.3.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
"@types/ssh2-streams@*":
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.8.tgz#142af404dae059931aea7fcd1511b5478964feb6"
- integrity sha512-I7gixRPUvVIyJuCEvnmhr3KvA2dC0639kKswqD4H5b4/FOcnPtNU+qWLiXdKIqqX9twUvi5j0U1mwKE5CUsrfA==
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.12.tgz#e68795ba2bf01c76b93f9c9809e1f42f0eaaec5f"
+ integrity sha512-Sy8tpEmCce4Tq0oSOYdfqaBpA3hDM8SoxoFh5vzFsu2oL+znzGz8oVWW7xb4K920yYMUY+PIG31qZnFMfPWNCg==
dependencies:
"@types/node" "*"
@@ -337,6 +344,11 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+undici-types@~6.13.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5"
+ integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==
+
winston@0.8.x:
version "0.8.3"
resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0"
diff --git a/tabby-terminal/src/frontends/xtermFrontend.ts b/tabby-terminal/src/frontends/xtermFrontend.ts
index be93e9b1..26961e77 100644
--- a/tabby-terminal/src/frontends/xtermFrontend.ts
+++ b/tabby-terminal/src/frontends/xtermFrontend.ts
@@ -399,6 +399,10 @@ export class XTermFrontend extends Frontend {
}
})
+ this.xtermCore.browser.isWindows = this.hostApp.platform === Platform.Windows
+ this.xtermCore.browser.isLinux = this.hostApp.platform === Platform.Linux
+ this.xtermCore.browser.isMac = this.hostApp.platform === Platform.macOS
+
this.xterm.options.fontFamily = getCSSFontFamily(config)
this.xterm.options.cursorStyle = {
beam: 'bar',
diff --git a/yarn.lock b/yarn.lock
index dcdd9f68..44dade65 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -863,10 +863,12 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
-"@types/node@^18.11.18":
- version "18.17.12"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.12.tgz#c6bd7413a13e6ad9cfb7e97dd5c4e904c1821e50"
- integrity sha512-d6xjC9fJ/nSnfDeU0AMDsaJyb1iHsqCSOdi84w4u+SlN/UgQdY5tRhpMzaFYsI4mnpvgTivEaQd0yOUhAtOnEQ==
+"@types/node@^20.9.0":
+ version "20.14.14"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.14.tgz#6b655d4a88623b0edb98300bb9dd2107225f885e"
+ integrity sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==
+ dependencies:
+ undici-types "~5.26.4"
"@types/parse5@^5":
version "5.0.3"
@@ -2505,13 +2507,13 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-cpu-features@~0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.8.tgz#a2d464b023b8ad09004c8cdca23b33f192f63546"
- integrity sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==
+cpu-features@~0.0.9:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.10.tgz#9aae536db2710c7254d7ed67cb3cbc7d29ad79c5"
+ integrity sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==
dependencies:
buildcheck "~0.0.6"
- nan "^2.17.0"
+ nan "^2.19.0"
crc@^3.8.0:
version "3.8.0"
@@ -3071,13 +3073,13 @@ electron-to-chromium@^1.4.284:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz#0e039de59135f44ab9a8ec9025e53a9135eba11f"
integrity sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ==
-electron@^27.0.4:
- version "27.1.0"
- resolved "https://registry.yarnpkg.com/electron/-/electron-27.1.0.tgz#d759885e552d7d926526cfc433ab312796f74a9a"
- integrity sha512-XPdJiO475QJ8cx59/goWNNWnlV0vab+Ut3occymos7VDxkHV5mFrlW6tcGi+M3bW6gBfwpJocWMng8tw542vww==
+electron@^29:
+ version "29.4.5"
+ resolved "https://registry.yarnpkg.com/electron/-/electron-29.4.5.tgz#b83bbeee6fc722dbbaab30d3a6bc8e982c9ab98d"
+ integrity sha512-DlEuzGbWBYl1Qr0qUYgNZdoixJg4YGHy2HC6fkRjSXSlb01UrQ5ORi8hNLzelzyYx8rNQyyE3zDUuk9EnZwYuA==
dependencies:
"@electron/get" "^2.0.0"
- "@types/node" "^18.11.18"
+ "@types/node" "^20.9.0"
extract-zip "^2.0.1"
elliptic@^6.5.3:
@@ -5983,7 +5985,7 @@ mute-stream@~0.0.4:
resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
-nan@2.17.0, nan@^2.17.0:
+nan@2.17.0, nan@^2.18.0, nan@^2.19.0:
version "2.17.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
@@ -6028,10 +6030,10 @@ no-case@^3.0.4:
lower-case "^2.0.2"
tslib "^2.0.3"
-node-abi@^3.0.0, node-abi@^3.51.0:
- version "3.51.0"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.51.0.tgz#970bf595ef5a26a271307f8a4befa02823d4e87d"
- integrity sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==
+node-abi@^3.0.0, node-abi@^3.65.0:
+ version "3.65.0"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3"
+ integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==
dependencies:
semver "^7.3.5"
@@ -8219,15 +8221,15 @@ sprintf-js@~1.0.2:
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
ssh2@^1.14.0:
- version "1.14.0"
- resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.14.0.tgz#8f68440e1b768b66942c9e4e4620b2725b3555bb"
- integrity sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b"
+ integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==
dependencies:
asn1 "^0.2.6"
bcrypt-pbkdf "^1.0.2"
optionalDependencies:
- cpu-features "~0.0.8"
- nan "^2.17.0"
+ cpu-features "~0.0.9"
+ nan "^2.18.0"
sshpk@^1.7.0:
version "1.16.1"
@@ -8926,6 +8928,11 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
unique-filename@^1.1.0, unique-filename@~1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz"