mirror of
https://github.com/Eugeny/tabby.git
synced 2025-09-20 07:06:04 +00:00
Compare commits
11 Commits
all-contri
...
all-contri
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6f032b2d12 | ||
![]() |
711b78d882 | ||
![]() |
5de20848e1 | ||
![]() |
8b96882d27 | ||
![]() |
c340861aa9 | ||
![]() |
cd0869cdc1 | ||
![]() |
f405bd35e6 | ||
![]() |
4a515d9432 | ||
![]() |
b83b2e5acc | ||
![]() |
e407ee8bf1 | ||
![]() |
c7b39bdca7 |
@@ -347,7 +347,7 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
|
|||||||
</tr>
|
</tr>
|
||||||
<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/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/ianaflous"><img src="https://avatars.githubusercontent.com/u/42301579?v=4?s=100" width="100px;" alt="ianaflous"/><br /><sub><b>ianaflous</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ianaflous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannjani"><img src="https://avatars.githubusercontent.com/u/4688839?v=4?s=100" width="100px;" alt="mannjani"/><br /><sub><b>mannjani</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mannjani" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -346,7 +346,7 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
|
|||||||
</tr>
|
</tr>
|
||||||
<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/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/ianaflous"><img src="https://avatars.githubusercontent.com/u/42301579?v=4?s=100" width="100px;" alt="ianaflous"/><br /><sub><b>ianaflous</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ianaflous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannjani"><img src="https://avatars.githubusercontent.com/u/4688839?v=4?s=100" width="100px;" alt="mannjani"/><br /><sub><b>mannjani</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mannjani" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -342,6 +342,7 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
|
|||||||
</tr>
|
</tr>
|
||||||
<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/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/mannjani"><img src="https://avatars.githubusercontent.com/u/4688839?v=4?s=100" width="100px;" alt="mannjani"/><br /><sub><b>mannjani</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mannjani" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -341,7 +341,7 @@ Pull requests and plugins are welcome!
|
|||||||
</tr>
|
</tr>
|
||||||
<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/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/ianaflous"><img src="https://avatars.githubusercontent.com/u/42301579?v=4?s=100" width="100px;" alt="ianaflous"/><br /><sub><b>ianaflous</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ianaflous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannjani"><img src="https://avatars.githubusercontent.com/u/4688839?v=4?s=100" width="100px;" alt="mannjani"/><br /><sub><b>mannjani</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mannjani" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -365,7 +365,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|||||||
</tr>
|
</tr>
|
||||||
<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/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/ianaflous"><img src="https://avatars.githubusercontent.com/u/42301579?v=4?s=100" width="100px;" alt="ianaflous"/><br /><sub><b>ianaflous</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ianaflous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannjani"><img src="https://avatars.githubusercontent.com/u/4688839?v=4?s=100" width="100px;" alt="mannjani"/><br /><sub><b>mannjani</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mannjani" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
* Встроенный SSH- и Telnet-клиент и менеджер подключений;
|
* Встроенный SSH- и Telnet-клиент и менеджер подключений;
|
||||||
* Встроенный последовательный терминал;
|
* Встроенный последовательный терминал;
|
||||||
* Темы и цветовые схемы;
|
* Темы и цветовые схемы;
|
||||||
* Полностью настраеваемые сочетания клавиш;
|
* Полностью настраиваемые сочетания клавиш;
|
||||||
* Панели;
|
* Панели;
|
||||||
* Запоминание вкладок;
|
* Запоминание вкладок;
|
||||||
* Поддержка PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder и CMD;
|
* Поддержка PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder и CMD;
|
||||||
@@ -342,7 +342,7 @@ Pull-запросы и плагины приветствуются!
|
|||||||
</tr>
|
</tr>
|
||||||
<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/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/ianaflous"><img src="https://avatars.githubusercontent.com/u/42301579?v=4?s=100" width="100px;" alt="ianaflous"/><br /><sub><b>ianaflous</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ianaflous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannjani"><img src="https://avatars.githubusercontent.com/u/4688839?v=4?s=100" width="100px;" alt="mannjani"/><br /><sub><b>mannjani</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mannjani" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -341,7 +341,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<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/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/ianaflous"><img src="https://avatars.githubusercontent.com/u/42301579?v=4?s=100" width="100px;" alt="ianaflous"/><br /><sub><b>ianaflous</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ianaflous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannjani"><img src="https://avatars.githubusercontent.com/u/4688839?v=4?s=100" width="100px;" alt="mannjani"/><br /><sub><b>mannjani</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mannjani" title="Code">💻</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
"native-process-working-directory": "^1.0.2",
|
"native-process-working-directory": "^1.0.2",
|
||||||
"npm": "6",
|
"npm": "6",
|
||||||
"rxjs": "^7.5.7",
|
"rxjs": "^7.5.7",
|
||||||
"russh": "0.1.21",
|
"russh": "0.1.22",
|
||||||
"source-map-support": "^0.5.20",
|
"source-map-support": "^0.5.20",
|
||||||
"v8-compile-cache": "^2.3.0",
|
"v8-compile-cache": "^2.3.0",
|
||||||
"yargs": "^17.7.2"
|
"yargs": "^17.7.2"
|
||||||
|
@@ -3628,10 +3628,10 @@ run-queue@^1.0.0, run-queue@^1.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
aproba "^1.1.1"
|
aproba "^1.1.1"
|
||||||
|
|
||||||
russh@0.1.21:
|
russh@0.1.22:
|
||||||
version "0.1.21"
|
version "0.1.22"
|
||||||
resolved "https://registry.yarnpkg.com/russh/-/russh-0.1.21.tgz#857b20c298a50a6657d1f1653ce9d149c68d6b5b"
|
resolved "https://registry.yarnpkg.com/russh/-/russh-0.1.22.tgz#f56e515b1938fa3c1ee7321b2559c17bb7f7f5cc"
|
||||||
integrity sha512-2zjOHTTDqaa3/pHUU+VCkoEqOXLpIpk9WATUaudtLGqy3n8Duz3WlhvyJzEmd+S+9eVGnQvyktpjtZziXLVHRA==
|
integrity sha512-ors+8pqxb9cyyy0tkAgEkrEWoN18kJuw0GtcZsheTQBdqEw/BSulmkKqNva6jjvoOc3wP1GIjbkQ5OdRGqQwmg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@napi-rs/cli" "^2.18.3"
|
"@napi-rs/cli" "^2.18.3"
|
||||||
|
|
||||||
|
@@ -162,9 +162,11 @@ export class SSHSession {
|
|||||||
this.allAuthMethods = [{ type: 'none' }]
|
this.allAuthMethods = [{ type: 'none' }]
|
||||||
if (!this.profile.options.auth || this.profile.options.auth === 'publicKey') {
|
if (!this.profile.options.auth || this.profile.options.auth === 'publicKey') {
|
||||||
if (this.profile.options.privateKeys?.length) {
|
if (this.profile.options.privateKeys?.length) {
|
||||||
for (const pk of this.profile.options.privateKeys) {
|
for (let pk of this.profile.options.privateKeys) {
|
||||||
// eslint-disable-next-line @typescript-eslint/init-declarations
|
// eslint-disable-next-line @typescript-eslint/init-declarations
|
||||||
let contents: Buffer
|
let contents: Buffer
|
||||||
|
pk = pk.replace('%h', this.profile.options.host)
|
||||||
|
pk = pk.replace('%r', this.profile.options.user)
|
||||||
try {
|
try {
|
||||||
contents = await this.fileProviders.retrieveFile(pk)
|
contents = await this.fileProviders.retrieveFile(pk)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@@ -3,7 +3,7 @@ import { Subject, Observable } from 'rxjs'
|
|||||||
import { SessionMiddleware } from '../api/middleware'
|
import { SessionMiddleware } from '../api/middleware'
|
||||||
|
|
||||||
const OSCPrefix = Buffer.from('\x1b]')
|
const OSCPrefix = Buffer.from('\x1b]')
|
||||||
const OSCSuffix = Buffer.from('\x07')
|
const OSCSuffixes = [Buffer.from('\x07'), Buffer.from('\x1b\\')]
|
||||||
|
|
||||||
export class OSCProcessor extends SessionMiddleware {
|
export class OSCProcessor extends SessionMiddleware {
|
||||||
get cwdReported$ (): Observable<string> { return this.cwdReported }
|
get cwdReported$ (): Observable<string> { return this.cwdReported }
|
||||||
@@ -14,11 +14,22 @@ export class OSCProcessor extends SessionMiddleware {
|
|||||||
|
|
||||||
feedFromSession (data: Buffer): void {
|
feedFromSession (data: Buffer): void {
|
||||||
let startIndex = 0
|
let startIndex = 0
|
||||||
while (data.includes(OSCPrefix, startIndex) && data.includes(OSCSuffix, startIndex)) {
|
while (data.includes(OSCPrefix, startIndex)) {
|
||||||
const params = data.subarray(data.indexOf(OSCPrefix, startIndex) + OSCPrefix.length)
|
const si = startIndex
|
||||||
const oscString = params.subarray(0, params.indexOf(OSCSuffix)).toString()
|
if (!OSCSuffixes.some(s => data.includes(s, si))) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
startIndex = data.indexOf(OSCSuffix, startIndex) + OSCSuffix.length
|
const params = data.subarray(data.indexOf(OSCPrefix, startIndex) + OSCPrefix.length)
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
const [oscCodeString, ...oscParams] = oscString.split(';')
|
const [oscCodeString, ...oscParams] = oscString.split(';')
|
||||||
const oscCode = parseInt(oscCodeString)
|
const oscCode = parseInt(oscCodeString)
|
||||||
|
Reference in New Issue
Block a user