Compare commits

..

6 Commits

Author SHA1 Message Date
allcontributors[bot]
6f82db4b7e update README.de-DE.md [skip ci] 2025-02-19 09:28:18 +00:00
allcontributors[bot]
a2acaafde6 update README.it-IT.md [skip ci] 2025-02-19 09:28:17 +00:00
allcontributors[bot]
b1da7f73f3 update README.ko-KR.md [skip ci] 2025-02-19 09:28:17 +00:00
allcontributors[bot]
17e0b985fe update README.ru-RU.md [skip ci] 2025-02-19 09:28:15 +00:00
allcontributors[bot]
bdc853607a update README.zh-CN.md [skip ci] 2025-02-19 09:28:14 +00:00
allcontributors[bot]
03d3555db7 update README.md [skip ci] 2025-02-19 09:28:13 +00:00
12 changed files with 19 additions and 32 deletions

View File

@@ -258,7 +258,7 @@ jobs:
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'
debvers: 'ubuntu/bionic ubuntu/focal ubuntu/hirsute ubuntu/impish ubuntu/jammy ubuntu/kinetic ubuntu/noble ubuntu/oracular debian/jessie debian/stretch debian/buster'
- uses: actions/upload-artifact@master
name: Upload AppImage (${{matrix.arch}})

View File

@@ -347,6 +347,7 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
</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>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OpaqueGlass"><img src="https://avatars.githubusercontent.com/u/52985952?v=4?s=100" width="100px;" alt="OpaqueGlass"/><br /><sub><b>OpaqueGlass</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=OpaqueGlass" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -342,6 +342,7 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
</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>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OpaqueGlass"><img src="https://avatars.githubusercontent.com/u/52985952?v=4?s=100" width="100px;" alt="OpaqueGlass"/><br /><sub><b>OpaqueGlass</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=OpaqueGlass" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -341,6 +341,7 @@ Pull requests and plugins are welcome!
</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>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OpaqueGlass"><img src="https://avatars.githubusercontent.com/u/52985952?v=4?s=100" width="100px;" alt="OpaqueGlass"/><br /><sub><b>OpaqueGlass</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=OpaqueGlass" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -365,6 +365,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
</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>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OpaqueGlass"><img src="https://avatars.githubusercontent.com/u/52985952?v=4?s=100" width="100px;" alt="OpaqueGlass"/><br /><sub><b>OpaqueGlass</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=OpaqueGlass" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -31,7 +31,7 @@
* Встроенный SSH- и Telnet-клиент и менеджер подключений;
* Встроенный последовательный терминал;
* Темы и цветовые схемы;
* Полностью настраиваемые сочетания клавиш;
* Полностью настраеваемые сочетания клавиш;
* Панели;
* Запоминание вкладок;
* Поддержка PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder и CMD;
@@ -342,6 +342,7 @@ Pull-запросы и плагины приветствуются!
</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>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OpaqueGlass"><img src="https://avatars.githubusercontent.com/u/52985952?v=4?s=100" width="100px;" alt="OpaqueGlass"/><br /><sub><b>OpaqueGlass</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=OpaqueGlass" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -341,6 +341,7 @@
</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>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OpaqueGlass"><img src="https://avatars.githubusercontent.com/u/52985952?v=4?s=100" width="100px;" alt="OpaqueGlass"/><br /><sub><b>OpaqueGlass</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=OpaqueGlass" title="Code">💻</a></td>
</tr>
</tbody>
</table>

View File

@@ -30,7 +30,7 @@
"native-process-working-directory": "^1.0.2",
"npm": "6",
"rxjs": "^7.5.7",
"russh": "0.1.22",
"russh": "0.1.19",
"source-map-support": "^0.5.20",
"v8-compile-cache": "^2.3.0",
"yargs": "^17.7.2"

View File

@@ -3628,10 +3628,10 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
russh@0.1.22:
version "0.1.22"
resolved "https://registry.yarnpkg.com/russh/-/russh-0.1.22.tgz#f56e515b1938fa3c1ee7321b2559c17bb7f7f5cc"
integrity sha512-ors+8pqxb9cyyy0tkAgEkrEWoN18kJuw0GtcZsheTQBdqEw/BSulmkKqNva6jjvoOc3wP1GIjbkQ5OdRGqQwmg==
russh@0.1.19:
version "0.1.19"
resolved "https://registry.yarnpkg.com/russh/-/russh-0.1.19.tgz#b1e9edeef5bb8502ff083638bf93512dc084c39e"
integrity sha512-gfLiz+OyGDcFhm5NE0Y6V1byPSgFNLr+71PFlMMz48oZPXl+WQavdCcyfdy9T/1afip9Vw5lkb6SxZ6/RVj2Lw==
dependencies:
"@napi-rs/cli" "^2.18.3"

View File

@@ -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> {

View File

@@ -162,11 +162,9 @@ export class SSHSession {
this.allAuthMethods = [{ type: 'none' }]
if (!this.profile.options.auth || this.profile.options.auth === 'publicKey') {
if (this.profile.options.privateKeys?.length) {
for (let pk of this.profile.options.privateKeys) {
for (const pk of this.profile.options.privateKeys) {
// eslint-disable-next-line @typescript-eslint/init-declarations
let contents: Buffer
pk = pk.replace('%h', this.profile.options.host)
pk = pk.replace('%r', this.profile.options.user)
try {
contents = await this.fileProviders.retrieveFile(pk)
} catch (error) {

View File

@@ -3,7 +3,7 @@ import { Subject, Observable } from 'rxjs'
import { SessionMiddleware } from '../api/middleware'
const OSCPrefix = Buffer.from('\x1b]')
const OSCSuffixes = [Buffer.from('\x07'), Buffer.from('\x1b\\')]
const OSCSuffix = Buffer.from('\x07')
export class OSCProcessor extends SessionMiddleware {
get cwdReported$ (): Observable<string> { return this.cwdReported }
@@ -14,22 +14,11 @@ export class OSCProcessor extends SessionMiddleware {
feedFromSession (data: Buffer): void {
let startIndex = 0
while (data.includes(OSCPrefix, startIndex)) {
const si = startIndex
if (!OSCSuffixes.some(s => data.includes(s, si))) {
break
}
while (data.includes(OSCPrefix, startIndex) && data.includes(OSCSuffix, startIndex)) {
const params = data.subarray(data.indexOf(OSCPrefix, startIndex) + OSCPrefix.length)
const oscString = params.subarray(0, params.indexOf(OSCSuffix)).toString()
const [closesSuffix, closestSuffixIndex] = OSCSuffixes
.map((suffix): [Buffer, number] => [suffix, params.indexOf(suffix)])
.filter(([_, index]) => index !== -1)
.sort(([_, a], [__, b]) => a - b)[0]
const oscString = params.subarray(0, closestSuffixIndex).toString()
startIndex = data.indexOf(closesSuffix, startIndex) + closesSuffix.length
startIndex = data.indexOf(OSCSuffix, startIndex) + OSCSuffix.length
const [oscCodeString, ...oscParams] = oscString.split(';')
const oscCode = parseInt(oscCodeString)