mirror of
https://github.com/Eugeny/tabby.git
synced 2025-09-18 14:16:05 +00:00
Compare commits
2 Commits
all-contri
...
bump-elect
Author | SHA1 | Date | |
---|---|---|---|
![]() |
48e510b7f7 | ||
![]() |
ed1384750a |
@@ -349,7 +349,6 @@ 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/loopx9"><img src="https://avatars.githubusercontent.com/u/46422475?v=4?s=100" width="100px;" alt="loopx9"/><br /><sub><b>loopx9</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=loopx9" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -343,7 +343,6 @@ 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/loopx9"><img src="https://avatars.githubusercontent.com/u/46422475?v=4?s=100" width="100px;" alt="loopx9"/><br /><sub><b>loopx9</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=loopx9" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -342,7 +342,6 @@ 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/loopx9"><img src="https://avatars.githubusercontent.com/u/46422475?v=4?s=100" width="100px;" alt="loopx9"/><br /><sub><b>loopx9</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=loopx9" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -366,7 +366,6 @@ 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/loopx9"><img src="https://avatars.githubusercontent.com/u/46422475?v=4?s=100" width="100px;" alt="loopx9"/><br /><sub><b>loopx9</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=loopx9" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -343,7 +343,6 @@ 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/loopx9"><img src="https://avatars.githubusercontent.com/u/46422475?v=4?s=100" width="100px;" alt="loopx9"/><br /><sub><b>loopx9</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=loopx9" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -342,7 +342,6 @@
|
|||||||
</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/loopx9"><img src="https://avatars.githubusercontent.com/u/46422475?v=4?s=100" width="100px;" alt="loopx9"/><br /><sub><b>loopx9</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=loopx9" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<true/>
|
<true/>
|
||||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>com.apple.security.device.audio-input</key>
|
<key>com.apple.security.device.microphone</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>com.apple.security.device.camera</key>
|
<key>com.apple.security.device.camera</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
@@ -13,12 +13,4 @@ export abstract class LinkHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract handle (uri: string, tab?: BaseTerminalTabComponent<any>): void
|
abstract handle (uri: string, tab?: BaseTerminalTabComponent<any>): void
|
||||||
|
|
||||||
private _fullMatchRegex: RegExp | null = null
|
|
||||||
get fullMatchRegex (): RegExp {
|
|
||||||
if (!this._fullMatchRegex) {
|
|
||||||
this._fullMatchRegex = new RegExp(`^${this.regex.source}$`)
|
|
||||||
}
|
|
||||||
return this._fullMatchRegex
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -31,7 +31,7 @@ export class LinkHighlighterDecorator extends TerminalDecorator {
|
|||||||
|
|
||||||
const openLink = async uri => {
|
const openLink = async uri => {
|
||||||
for (const handler of this.handlers) {
|
for (const handler of this.handlers) {
|
||||||
if (!handler.fullMatchRegex.test(uri)) {
|
if (!handler.regex.test(uri)) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if (!await handler.verify(await handler.convert(uri, tab), tab)) {
|
if (!await handler.verify(await handler.convert(uri, tab), tab)) {
|
||||||
|
@@ -6,7 +6,6 @@ export const supportedAlgorithms = {
|
|||||||
[SSHAlgorithmType.HOSTKEY]: russh.getSupportedKeyTypes().filter(x => x !== 'none'),
|
[SSHAlgorithmType.HOSTKEY]: russh.getSupportedKeyTypes().filter(x => x !== 'none'),
|
||||||
[SSHAlgorithmType.CIPHER]: russh.getSupportedCiphers().filter(x => x !== 'clear'),
|
[SSHAlgorithmType.CIPHER]: russh.getSupportedCiphers().filter(x => x !== 'clear'),
|
||||||
[SSHAlgorithmType.HMAC]: russh.getSupportedMACs().filter(x => x !== 'none'),
|
[SSHAlgorithmType.HMAC]: russh.getSupportedMACs().filter(x => x !== 'none'),
|
||||||
[SSHAlgorithmType.COMPRESSION]: russh.getSupportedCompressionAlgorithms().reverse(),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const defaultAlgorithms = {
|
export const defaultAlgorithms = {
|
||||||
@@ -43,9 +42,4 @@ export const defaultAlgorithms = {
|
|||||||
'hmac-sha1-etm@openssh.com',
|
'hmac-sha1-etm@openssh.com',
|
||||||
'hmac-sha1',
|
'hmac-sha1',
|
||||||
],
|
],
|
||||||
[SSHAlgorithmType.COMPRESSION]: [
|
|
||||||
'zlib@openssh.com',
|
|
||||||
'zlib',
|
|
||||||
'none',
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
|
@@ -5,8 +5,6 @@ export enum SSHAlgorithmType {
|
|||||||
KEX = 'kex',
|
KEX = 'kex',
|
||||||
CIPHER = 'cipher',
|
CIPHER = 'cipher',
|
||||||
HOSTKEY = 'serverHostKey',
|
HOSTKEY = 'serverHostKey',
|
||||||
COMPRESSION = 'compression',
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SSHProfile extends ConnectableTerminalProfile {
|
export interface SSHProfile extends ConnectableTerminalProfile {
|
||||||
|
@@ -286,12 +286,6 @@ ul.nav-tabs(ngbNav, #nav='ngbNav')
|
|||||||
div(*ngFor='let alg of supportedAlgorithms.serverHostKey')
|
div(*ngFor='let alg of supportedAlgorithms.serverHostKey')
|
||||||
checkbox([text]='alg', [(ngModel)]='algorithms.serverHostKey[alg]')
|
checkbox([text]='alg', [(ngModel)]='algorithms.serverHostKey[alg]')
|
||||||
|
|
||||||
.form-line.align-items-start
|
|
||||||
.header
|
|
||||||
.title Compression
|
|
||||||
.w-75
|
|
||||||
div(*ngFor='let alg of supportedAlgorithms.compression')
|
|
||||||
checkbox([text]='alg', [(ngModel)]='algorithms.compression[alg]')
|
|
||||||
li(ngbNavItem)
|
li(ngbNavItem)
|
||||||
a(ngbNavLink, translate) Colors
|
a(ngbNavLink, translate) Colors
|
||||||
ng-template(ngbNavContent)
|
ng-template(ngbNavContent)
|
||||||
|
@@ -107,7 +107,7 @@ export class SSHProfileSettingsComponent {
|
|||||||
this.profile.options.algorithms![k] = Object.entries(this.algorithms[k])
|
this.profile.options.algorithms![k] = Object.entries(this.algorithms[k])
|
||||||
.filter(([_, v]) => !!v)
|
.filter(([_, v]) => !!v)
|
||||||
.map(([key, _]) => key)
|
.map(([key, _]) => key)
|
||||||
if(k !== SSHAlgorithmType.COMPRESSION) { this.profile.options.algorithms![k].sort() }
|
this.profile.options.algorithms![k].sort()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.connectionMode !== 'jumpHost') {
|
if (this.connectionMode !== 'jumpHost') {
|
||||||
|
@@ -55,7 +55,7 @@ export class SSHProfilesService extends QuickConnectProfileProvider<SSHProfile>
|
|||||||
super()
|
super()
|
||||||
for (const k of Object.values(SSHAlgorithmType)) {
|
for (const k of Object.values(SSHAlgorithmType)) {
|
||||||
this.configDefaults.options.algorithms[k] = [...defaultAlgorithms[k]]
|
this.configDefaults.options.algorithms[k] = [...defaultAlgorithms[k]]
|
||||||
if (k !== SSHAlgorithmType.COMPRESSION) { this.configDefaults.options.algorithms[k].sort() }
|
this.configDefaults.options.algorithms[k].sort()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -315,7 +315,6 @@ export class SSHSession {
|
|||||||
kex: this.profile.options.algorithms?.[SSHAlgorithmType.KEX]?.filter(x => supportedAlgorithms[SSHAlgorithmType.KEX].includes(x)),
|
kex: this.profile.options.algorithms?.[SSHAlgorithmType.KEX]?.filter(x => supportedAlgorithms[SSHAlgorithmType.KEX].includes(x)),
|
||||||
mac: this.profile.options.algorithms?.[SSHAlgorithmType.HMAC]?.filter(x => supportedAlgorithms[SSHAlgorithmType.HMAC].includes(x)),
|
mac: this.profile.options.algorithms?.[SSHAlgorithmType.HMAC]?.filter(x => supportedAlgorithms[SSHAlgorithmType.HMAC].includes(x)),
|
||||||
key: this.profile.options.algorithms?.[SSHAlgorithmType.HOSTKEY]?.filter(x => supportedAlgorithms[SSHAlgorithmType.HOSTKEY].includes(x)),
|
key: this.profile.options.algorithms?.[SSHAlgorithmType.HOSTKEY]?.filter(x => supportedAlgorithms[SSHAlgorithmType.HOSTKEY].includes(x)),
|
||||||
compression: this.profile.options.algorithms?.[SSHAlgorithmType.COMPRESSION]?.filter(x => supportedAlgorithms[SSHAlgorithmType.COMPRESSION].includes(x)),
|
|
||||||
},
|
},
|
||||||
keepaliveIntervalSeconds: Math.round((this.profile.options.keepaliveInterval ?? 15000) / 1000),
|
keepaliveIntervalSeconds: Math.round((this.profile.options.keepaliveInterval ?? 15000) / 1000),
|
||||||
keepaliveCountMax: this.profile.options.keepaliveCountMax,
|
keepaliveCountMax: this.profile.options.keepaliveCountMax,
|
||||||
|
Reference in New Issue
Block a user