Compare commits
26 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8d000a3bd4 | ||
![]() |
90e00fdcac | ||
![]() |
324ca6ed82 | ||
![]() |
93c9bc67bc | ||
![]() |
4935c1a985 | ||
![]() |
45ce50e1c4 | ||
![]() |
6181e73f8d | ||
![]() |
e5b5dde1e5 | ||
![]() |
2158f589cd | ||
![]() |
c91ccecc1f | ||
![]() |
42e95f15b4 | ||
![]() |
08929f89de | ||
![]() |
fa16ad11e1 | ||
![]() |
4943e2cd5e | ||
![]() |
921214dd09 | ||
![]() |
4d86850bc7 | ||
![]() |
faecb9b501 | ||
![]() |
23c6f86917 | ||
![]() |
1b92b71575 | ||
![]() |
a49db682a1 | ||
![]() |
905a2f54d2 | ||
![]() |
6059de434f | ||
![]() |
aef96f8b9b | ||
![]() |
0187a83cfe | ||
![]() |
a793c44b94 | ||
![]() |
153d11cfe2 |
@@ -1121,15 +1121,6 @@
|
|||||||
"contributions": [
|
"contributions": [
|
||||||
"code"
|
"code"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "karaketir16",
|
|
||||||
"name": "Osman Karaketir",
|
|
||||||
"avatar_url": "https://avatars.githubusercontent.com/u/27349806?v=4",
|
|
||||||
"profile": "https://github.com/karaketir16",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"contributorsPerLine": 7,
|
"contributorsPerLine": 7,
|
||||||
|
@@ -312,7 +312,6 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -314,7 +314,6 @@ Gracias a estas maravillosas personas ([emoji key](https://allcontributors.org/d
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -311,7 +311,6 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -307,7 +307,6 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -311,7 +311,6 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -301,7 +301,6 @@ Pull requests and plugins are welcome!
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -321,7 +321,6 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -315,7 +315,6 @@ Obrigado vai para essas pessoas maravilhosas ([emoji key](https://allcontributor
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -307,7 +307,6 @@ Pull-запросы и плагины приветствуются!
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -306,7 +306,6 @@
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Clem-Fern"><img src="https://avatars.githubusercontent.com/u/20025949?v=4?s=100" width="100px;" alt="Clem"/><br /><sub><b>Clem</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Clem-Fern" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/elizabeth-dev"><img src="https://avatars.githubusercontent.com/u/13015727?v=4?s=100" width="100px;" alt="Elizabeth Martín Campos"/><br /><sub><b>Elizabeth Martín Campos</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=elizabeth-dev" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/siccous"><img src="https://avatars.githubusercontent.com/u/7812885?v=4?s=100" width="100px;" alt="Tomáš Hruška"/><br /><sub><b>Tomáš Hruška</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=siccous" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/karaketir16"><img src="https://avatars.githubusercontent.com/u/27349806?v=4?s=100" width="100px;" alt="Osman Karaketir"/><br /><sub><b>Osman Karaketir</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=karaketir16" title="Code">💻</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -1,7 +1,3 @@
|
|||||||
html {
|
|
||||||
--spaciness: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -25,8 +21,8 @@ a, button {
|
|||||||
|
|
||||||
& > svg {
|
& > svg {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
// width: 16px;
|
width: 16px;
|
||||||
// height: 16px;
|
height: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2152
config.yaml
Normal file
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Afrikaans\n"
|
"Language-Team: Afrikaans\n"
|
||||||
"Language: af_ZA\n"
|
"Language: af_ZA\n"
|
||||||
"PO-Revision-Date: 2023-03-17 23:07\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Syfers"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Opruim"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Kompak"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "Opstelling geskrap"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Bulgarian\n"
|
"Language-Team: Bulgarian\n"
|
||||||
"Language: bg_BG\n"
|
"Language: bg_BG\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Шифри"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Изчисти"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Изчисти терминала"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "Изчисти терминала след свързване"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Компактна"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "Конфигурацията е изтрита"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "Копирай текущия път"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "Копирай пълния път"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "Изтрий предишна дума"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "Изтриване конфигурацията на отсрещната страна?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -700,7 +700,7 @@ msgstr "Включи автоматично инсталиране на нали
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
||||||
msgid "Enable fluent background option"
|
msgid "Enable fluent background option"
|
||||||
msgstr "Включи на опцията за плавен фон"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||||
msgid "Enable font ligatures"
|
msgid "Enable font ligatures"
|
||||||
@@ -749,7 +749,7 @@ msgstr "Пример:"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:223
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:223
|
||||||
msgid "Experimental Windows 10 background style known to cause issues"
|
msgid "Experimental Windows 10 background style known to cause issues"
|
||||||
msgstr "Експериментален стил на фона на Windows 10, за който се знае, че причинява проблеми"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:27
|
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:27
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
@@ -982,7 +982,7 @@ msgstr "Бързи клавиши"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "Как Tabby се представя чрез променливи на средата"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -1910,7 +1910,7 @@ msgstr "Покажи серийните връзки"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
||||||
msgid "Show tabs in fullscreen mode"
|
msgid "Show tabs in fullscreen mode"
|
||||||
msgstr "Показване на табове в режим на цял екран"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:58
|
#: tabby-terminal/src/tabContextMenu.ts:58
|
||||||
msgid "Show toolbar"
|
msgid "Show toolbar"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "Звънец на терминала"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "Идентифициране на терминала"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
"Language: es_ES\n"
|
"Language: es_ES\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Cifrados"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Limpiar"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Limpiar terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "Limpiar el terminal al cerrar la conexión"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Language: fr_FR\n"
|
"Language: fr_FR\n"
|
||||||
"PO-Revision-Date: 2023-03-17 23:07\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Chiffrement"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Effacer"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Effacer le terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "Effacer le terminal après la connexion"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Compact"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "Configuration supprimée"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -410,7 +410,7 @@ msgstr "Copié"
|
|||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:26
|
#: tabby-terminal/src/tabContextMenu.ts:26
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copier"
|
msgstr "Copie"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:70
|
#: tabby-terminal/src/hotkeys.ts:70
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:66
|
#: tabby-terminal/src/tabContextMenu.ts:66
|
||||||
@@ -419,7 +419,7 @@ msgstr "Copier le chemin actuel"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "Copier le chemin complet"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "Supprimer le mot précédent"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "Supprimer la configuration du côté distant ?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -982,7 +982,7 @@ msgstr "Raccourcis clavier"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "Comment Tabby se présente à travers les variables d'environnement"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "Bip du terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "Identification du terminal"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
"Language: it_IT\n"
|
"Language: it_IT\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Crittografie"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Pulisci"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Pulisci il terminale"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "Pulisci il terminale dopo la connessione"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Compatto"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "Configurazione eliminata"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "Copia percorso corrente"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "Copia percorso completo"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "Elimina parola precedente"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "Eliminare la configurazione sul dispositivo remoto?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -700,7 +700,7 @@ msgstr "Abilita l'installazione automatica degli aggiornamenti quando sono dispo
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
||||||
msgid "Enable fluent background option"
|
msgid "Enable fluent background option"
|
||||||
msgstr "Abilita l'opzione di sfondo fluente"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||||
msgid "Enable font ligatures"
|
msgid "Enable font ligatures"
|
||||||
@@ -749,7 +749,7 @@ msgstr "Esempio:"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:223
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:223
|
||||||
msgid "Experimental Windows 10 background style known to cause issues"
|
msgid "Experimental Windows 10 background style known to cause issues"
|
||||||
msgstr "Sfondo sperimentale basati sullo stile di Windows 10, sono noti dei problemi"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:27
|
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:27
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
@@ -982,7 +982,7 @@ msgstr "Tasti di scelta rapida"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "Come Tabby si presenta attraverso le variabili dell'ambiente"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -1910,7 +1910,7 @@ msgstr "Mostra connessioni seriali"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
||||||
msgid "Show tabs in fullscreen mode"
|
msgid "Show tabs in fullscreen mode"
|
||||||
msgstr "Mostra schede in modalità schermo intero"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:58
|
#: tabby-terminal/src/tabContextMenu.ts:58
|
||||||
msgid "Show toolbar"
|
msgid "Show toolbar"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "Notifiche del terminale"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "Identificazione del terminale"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Japanese\n"
|
"Language-Team: Japanese\n"
|
||||||
"Language: ja_JP\n"
|
"Language: ja_JP\n"
|
||||||
"PO-Revision-Date: 2023-03-17 23:07\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -23,7 +23,7 @@ msgstr "{name} コピー"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
||||||
msgid "A second font family used to display characters missing in the main font"
|
msgid "A second font family used to display characters missing in the main font"
|
||||||
msgstr "既定フォントに不足している文字を表示する際に使用されます"
|
msgstr "既定フォントに不足してる文字を補う代替フォント"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||||
msgid "Abort all"
|
msgid "Abort all"
|
||||||
@@ -148,7 +148,7 @@ msgstr "自動"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:156
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:156
|
||||||
msgid "Auto-open a terminal on app start"
|
msgid "Auto-open a terminal on app start"
|
||||||
msgstr "アプリケーション起動時に新しい端末を自動で開く"
|
msgstr "アプリケーション起動時に端末を自動で開く"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:13
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:13
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:53
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:53
|
||||||
@@ -256,7 +256,7 @@ msgstr "暗号方式"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "クリア"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "端末をクリア"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "接続後に端末をクリア"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "コンパクト"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "設定が消去されました"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "現在のパスをコピー"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "フルパスをコピー"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "前の単語を削除"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "リモート側の設定を消去しますか?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -581,7 +581,7 @@ msgstr "動的なタブ名を無効にする"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
||||||
msgid "Disable fluent background while dragging"
|
msgid "Disable fluent background while dragging"
|
||||||
msgstr "ドラッグ中はFluentを無効にする"
|
msgstr "ドラッグ中にFluentを無効にする"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
||||||
msgid "Disable GPU acceleration"
|
msgid "Disable GPU acceleration"
|
||||||
@@ -646,7 +646,7 @@ msgstr "ドック表示"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:75
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:75
|
||||||
msgid "Double-click selection will stop at these characters"
|
msgid "Double-click selection will stop at these characters"
|
||||||
msgstr "ダブルクリックによるテキスト選択時に区切りとなる文字を設定できます"
|
msgstr "ダブルクリックによる選択時に区切りとなる文字を設定できます"
|
||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:79
|
#: tabby-core/src/tabContextMenu.ts:79
|
||||||
msgid "Down"
|
msgid "Down"
|
||||||
@@ -700,7 +700,7 @@ msgstr "アップデートが利用可能になったら自動的にインスト
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
||||||
msgid "Enable fluent background option"
|
msgid "Enable fluent background option"
|
||||||
msgstr "Fluent背景設定を有効にする"
|
msgstr "fluent背景の詳細設定を有効にする"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||||
msgid "Enable font ligatures"
|
msgid "Enable font ligatures"
|
||||||
@@ -841,7 +841,7 @@ msgstr "フォント"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:201
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:201
|
||||||
msgid "For keyboard shortcuts"
|
msgid "For keyboard shortcuts"
|
||||||
msgstr "キーボードショートカット利用時に反映されます"
|
msgstr "キーボードショートカット用"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:51
|
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:51
|
||||||
msgid "Force CR"
|
msgid "Force CR"
|
||||||
@@ -982,7 +982,7 @@ msgstr "ホットキー"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "環境変数を利用してTabbyを他の端末のように扱わせます"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -1307,7 +1307,7 @@ msgstr "標準"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:22
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:22
|
||||||
msgid "Normal font weight"
|
msgid "Normal font weight"
|
||||||
msgstr "標準フォントの太さ"
|
msgstr "通常フォントの太さ"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/searchPanel.component.ts:54
|
#: tabby-terminal/src/components/searchPanel.component.ts:54
|
||||||
#: tabby-terminal/src/components/searchPanel.component.ts:64
|
#: tabby-terminal/src/components/searchPanel.component.ts:64
|
||||||
@@ -1458,7 +1458,7 @@ msgstr "テキストを選択していない場合は貼り付け、選択中は
|
|||||||
|
|
||||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:484
|
#: tabby-terminal/src/api/baseTerminalTab.component.ts:484
|
||||||
msgid "Paste multiple lines?"
|
msgid "Paste multiple lines?"
|
||||||
msgstr "複数行の貼り付けを実行してもよろしいですか?"
|
msgstr "複数行の貼り付けを行いますか?"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
||||||
msgid "Paste on middle-click"
|
msgid "Paste on middle-click"
|
||||||
@@ -1608,7 +1608,7 @@ msgstr "リモート"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
||||||
msgid "Remove whitespace and newlines around the copied text"
|
msgid "Remove whitespace and newlines around the copied text"
|
||||||
msgstr "コピーしたテキストに含まれる前後の余分なスペースや改行を除去します"
|
msgstr "コピーしたテキスト前後のスペースや改行を削除します"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||||
#: tabby-core/src/tabContextMenu.ts:120
|
#: tabby-core/src/tabContextMenu.ts:120
|
||||||
@@ -1668,7 +1668,7 @@ msgstr "変更を反映するには再起動が必要です"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:162
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:162
|
||||||
msgid "Restore terminal tabs on app start"
|
msgid "Restore terminal tabs on app start"
|
||||||
msgstr "アプリケーション起動時に以前開いていたタブを復元する"
|
msgstr "アプリケーション起動時に端末タブを復元する"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:147
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:147
|
||||||
msgid "Reuse session for multiple tabs"
|
msgid "Reuse session for multiple tabs"
|
||||||
@@ -1744,7 +1744,7 @@ msgstr "バックスクロール"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
||||||
msgid "Scrolls the terminal to the bottom on user input"
|
msgid "Scrolls the terminal to the bottom on user input"
|
||||||
msgstr "入力時に端末を最下部にスクロールします"
|
msgstr "ユーザー入力時に端末を下にスクロール"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:74
|
#: tabby-terminal/src/hotkeys.ts:74
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
@@ -1862,7 +1862,7 @@ msgstr "{type} プロファイルセレクターを表示"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
||||||
msgid "Show a confirmation box when pasting multiple lines"
|
msgid "Show a confirmation box when pasting multiple lines"
|
||||||
msgstr "複数行を貼り付ける際に確認ボックスを表示します"
|
msgstr "複数行を貼り付けるときに確認ボックスを表示します"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:63
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:63
|
||||||
msgid "Show built-in profiles in selector"
|
msgid "Show built-in profiles in selector"
|
||||||
@@ -2023,7 +2023,7 @@ msgstr "最新情報を受け取る"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:17
|
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:17
|
||||||
msgid "Substitutions allowed."
|
msgid "Substitutions allowed."
|
||||||
msgstr "置き換えに対応しています"
|
msgstr "置換することができます。"
|
||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:290
|
#: tabby-core/src/tabContextMenu.ts:290
|
||||||
msgid "Switch profile"
|
msgid "Switch profile"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "端末音"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "端末の識別情報"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
@@ -2312,7 +2312,7 @@ msgstr "複数行貼り付け時に警告"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
||||||
msgid "Warn when closing active connections"
|
msgid "Warn when closing active connections"
|
||||||
msgstr "使用中の接続を閉じる際に警告"
|
msgstr "使用中の接続を閉じたときに警告"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
||||||
msgid "Warning: remote host's key has suddenly changed!"
|
msgid "Warning: remote host's key has suddenly changed!"
|
||||||
|
@@ -10,11 +10,11 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Korean\n"
|
"Language-Team: Korean\n"
|
||||||
"Language: ko_KR\n"
|
"Language: ko_KR\n"
|
||||||
"PO-Revision-Date: 2023-03-17 23:07\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
msgstr "\"{command}\" 명령어가 동작중입니다. 창을 닫으시겠습니까?"
|
msgstr "\"{command}\" 명령어가 여전히 동작중입니다. 닫을까요?"
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:79
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:79
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:90
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:90
|
||||||
@@ -23,7 +23,7 @@ msgstr "{name} 복사"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
||||||
msgid "A second font family used to display characters missing in the main font"
|
msgid "A second font family used to display characters missing in the main font"
|
||||||
msgstr "설정된 폰트 누락시 대체하기 위한 폰트"
|
msgstr "메인 글꼴에서 누락된 문자를 표시하기 위해 사용하는 2번째 글꼴"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||||
msgid "Abort all"
|
msgid "Abort all"
|
||||||
@@ -35,7 +35,7 @@ msgstr "허용 후 키 저장"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||||
msgid "Accept just this once"
|
msgid "Accept just this once"
|
||||||
msgstr "지금만 허용하기"
|
msgstr "이번 한번만 허용"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||||
msgid "Accessibility"
|
msgid "Accessibility"
|
||||||
@@ -256,7 +256,7 @@ msgstr "암호화"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "지우기"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "터미널 비우기"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "연결 후 터미널 지우기"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "콤팩트"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "설정 삭제됨"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "현재 경로 복사"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "전체 경로 복사"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Portuguese, Brazilian\n"
|
"Language-Team: Portuguese, Brazilian\n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
"PO-Revision-Date: 2023-03-17 23:07\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -209,7 +209,7 @@ msgstr "Colar entre colchetes (requer suporte ao \"shell\")"
|
|||||||
|
|
||||||
#: tabby-terminal/src/services/multifocus.service.ts:19
|
#: tabby-terminal/src/services/multifocus.service.ts:19
|
||||||
msgid "Broadcast mode. Click anywhere to cancel."
|
msgid "Broadcast mode. Click anywhere to cancel."
|
||||||
msgstr "Modo de transmissão. Clique em qualquer lugar para cancelar."
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:54
|
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:54
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:175
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:175
|
||||||
@@ -256,7 +256,7 @@ msgstr "Cifras"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Limpar"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Limpar terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "Limpar terminal após conexão"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Compacto"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "Configuração excluída"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "Copiar o caminho atual"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "Copiar caminho completo"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "Excluir palavra anterior"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "Excluir a configuração do lado remoto?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -785,7 +785,7 @@ msgstr "Focar todos os painéis"
|
|||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:78
|
#: tabby-terminal/src/hotkeys.ts:78
|
||||||
msgid "Focus all panes at once (broadcast)"
|
msgid "Focus all panes at once (broadcast)"
|
||||||
msgstr "Focar todos os painéis de uma vez (Transmissão)"
|
msgstr "Focar todos os painéis de uma vez (Broadcast)"
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:71
|
#: tabby-terminal/src/tabContextMenu.ts:71
|
||||||
msgid "Focus all tabs"
|
msgid "Focus all tabs"
|
||||||
@@ -1910,7 +1910,7 @@ msgstr "Mostrar conexões em série"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
||||||
msgid "Show tabs in fullscreen mode"
|
msgid "Show tabs in fullscreen mode"
|
||||||
msgstr "Mostrar abas no modo de tela cheia"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:58
|
#: tabby-terminal/src/tabContextMenu.ts:58
|
||||||
msgid "Show toolbar"
|
msgid "Show toolbar"
|
||||||
|
@@ -10,11 +10,11 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Swedish\n"
|
"Language-Team: Swedish\n"
|
||||||
"Language: sv_SE\n"
|
"Language: sv_SE\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
msgstr "\"{command}\" körs fortfarande. Stäng?"
|
msgstr "\"{command}\" körs fortfarande. Stänga?"
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:79
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:79
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:90
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:90
|
||||||
@@ -256,7 +256,7 @@ msgstr "Chiffer"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Rensa"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Rensa terminal"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "Rensa terminal efter anslutning"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Kompakt"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "Konfiguration borttagen"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "Kopiera aktuell sökväg"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "Kopiera fullständig sökväg"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "Radera föregående ord"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "Ta bort konfigurationen på fjärrsidan?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -982,7 +982,7 @@ msgstr "Snabbtangenter"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "Hur Tabby presenterar sig genom miljövariabler"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "Terminalklocka"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "Terminal identifiering"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Ukrainian\n"
|
"Language-Team: Ukrainian\n"
|
||||||
"Language: uk_UA\n"
|
"Language: uk_UA\n"
|
||||||
"PO-Revision-Date: 2023-02-20 10:39\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Шифри"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Очистити"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "Очистити термінал"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "Очистити термінал після підключення"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "Компактний"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "Конфігурацію видалено"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "Копіювати поточний шлях"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "Копіювати повний шлях"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Chinese Simplified\n"
|
"Language-Team: Chinese Simplified\n"
|
||||||
"Language: zh_CN\n"
|
"Language: zh_CN\n"
|
||||||
"PO-Revision-Date: 2023-03-17 23:07\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -23,7 +23,7 @@ msgstr "{name} 副本"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
||||||
msgid "A second font family used to display characters missing in the main font"
|
msgid "A second font family used to display characters missing in the main font"
|
||||||
msgstr "首选字体缺失时使用备选字体显示字符"
|
msgstr "第二种字体,用于显示主字体中缺失的字符"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||||
msgid "Abort all"
|
msgid "Abort all"
|
||||||
@@ -256,7 +256,7 @@ msgstr "加密方法"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "清除"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "清空终端内容"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "连接后清空终端"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -340,7 +340,7 @@ msgstr "紧凑"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "配置已删除"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -419,7 +419,7 @@ msgstr "复制当前路径"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "复制完整路径"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -545,7 +545,7 @@ msgstr "删除上一个单词"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "是否删除远程配置?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
@@ -982,7 +982,7 @@ msgstr "快捷键"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "Tabby如何通过环境变量呈现自己"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -1736,7 +1736,7 @@ msgstr "滚动终端到底部"
|
|||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:86
|
#: tabby-terminal/src/hotkeys.ts:86
|
||||||
msgid "Scroll terminal to top"
|
msgid "Scroll terminal to top"
|
||||||
msgstr "滑动终端到顶端"
|
msgstr "滑动中断到顶端"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:16
|
||||||
msgid "Scrollback"
|
msgid "Scrollback"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "终端提示音"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "终端标识"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
|
238
locale/zh-TW.po
@@ -10,7 +10,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tabby\n"
|
"Project-Id-Version: tabby\n"
|
||||||
"Language-Team: Chinese Traditional\n"
|
"Language-Team: Chinese Traditional\n"
|
||||||
"Language: zh_TW\n"
|
"Language: zh_TW\n"
|
||||||
"PO-Revision-Date: 2023-03-17 23:07\n"
|
"PO-Revision-Date: 2023-02-06 19:58\n"
|
||||||
|
|
||||||
#: tabby-local/src/components/terminalTab.component.ts:112
|
#: tabby-local/src/components/terminalTab.component.ts:112
|
||||||
msgid "\"{command}\" is still running. Close?"
|
msgid "\"{command}\" is still running. Close?"
|
||||||
@@ -23,15 +23,15 @@ msgstr "{name} 複製"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:82
|
||||||
msgid "A second font family used to display characters missing in the main font"
|
msgid "A second font family used to display characters missing in the main font"
|
||||||
msgstr "備用字型用於顯示主字型中缺少的字元"
|
msgstr "第二個字體系列,用於顯示主字體中缺少的字元"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||||
msgid "Abort all"
|
msgid "Abort all"
|
||||||
msgstr "全部中止"
|
msgstr "中止所有"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:24
|
||||||
msgid "Accept and remember key"
|
msgid "Accept and remember key"
|
||||||
msgstr "接受並記住金鑰"
|
msgstr "接受並記住密鑰"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||||
msgid "Accept just this once"
|
msgid "Accept just this once"
|
||||||
@@ -48,19 +48,19 @@ msgstr "壓克力背景"
|
|||||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:28
|
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:28
|
||||||
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:15
|
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:15
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "新增"
|
msgstr "添加"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:16
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:16
|
||||||
msgid "Add a port forward"
|
msgid "Add a port forward"
|
||||||
msgstr "新增通訊埠轉送"
|
msgstr "添加新的埠轉發"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:115
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:115
|
||||||
msgid "Add a private key"
|
msgid "Add a private key"
|
||||||
msgstr "新增私鑰"
|
msgstr "添加私密金鑰"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/multiHotkeyInput.component.html:8
|
#: locale/tmp-html/tabby-settings/src/components/multiHotkeyInput.component.html:8
|
||||||
msgid "Add..."
|
msgid "Add..."
|
||||||
msgstr "新增..."
|
msgstr "添加..."
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:89
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:89
|
||||||
msgid "Additional space between lines"
|
msgid "Additional space between lines"
|
||||||
@@ -79,7 +79,7 @@ msgstr "代理"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:134
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:134
|
||||||
msgid "Agent forwarding"
|
msgid "Agent forwarding"
|
||||||
msgstr "代理轉送"
|
msgstr "代理轉發"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:35
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:35
|
||||||
msgid "Agent pipe path"
|
msgid "Agent pipe path"
|
||||||
@@ -162,7 +162,7 @@ msgstr "自動更新"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:58
|
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:58
|
||||||
msgid "Automatically upload changes and check for updates every minute"
|
msgid "Automatically upload changes and check for updates every minute"
|
||||||
msgstr "每分鐘自動上傳更變並檢查更新"
|
msgstr "每分鐘自動上載更改並檢查更新"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:10
|
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:10
|
||||||
msgid "Available"
|
msgid "Available"
|
||||||
@@ -201,11 +201,11 @@ msgstr "粗體文字寬度"
|
|||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:138
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:138
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:82
|
||||||
msgid "Bottom"
|
msgid "Bottom"
|
||||||
msgstr "底部"
|
msgstr "底端"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:109
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:109
|
||||||
msgid "Bracketed paste (requires shell support)"
|
msgid "Bracketed paste (requires shell support)"
|
||||||
msgstr "Bracketed 貼上(需要 Shell 支援)"
|
msgstr "Bracketed 貼上(需要 Shell 支持)"
|
||||||
|
|
||||||
#: tabby-terminal/src/services/multifocus.service.ts:19
|
#: tabby-terminal/src/services/multifocus.service.ts:19
|
||||||
msgid "Broadcast mode. Click anywhere to cancel."
|
msgid "Broadcast mode. Click anywhere to cancel."
|
||||||
@@ -256,7 +256,7 @@ msgstr "密碼(Cipher)"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "清除"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:133
|
#: tabby-core/src/services/profiles.service.ts:133
|
||||||
msgid "Clear recent profiles"
|
msgid "Clear recent profiles"
|
||||||
@@ -268,7 +268,7 @@ msgstr "清除終端內容"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:49
|
||||||
msgid "Clear terminal after connection"
|
msgid "Clear terminal after connection"
|
||||||
msgstr "連線後清除終端畫面"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||||
msgid "Clipboard"
|
msgid "Clipboard"
|
||||||
@@ -324,11 +324,11 @@ msgstr "整合所有分頁到目前的分頁"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:4
|
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:4
|
||||||
msgid "Command line"
|
msgid "Command line"
|
||||||
msgstr "指令行"
|
msgstr "命令列"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
||||||
msgid "Command's stdin/stdout is used instead of a network connection"
|
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:104
|
#: tabby-core/src/services/commands.service.ts:104
|
||||||
msgid "Commands"
|
msgid "Commands"
|
||||||
@@ -340,7 +340,7 @@ msgstr "緊湊"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||||
msgid "Config deleted"
|
msgid "Config deleted"
|
||||||
msgstr "設定檔已刪除"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||||
msgid "Config downloaded"
|
msgid "Config downloaded"
|
||||||
@@ -358,7 +358,7 @@ msgstr "同步設定檔"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:90
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:90
|
||||||
msgid "Config uploaded"
|
msgid "Config uploaded"
|
||||||
msgstr "設定檔已上傳"
|
msgstr "設定檔已上載"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:35
|
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:35
|
||||||
msgid "Configs"
|
msgid "Configs"
|
||||||
@@ -366,7 +366,7 @@ msgstr "設定"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:21
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:21
|
||||||
msgid "Connect through a proxy server"
|
msgid "Connect through a proxy server"
|
||||||
msgstr "通過代理伺服器連線"
|
msgstr "通過代理伺服器連接"
|
||||||
|
|
||||||
#: tabby-core/src/index.ts:227
|
#: tabby-core/src/index.ts:227
|
||||||
#: tabby-core/src/services/profiles.service.ts:178
|
#: tabby-core/src/services/profiles.service.ts:178
|
||||||
@@ -375,7 +375,7 @@ msgstr "正在連線到 \"%s\"..."
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:17
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:17
|
||||||
msgid "Connect to a different host first and use it as a proxy"
|
msgid "Connect to a different host first and use it as a proxy"
|
||||||
msgstr "先連線到其它主機並將其作為代理伺服器"
|
msgstr "首先連接到其他主機並將其用作代理"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:19
|
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:19
|
||||||
#: tabby-serial/src/components/serialTab.component.ts:66
|
#: tabby-serial/src/components/serialTab.component.ts:66
|
||||||
@@ -386,7 +386,7 @@ msgstr "正在連線"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:7
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:7
|
||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "連線"
|
msgstr "連接"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:30
|
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:30
|
||||||
msgid "Connection failed: {error}"
|
msgid "Connection failed: {error}"
|
||||||
@@ -394,7 +394,7 @@ msgstr "連線失敗: {error}"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:42
|
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:42
|
||||||
msgid "Connection name will be used instead"
|
msgid "Connection name will be used instead"
|
||||||
msgstr "連線名稱將被使用"
|
msgstr "將改用連接名替换"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:61
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:61
|
||||||
msgid "Context menu"
|
msgid "Context menu"
|
||||||
@@ -419,7 +419,7 @@ msgstr "複製目前路徑"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||||
msgid "Copy full path"
|
msgid "Copy full path"
|
||||||
msgstr "複製完整路徑"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||||
msgid "Copy on select"
|
msgid "Copy on select"
|
||||||
@@ -439,7 +439,7 @@ msgstr "無法解密設定檔"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sftpCreateDirectoryModal.component.html:9
|
#: locale/tmp-html/tabby-ssh/src/components/sftpCreateDirectoryModal.component.html:9
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "建立"
|
msgstr "創建"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:7
|
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:7
|
||||||
#: tabby-ssh/src/sftpContextMenu.ts:29
|
#: tabby-ssh/src/sftpContextMenu.ts:29
|
||||||
@@ -537,19 +537,19 @@ msgstr "刪除整行"
|
|||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:46
|
#: tabby-terminal/src/hotkeys.ts:46
|
||||||
msgid "Delete next word"
|
msgid "Delete next word"
|
||||||
msgstr "刪除下一個單字"
|
msgstr "刪除后一個單字"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:38
|
#: tabby-terminal/src/hotkeys.ts:38
|
||||||
msgid "Delete previous word"
|
msgid "Delete previous word"
|
||||||
msgstr "刪除上一個單字"
|
msgstr "刪除前一個單字"
|
||||||
|
|
||||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||||
msgid "Delete the config on the remote side?"
|
msgid "Delete the config on the remote side?"
|
||||||
msgstr "是否刪除遠端設定檔?"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
#: tabby-settings/src/components/profilesSettingsTab.component.ts:214
|
||||||
msgid "Delete the group's profiles?"
|
msgid "Delete the group's profiles?"
|
||||||
msgstr "是否刪除群組内所有設定檔?"
|
msgstr "是否刪除組内所有設定檔?"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/loginScriptsSettings.component.ts:29
|
#: tabby-terminal/src/components/loginScriptsSettings.component.ts:29
|
||||||
msgid "Delete this script?"
|
msgid "Delete this script?"
|
||||||
@@ -557,7 +557,7 @@ msgstr "刪除此腳本?"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:47
|
#: tabby-settings/src/components/vaultSettingsTab.component.ts:47
|
||||||
msgid "Delete vault contents?"
|
msgid "Delete vault contents?"
|
||||||
msgstr "删除金鑰庫中的所有內容?"
|
msgstr "删除保險箱中的所有內容?"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sftpDeleteModal.component.html:3
|
#: locale/tmp-html/tabby-ssh/src/components/sftpDeleteModal.component.html:3
|
||||||
msgid "Deleting"
|
msgid "Deleting"
|
||||||
@@ -581,7 +581,7 @@ msgstr "停用動態分頁標題"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:229
|
||||||
msgid "Disable fluent background while dragging"
|
msgid "Disable fluent background while dragging"
|
||||||
msgstr "拖曳時停用 fluent 背景"
|
msgstr "拖動時禁用 fluent 背景"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:215
|
||||||
msgid "Disable GPU acceleration"
|
msgid "Disable GPU acceleration"
|
||||||
@@ -600,11 +600,11 @@ msgstr "中斷連線"
|
|||||||
#: tabby-ssh/src/components/sshTab.component.ts:244
|
#: tabby-ssh/src/components/sshTab.component.ts:244
|
||||||
#: tabby-telnet/src/components/telnetTab.component.ts:113
|
#: tabby-telnet/src/components/telnetTab.component.ts:113
|
||||||
msgid "Disconnect from {host}?"
|
msgid "Disconnect from {host}?"
|
||||||
msgstr "與 {host} 中斷連線嗎?"
|
msgstr "與 {host} 斷開連接嗎?"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:30
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:30
|
||||||
msgid "Display images via Sixel escape sequences"
|
msgid "Display images via Sixel escape sequences"
|
||||||
msgstr "透過Sixel跳脫序列顯示圖片"
|
msgstr "通過六像素轉義序列顯示圖像"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:88
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:88
|
||||||
msgid "Display on"
|
msgid "Display on"
|
||||||
@@ -646,11 +646,11 @@ msgstr "貼齊"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:75
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:75
|
||||||
msgid "Double-click selection will stop at these characters"
|
msgid "Double-click selection will stop at these characters"
|
||||||
msgstr "點兩下選擇將停在該字元處"
|
msgstr "双击选择将在这些字符处停止"
|
||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:79
|
#: tabby-core/src/tabContextMenu.ts:79
|
||||||
msgid "Down"
|
msgid "Down"
|
||||||
msgstr "下方"
|
msgstr "下面"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:47
|
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:47
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
@@ -679,7 +679,7 @@ msgstr "編輯"
|
|||||||
|
|
||||||
#: tabby-electron/src/sftpContextMenu.ts:35
|
#: tabby-electron/src/sftpContextMenu.ts:35
|
||||||
msgid "Edit locally"
|
msgid "Edit locally"
|
||||||
msgstr "在本機編輯"
|
msgstr "在本地編輯"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:62
|
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:62
|
||||||
msgid "Enable"
|
msgid "Enable"
|
||||||
@@ -700,7 +700,7 @@ msgstr "啟用當有新的版本可使用時自動安裝更新"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:222
|
||||||
msgid "Enable fluent background option"
|
msgid "Enable fluent background option"
|
||||||
msgstr "啟用 fluent 背景"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||||
msgid "Enable font ligatures"
|
msgid "Enable font ligatures"
|
||||||
@@ -708,7 +708,7 @@ msgstr "啟用合字"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:26
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:26
|
||||||
msgid "Enable global hotkey (Ctrl-Space)"
|
msgid "Enable global hotkey (Ctrl-Space)"
|
||||||
msgstr "啟用全域快速鍵 (Ctrl+Space)"
|
msgstr "啟用全域快捷鍵 (Ctrl+Space)"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:6
|
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:6
|
||||||
msgid "Enables the experimental Windows ConPTY API"
|
msgid "Enables the experimental Windows ConPTY API"
|
||||||
@@ -749,7 +749,7 @@ msgstr "範例:"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:223
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:223
|
||||||
msgid "Experimental Windows 10 background style known to cause issues"
|
msgid "Experimental Windows 10 background style known to cause issues"
|
||||||
msgstr "已知會導致問題的實驗性Windows 10背景樣式"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:27
|
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:27
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
@@ -757,7 +757,7 @@ msgstr "匯出"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:81
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:81
|
||||||
msgid "Fallback font"
|
msgid "Fallback font"
|
||||||
msgstr "備用字型"
|
msgstr "後援字型"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/transfersMenu.component.html:3
|
#: locale/tmp-html/tabby-core/src/components/transfersMenu.component.html:3
|
||||||
msgid "File transfers"
|
msgid "File transfers"
|
||||||
@@ -773,11 +773,11 @@ msgstr "篩選器"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:157
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:157
|
||||||
msgid "Fixed"
|
msgid "Fixed"
|
||||||
msgstr "固定寬度"
|
msgstr "已修正"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:230
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:230
|
||||||
msgid "Fluent background sometimes causes drag lag"
|
msgid "Fluent background sometimes causes drag lag"
|
||||||
msgstr "Fluent 背景有時會導致拖曳延遲"
|
msgstr "Fluent 背景有時會導致拖滯"
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:78
|
#: tabby-terminal/src/tabContextMenu.ts:78
|
||||||
msgid "Focus all panes"
|
msgid "Focus all panes"
|
||||||
@@ -793,7 +793,7 @@ msgstr "聚焦所有分頁"
|
|||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:82
|
#: tabby-terminal/src/hotkeys.ts:82
|
||||||
msgid "Focus all tabs at once (broadcast)"
|
msgid "Focus all tabs at once (broadcast)"
|
||||||
msgstr "同時聚焦所有分頁 (廣播)"
|
msgstr "同時聚焦所有標籤頁 (廣播)"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:207
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:207
|
||||||
msgid "Focus follows mouse"
|
msgid "Focus follows mouse"
|
||||||
@@ -841,7 +841,7 @@ msgstr "字型"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:201
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:201
|
||||||
msgid "For keyboard shortcuts"
|
msgid "For keyboard shortcuts"
|
||||||
msgstr "對於鍵盤快速鍵"
|
msgstr "對於鍵盤快捷鍵"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:51
|
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:51
|
||||||
msgid "Force CR"
|
msgid "Force CR"
|
||||||
@@ -857,7 +857,7 @@ msgstr "強制使用 LF"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
||||||
msgid "Forces a specific SSH agent connection type."
|
msgid "Forces a specific SSH agent connection type."
|
||||||
msgstr "強制 SSH使用特定的連線類型"
|
msgstr "強制 SSH使用特定的連接類型"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:105
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:105
|
||||||
msgid "Forget"
|
msgid "Forget"
|
||||||
@@ -865,11 +865,11 @@ msgstr "清除"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:58
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:58
|
||||||
msgid "Forward port"
|
msgid "Forward port"
|
||||||
msgstr "通訊埠轉發"
|
msgstr "轉發埠"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingModal.component.html:3
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingModal.component.html:3
|
||||||
msgid "Forwarded ports"
|
msgid "Forwarded ports"
|
||||||
msgstr "已轉發通訊埠"
|
msgstr "已轉發埠"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:47
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:47
|
||||||
msgid "From color scheme"
|
msgid "From color scheme"
|
||||||
@@ -877,7 +877,7 @@ msgstr "從配色方案"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||||
msgid "From theme"
|
msgid "From theme"
|
||||||
msgstr "從佈景風格"
|
msgstr "從佈景主題"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:6
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:6
|
||||||
msgid "Frontend"
|
msgid "Frontend"
|
||||||
@@ -895,7 +895,7 @@ msgstr "一般設定"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:21
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:21
|
||||||
msgid "Generate a pre-filled GitHub issue"
|
msgid "Generate a pre-filled GitHub issue"
|
||||||
msgstr "產成一個預填寫的 GitHub 問題"
|
msgstr "生成一個預填寫的 GitHub 問題"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:27
|
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:27
|
||||||
msgid "Get"
|
msgid "Get"
|
||||||
@@ -907,7 +907,7 @@ msgstr "從 Tabby 網頁設定窗口獲取"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:22
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:22
|
||||||
msgid "Gives the window a blurred transparent background"
|
msgid "Gives the window a blurred transparent background"
|
||||||
msgstr "使視窗具有模糊透明的背景"
|
msgstr "使窗口具有模糊透明的背景"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:24
|
||||||
msgid "Go up"
|
msgid "Go up"
|
||||||
@@ -923,11 +923,11 @@ msgstr "群組"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:212
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:212
|
||||||
msgid "Hacks"
|
msgid "Hacks"
|
||||||
msgstr "修正"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:20
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:20
|
||||||
msgid "Help track the number of Tabby installs across the world!"
|
msgid "Help track the number of Tabby installs across the world!"
|
||||||
msgstr "協助追蹤 Tabby 在全球的安裝數量!"
|
msgstr "幫助追踪 Tabby 在全球的安裝數量!"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:50
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:50
|
||||||
msgid "Help translate Tabby"
|
msgid "Help translate Tabby"
|
||||||
@@ -969,7 +969,7 @@ msgstr "主機"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:206
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:206
|
||||||
msgid "Host key"
|
msgid "Host key"
|
||||||
msgstr "快速鍵"
|
msgstr "快捷鍵"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:3
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:3
|
||||||
msgid "Host key verification"
|
msgid "Host key verification"
|
||||||
@@ -978,11 +978,11 @@ msgstr "主機金鑰驗證"
|
|||||||
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
||||||
#: tabby-settings/src/settings.ts:15
|
#: tabby-settings/src/settings.ts:15
|
||||||
msgid "Hotkeys"
|
msgid "Hotkeys"
|
||||||
msgstr "快速鍵"
|
msgstr "快捷鍵"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:71
|
||||||
msgid "How Tabby presents itself through environment vars"
|
msgid "How Tabby presents itself through environment vars"
|
||||||
msgstr "Tabby 如何透過環境變數呈現"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||||
msgid "HTTP proxy"
|
msgid "HTTP proxy"
|
||||||
@@ -990,11 +990,11 @@ msgstr "HTTP 代理伺服器"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:61
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:61
|
||||||
msgid "HTTP proxy host"
|
msgid "HTTP proxy host"
|
||||||
msgstr "HTTP 代理主機位址"
|
msgstr "HTTP 代理地址"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:65
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:65
|
||||||
msgid "HTTP proxy port"
|
msgid "HTTP proxy port"
|
||||||
msgstr "HTTP 代理通訊埠"
|
msgstr "HTTP 代理連接埠"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:20
|
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:20
|
||||||
msgid "Icon"
|
msgid "Icon"
|
||||||
@@ -1002,7 +1002,7 @@ msgstr "圖示"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:154
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:154
|
||||||
msgid "id.tab-width.dynamic"
|
msgid "id.tab-width.dynamic"
|
||||||
msgstr "動態調整"
|
msgstr "動態"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:64
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:64
|
||||||
msgid "If disabled, only custom profiles will show up in the profile selector"
|
msgid "If disabled, only custom profiles will show up in the profile selector"
|
||||||
@@ -1022,7 +1022,7 @@ msgstr "增加垂直分割大小"
|
|||||||
|
|
||||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||||
msgid "Input is sent as you type"
|
msgid "Input is sent as you type"
|
||||||
msgstr "輸入在您鍵入時傳送"
|
msgstr "輸入在您鍵入時發送"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:4
|
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:4
|
||||||
msgid "Input mode"
|
msgid "Input mode"
|
||||||
@@ -1038,7 +1038,7 @@ msgstr "已安裝"
|
|||||||
|
|
||||||
#: tabby-electron/src/services/updater.service.ts:131
|
#: tabby-electron/src/services/updater.service.ts:131
|
||||||
msgid "Installing the update will close all tabs and restart Tabby."
|
msgid "Installing the update will close all tabs and restart Tabby."
|
||||||
msgstr "安裝更新將關閉所有分頁並重新啟動 Tabby。"
|
msgstr "安裝更新將關閉所有分頁並重啟 Tabby。"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:66
|
#: tabby-terminal/src/hotkeys.ts:66
|
||||||
msgid "Intelligent Ctrl-C (copy/abort)"
|
msgid "Intelligent Ctrl-C (copy/abort)"
|
||||||
@@ -1076,7 +1076,7 @@ msgstr "維持現狀"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:154
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:154
|
||||||
msgid "Keep Alive Interval (Milliseconds)"
|
msgid "Keep Alive Interval (Milliseconds)"
|
||||||
msgstr "Keep-Alive 間隔(毫秒)"
|
msgstr "Keep-Alive 區間(毫秒)"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:103
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:103
|
||||||
msgid "Keep docked terminal always on top"
|
msgid "Keep docked terminal always on top"
|
||||||
@@ -1128,11 +1128,11 @@ msgstr "得知如何讓 Tabby 偵測遠端工作目錄"
|
|||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:76
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:76
|
||||||
#: tabby-core/src/tabContextMenu.ts:80
|
#: tabby-core/src/tabContextMenu.ts:80
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "左側"
|
msgstr "左端"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:40
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:40
|
||||||
msgid "Lets the shell handle Meta key instead of OS"
|
msgid "Lets the shell handle Meta key instead of OS"
|
||||||
msgstr "使用 Shell 替代作業系統處理 Meta 鍵"
|
msgstr "使用 Shell 替代操作系統處理 Meta 鍵"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||||
msgid "Line by line"
|
msgid "Line by line"
|
||||||
@@ -1140,7 +1140,7 @@ msgstr "逐行"
|
|||||||
|
|
||||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:28
|
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:28
|
||||||
msgid "Line editor, input is sent after you press Enter"
|
msgid "Line editor, input is sent after you press Enter"
|
||||||
msgstr "行編輯器,按Enter後傳送輸入"
|
msgstr "行編輯器,按回車後發送輸入"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:88
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:88
|
||||||
msgid "Line padding"
|
msgid "Line padding"
|
||||||
@@ -1187,7 +1187,7 @@ msgstr "最大 Keep-Alive 次數"
|
|||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:173
|
#: tabby-core/src/hotkeys.ts:173
|
||||||
msgid "Maximize the active pane"
|
msgid "Maximize the active pane"
|
||||||
msgstr "最大化目前窗格"
|
msgstr "最大化當前窗格"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:75
|
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:75
|
||||||
msgid "Minimum contrast ratio"
|
msgid "Minimum contrast ratio"
|
||||||
@@ -1215,7 +1215,7 @@ msgstr "移至未分類"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:208
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:208
|
||||||
msgid "Moving the mouse over an inactive pane will cause it to activate"
|
msgid "Moving the mouse over an inactive pane will cause it to activate"
|
||||||
msgstr "自動聚焦於滑鼠游標所在的窗格"
|
msgstr "將鼠標移到非活動窗格上將使其激活"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:12
|
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:12
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:14
|
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:14
|
||||||
@@ -1419,7 +1419,7 @@ msgstr "覆寫本機設定檔並開始同步?"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:200
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:200
|
||||||
msgid "Pane resize step"
|
msgid "Pane resize step"
|
||||||
msgstr "窗格大小調整級距"
|
msgstr "窗格大小調整階梯"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:197
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:197
|
||||||
msgid "Panes"
|
msgid "Panes"
|
||||||
@@ -1454,7 +1454,7 @@ msgstr "從剪貼簿貼上"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:63
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:63
|
||||||
msgid "Paste if no selection, else copy"
|
msgid "Paste if no selection, else copy"
|
||||||
msgstr "未選擇內容時貼上,否則複製"
|
msgstr "未選擇內容時粘貼,否則復制"
|
||||||
|
|
||||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:484
|
#: tabby-terminal/src/api/baseTerminalTab.component.ts:484
|
||||||
msgid "Paste multiple lines?"
|
msgid "Paste multiple lines?"
|
||||||
@@ -1466,7 +1466,7 @@ msgstr "按滑鼠中鍵時貼上"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:43
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:43
|
||||||
msgid "Path or address of the local X11 socket"
|
msgid "Path or address of the local X11 socket"
|
||||||
msgstr "本機 X11 socket 的路徑或位址"
|
msgstr "本地 X11 socket 的路徑或地址"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalToolbar.component.html:4
|
#: locale/tmp-html/tabby-terminal/src/components/terminalToolbar.component.html:4
|
||||||
msgid "Pin"
|
msgid "Pin"
|
||||||
@@ -1483,26 +1483,26 @@ msgstr "擴充功能資料夾"
|
|||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:38
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:38
|
||||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:10
|
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:10
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "通訊埠"
|
msgstr "埠"
|
||||||
|
|
||||||
#: tabby-serial/src/components/serialTab.component.ts:71
|
#: tabby-serial/src/components/serialTab.component.ts:71
|
||||||
msgid "Port opened"
|
msgid "Port opened"
|
||||||
msgstr "通訊埠已打開"
|
msgstr "端口已打開"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:119
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:119
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:12
|
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:12
|
||||||
msgid "Ports"
|
msgid "Ports"
|
||||||
msgstr "通訊埠"
|
msgstr "埠"
|
||||||
|
|
||||||
#: tabby-serial/src/components/serialTab.component.ts:86
|
#: tabby-serial/src/components/serialTab.component.ts:86
|
||||||
#: tabby-ssh/src/components/sshTab.component.ts:169
|
#: tabby-ssh/src/components/sshTab.component.ts:169
|
||||||
#: tabby-telnet/src/components/telnetTab.component.ts:53
|
#: tabby-telnet/src/components/telnetTab.component.ts:53
|
||||||
msgid "Press any key to reconnect"
|
msgid "Press any key to reconnect"
|
||||||
msgstr "按下任意鍵以重新連線"
|
msgstr "按下任意鍵以重新連接"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/hotkeyInputModal.component.html:3
|
#: locale/tmp-html/tabby-settings/src/components/hotkeyInputModal.component.html:3
|
||||||
msgid "Press the key now"
|
msgid "Press the key now"
|
||||||
msgstr "現在按下按鍵"
|
msgstr "點擊按鍵"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
||||||
msgid "Prevents accidental closing"
|
msgid "Prevents accidental closing"
|
||||||
@@ -1608,7 +1608,7 @@ msgstr "遠端"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
||||||
msgid "Remove whitespace and newlines around the copied text"
|
msgid "Remove whitespace and newlines around the copied text"
|
||||||
msgstr "刪除複製文字周圍的空格和換行"
|
msgstr "刪除複製文本周圍的空格和換行"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||||
#: tabby-core/src/tabContextMenu.ts:120
|
#: tabby-core/src/tabContextMenu.ts:120
|
||||||
@@ -1622,7 +1622,7 @@ msgstr "重新命名分頁"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:3
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:3
|
||||||
msgid "Rendering"
|
msgid "Rendering"
|
||||||
msgstr "彩現"
|
msgstr "渲染"
|
||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:33
|
#: tabby-core/src/hotkeys.ts:33
|
||||||
msgid "Reopen last tab"
|
msgid "Reopen last tab"
|
||||||
@@ -1640,7 +1640,7 @@ msgstr "回報問題"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:81
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:81
|
||||||
msgid "Require a key to click links"
|
msgid "Require a key to click links"
|
||||||
msgstr "需要按鍵以打開連結"
|
msgstr "需要按鍵以打開鏈接"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:62
|
#: tabby-terminal/src/hotkeys.ts:62
|
||||||
msgid "Reset zoom"
|
msgid "Reset zoom"
|
||||||
@@ -1660,11 +1660,11 @@ msgstr "重啟目前的 Telnet 階段"
|
|||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:65
|
#: tabby-core/src/hotkeys.ts:65
|
||||||
msgid "Restart tab"
|
msgid "Restart tab"
|
||||||
msgstr "重新啟動分頁"
|
msgstr "重新啟動標籤頁"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:134
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:134
|
||||||
msgid "Restart the app to apply changes"
|
msgid "Restart the app to apply changes"
|
||||||
msgstr "重新啟動應用程式以套用變更"
|
msgstr "重啟應用程式以套用變更"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:162
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:162
|
||||||
msgid "Restore terminal tabs on app start"
|
msgid "Restore terminal tabs on app start"
|
||||||
@@ -1678,11 +1678,11 @@ msgstr "回復多個分頁的狀態"
|
|||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:79
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:79
|
||||||
#: tabby-core/src/tabContextMenu.ts:78
|
#: tabby-core/src/tabContextMenu.ts:78
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "右側"
|
msgstr "右端"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:56
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:56
|
||||||
msgid "Right click"
|
msgid "Right click"
|
||||||
msgstr "按下滑鼠右鍵"
|
msgstr "右鍵點擊"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/localProfileSettings.component.html:5
|
#: locale/tmp-html/tabby-local/src/components/localProfileSettings.component.html:5
|
||||||
msgid "Run as administrator"
|
msgid "Run as administrator"
|
||||||
@@ -1720,31 +1720,31 @@ msgstr "已儲存排版"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:46
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:46
|
||||||
msgid "Scroll on input"
|
msgid "Scroll on input"
|
||||||
msgstr "輸入時自動捲動至底部"
|
msgstr "輸入時自動滾動至底部"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:94
|
#: tabby-terminal/src/hotkeys.ts:94
|
||||||
msgid "Scroll terminal one page down"
|
msgid "Scroll terminal one page down"
|
||||||
msgstr "終端機向下捲動一頁"
|
msgstr "滾動到終端機下一頁"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:90
|
#: tabby-terminal/src/hotkeys.ts:90
|
||||||
msgid "Scroll terminal one page up"
|
msgid "Scroll terminal one page up"
|
||||||
msgstr "終端機向上捲動一頁"
|
msgstr "滾動到終端機上一頁"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:98
|
#: tabby-terminal/src/hotkeys.ts:98
|
||||||
msgid "Scroll terminal to bottom"
|
msgid "Scroll terminal to bottom"
|
||||||
msgstr "捲動到終端機底部"
|
msgstr "滾動到終端機底部"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:86
|
#: tabby-terminal/src/hotkeys.ts:86
|
||||||
msgid "Scroll terminal to top"
|
msgid "Scroll terminal to top"
|
||||||
msgstr "捲動到終端機頂部"
|
msgstr "滾動到終端機頂部"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:16
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:16
|
||||||
msgid "Scrollback"
|
msgid "Scrollback"
|
||||||
msgstr "回捲"
|
msgstr "回滾"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
||||||
msgid "Scrolls the terminal to the bottom on user input"
|
msgid "Scrolls the terminal to the bottom on user input"
|
||||||
msgstr "在用戶輸入時將終端捲動到底部"
|
msgstr "在用戶輸入時將終端滾動到底部"
|
||||||
|
|
||||||
#: tabby-terminal/src/hotkeys.ts:74
|
#: tabby-terminal/src/hotkeys.ts:74
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
@@ -1757,7 +1757,7 @@ msgstr "搜尋配色方案"
|
|||||||
|
|
||||||
#: tabby-settings/src/components/hotkeySettingsTab.component.ts:12
|
#: tabby-settings/src/components/hotkeySettingsTab.component.ts:12
|
||||||
msgid "Search hotkeys"
|
msgid "Search hotkeys"
|
||||||
msgstr "搜尋快速鍵"
|
msgstr "搜尋快捷鍵"
|
||||||
|
|
||||||
#: tabby-plugin-manager/src/components/pluginsSettingsTab.component.ts:14
|
#: tabby-plugin-manager/src/components/pluginsSettingsTab.component.ts:14
|
||||||
msgid "Search plugins"
|
msgid "Search plugins"
|
||||||
@@ -1790,7 +1790,7 @@ msgstr "選擇設定檔"
|
|||||||
|
|
||||||
#: tabby-core/src/services/profiles.service.ts:186
|
#: tabby-core/src/services/profiles.service.ts:186
|
||||||
msgid "Select profile or enter an address"
|
msgid "Select profile or enter an address"
|
||||||
msgstr "選擇設定檔或輸入位址"
|
msgstr "選擇設定檔或輸入位置"
|
||||||
|
|
||||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:33
|
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:33
|
||||||
msgid "Send bytes by typing in hex values"
|
msgid "Send bytes by typing in hex values"
|
||||||
@@ -1798,7 +1798,7 @@ msgstr "傳輸以十六進位輸入的位元組"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:75
|
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:75
|
||||||
msgid "Sends data one byte at a time"
|
msgid "Sends data one byte at a time"
|
||||||
msgstr "資料每次只傳送一個位元組"
|
msgstr "每次傳送單字節資料"
|
||||||
|
|
||||||
#: tabby-serial/src/profiles.ts:14
|
#: tabby-serial/src/profiles.ts:14
|
||||||
#: tabby-serial/src/profiles.ts:72
|
#: tabby-serial/src/profiles.ts:72
|
||||||
@@ -1808,7 +1808,7 @@ msgstr "序列"
|
|||||||
#: tabby-serial/src/profiles.ts:51
|
#: tabby-serial/src/profiles.ts:51
|
||||||
#: tabby-serial/src/profiles.ts:62
|
#: tabby-serial/src/profiles.ts:62
|
||||||
msgid "Serial connection"
|
msgid "Serial connection"
|
||||||
msgstr "序列埠連線"
|
msgstr "序列連接"
|
||||||
|
|
||||||
#: tabby-serial/src/profiles.ts:71
|
#: tabby-serial/src/profiles.ts:71
|
||||||
msgid "Serial: {description}"
|
msgid "Serial: {description}"
|
||||||
@@ -1837,7 +1837,7 @@ msgstr "設為 0 時停用顯示最近的設定檔"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:36
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:36
|
||||||
msgid "Sets the SSH agent's named pipe path."
|
msgid "Sets the SSH agent's named pipe path."
|
||||||
msgstr "設定 SSH 代理的命名管道路徑"
|
msgstr ""
|
||||||
|
|
||||||
#: tabby-settings/src/buttonProvider.ts:28
|
#: tabby-settings/src/buttonProvider.ts:28
|
||||||
#: tabby-settings/src/components/settingsTab.component.ts:58
|
#: tabby-settings/src/components/settingsTab.component.ts:58
|
||||||
@@ -1858,7 +1858,7 @@ msgstr "Shell 整合"
|
|||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:276
|
#: tabby-core/src/hotkeys.ts:276
|
||||||
msgid "Show {type} profile selector"
|
msgid "Show {type} profile selector"
|
||||||
msgstr "顯示 {type} 設定檔選擇器"
|
msgstr "顯示 {type} 配置選擇器"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
||||||
msgid "Show a confirmation box when pasting multiple lines"
|
msgid "Show a confirmation box when pasting multiple lines"
|
||||||
@@ -1870,7 +1870,7 @@ msgstr "在選擇器中顯示內建設定"
|
|||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:13
|
#: tabby-core/src/hotkeys.ts:13
|
||||||
msgid "Show command selector"
|
msgid "Show command selector"
|
||||||
msgstr "顯示指令選擇器"
|
msgstr "顯示命令選擇器"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:126
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:126
|
||||||
msgid "Show config file"
|
msgid "Show config file"
|
||||||
@@ -1890,7 +1890,7 @@ msgstr "顯示窗格標籤(重新排列時)"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:175
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:175
|
||||||
msgid "Show profile icon on tab"
|
msgid "Show profile icon on tab"
|
||||||
msgstr "在分頁上顯示設定檔圖示"
|
msgstr "在標籤頁上顯示設定檔圖示"
|
||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:17
|
#: tabby-core/src/hotkeys.ts:17
|
||||||
msgid "Show profile selector"
|
msgid "Show profile selector"
|
||||||
@@ -1910,7 +1910,7 @@ msgstr "顯示序列連線"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:163
|
||||||
msgid "Show tabs in fullscreen mode"
|
msgid "Show tabs in fullscreen mode"
|
||||||
msgstr "在全螢幕下顯示分頁"
|
msgstr "全屏模式下显示标签栏"
|
||||||
|
|
||||||
#: tabby-terminal/src/tabContextMenu.ts:58
|
#: tabby-terminal/src/tabContextMenu.ts:58
|
||||||
msgid "Show toolbar"
|
msgid "Show toolbar"
|
||||||
@@ -1922,7 +1922,7 @@ msgstr "顯示金鑰庫的內容"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:29
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:29
|
||||||
msgid "Sixel graphics support (experimental)"
|
msgid "Sixel graphics support (experimental)"
|
||||||
msgstr "(實驗性) Sixel圖形支援"
|
msgstr "(實驗性)Sixel圖像支持"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:140
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:140
|
||||||
msgid "Skip MoTD/banner"
|
msgid "Skip MoTD/banner"
|
||||||
@@ -1953,7 +1953,7 @@ msgstr "SOCKS 代理埠"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:130
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:130
|
||||||
msgid "Sound"
|
msgid "Sound"
|
||||||
msgstr "音效"
|
msgstr "聲音"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:31
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:31
|
||||||
msgid "Source code"
|
msgid "Source code"
|
||||||
@@ -1961,11 +1961,11 @@ msgstr "原始碼"
|
|||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:75
|
#: tabby-core/src/tabContextMenu.ts:75
|
||||||
msgid "Split"
|
msgid "Split"
|
||||||
msgstr "新增分割視窗於"
|
msgstr "分割"
|
||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:161
|
#: tabby-core/src/hotkeys.ts:161
|
||||||
msgid "Split to the bottom"
|
msgid "Split to the bottom"
|
||||||
msgstr "分離至底部"
|
msgstr "分離至下方"
|
||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:85
|
#: tabby-core/src/tabContextMenu.ts:85
|
||||||
msgid "Split to the down"
|
msgid "Split to the down"
|
||||||
@@ -1995,7 +1995,7 @@ msgstr "SSH 連線"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:53
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:53
|
||||||
msgid "SSH connection management is now done through the \"Profiles & connections\" tab"
|
msgid "SSH connection management is now done through the \"Profiles & connections\" tab"
|
||||||
msgstr "SSH連線管理現在位於「設定檔與連線」分頁下"
|
msgstr "SSH連接管理現在位於「設定檔與連線」分頁下"
|
||||||
|
|
||||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:84
|
#: tabby-settings/src/components/vaultSettingsTab.component.ts:84
|
||||||
msgid "SSH password for {user}@{host}:{port}"
|
msgid "SSH password for {user}@{host}:{port}"
|
||||||
@@ -2023,7 +2023,7 @@ msgstr "訂閱更新"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:17
|
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:17
|
||||||
msgid "Substitutions allowed."
|
msgid "Substitutions allowed."
|
||||||
msgstr "允許替換"
|
msgstr "予許替換"
|
||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:290
|
#: tabby-core/src/tabContextMenu.ts:290
|
||||||
msgid "Switch profile"
|
msgid "Switch profile"
|
||||||
@@ -2031,7 +2031,7 @@ msgstr "切換設定檔"
|
|||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:237
|
#: tabby-core/src/hotkeys.ts:237
|
||||||
msgid "Switch profile in the active pane"
|
msgid "Switch profile in the active pane"
|
||||||
msgstr "切換活動中分頁的設定檔"
|
msgstr "分頁設定檔"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:7
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:7
|
||||||
msgid "Switches terminal frontend implementation (experimental)"
|
msgid "Switches terminal frontend implementation (experimental)"
|
||||||
@@ -2051,7 +2051,7 @@ msgstr "同步主機"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:72
|
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:72
|
||||||
msgid "Sync hotkeys"
|
msgid "Sync hotkeys"
|
||||||
msgstr "同步快速鍵"
|
msgstr "同步快捷鍵"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:84
|
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:84
|
||||||
msgid "Sync Vault"
|
msgid "Sync Vault"
|
||||||
@@ -2090,7 +2090,7 @@ msgstr "分頁活動"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/safeModeModal.component.html:3
|
#: locale/tmp-html/tabby-core/src/components/safeModeModal.component.html:3
|
||||||
msgid "Tabby could not start with your plugins, so all third party plugins have been disabled in this session. The error was:"
|
msgid "Tabby could not start with your plugins, so all third party plugins have been disabled in this session. The error was:"
|
||||||
msgstr "Tabby無法載入您的擴充套件,所以在所有第三方擴充套件已被停用。錯誤是:"
|
msgstr "Tabby無法以您的插件啟動,所以在所有第三方插件已被停用。錯誤是:"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:41
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:41
|
||||||
msgid "Tabby news and updates on Twitter"
|
msgid "Tabby news and updates on Twitter"
|
||||||
@@ -2127,7 +2127,7 @@ msgstr "終端鈴聲"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:70
|
||||||
msgid "Terminal identification"
|
msgid "Terminal identification"
|
||||||
msgstr "終端標示"
|
msgstr ""
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||||
msgid "Thank you for downloading Tabby!"
|
msgid "Thank you for downloading Tabby!"
|
||||||
@@ -2135,7 +2135,7 @@ msgstr "感謝您下載 Tabby!"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:5
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:5
|
||||||
msgid "Theme"
|
msgid "Theme"
|
||||||
msgstr "風格"
|
msgstr "主題"
|
||||||
|
|
||||||
#: tabby-core/src/components/transfersMenu.component.ts:47
|
#: tabby-core/src/components/transfersMenu.component.ts:47
|
||||||
msgid "There are active file transfers"
|
msgid "There are active file transfers"
|
||||||
@@ -2143,7 +2143,7 @@ msgstr "正在進行檔案傳輸"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||||
msgid "There is a saved password for this connection"
|
msgid "There is a saved password for this connection"
|
||||||
msgstr "此次連線可使用已儲存密碼"
|
msgstr "此次連接可使用已儲存密碼"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:81
|
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:81
|
||||||
msgid "These apply to all profiles of a given type"
|
msgid "These apply to all profiles of a given type"
|
||||||
@@ -2155,11 +2155,11 @@ msgstr "窄邊"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:216
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:216
|
||||||
msgid "Tick this if you're experiencing aliasing, ghosting or other visual issues"
|
msgid "Tick this if you're experiencing aliasing, ghosting or other visual issues"
|
||||||
msgstr "如果您看到鋸齒或鬼影,請勾選此選項"
|
msgstr "如果您看到鋸齒或鬼影,請勾選此方格"
|
||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:21
|
#: tabby-core/src/hotkeys.ts:21
|
||||||
msgid "Toggle fullscreen mode"
|
msgid "Toggle fullscreen mode"
|
||||||
msgstr "全螢幕模式切換"
|
msgstr "切換至全螢幕模式"
|
||||||
|
|
||||||
#: tabby-core/src/hotkeys.ts:37
|
#: tabby-core/src/hotkeys.ts:37
|
||||||
msgid "Toggle last tab"
|
msgid "Toggle last tab"
|
||||||
@@ -2176,7 +2176,7 @@ msgstr "切換Tabby視窗的可見度"
|
|||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:135
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:135
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:73
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:73
|
||||||
msgid "Top"
|
msgid "Top"
|
||||||
msgstr "頂部"
|
msgstr "頂端"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:123
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:123
|
||||||
msgid "Trim whitespace and newlines"
|
msgid "Trim whitespace and newlines"
|
||||||
@@ -2216,7 +2216,7 @@ msgstr "取消釘選"
|
|||||||
|
|
||||||
#: tabby-core/src/tabContextMenu.ts:81
|
#: tabby-core/src/tabContextMenu.ts:81
|
||||||
msgid "Up"
|
msgid "Up"
|
||||||
msgstr "上方"
|
msgstr "上"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:14
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:14
|
||||||
#: tabby-electron/src/services/updater.service.ts:133
|
#: tabby-electron/src/services/updater.service.ts:133
|
||||||
@@ -2288,7 +2288,7 @@ msgstr "須設定Vault的主密碼以存儲密鑰"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:11
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:11
|
||||||
msgid "Verify host keys when connecting"
|
msgid "Verify host keys when connecting"
|
||||||
msgstr "連線時驗證主機金鑰"
|
msgstr "當連線時檢驗主機密鑰"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:79
|
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:79
|
||||||
msgid "Version"
|
msgid "Version"
|
||||||
@@ -2312,11 +2312,11 @@ msgstr "貼上多行時警告"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
||||||
msgid "Warn when closing active connections"
|
msgid "Warn when closing active connections"
|
||||||
msgstr "關閉連線中的視窗時警告"
|
msgstr "關閉當前連接是警告"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
||||||
msgid "Warning: remote host's key has suddenly changed!"
|
msgid "Warning: remote host's key has suddenly changed!"
|
||||||
msgstr "警告:遠端主機金鑰突然改變!"
|
msgstr "警告:遠程主機金鑰突然改變!"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:67
|
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:67
|
||||||
msgid "We're only tracking your Tabby and OS versions."
|
msgid "We're only tracking your Tabby and OS versions."
|
||||||
@@ -2332,7 +2332,7 @@ msgstr "最新消息"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||||
msgid "When enabled, links are only clickable while holding this key"
|
msgid "When enabled, links are only clickable while holding this key"
|
||||||
msgstr "啟用後,需按著此鍵才可打開連結"
|
msgstr "啟用後,需按著此鍵才可打開鏈接"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:18
|
#: 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."
|
msgid "When WinSCP is detected, you can launch an SCP session from the context menu."
|
||||||
@@ -2340,7 +2340,7 @@ msgstr "當偵測到WinSCP時,您可以通過快顯功能表開啟SCP階段"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:48
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:48
|
||||||
msgid "Whether a custom window or an OS native window should be used"
|
msgid "Whether a custom window or an OS native window should be used"
|
||||||
msgstr "使用自訂視窗或是使用作業系統視窗"
|
msgstr "使用自定義視窗或是使用作業系統視窗"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:2
|
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:2
|
||||||
#: tabby-settings/src/settings.ts:30
|
#: tabby-settings/src/settings.ts:30
|
||||||
@@ -2390,7 +2390,7 @@ msgstr "WSL終端機鈴聲只能通過混音器靜音"
|
|||||||
|
|
||||||
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:14
|
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:14
|
||||||
msgid "WSL terminal only supports TrueColor with ConPTY"
|
msgid "WSL terminal only supports TrueColor with ConPTY"
|
||||||
msgstr "WSL終端機只支援ConPTY真彩色"
|
msgstr "WSL終端機只支持ConPTY真彩色"
|
||||||
|
|
||||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:128
|
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:128
|
||||||
msgid "X11 forwarding"
|
msgid "X11 forwarding"
|
||||||
@@ -2420,5 +2420,5 @@ msgstr "縮小"
|
|||||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:55
|
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:55
|
||||||
msgctxt "[Dynamic] port forwarding"
|
msgctxt "[Dynamic] port forwarding"
|
||||||
msgid "id.port-forwarding.dynamic"
|
msgid "id.port-forwarding.dynamic"
|
||||||
msgstr "動態通訊埠轉發"
|
msgstr "動態端口轉發"
|
||||||
|
|
||||||
|
@@ -96,8 +96,7 @@
|
|||||||
"*/pug": "^3",
|
"*/pug": "^3",
|
||||||
"lzma-native": "^8.0.0",
|
"lzma-native": "^8.0.0",
|
||||||
"*/node-abi": "^3.33.0",
|
"*/node-abi": "^3.33.0",
|
||||||
"**/graceful-fs": "^4.2.4",
|
"**/graceful-fs": "^4.2.4"
|
||||||
"nan": "2.17.0"
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run build:typings && node scripts/build-modules.mjs",
|
"build": "npm run build:typings && node scripts/build-modules.mjs",
|
||||||
|
@@ -25,8 +25,8 @@ export const builtinPlugins = [
|
|||||||
'tabby-ssh',
|
'tabby-ssh',
|
||||||
'tabby-serial',
|
'tabby-serial',
|
||||||
'tabby-telnet',
|
'tabby-telnet',
|
||||||
'tabby-local',
|
|
||||||
'tabby-electron',
|
'tabby-electron',
|
||||||
|
'tabby-local',
|
||||||
'tabby-plugin-manager',
|
'tabby-plugin-manager',
|
||||||
'tabby-linkifier',
|
'tabby-linkifier',
|
||||||
]
|
]
|
||||||
|
@@ -176,7 +176,6 @@ export abstract class PlatformService {
|
|||||||
abstract setErrorHandler (handler: (_: any) => void): void
|
abstract setErrorHandler (handler: (_: any) => void): void
|
||||||
abstract popupContextMenu (menu: MenuItemOptions[], event?: MouseEvent): void
|
abstract popupContextMenu (menu: MenuItemOptions[], event?: MouseEvent): void
|
||||||
abstract showMessageBox (options: MessageBoxOptions): Promise<MessageBoxResult>
|
abstract showMessageBox (options: MessageBoxOptions): Promise<MessageBoxResult>
|
||||||
abstract pickDirectory (): Promise<string>
|
|
||||||
abstract quit (): void
|
abstract quit (): void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -71,7 +71,7 @@ title-bar(
|
|||||||
ngbDropdown
|
ngbDropdown
|
||||||
)
|
)
|
||||||
button.btn.btn-secondary.btn-tab-bar(
|
button.btn.btn-secondary.btn-tab-bar(
|
||||||
[title]='button.label',
|
[title]='button.title',
|
||||||
(click)='button.run && button.run()',
|
(click)='button.run && button.run()',
|
||||||
[fastHtmlBind]='button.icon',
|
[fastHtmlBind]='button.icon',
|
||||||
ngbDropdownToggle,
|
ngbDropdownToggle,
|
||||||
|
@@ -10,12 +10,11 @@
|
|||||||
cursor: default;
|
cursor: default;
|
||||||
animation: 0.5s ease-out fadeIn;
|
animation: 0.5s ease-out fadeIn;
|
||||||
transition: 0.25s background;
|
transition: 0.25s background;
|
||||||
|
|
||||||
--tabs-height: calc(38px * var(--spaciness));
|
|
||||||
--side-tab-width: calc(200px * var(--spaciness));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$tabs-height: 38px;
|
||||||
$tab-border-radius: 4px;
|
$tab-border-radius: 4px;
|
||||||
|
$side-tab-width: 200px;
|
||||||
|
|
||||||
.wrap {
|
.wrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -47,19 +46,19 @@ $tab-border-radius: 4px;
|
|||||||
|
|
||||||
.content.tabs-on-side > .tab-bar {
|
.content.tabs-on-side > .tab-bar {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: var(--side-tab-width);
|
width: $side-tab-width;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
background: rgba(0, 0, 0, 0.25);
|
background: rgba(0, 0, 0, 0.25);
|
||||||
|
|
||||||
.tabs {
|
.tabs {
|
||||||
width: var(--side-tab-width);
|
width: $side-tab-width;
|
||||||
flex: none;
|
flex: none;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
tab-header {
|
tab-header {
|
||||||
flex: 0 0 var(--tabs-height);
|
flex: 0 0 $tabs-height;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,22 +69,18 @@ $tab-border-radius: 4px;
|
|||||||
&>.inset {
|
&>.inset {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
::ng-deep tab-header {
|
|
||||||
width: 100% !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.tab-bar {
|
.tab-bar {
|
||||||
flex: none;
|
flex: none;
|
||||||
height: var(--tabs-height);
|
height: $tabs-height;
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.btn-tab-bar {
|
.btn-tab-bar {
|
||||||
line-height: calc(var(--tabs-height) + 2px);
|
line-height: $tabs-height + 2px;
|
||||||
height: var(--tabs-height);
|
height: $tabs-height;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -118,20 +113,17 @@ $tab-border-radius: 4px;
|
|||||||
&>.drag-space {
|
&>.drag-space {
|
||||||
min-width: 1px;
|
min-width: 1px;
|
||||||
flex: 1 0 1%;
|
flex: 1 0 1%;
|
||||||
|
margin-top: 2px; // for window resizing
|
||||||
-webkit-app-region: drag;
|
-webkit-app-region: drag;
|
||||||
|
|
||||||
.tabs-on-top & {
|
|
||||||
margin-top: 2px; // for window resizing
|
|
||||||
}
|
|
||||||
|
|
||||||
&.persistent {
|
&.persistent {
|
||||||
min-width: 72px; // 2 x 36 px height, ie 2 squares
|
min-width: 72px; // 2 x 36 px height, ie 2 squares
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& > .inset {
|
& > .inset {
|
||||||
width: calc(70px + 15px * var(--spaciness));
|
width: 85px;
|
||||||
height: var(--tabs-height);
|
height: $tabs-height;
|
||||||
flex: none;
|
flex: none;
|
||||||
-webkit-app-region: drag;
|
-webkit-app-region: drag;
|
||||||
}
|
}
|
||||||
@@ -178,12 +170,18 @@ hotkey-hint {
|
|||||||
|
|
||||||
::ng-deep .btn-tab-bar svg,
|
::ng-deep .btn-tab-bar svg,
|
||||||
::ng-deep .btn-tab-bar + .dropdown-menu svg {
|
::ng-deep .btn-tab-bar + .dropdown-menu svg {
|
||||||
width: calc(22px * var(--spaciness));
|
width: 22px;
|
||||||
height: calc(16px * var(--spaciness));
|
height: 16px;
|
||||||
fill: white;
|
fill: white;
|
||||||
fill-opacity: 0.75;
|
fill-opacity: 0.75;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-wrapper {
|
||||||
|
display: flex;
|
||||||
|
width: 16px;
|
||||||
|
height: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
::ng-deep .btn-update svg {
|
::ng-deep .btn-update svg {
|
||||||
fill: cyan;
|
fill: cyan;
|
||||||
}
|
}
|
||||||
|
@@ -79,8 +79,8 @@ export class AppRootComponent {
|
|||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private hotkeys: HotkeysService,
|
private hotkeys: HotkeysService,
|
||||||
|
private updater: UpdaterService,
|
||||||
private commands: CommandService,
|
private commands: CommandService,
|
||||||
public updater: UpdaterService,
|
|
||||||
public hostWindow: HostWindowService,
|
public hostWindow: HostWindowService,
|
||||||
public hostApp: HostAppService,
|
public hostApp: HostAppService,
|
||||||
public config: ConfigService,
|
public config: ConfigService,
|
||||||
|
@@ -192,14 +192,6 @@ export abstract class BaseTabComponent extends BaseComponent {
|
|||||||
this.viewContainer = undefined
|
this.viewContainer = undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
get topmostParent (): BaseTabComponent|null {
|
|
||||||
let parent = this.parent
|
|
||||||
while (parent?.parent) {
|
|
||||||
parent = parent.parent
|
|
||||||
}
|
|
||||||
return parent
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called before the tab is closed
|
* Called before the tab is closed
|
||||||
*/
|
*/
|
||||||
|
@@ -458,18 +458,12 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
|||||||
tab.destroy()
|
tab.destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
let allTabs: BaseTabComponent[] = []
|
|
||||||
if (thing instanceof BaseTabComponent) {
|
if (thing instanceof BaseTabComponent) {
|
||||||
allTabs = [thing]
|
if (thing.parent instanceof SplitTabComponent) {
|
||||||
} else if (thing instanceof SplitContainer) {
|
thing.parent.removeTab(thing)
|
||||||
allTabs = thing.getAllTabs()
|
|
||||||
}
|
|
||||||
for (const tab of allTabs) {
|
|
||||||
if (tab.parent instanceof SplitTabComponent) {
|
|
||||||
tab.parent.removeTab(tab)
|
|
||||||
}
|
}
|
||||||
tab.removeFromContainer()
|
thing.removeFromContainer()
|
||||||
tab.parent = this
|
thing.parent = this
|
||||||
}
|
}
|
||||||
|
|
||||||
let target = relative ? this.getParentOf(relative) : null
|
let target = relative ? this.getParentOf(relative) : null
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
|
.mt-5
|
||||||
.mt-auto.mb-auto
|
|
||||||
.tabby-logo
|
.tabby-logo
|
||||||
h1.tabby-title Tabby
|
h1.tabby-title Tabby
|
||||||
sup α
|
sup α
|
||||||
|
@@ -35,7 +35,7 @@ $tabs-height: 38px;
|
|||||||
-webkit-app-region: no-drag;
|
-webkit-app-region: no-drag;
|
||||||
cursor: -webkit-grab;
|
cursor: -webkit-grab;
|
||||||
|
|
||||||
width: calc(22px * var(--spaciness));
|
width: 22px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transition: 0.25s all;
|
transition: 0.25s all;
|
||||||
|
@@ -1,18 +1,18 @@
|
|||||||
button.btn.btn-dark(
|
button.btn.btn-secondary.btn-minimize(
|
||||||
(click)='hostWindow.minimize()',
|
(click)='hostWindow.minimize()',
|
||||||
)
|
)
|
||||||
svg(version='1.1', width='10', height='10')
|
svg(version='1.1', width='10', height='10')
|
||||||
path(d='M 0,5 10,5 10,6 0,6 Z')
|
path(d='M 0,5 10,5 10,6 0,6 Z')
|
||||||
|
|
||||||
button.btn.btn-dark((click)='hostWindow.toggleMaximize()', *ngIf='!hostWindow.isMaximized()')
|
button.btn.btn-secondary.btn-maximize((click)='hostWindow.toggleMaximize()', *ngIf='!hostWindow.isMaximized()')
|
||||||
svg(version='1.1', width='10', height='10')
|
svg(version='1.1', width='10', height='10')
|
||||||
path(d='M 0,0 0,10 10,10 10,0 Z M 1,1 9,1 9,9 1,9 Z')
|
path(d='M 0,0 0,10 10,10 10,0 Z M 1,1 9,1 9,9 1,9 Z')
|
||||||
|
|
||||||
button.btn.btn-dark((click)='hostWindow.toggleMaximize()', *ngIf='hostWindow.isMaximized()')
|
button.btn.btn-secondary.btn-maximize((click)='hostWindow.toggleMaximize()', *ngIf='hostWindow.isMaximized()')
|
||||||
svg(version='1.1', width='10', height='10', viewBox='0 0 512 512')
|
svg(version='1.1', width='10', height='10', viewBox='0 0 512 512')
|
||||||
path(d="M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM32 144c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-80zm448 224c0 8.8-7.2 16-16 16h-48V144c0-26.5-21.5-48-48-48H128V48c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320z")
|
path(d="M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM32 144c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-80zm448 224c0 8.8-7.2 16-16 16h-48V144c0-26.5-21.5-48-48-48H128V48c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320z")
|
||||||
|
|
||||||
button.btn.btn-danger(
|
button.btn.btn-secondary.btn-close(
|
||||||
(click)='closeWindow()'
|
(click)='closeWindow()'
|
||||||
)
|
)
|
||||||
svg(version='1.1', width='10', height='10')
|
svg(version='1.1', width='10', height='10')
|
||||||
|
@@ -18,7 +18,6 @@ appearance:
|
|||||||
vibrancy: false
|
vibrancy: false
|
||||||
vibrancyType: 'blur'
|
vibrancyType: 'blur'
|
||||||
lastTabClosesWindow: false
|
lastTabClosesWindow: false
|
||||||
spaciness: 1
|
|
||||||
terminal:
|
terminal:
|
||||||
showBuiltinProfiles: true
|
showBuiltinProfiles: true
|
||||||
showRecentProfiles: 3
|
showRecentProfiles: 3
|
||||||
|
@@ -6,7 +6,7 @@ import { PlatformService } from '../api/platform'
|
|||||||
selector: '[fastHtmlBind]',
|
selector: '[fastHtmlBind]',
|
||||||
})
|
})
|
||||||
export class FastHtmlBindDirective implements OnChanges {
|
export class FastHtmlBindDirective implements OnChanges {
|
||||||
@Input() fastHtmlBind?: string
|
@Input() fastHtmlBind: string
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private el: ElementRef,
|
private el: ElementRef,
|
||||||
@@ -14,7 +14,7 @@ export class FastHtmlBindDirective implements OnChanges {
|
|||||||
) { }
|
) { }
|
||||||
|
|
||||||
ngOnChanges (): void {
|
ngOnChanges (): void {
|
||||||
this.el.nativeElement.innerHTML = this.fastHtmlBind ?? ''
|
this.el.nativeElement.innerHTML = this.fastHtmlBind || ''
|
||||||
for (const link of this.el.nativeElement.querySelectorAll('a')) {
|
for (const link of this.el.nativeElement.querySelectorAll('a')) {
|
||||||
link.addEventListener('click', event => {
|
link.addEventListener('click', event => {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
@@ -34,6 +34,7 @@ export class ThemesService {
|
|||||||
private applyThemeVariables () {
|
private applyThemeVariables () {
|
||||||
if (!this.findCurrentTheme().followsColorScheme) {
|
if (!this.findCurrentTheme().followsColorScheme) {
|
||||||
document.documentElement.style.cssText = this.rootElementStyleBackup
|
document.documentElement.style.cssText = this.rootElementStyleBackup
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const theme = this.config.store.terminal.colorScheme
|
const theme = this.config.store.terminal.colorScheme
|
||||||
@@ -63,67 +64,63 @@ export class ThemesService {
|
|||||||
const accentIndex = 4
|
const accentIndex = 4
|
||||||
const vars: Record<string, string> = {}
|
const vars: Record<string, string> = {}
|
||||||
|
|
||||||
if (this.findCurrentTheme().followsColorScheme) {
|
vars['--bs-body-bg'] = background.string()
|
||||||
vars['--bs-body-bg'] = background.string()
|
vars['--bs-body-color'] = theme.foreground
|
||||||
vars['--bs-body-color'] = theme.foreground
|
vars['--bs-black'] = theme.colors[0]
|
||||||
vars['--bs-black'] = theme.colors[0]
|
vars['--bs-red'] = theme.colors[1]
|
||||||
vars['--bs-red'] = theme.colors[1]
|
vars['--bs-green'] = theme.colors[2]
|
||||||
vars['--bs-green'] = theme.colors[2]
|
vars['--bs-yellow'] = theme.colors[3]
|
||||||
vars['--bs-yellow'] = theme.colors[3]
|
vars['--bs-blue'] = theme.colors[4]
|
||||||
vars['--bs-blue'] = theme.colors[4]
|
vars['--bs-purple'] = theme.colors[5]
|
||||||
vars['--bs-purple'] = theme.colors[5]
|
vars['--bs-cyan'] = theme.colors[6]
|
||||||
vars['--bs-cyan'] = theme.colors[6]
|
vars['--bs-gray'] = theme.colors[7]
|
||||||
vars['--bs-gray'] = theme.colors[7]
|
vars['--bs-gray-dark'] = theme.colors[8]
|
||||||
vars['--bs-gray-dark'] = theme.colors[8]
|
// vars['--bs-red'] = theme.colors[9]
|
||||||
// vars['--bs-red'] = theme.colors[9]
|
// vars['--bs-green'] = theme.colors[10]
|
||||||
// vars['--bs-green'] = theme.colors[10]
|
// vars['--bs-yellow'] = theme.colors[11]
|
||||||
// vars['--bs-yellow'] = theme.colors[11]
|
// vars['--bs-blue'] = theme.colors[12]
|
||||||
// vars['--bs-blue'] = theme.colors[12]
|
// vars['--bs-purple'] = theme.colors[13]
|
||||||
// vars['--bs-purple'] = theme.colors[13]
|
// vars['--bs-cyan'] = theme.colors[14]
|
||||||
// vars['--bs-cyan'] = theme.colors[14]
|
|
||||||
|
|
||||||
vars['--theme-fg-more-2'] = more(theme.foreground, 0.5).string()
|
vars['--theme-fg-more-2'] = more(theme.foreground, 0.5).string()
|
||||||
vars['--theme-fg-more'] = more(theme.foreground, 0.25).string()
|
vars['--theme-fg-more'] = more(theme.foreground, 0.25).string()
|
||||||
vars['--theme-fg'] = theme.foreground
|
vars['--theme-fg'] = theme.foreground
|
||||||
vars['--theme-fg-less'] = less(theme.foreground, 0.25).string()
|
vars['--theme-fg-less'] = less(theme.foreground, 0.25).string()
|
||||||
vars['--theme-fg-less-2'] = less(theme.foreground, 0.5).string()
|
vars['--theme-fg-less-2'] = less(theme.foreground, 0.5).string()
|
||||||
|
|
||||||
vars['--theme-bg-less-2'] = less(theme.background, 0.5).string()
|
vars['--theme-bg-less-2'] = less(theme.background, 0.5).string()
|
||||||
vars['--theme-bg-less'] = less(theme.background, 0.25).string()
|
vars['--theme-bg-less'] = less(theme.background, 0.25).string()
|
||||||
vars['--theme-bg'] = theme.background
|
vars['--theme-bg'] = theme.background
|
||||||
vars['--theme-bg-more'] = backgroundMore
|
vars['--theme-bg-more'] = backgroundMore
|
||||||
vars['--theme-bg-more-2'] = more(backgroundMore, 0.25).string()
|
vars['--theme-bg-more-2'] = more(backgroundMore, 0.25).string()
|
||||||
|
|
||||||
const themeColors = {
|
const themeColors = {
|
||||||
primary: theme.colors[accentIndex],
|
primary: theme.colors[accentIndex],
|
||||||
secondary: theme.colors[8],
|
secondary: theme.colors[8],
|
||||||
tertiary: theme.colors[8],
|
tertiary: theme.colors[8],
|
||||||
warning: theme.colors[3],
|
warning: theme.colors[3],
|
||||||
danger: theme.colors[1],
|
danger: theme.colors[1],
|
||||||
success: theme.colors[2],
|
success: theme.colors[2],
|
||||||
info: theme.colors[4],
|
info: theme.colors[4],
|
||||||
dark: more(theme.background, 0.5).string(),
|
dark: more(theme.background, 0.5).string(),
|
||||||
light: more(theme.foreground, 0.5).string(),
|
light: more(theme.foreground, 0.5).string(),
|
||||||
link: theme.colors[8], // for .btn-link
|
link: theme.colors[8], // for .btn-link
|
||||||
}
|
|
||||||
|
|
||||||
for (const [key, color] of Object.entries(themeColors)) {
|
|
||||||
vars[`--bs-${key}-bg`] = more(color, 0.5).string()
|
|
||||||
vars[`--bs-${key}-color`] = less(color, 0.5).string()
|
|
||||||
vars[`--bs-${key}`] = color
|
|
||||||
vars[`--bs-${key}-rgb`] = Color(color).rgb().array().join(', ')
|
|
||||||
vars[`--theme-${key}-more-2`] = more(color, 1).string()
|
|
||||||
vars[`--theme-${key}-more`] = more(color, 0.5).string()
|
|
||||||
vars[`--theme-${key}`] = color
|
|
||||||
vars[`--theme-${key}-less`] = less(color, 0.25).string()
|
|
||||||
vars[`--theme-${key}-less-2`] = less(color, 0.75).string()
|
|
||||||
}
|
|
||||||
|
|
||||||
const switchBackground = less(theme.colors[accentIndex], 0.25).string()
|
|
||||||
vars['--bs-form-switch-bg'] = `url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27${switchBackground}%27/%3e%3c/svg%3e")`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vars['--spaciness'] = this.config.store.appearance.spaciness
|
for (const [key, color] of Object.entries(themeColors)) {
|
||||||
|
vars[`--bs-${key}-bg`] = more(color, 0.5).string()
|
||||||
|
vars[`--bs-${key}-color`] = less(color, 0.5).string()
|
||||||
|
vars[`--bs-${key}`] = color
|
||||||
|
vars[`--bs-${key}-rgb`] = Color(color).rgb().array().join(', ')
|
||||||
|
vars[`--theme-${key}-more-2`] = more(color, 1).string()
|
||||||
|
vars[`--theme-${key}-more`] = more(color, 0.5).string()
|
||||||
|
vars[`--theme-${key}`] = color
|
||||||
|
vars[`--theme-${key}-less`] = less(color, 0.25).string()
|
||||||
|
vars[`--theme-${key}-less-2`] = less(color, 0.75).string()
|
||||||
|
}
|
||||||
|
|
||||||
|
const switchBackground = less(theme.colors[accentIndex], 0.25).string()
|
||||||
|
vars['--bs-form-switch-bg'] = `url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27${switchBackground}%27/%3e%3c/svg%3e")`
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(vars)) {
|
for (const [key, value] of Object.entries(vars)) {
|
||||||
document.documentElement.style.setProperty(key, value)
|
document.documentElement.style.setProperty(key, value)
|
||||||
|
@@ -63,18 +63,113 @@ app-root {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// &.tabs-on-top .tab-bar {
|
||||||
|
// &>.background {
|
||||||
|
// border-bottom: 1px solid $border-color;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// tab-header {
|
||||||
|
// border-bottom: 1px solid $border-color;
|
||||||
|
|
||||||
|
// &.active {
|
||||||
|
// border-bottom-color: transparent;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// &:not(.tabs-on-top) .tab-bar {
|
||||||
|
// &>.background {
|
||||||
|
// border-top: 1px solid $border-color;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// tab-header {
|
||||||
|
// border-top: 1px solid $border-color;
|
||||||
|
|
||||||
|
// &.active {
|
||||||
|
// margin-top: -1px;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// &.platform-win32, &.platform-linux {
|
||||||
|
// border: 1px solid #111;
|
||||||
|
// &>.content .tab-bar .tabs tab-header:first-child {
|
||||||
|
// border-left: none;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
tab-body {
|
tab-body {
|
||||||
background: var(--bs-body-bg);
|
background: var(--bs-body-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
$tab-border-radius: 5px;
|
// $black: #002b36;
|
||||||
|
// $base02: #073642;
|
||||||
|
// $base01: #586e75;
|
||||||
|
// $base00: #657b83;
|
||||||
|
// $base0: #839496;
|
||||||
|
// $base1: #93a1a1;
|
||||||
|
// $base2: #eee8d5;
|
||||||
|
// $white: #fdf6e3;
|
||||||
|
// $yellow: #b58900;
|
||||||
|
// $orange: #cb4b16;
|
||||||
|
// $red: #dc322f;
|
||||||
|
// $pink: #d33682;
|
||||||
|
// $purple: #6c71c4;
|
||||||
|
// $blue: #268bd2;
|
||||||
|
// $teal: #2aa198;
|
||||||
|
// $green: #859900;
|
||||||
|
|
||||||
|
$tab-border-radius: 5px;
|
||||||
|
// $button-hover-bg: rgba(0, 0, 0, .125);
|
||||||
|
// $button-active-bg: rgba(0, 0, 0, .25);
|
||||||
|
|
||||||
|
|
||||||
|
// $btn-border-radius: 0;
|
||||||
|
|
||||||
|
// $input-bg: $base2;
|
||||||
|
// $input-disabled-bg: $base1;
|
||||||
|
|
||||||
|
// $input-color: $body-color;
|
||||||
|
// $input-color-placeholder: $base1;
|
||||||
|
// $input-border-color: $base1;
|
||||||
|
// //$input-box-shadow: inset 0 1px 1px rgba($black,.075);
|
||||||
|
// $input-border-radius: 0;
|
||||||
|
// $custom-select-border-radius: 0;
|
||||||
|
// $input-bg-focus: $input-bg;
|
||||||
|
// //$input-border-focus: lighten($brand-primary, 25%);
|
||||||
|
// //$input-box-shadow-focus: $input-box-shadow, rgba($input-border-focus, .6);
|
||||||
|
// $input-color-focus: $input-color;
|
||||||
|
// $input-group-addon-bg: $body-bg;
|
||||||
|
// $input-group-addon-border-color: $input-border-color;
|
||||||
|
|
||||||
|
// $modal-content-bg: $content-bg-solid;
|
||||||
|
// $modal-content-border-color: $body-bg;
|
||||||
$modal-header-border-color: transparent;
|
$modal-header-border-color: transparent;
|
||||||
$modal-footer-border-color: transparent;
|
$modal-footer-border-color: transparent;
|
||||||
|
|
||||||
|
// $popover-bg: $body-bg;
|
||||||
|
|
||||||
|
// $dropdown-bg: $body-bg;
|
||||||
|
// $dropdown-link-color: $body-color;
|
||||||
|
// $dropdown-link-hover-color: #333;
|
||||||
|
// $dropdown-link-hover-bg: $body-bg2;
|
||||||
|
// //$dropdown-link-active-color: $component-active-color;
|
||||||
|
// //$dropdown-link-active-bg: $component-active-bg;
|
||||||
|
// $dropdown-link-disabled-color: #333;
|
||||||
|
// $dropdown-header-color: #333;
|
||||||
|
|
||||||
|
// $list-group-action-bg: rgba($black,.05);
|
||||||
|
// $list-group-action-active-bg: $list-group-link-active-bg;
|
||||||
|
|
||||||
|
// $pre-bg: $dropdown-bg;
|
||||||
|
// $pre-color: $dropdown-link-color;
|
||||||
|
|
||||||
|
// $headings-font-weight: lighter;
|
||||||
|
// $headings-color: $base0;
|
||||||
|
|
||||||
$form-check-input-width: 1.4em;
|
$form-check-input-width: 1.4em;
|
||||||
$form-switch-width: 2.5em;
|
$form-switch-width: 2.5em;
|
||||||
|
|
||||||
@@ -91,6 +186,8 @@ body {
|
|||||||
--bs-list-group-bg: var(--theme-bg-more);
|
--bs-list-group-bg: var(--theme-bg-more);
|
||||||
--bs-list-group-border-color: var(--theme-bg-more-2);
|
--bs-list-group-border-color: var(--theme-bg-more-2);
|
||||||
--bs-list-group-border-width: 0;
|
--bs-list-group-border-width: 0;
|
||||||
|
// --bs-list-group-item-padding-x: 1rem;
|
||||||
|
// --bs-list-group-item-padding-y: 0.5rem;
|
||||||
--bs-list-group-action-color: var(--bs-body-color);
|
--bs-list-group-action-color: var(--bs-body-color);
|
||||||
--bs-list-group-action-hover-color: var(--theme-fg);
|
--bs-list-group-action-hover-color: var(--theme-fg);
|
||||||
--bs-list-group-action-hover-bg: var(--theme-bg-more-2);
|
--bs-list-group-action-hover-bg: var(--theme-bg-more-2);
|
||||||
@@ -101,15 +198,23 @@ body {
|
|||||||
--bs-list-group-disabled-bg: var(--bs-body-bg);
|
--bs-list-group-disabled-bg: var(--bs-body-bg);
|
||||||
--bs-list-group-active-color: var(--bs-primary-color);
|
--bs-list-group-active-color: var(--bs-primary-color);
|
||||||
--bs-list-group-active-bg: var(--bs-primary-bg);
|
--bs-list-group-active-bg: var(--bs-primary-bg);
|
||||||
|
// --bs-list-group-active-border-color: #0d6efd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav {
|
.nav {
|
||||||
|
// scss-docs-start nav-css-vars
|
||||||
|
// --bs-nav-link-padding-x: #{$nav-link-padding-x};
|
||||||
|
// --bs-nav-link-padding-y: #{$nav-link-padding-y};
|
||||||
|
// @include rfs($nav-link-font-size, --bs-nav-link-font-size);
|
||||||
|
// --bs-nav-link-font-weight: #{$nav-link-font-weight};
|
||||||
--bs-nav-link-color: var(--bs-body-color);
|
--bs-nav-link-color: var(--bs-body-color);
|
||||||
--bs-nav-link-hover-color: var(--theme-fg-less-2);
|
--bs-nav-link-hover-color: var(--theme-fg-less-2);
|
||||||
--bs-nav-link-disabled-color: var(--bs-gray);
|
--bs-nav-link-disabled-color: var(--bs-gray);
|
||||||
|
// scss-docs-end nav-css-vars
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-tabs {
|
.nav-tabs {
|
||||||
|
// scss-docs-start nav-tabs-css-vars
|
||||||
--bs-nav-tabs-border-width: 2px;
|
--bs-nav-tabs-border-width: 2px;
|
||||||
--bs-nav-tabs-border-radius: 0;
|
--bs-nav-tabs-border-radius: 0;
|
||||||
--bs-nav-tabs-link-hover-border-color: var(--bs-body-bg);
|
--bs-nav-tabs-link-hover-border-color: var(--bs-body-bg);
|
||||||
@@ -118,12 +223,15 @@ body {
|
|||||||
|
|
||||||
--bs-nav-tabs-link-active-bg: transparent;
|
--bs-nav-tabs-link-active-bg: transparent;
|
||||||
--bs-nav-tabs-link-active-border-color: transparent;
|
--bs-nav-tabs-link-active-border-color: transparent;
|
||||||
|
// scss-docs-end nav-tabs-css-vars
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-pills {
|
.nav-pills {
|
||||||
|
// scss-docs-start nav-pills-css-vars
|
||||||
--bs-nav-pills-border-radius: #{$nav-pills-border-radius};
|
--bs-nav-pills-border-radius: #{$nav-pills-border-radius};
|
||||||
--bs-nav-pills-link-active-color: var(--theme-bg-more);
|
--bs-nav-pills-link-active-color: var(--theme-bg-more);
|
||||||
--bs-nav-pills-link-active-bg: var(--bs-primary);
|
--bs-nav-pills-link-active-bg: var(--bs-primary);
|
||||||
|
// scss-docs-end nav-pills-css-vars
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-tabs {
|
.nav-tabs {
|
||||||
@@ -330,6 +438,19 @@ hotkey-input-modal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// checkbox i.on {
|
||||||
|
// color: $blue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .modal .modal-footer {
|
||||||
|
// background: rgba(0, 0, 0, .25);
|
||||||
|
|
||||||
|
// .btn {
|
||||||
|
// font-weight: bold;
|
||||||
|
// padding: 0.375rem 1.5rem;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
.list-group-item svg {
|
.list-group-item svg {
|
||||||
fill: var(--bs-body-color);
|
fill: var(--bs-body-color);
|
||||||
fill-opacity: 0.75;
|
fill-opacity: 0.75;
|
||||||
@@ -372,8 +493,30 @@ search-panel {
|
|||||||
|
|
||||||
.btn-link {
|
.btn-link {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
|
// &:hover, &[aria-expanded=true], &:active, &.active {
|
||||||
|
// color: $link-hover-color;
|
||||||
|
// border-radius: $btn-border-radius;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// &[aria-expanded=true], &:active, &.active {
|
||||||
|
// background: rgba(255, 255, 255, 0.1);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// .btn-group .btn.active {
|
||||||
|
// border-color: transparent !important;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// hr {
|
||||||
|
// border-color: $list-group-border-color;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .dropdown-menu {
|
||||||
|
// box-shadow: $dropdown-box-shadow;
|
||||||
|
// }
|
||||||
|
|
||||||
ngx-colors-panel .opened {
|
ngx-colors-panel .opened {
|
||||||
background: var(--bs-body-bg) !important;
|
background: var(--bs-body-bg) !important;
|
||||||
|
|
||||||
@@ -387,6 +530,7 @@ ngx-colors-panel .opened {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.text-muted {
|
.text-muted {
|
||||||
|
// color: var(--bs-body-color) !important;
|
||||||
opacity: .5;
|
opacity: .5;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -412,7 +556,7 @@ ngx-colors-panel .opened {
|
|||||||
}
|
}
|
||||||
|
|
||||||
start-page {
|
start-page {
|
||||||
background: var(--theme-bg-more-2);
|
background: var(--theme-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
split-tab-spanner {
|
split-tab-spanner {
|
||||||
@@ -422,9 +566,3 @@ split-tab-spanner {
|
|||||||
background: rgba(var(--bs-dark-rgb), .2);
|
background: rgba(var(--bs-dark-rgb), .2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window-controls {
|
|
||||||
button svg {
|
|
||||||
fill: var(--theme-fg) !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@@ -17,14 +17,11 @@
|
|||||||
"author": "Eugene Pankov",
|
"author": "Eugene Pankov",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@angular/core": "^9.1.9",
|
"@angular/core": "^9.1.9"
|
||||||
"tabby-local": "*"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"electron-promise-ipc": "^2.2.4",
|
"electron-promise-ipc": "^2.2.4",
|
||||||
"ps-node": "^0.1.6",
|
|
||||||
"tmp-promise": "^3.0.2",
|
"tmp-promise": "^3.0.2",
|
||||||
"hasbin": "^1.2.3",
|
|
||||||
"winston": "^3.3.3"
|
"winston": "^3.3.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,6 @@ import { NgModule } from '@angular/core'
|
|||||||
import { PlatformService, LogService, UpdaterService, DockingService, HostAppService, ThemesService, Platform, AppService, ConfigService, WIN_BUILD_FLUENT_BG_SUPPORTED, isWindowsBuild, HostWindowService, HotkeyProvider, ConfigProvider, FileProvider } from 'tabby-core'
|
import { PlatformService, LogService, UpdaterService, DockingService, HostAppService, ThemesService, Platform, AppService, ConfigService, WIN_BUILD_FLUENT_BG_SUPPORTED, isWindowsBuild, HostWindowService, HotkeyProvider, ConfigProvider, FileProvider } from 'tabby-core'
|
||||||
import { TerminalColorSchemeProvider } from 'tabby-terminal'
|
import { TerminalColorSchemeProvider } from 'tabby-terminal'
|
||||||
import { SFTPContextMenuItemProvider, SSHProfileImporter, AutoPrivateKeyLocator } from 'tabby-ssh'
|
import { SFTPContextMenuItemProvider, SSHProfileImporter, AutoPrivateKeyLocator } from 'tabby-ssh'
|
||||||
import { PTYInterface, ShellProvider, UACService } from 'tabby-local'
|
|
||||||
import { auditTime } from 'rxjs'
|
import { auditTime } from 'rxjs'
|
||||||
|
|
||||||
import { HyperColorSchemes } from './colorSchemes'
|
import { HyperColorSchemes } from './colorSchemes'
|
||||||
@@ -15,28 +14,10 @@ import { ElectronHostWindow } from './services/hostWindow.service'
|
|||||||
import { ElectronFileProvider } from './services/fileProvider.service'
|
import { ElectronFileProvider } from './services/fileProvider.service'
|
||||||
import { ElectronHostAppService } from './services/hostApp.service'
|
import { ElectronHostAppService } from './services/hostApp.service'
|
||||||
import { ElectronService } from './services/electron.service'
|
import { ElectronService } from './services/electron.service'
|
||||||
import { DockMenuService } from './services/dockMenu.service'
|
|
||||||
import { ElectronUACService } from './services/uac.service'
|
|
||||||
|
|
||||||
import { ElectronHotkeyProvider } from './hotkeys'
|
import { ElectronHotkeyProvider } from './hotkeys'
|
||||||
import { ElectronConfigProvider } from './config'
|
import { ElectronConfigProvider } from './config'
|
||||||
import { EditSFTPContextMenu } from './sftpContextMenu'
|
import { EditSFTPContextMenu } from './sftpContextMenu'
|
||||||
import { OpenSSHImporter, PrivateKeyLocator, StaticFileImporter } from './sshImporters'
|
import { OpenSSHImporter, PrivateKeyLocator, StaticFileImporter } from './sshImporters'
|
||||||
import { ElectronPTYInterface } from './pty'
|
|
||||||
|
|
||||||
import { CmderShellProvider } from './shells/cmder'
|
|
||||||
import { Cygwin32ShellProvider } from './shells/cygwin32'
|
|
||||||
import { Cygwin64ShellProvider } from './shells/cygwin64'
|
|
||||||
import { GitBashShellProvider } from './shells/gitBash'
|
|
||||||
import { LinuxDefaultShellProvider } from './shells/linuxDefault'
|
|
||||||
import { MacOSDefaultShellProvider } from './shells/macDefault'
|
|
||||||
import { MSYS2ShellProvider } from './shells/msys2'
|
|
||||||
import { POSIXShellsProvider } from './shells/posix'
|
|
||||||
import { PowerShellCoreShellProvider } from './shells/powershellCore'
|
|
||||||
import { WindowsDefaultShellProvider } from './shells/winDefault'
|
|
||||||
import { WindowsStockShellsProvider } from './shells/windowsStock'
|
|
||||||
import { WSLShellProvider } from './shells/wsl'
|
|
||||||
import { VSDevToolsProvider } from './shells/vs'
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
providers: [
|
providers: [
|
||||||
@@ -54,29 +35,6 @@ import { VSDevToolsProvider } from './shells/vs'
|
|||||||
{ provide: SSHProfileImporter, useExisting: OpenSSHImporter, multi: true },
|
{ provide: SSHProfileImporter, useExisting: OpenSSHImporter, multi: true },
|
||||||
{ provide: SSHProfileImporter, useExisting: StaticFileImporter, multi: true },
|
{ provide: SSHProfileImporter, useExisting: StaticFileImporter, multi: true },
|
||||||
{ provide: AutoPrivateKeyLocator, useExisting: PrivateKeyLocator, multi: true },
|
{ provide: AutoPrivateKeyLocator, useExisting: PrivateKeyLocator, multi: true },
|
||||||
|
|
||||||
{ provide: ShellProvider, useClass: WindowsDefaultShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: MacOSDefaultShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: LinuxDefaultShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: WindowsStockShellsProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: PowerShellCoreShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: CmderShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: Cygwin32ShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: Cygwin64ShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: GitBashShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: POSIXShellsProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: MSYS2ShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: WSLShellProvider, multi: true },
|
|
||||||
{ provide: ShellProvider, useClass: VSDevToolsProvider, multi: true },
|
|
||||||
|
|
||||||
{ provide: UACService, useClass: ElectronUACService },
|
|
||||||
|
|
||||||
{ provide: PTYInterface, useClass: ElectronPTYInterface },
|
|
||||||
|
|
||||||
// For WindowsDefaultShellProvider
|
|
||||||
PowerShellCoreShellProvider,
|
|
||||||
WSLShellProvider,
|
|
||||||
WindowsStockShellsProvider,
|
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export default class ElectronModule {
|
export default class ElectronModule {
|
||||||
@@ -89,7 +47,6 @@ export default class ElectronModule {
|
|||||||
docking: DockingService,
|
docking: DockingService,
|
||||||
themeService: ThemesService,
|
themeService: ThemesService,
|
||||||
app: AppService,
|
app: AppService,
|
||||||
dockMenu: DockMenuService,
|
|
||||||
) {
|
) {
|
||||||
config.ready$.toPromise().then(() => {
|
config.ready$.toPromise().then(() => {
|
||||||
touchbar.update()
|
touchbar.update()
|
||||||
@@ -130,10 +87,6 @@ export default class ElectronModule {
|
|||||||
})
|
})
|
||||||
|
|
||||||
config.changed$.subscribe(() => this.updateVibrancy())
|
config.changed$.subscribe(() => this.updateVibrancy())
|
||||||
|
|
||||||
config.ready$.toPromise().then(() => {
|
|
||||||
dockMenu.update()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private registerGlobalHotkey () {
|
private registerGlobalHotkey () {
|
||||||
|
@@ -1,140 +0,0 @@
|
|||||||
import * as psNode from 'ps-node'
|
|
||||||
import { ipcRenderer } from 'electron'
|
|
||||||
import { ChildProcess, PTYInterface, PTYProxy } from 'tabby-local'
|
|
||||||
import { getWorkingDirectoryFromPID } from 'native-process-working-directory'
|
|
||||||
|
|
||||||
/* eslint-disable block-scoped-var */
|
|
||||||
|
|
||||||
try {
|
|
||||||
var macOSNativeProcessList = require('macos-native-processlist') // eslint-disable-line @typescript-eslint/no-var-requires, no-var
|
|
||||||
} catch { }
|
|
||||||
|
|
||||||
try {
|
|
||||||
var windowsProcessTree = require('windows-process-tree') // eslint-disable-line @typescript-eslint/no-var-requires, no-var
|
|
||||||
} catch { }
|
|
||||||
|
|
||||||
export class ElectronPTYInterface extends PTYInterface {
|
|
||||||
async spawn (...options: any[]): Promise<PTYProxy> {
|
|
||||||
const id = ipcRenderer.sendSync('pty:spawn', ...options)
|
|
||||||
return new ElectronPTYProxy(id)
|
|
||||||
}
|
|
||||||
|
|
||||||
async restore (id: string): Promise<ElectronPTYProxy|null> {
|
|
||||||
if (ipcRenderer.sendSync('pty:exists', id)) {
|
|
||||||
return new ElectronPTYProxy(id)
|
|
||||||
}
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
||||||
export class ElectronPTYProxy extends PTYProxy {
|
|
||||||
private subscriptions: Map<string, any> = new Map()
|
|
||||||
private truePID: Promise<number>
|
|
||||||
|
|
||||||
constructor (
|
|
||||||
private id: string,
|
|
||||||
) {
|
|
||||||
super()
|
|
||||||
this.truePID = new Promise(async (resolve) => {
|
|
||||||
let pid = await this.getPID()
|
|
||||||
try {
|
|
||||||
await new Promise(r => setTimeout(r, 2000))
|
|
||||||
|
|
||||||
// Retrieve any possible single children now that shell has fully started
|
|
||||||
let processes = await this.getChildProcessesInternal(pid)
|
|
||||||
while (pid && processes.length === 1) {
|
|
||||||
if (!processes[0].pid) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
pid = processes[0].pid
|
|
||||||
processes = await this.getChildProcessesInternal(pid)
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
resolve(pid)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.truePID = this.truePID.catch(() => this.getPID())
|
|
||||||
}
|
|
||||||
|
|
||||||
getID (): string {
|
|
||||||
return this.id
|
|
||||||
}
|
|
||||||
|
|
||||||
getTruePID (): Promise<number> {
|
|
||||||
return this.truePID
|
|
||||||
}
|
|
||||||
|
|
||||||
async getPID (): Promise<number> {
|
|
||||||
return ipcRenderer.sendSync('pty:get-pid', this.id)
|
|
||||||
}
|
|
||||||
|
|
||||||
subscribe (event: string, handler: (..._: any[]) => void): void {
|
|
||||||
const key = `pty:${this.id}:${event}`
|
|
||||||
const newHandler = (_event, ...args) => handler(...args)
|
|
||||||
this.subscriptions.set(key, newHandler)
|
|
||||||
ipcRenderer.on(key, newHandler)
|
|
||||||
}
|
|
||||||
|
|
||||||
ackData (length: number): void {
|
|
||||||
ipcRenderer.send('pty:ack-data', this.id, length)
|
|
||||||
}
|
|
||||||
|
|
||||||
unsubscribeAll (): void {
|
|
||||||
for (const k of this.subscriptions.keys()) {
|
|
||||||
ipcRenderer.off(k, this.subscriptions.get(k))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async resize (columns: number, rows: number): Promise<void> {
|
|
||||||
ipcRenderer.send('pty:resize', this.id, columns, rows)
|
|
||||||
}
|
|
||||||
|
|
||||||
async write (data: Buffer): Promise<void> {
|
|
||||||
ipcRenderer.send('pty:write', this.id, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
async kill (signal?: string): Promise<void> {
|
|
||||||
ipcRenderer.send('pty:kill', this.id, signal)
|
|
||||||
}
|
|
||||||
|
|
||||||
async getChildProcesses (): Promise<ChildProcess[]> {
|
|
||||||
return this.getChildProcessesInternal(await this.getTruePID())
|
|
||||||
}
|
|
||||||
|
|
||||||
async getChildProcessesInternal (truePID: number): Promise<ChildProcess[]> {
|
|
||||||
if (process.platform === 'darwin') {
|
|
||||||
const processes = await macOSNativeProcessList.getProcessList()
|
|
||||||
return processes.filter(x => x.ppid === truePID).map(p => ({
|
|
||||||
pid: p.pid,
|
|
||||||
ppid: p.ppid,
|
|
||||||
command: p.name,
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
if (process.platform === 'win32') {
|
|
||||||
return new Promise<ChildProcess[]>(resolve => {
|
|
||||||
windowsProcessTree.getProcessTree(truePID, tree => {
|
|
||||||
resolve(tree ? tree.children.map(child => ({
|
|
||||||
pid: child.pid,
|
|
||||||
ppid: tree.pid,
|
|
||||||
command: child.name,
|
|
||||||
})) : [])
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return new Promise<ChildProcess[]>((resolve, reject) => {
|
|
||||||
psNode.lookup({ ppid: truePID }, (err, processes) => {
|
|
||||||
if (err) {
|
|
||||||
reject(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
resolve(processes as ChildProcess[])
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
async getWorkingDirectory (): Promise<string|null> {
|
|
||||||
return getWorkingDirectoryFromPID(await this.getTruePID())
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -234,15 +234,6 @@ export class ElectronPlatformService extends PlatformService {
|
|||||||
handler(err)
|
handler(err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async pickDirectory (): Promise<string> {
|
|
||||||
return (await this.electron.dialog.showOpenDialog(
|
|
||||||
this.hostWindow.getWindow(),
|
|
||||||
{
|
|
||||||
properties: ['openDirectory', 'showHiddenFiles'],
|
|
||||||
},
|
|
||||||
)).filePaths[0]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ElectronFileUpload extends FileUpload {
|
class ElectronFileUpload extends FileUpload {
|
||||||
|
@@ -21,11 +21,6 @@ async@^3.2.3:
|
|||||||
resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
|
resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
|
||||||
integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
|
integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
|
||||||
|
|
||||||
async@~1.5:
|
|
||||||
version "1.5.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
|
||||||
integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==
|
|
||||||
|
|
||||||
balanced-match@^1.0.0:
|
balanced-match@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||||
@@ -93,11 +88,6 @@ concat-map@0.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||||
|
|
||||||
connected-domain@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/connected-domain/-/connected-domain-1.0.0.tgz#bfe77238c74be453a79f0cb6058deeb4f2358e93"
|
|
||||||
integrity sha512-lHlohUiJxlpunvDag2Y0pO20bnvarMjnrdciZeuJUqRwrf/5JHNhdpiPIr5GQ8IkqrFj5TDMQwcCjblGo1oeuA==
|
|
||||||
|
|
||||||
define-properties@^1.1.3:
|
define-properties@^1.1.3:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
||||||
@@ -209,13 +199,6 @@ has@^1.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
function-bind "^1.1.1"
|
function-bind "^1.1.1"
|
||||||
|
|
||||||
hasbin@^1.2.3:
|
|
||||||
version "1.2.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/hasbin/-/hasbin-1.2.3.tgz#78c5926893c80215c2b568ae1fd3fcab7a2696b0"
|
|
||||||
integrity sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==
|
|
||||||
dependencies:
|
|
||||||
async "~1.5"
|
|
||||||
|
|
||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
@@ -373,13 +356,6 @@ path-is-absolute@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||||
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||||
|
|
||||||
ps-node@^0.1.6:
|
|
||||||
version "0.1.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/ps-node/-/ps-node-0.1.6.tgz#9af67a99d7b1d0132e51a503099d38a8d2ace2c3"
|
|
||||||
integrity sha512-w7QJhUTbu70hpDso0YXDRNKCPNuchV8UTUZsAv0m7Qj5g85oHOJfr9drA1EjvK4nQK/bG8P97W4L6PJ3IQLoOA==
|
|
||||||
dependencies:
|
|
||||||
table-parser "^0.1.3"
|
|
||||||
|
|
||||||
readable-stream@^3.4.0, readable-stream@^3.6.0:
|
readable-stream@^3.4.0, readable-stream@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
||||||
@@ -448,13 +424,6 @@ string_decoder@^1.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.2.0"
|
safe-buffer "~5.2.0"
|
||||||
|
|
||||||
table-parser@^0.1.3:
|
|
||||||
version "0.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/table-parser/-/table-parser-0.1.3.tgz#0441cfce16a59481684c27d1b5a67ff15a43c7b0"
|
|
||||||
integrity sha512-LCYeuvqqoPII3lzzYaXKbC3Forb+d2u4bNwhk/9FlivuGRxPE28YEWAYcujeSlLLDlMfvy29+WPybFJZFiKMYg==
|
|
||||||
dependencies:
|
|
||||||
connected-domain "^1.0.0"
|
|
||||||
|
|
||||||
text-hex@1.0.x:
|
text-hex@1.0.x:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
|
resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
|
||||||
|
@@ -19,6 +19,8 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"ansi-colors": "^4.1.1",
|
"ansi-colors": "^4.1.1",
|
||||||
"dataurl": "0.1.0",
|
"dataurl": "0.1.0",
|
||||||
|
"hasbin": "^1.2.3",
|
||||||
|
"ps-node": "^0.1.6",
|
||||||
"runes": "^0.4.2"
|
"runes": "^0.4.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@@ -53,28 +53,3 @@ export interface ChildProcess {
|
|||||||
ppid: number
|
ppid: number
|
||||||
command: string
|
command: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export abstract class UACService {
|
|
||||||
isAvailable = false
|
|
||||||
|
|
||||||
abstract patchSessionOptionsForUAC (sessionOptions: SessionOptions): SessionOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
export abstract class PTYProxy {
|
|
||||||
abstract getID (): string
|
|
||||||
abstract getPID (): Promise<number>
|
|
||||||
abstract resize (columns: number, rows: number): Promise<void>
|
|
||||||
abstract write (data: Buffer): Promise<void>
|
|
||||||
abstract kill (signal?: string): Promise<void>
|
|
||||||
abstract ackData (length: number): void
|
|
||||||
abstract subscribe (event: string, handler: (..._: any[]) => void): void
|
|
||||||
abstract unsubscribeAll (): void
|
|
||||||
abstract getChildProcesses (): Promise<ChildProcess[]>
|
|
||||||
abstract getTruePID (): Promise<number>
|
|
||||||
abstract getWorkingDirectory (): Promise<string|null>
|
|
||||||
}
|
|
||||||
|
|
||||||
export abstract class PTYInterface {
|
|
||||||
abstract spawn (...options: any[]): Promise<PTYProxy>
|
|
||||||
abstract restore (id: string): Promise<PTYProxy|null>
|
|
||||||
}
|
|
||||||
|
@@ -13,7 +13,7 @@ ng-container(*ngIf='!argvMode')
|
|||||||
(ngModelChange)='parseCommand()'
|
(ngModelChange)='parseCommand()'
|
||||||
)
|
)
|
||||||
|
|
||||||
ng-container(*ngIf='argvMode && _model')
|
ng-container(*ngIf='argvMode')
|
||||||
.mb-3
|
.mb-3
|
||||||
label(translate) Program
|
label(translate) Program
|
||||||
.input-group
|
.input-group
|
||||||
@@ -28,7 +28,7 @@ ng-container(*ngIf='argvMode && _model')
|
|||||||
[(ngModel)]='_model.command',
|
[(ngModel)]='_model.command',
|
||||||
)
|
)
|
||||||
|
|
||||||
.mb-3(*ngIf='_model.args')
|
.mb-3
|
||||||
label(translate) Arguments
|
label(translate) Arguments
|
||||||
.input-group(
|
.input-group(
|
||||||
*ngFor='let arg of _model.args; index as i; trackBy: trackByIndex',
|
*ngFor='let arg of _model.args; index as i; trackBy: trackByIndex',
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
command-line-editor([model]='profile.options')
|
command-line-editor([model]='profile.options')
|
||||||
|
|
||||||
.form-line(*ngIf='uac?.isAvailable')
|
.form-line(*ngIf='uac.isAvailable')
|
||||||
.header
|
.header
|
||||||
.title(translate) Run as administrator
|
.title(translate) Run as administrator
|
||||||
toggle(
|
toggle(
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||||
import { Component, Inject, Optional } from '@angular/core'
|
import { Component } from '@angular/core'
|
||||||
import { LocalProfile, UACService } from '../api'
|
import { UACService } from '../services/uac.service'
|
||||||
import { PlatformService, ProfileSettingsComponent } from 'tabby-core'
|
import { LocalProfile } from '../api'
|
||||||
|
import { ElectronHostWindow, ElectronService } from 'tabby-electron'
|
||||||
|
import { ProfileSettingsComponent } from 'tabby-core'
|
||||||
|
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@@ -12,8 +14,9 @@ export class LocalProfileSettingsComponent implements ProfileSettingsComponent<L
|
|||||||
profile: LocalProfile
|
profile: LocalProfile
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
@Optional() @Inject(UACService) public uac: UACService|undefined,
|
public uac: UACService,
|
||||||
private platform: PlatformService,
|
private hostWindow: ElectronHostWindow,
|
||||||
|
private electron: ElectronService,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
ngOnInit () {
|
ngOnInit () {
|
||||||
@@ -27,7 +30,14 @@ export class LocalProfileSettingsComponent implements ProfileSettingsComponent<L
|
|||||||
// if (!shell) {
|
// if (!shell) {
|
||||||
// return
|
// return
|
||||||
// }
|
// }
|
||||||
|
const paths = (await this.electron.dialog.showOpenDialog(
|
||||||
this.profile.options.cwd = await this.platform.pickDirectory()
|
this.hostWindow.getWindow(),
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
// defaultPath: shell.fsBase,
|
||||||
|
properties: ['openDirectory', 'showHiddenFiles'],
|
||||||
|
},
|
||||||
|
)).filePaths
|
||||||
|
this.profile.options.cwd = paths[0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,10 @@
|
|||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
|
||||||
import { Component, Input, Injector, Inject, Optional } from '@angular/core'
|
import { Component, Input, Injector } from '@angular/core'
|
||||||
import { BaseTabProcess, WIN_BUILD_CONPTY_SUPPORTED, isWindowsBuild, GetRecoveryTokenOptions } from 'tabby-core'
|
import { BaseTabProcess, WIN_BUILD_CONPTY_SUPPORTED, isWindowsBuild, GetRecoveryTokenOptions } from 'tabby-core'
|
||||||
import { BaseTerminalTabComponent } from 'tabby-terminal'
|
import { BaseTerminalTabComponent } from 'tabby-terminal'
|
||||||
import { LocalProfile, SessionOptions, UACService } from '../api'
|
import { LocalProfile, SessionOptions } from '../api'
|
||||||
import { Session } from '../session'
|
import { Session } from '../session'
|
||||||
|
import { UACService } from '../services/uac.service'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Component({
|
@Component({
|
||||||
@@ -19,7 +20,7 @@ export class TerminalTabComponent extends BaseTerminalTabComponent<LocalProfile>
|
|||||||
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
||||||
constructor (
|
constructor (
|
||||||
injector: Injector,
|
injector: Injector,
|
||||||
@Optional() @Inject(UACService) private uac: UACService|undefined,
|
private uac: UACService,
|
||||||
) {
|
) {
|
||||||
super(injector)
|
super(injector)
|
||||||
}
|
}
|
||||||
@@ -51,12 +52,12 @@ export class TerminalTabComponent extends BaseTerminalTabComponent<LocalProfile>
|
|||||||
|
|
||||||
protected onFrontendReady (): void {
|
protected onFrontendReady (): void {
|
||||||
this.initializeSession(this.size.columns, this.size.rows)
|
this.initializeSession(this.size.columns, this.size.rows)
|
||||||
this.savedStateIsLive = this.profile.options.restoreFromPTYID === this.session?.getID()
|
this.savedStateIsLive = this.profile.options.restoreFromPTYID === this.session?.getPTYID()
|
||||||
super.onFrontendReady()
|
super.onFrontendReady()
|
||||||
}
|
}
|
||||||
|
|
||||||
initializeSession (columns: number, rows: number): void {
|
initializeSession (columns: number, rows: number): void {
|
||||||
if (this.profile.options.runAsAdministrator && this.uac?.isAvailable) {
|
if (this.profile.options.runAsAdministrator && this.uac.isAvailable) {
|
||||||
this.profile = {
|
this.profile = {
|
||||||
...this.profile,
|
...this.profile,
|
||||||
options: this.uac.patchSessionOptionsForUAC(this.profile.options),
|
options: this.uac.patchSessionOptionsForUAC(this.profile.options),
|
||||||
@@ -82,7 +83,7 @@ export class TerminalTabComponent extends BaseTerminalTabComponent<LocalProfile>
|
|||||||
options: {
|
options: {
|
||||||
...this.profile.options,
|
...this.profile.options,
|
||||||
cwd: cwd ?? this.profile.options.cwd,
|
cwd: cwd ?? this.profile.options.cwd,
|
||||||
restoreFromPTYID: options?.includeState && this.session?.getID(),
|
restoreFromPTYID: options?.includeState && this.session?.getPTYID(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
savedState: options?.includeState && this.frontend?.saveState(),
|
savedState: options?.includeState && this.frontend?.saveState(),
|
||||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 392 B |
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 392 B |
Before Width: | Height: | Size: 567 B After Width: | Height: | Size: 567 B |
Before Width: | Height: | Size: 570 B After Width: | Height: | Size: 570 B |
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 287 B After Width: | Height: | Size: 287 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 551 B After Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
@@ -4,8 +4,9 @@ import { FormsModule } from '@angular/forms'
|
|||||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { ToastrModule } from 'ngx-toastr'
|
import { ToastrModule } from 'ngx-toastr'
|
||||||
|
|
||||||
import TabbyCorePlugin, { HostAppService, ToolbarButtonProvider, TabRecoveryProvider, ConfigProvider, HotkeysService, HotkeyProvider, TabContextMenuItemProvider, CLIHandler, ProfileProvider } from 'tabby-core'
|
import TabbyCorePlugin, { HostAppService, ToolbarButtonProvider, TabRecoveryProvider, ConfigProvider, HotkeysService, HotkeyProvider, TabContextMenuItemProvider, CLIHandler, ConfigService, ProfileProvider } from 'tabby-core'
|
||||||
import TabbyTerminalModule from 'tabby-terminal'
|
import TabbyTerminalModule from 'tabby-terminal'
|
||||||
|
import TabbyElectronPlugin from 'tabby-electron'
|
||||||
import { SettingsTabProvider } from 'tabby-settings'
|
import { SettingsTabProvider } from 'tabby-settings'
|
||||||
|
|
||||||
import { TerminalTabComponent } from './components/terminalTab.component'
|
import { TerminalTabComponent } from './components/terminalTab.component'
|
||||||
@@ -15,14 +16,30 @@ import { LocalProfileSettingsComponent } from './components/localProfileSettings
|
|||||||
import { CommandLineEditorComponent } from './components/commandLineEditor.component'
|
import { CommandLineEditorComponent } from './components/commandLineEditor.component'
|
||||||
|
|
||||||
import { TerminalService } from './services/terminal.service'
|
import { TerminalService } from './services/terminal.service'
|
||||||
|
import { DockMenuService } from './services/dockMenu.service'
|
||||||
|
|
||||||
import { ButtonProvider } from './buttonProvider'
|
import { ButtonProvider } from './buttonProvider'
|
||||||
import { RecoveryProvider } from './recoveryProvider'
|
import { RecoveryProvider } from './recoveryProvider'
|
||||||
|
import { ShellProvider } from './api'
|
||||||
import { ShellSettingsTabProvider } from './settings'
|
import { ShellSettingsTabProvider } from './settings'
|
||||||
import { TerminalConfigProvider } from './config'
|
import { TerminalConfigProvider } from './config'
|
||||||
import { LocalTerminalHotkeyProvider } from './hotkeys'
|
import { LocalTerminalHotkeyProvider } from './hotkeys'
|
||||||
import { NewTabContextMenu, SaveAsProfileContextMenu } from './tabContextMenu'
|
import { NewTabContextMenu, SaveAsProfileContextMenu } from './tabContextMenu'
|
||||||
|
|
||||||
|
import { CmderShellProvider } from './shells/cmder'
|
||||||
|
import { Cygwin32ShellProvider } from './shells/cygwin32'
|
||||||
|
import { Cygwin64ShellProvider } from './shells/cygwin64'
|
||||||
|
import { GitBashShellProvider } from './shells/gitBash'
|
||||||
|
import { LinuxDefaultShellProvider } from './shells/linuxDefault'
|
||||||
|
import { MacOSDefaultShellProvider } from './shells/macDefault'
|
||||||
|
import { MSYS2ShellProvider } from './shells/msys2'
|
||||||
|
import { POSIXShellsProvider } from './shells/posix'
|
||||||
|
import { PowerShellCoreShellProvider } from './shells/powershellCore'
|
||||||
|
import { WindowsDefaultShellProvider } from './shells/winDefault'
|
||||||
|
import { WindowsStockShellsProvider } from './shells/windowsStock'
|
||||||
|
import { WSLShellProvider } from './shells/wsl'
|
||||||
|
import { VSDevToolsProvider } from './shells/vs'
|
||||||
|
|
||||||
import { AutoOpenTabCLIHandler, OpenPathCLIHandler, TerminalCLIHandler } from './cli'
|
import { AutoOpenTabCLIHandler, OpenPathCLIHandler, TerminalCLIHandler } from './cli'
|
||||||
import { LocalProfilesService } from './profiles'
|
import { LocalProfilesService } from './profiles'
|
||||||
|
|
||||||
@@ -34,6 +51,7 @@ import { LocalProfilesService } from './profiles'
|
|||||||
NgbModule,
|
NgbModule,
|
||||||
ToastrModule,
|
ToastrModule,
|
||||||
TabbyCorePlugin,
|
TabbyCorePlugin,
|
||||||
|
TabbyElectronPlugin,
|
||||||
TabbyTerminalModule,
|
TabbyTerminalModule,
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
@@ -44,6 +62,20 @@ import { LocalProfilesService } from './profiles'
|
|||||||
{ provide: ConfigProvider, useClass: TerminalConfigProvider, multi: true },
|
{ provide: ConfigProvider, useClass: TerminalConfigProvider, multi: true },
|
||||||
{ provide: HotkeyProvider, useClass: LocalTerminalHotkeyProvider, multi: true },
|
{ provide: HotkeyProvider, useClass: LocalTerminalHotkeyProvider, multi: true },
|
||||||
|
|
||||||
|
{ provide: ShellProvider, useClass: WindowsDefaultShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: MacOSDefaultShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: LinuxDefaultShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: WindowsStockShellsProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: PowerShellCoreShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: CmderShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: Cygwin32ShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: Cygwin64ShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: GitBashShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: POSIXShellsProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: MSYS2ShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: WSLShellProvider, multi: true },
|
||||||
|
{ provide: ShellProvider, useClass: VSDevToolsProvider, multi: true },
|
||||||
|
|
||||||
{ provide: ProfileProvider, useClass: LocalProfilesService, multi: true },
|
{ provide: ProfileProvider, useClass: LocalProfilesService, multi: true },
|
||||||
|
|
||||||
{ provide: TabContextMenuItemProvider, useClass: NewTabContextMenu, multi: true },
|
{ provide: TabContextMenuItemProvider, useClass: NewTabContextMenu, multi: true },
|
||||||
@@ -52,6 +84,11 @@ import { LocalProfilesService } from './profiles'
|
|||||||
{ provide: CLIHandler, useClass: TerminalCLIHandler, multi: true },
|
{ provide: CLIHandler, useClass: TerminalCLIHandler, multi: true },
|
||||||
{ provide: CLIHandler, useClass: OpenPathCLIHandler, multi: true },
|
{ provide: CLIHandler, useClass: OpenPathCLIHandler, multi: true },
|
||||||
{ provide: CLIHandler, useClass: AutoOpenTabCLIHandler, multi: true },
|
{ provide: CLIHandler, useClass: AutoOpenTabCLIHandler, multi: true },
|
||||||
|
|
||||||
|
// For WindowsDefaultShellProvider
|
||||||
|
PowerShellCoreShellProvider,
|
||||||
|
WSLShellProvider,
|
||||||
|
WindowsStockShellsProvider,
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
TerminalTabComponent,
|
TerminalTabComponent,
|
||||||
@@ -71,6 +108,8 @@ export default class LocalTerminalModule { // eslint-disable-line @typescript-es
|
|||||||
hotkeys: HotkeysService,
|
hotkeys: HotkeysService,
|
||||||
terminal: TerminalService,
|
terminal: TerminalService,
|
||||||
hostApp: HostAppService,
|
hostApp: HostAppService,
|
||||||
|
dockMenu: DockMenuService,
|
||||||
|
config: ConfigService,
|
||||||
) {
|
) {
|
||||||
hotkeys.hotkey$.subscribe(async (hotkey) => {
|
hotkeys.hotkey$.subscribe(async (hotkey) => {
|
||||||
if (hotkey === 'new-tab') {
|
if (hotkey === 'new-tab') {
|
||||||
@@ -80,6 +119,10 @@ export default class LocalTerminalModule { // eslint-disable-line @typescript-es
|
|||||||
hostApp.newWindow()
|
hostApp.newWindow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
config.ready$.toPromise().then(() => {
|
||||||
|
dockMenu.update()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import { NgZone, Injectable } from '@angular/core'
|
import { NgZone, Injectable } from '@angular/core'
|
||||||
import { ConfigService, HostAppService, Platform, ProfilesService, TranslateService } from 'tabby-core'
|
import { ConfigService, HostAppService, Platform, ProfilesService, TranslateService } from 'tabby-core'
|
||||||
import { ElectronService } from './electron.service'
|
import { ElectronService } from 'tabby-electron'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable({ providedIn: 'root' })
|
@Injectable({ providedIn: 'root' })
|
@@ -1,16 +1,17 @@
|
|||||||
import { Injectable } from '@angular/core'
|
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
|
import { Injectable } from '@angular/core'
|
||||||
import { WIN_BUILD_CONPTY_SUPPORTED, isWindowsBuild } from 'tabby-core'
|
import { WIN_BUILD_CONPTY_SUPPORTED, isWindowsBuild } from 'tabby-core'
|
||||||
import { SessionOptions, UACService } from 'tabby-local'
|
import { ElectronService } from 'tabby-electron'
|
||||||
import { ElectronService } from './electron.service'
|
import { SessionOptions } from '../api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable()
|
@Injectable({ providedIn: 'root' })
|
||||||
export class ElectronUACService extends UACService {
|
export class UACService {
|
||||||
constructor (
|
isAvailable = false
|
||||||
|
|
||||||
|
private constructor (
|
||||||
private electron: ElectronService,
|
private electron: ElectronService,
|
||||||
) {
|
) {
|
||||||
super()
|
|
||||||
this.isAvailable = isWindowsBuild(WIN_BUILD_CONPTY_SUPPORTED)
|
this.isAvailable = isWindowsBuild(WIN_BUILD_CONPTY_SUPPORTED)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,4 +37,5 @@ export class ElectronUACService extends UACService {
|
|||||||
options.command = helperPath
|
options.command = helperPath
|
||||||
return options
|
return options
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@@ -1,12 +1,87 @@
|
|||||||
|
import * as psNode from 'ps-node'
|
||||||
import * as fs from 'mz/fs'
|
import * as fs from 'mz/fs'
|
||||||
import * as fsSync from 'fs'
|
import * as fsSync from 'fs'
|
||||||
import { Injector } from '@angular/core'
|
import { Injector } from '@angular/core'
|
||||||
import { HostAppService, ConfigService, WIN_BUILD_CONPTY_SUPPORTED, isWindowsBuild, Platform, BootstrapData, BOOTSTRAP_DATA, LogService } from 'tabby-core'
|
import { HostAppService, ConfigService, WIN_BUILD_CONPTY_SUPPORTED, isWindowsBuild, Platform, BootstrapData, BOOTSTRAP_DATA, LogService } from 'tabby-core'
|
||||||
import { BaseSession } from 'tabby-terminal'
|
import { BaseSession } from 'tabby-terminal'
|
||||||
import { SessionOptions, ChildProcess, PTYInterface, PTYProxy } from './api'
|
import { ipcRenderer } from 'electron'
|
||||||
|
import { getWorkingDirectoryFromPID } from 'native-process-working-directory'
|
||||||
|
import { SessionOptions, ChildProcess } from './api'
|
||||||
|
|
||||||
|
/* eslint-disable block-scoped-var */
|
||||||
|
|
||||||
|
try {
|
||||||
|
var macOSNativeProcessList = require('macos-native-processlist') // eslint-disable-line @typescript-eslint/no-var-requires, no-var
|
||||||
|
} catch { }
|
||||||
|
|
||||||
|
try {
|
||||||
|
var windowsProcessTree = require('windows-process-tree') // eslint-disable-line @typescript-eslint/no-var-requires, no-var
|
||||||
|
} catch { }
|
||||||
|
|
||||||
const windowsDirectoryRegex = /([a-zA-Z]:[^\:\[\]\?\"\<\>\|]+)/mi
|
const windowsDirectoryRegex = /([a-zA-Z]:[^\:\[\]\?\"\<\>\|]+)/mi
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
||||||
|
export class PTYProxy {
|
||||||
|
private id: string
|
||||||
|
private subscriptions: Map<string, any> = new Map()
|
||||||
|
|
||||||
|
static spawn (...options: any[]): PTYProxy {
|
||||||
|
return new PTYProxy(null, ...options)
|
||||||
|
}
|
||||||
|
|
||||||
|
static restore (id: string): PTYProxy|null {
|
||||||
|
if (ipcRenderer.sendSync('pty:exists', id)) {
|
||||||
|
return new PTYProxy(id)
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
private constructor (id: string|null, ...options: any[]) {
|
||||||
|
if (id) {
|
||||||
|
this.id = id
|
||||||
|
} else {
|
||||||
|
this.id = ipcRenderer.sendSync('pty:spawn', ...options)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getPTYID (): string {
|
||||||
|
return this.id
|
||||||
|
}
|
||||||
|
|
||||||
|
getPID (): number {
|
||||||
|
return ipcRenderer.sendSync('pty:get-pid', this.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
subscribe (event: string, handler: (..._: any[]) => void): void {
|
||||||
|
const key = `pty:${this.id}:${event}`
|
||||||
|
const newHandler = (_event, ...args) => handler(...args)
|
||||||
|
this.subscriptions.set(key, newHandler)
|
||||||
|
ipcRenderer.on(key, newHandler)
|
||||||
|
}
|
||||||
|
|
||||||
|
ackData (length: number): void {
|
||||||
|
ipcRenderer.send('pty:ack-data', this.id, length)
|
||||||
|
}
|
||||||
|
|
||||||
|
unsubscribeAll (): void {
|
||||||
|
for (const k of this.subscriptions.keys()) {
|
||||||
|
ipcRenderer.off(k, this.subscriptions.get(k))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resize (columns: number, rows: number): void {
|
||||||
|
ipcRenderer.send('pty:resize', this.id, columns, rows)
|
||||||
|
}
|
||||||
|
|
||||||
|
write (data: Buffer): void {
|
||||||
|
ipcRenderer.send('pty:write', this.id, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
kill (signal?: string): void {
|
||||||
|
ipcRenderer.send('pty:kill', this.id, signal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function mergeEnv (...envs) {
|
function mergeEnv (...envs) {
|
||||||
const result = {}
|
const result = {}
|
||||||
const keyMap = {}
|
const keyMap = {}
|
||||||
@@ -46,23 +121,19 @@ export class Session extends BaseSession {
|
|||||||
private config: ConfigService
|
private config: ConfigService
|
||||||
private hostApp: HostAppService
|
private hostApp: HostAppService
|
||||||
private bootstrapData: BootstrapData
|
private bootstrapData: BootstrapData
|
||||||
private ptyInterface: PTYInterface
|
|
||||||
|
|
||||||
constructor (
|
constructor (injector: Injector) {
|
||||||
injector: Injector,
|
|
||||||
) {
|
|
||||||
super(injector.get(LogService).create('local'))
|
super(injector.get(LogService).create('local'))
|
||||||
this.config = injector.get(ConfigService)
|
this.config = injector.get(ConfigService)
|
||||||
this.hostApp = injector.get(HostAppService)
|
this.hostApp = injector.get(HostAppService)
|
||||||
this.ptyInterface = injector.get(PTYInterface)
|
|
||||||
this.bootstrapData = injector.get(BOOTSTRAP_DATA)
|
this.bootstrapData = injector.get(BOOTSTRAP_DATA)
|
||||||
}
|
}
|
||||||
|
|
||||||
async start (options: SessionOptions): Promise<void> {
|
start (options: SessionOptions): void {
|
||||||
let pty: PTYProxy|null = null
|
let pty: PTYProxy|null = null
|
||||||
|
|
||||||
if (options.restoreFromPTYID) {
|
if (options.restoreFromPTYID) {
|
||||||
pty = await this.ptyInterface.restore(options.restoreFromPTYID)
|
pty = PTYProxy.restore(options.restoreFromPTYID)
|
||||||
options.restoreFromPTYID = undefined
|
options.restoreFromPTYID = undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,7 +175,7 @@ export class Session extends BaseSession {
|
|||||||
cwd = undefined
|
cwd = undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
pty = await this.ptyInterface.spawn(options.command, options.args ?? [], {
|
pty = PTYProxy.spawn(options.command, options.args ?? [], {
|
||||||
name: 'xterm-256color',
|
name: 'xterm-256color',
|
||||||
cols: options.width ?? 80,
|
cols: options.width ?? 80,
|
||||||
rows: options.height ?? 30,
|
rows: options.height ?? 30,
|
||||||
@@ -120,9 +191,17 @@ export class Session extends BaseSession {
|
|||||||
|
|
||||||
this.pty = pty
|
this.pty = pty
|
||||||
|
|
||||||
pty.getTruePID().then(async () => {
|
this.truePID = this.pty.getPID()
|
||||||
|
|
||||||
|
setTimeout(async () => {
|
||||||
|
// Retrieve any possible single children now that shell has fully started
|
||||||
|
let processes = await this.getChildProcesses()
|
||||||
|
while (processes.length === 1) {
|
||||||
|
this.truePID = processes[0].pid
|
||||||
|
processes = await this.getChildProcesses()
|
||||||
|
}
|
||||||
this.initialCWD = await this.getWorkingDirectory()
|
this.initialCWD = await this.getWorkingDirectory()
|
||||||
})
|
}, 2000)
|
||||||
|
|
||||||
this.open = true
|
this.open = true
|
||||||
|
|
||||||
@@ -157,8 +236,8 @@ export class Session extends BaseSession {
|
|||||||
this.destroyed$.subscribe(() => this.pty!.unsubscribeAll())
|
this.destroyed$.subscribe(() => this.pty!.unsubscribeAll())
|
||||||
}
|
}
|
||||||
|
|
||||||
getID (): string|null {
|
getPTYID (): string|null {
|
||||||
return this.pty?.getID() ?? null
|
return this.pty?.getPTYID() ?? null
|
||||||
}
|
}
|
||||||
|
|
||||||
resize (columns: number, rows: number): void {
|
resize (columns: number, rows: number): void {
|
||||||
@@ -179,7 +258,37 @@ export class Session extends BaseSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getChildProcesses (): Promise<ChildProcess[]> {
|
async getChildProcesses (): Promise<ChildProcess[]> {
|
||||||
return this.pty?.getChildProcesses() ?? []
|
if (!this.truePID) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
if (this.hostApp.platform === Platform.macOS) {
|
||||||
|
const processes = await macOSNativeProcessList.getProcessList()
|
||||||
|
return processes.filter(x => x.ppid === this.truePID).map(p => ({
|
||||||
|
pid: p.pid,
|
||||||
|
ppid: p.ppid,
|
||||||
|
command: p.name,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
if (this.hostApp.platform === Platform.Windows) {
|
||||||
|
return new Promise<ChildProcess[]>(resolve => {
|
||||||
|
windowsProcessTree.getProcessTree(this.truePID, tree => {
|
||||||
|
resolve(tree ? tree.children.map(child => ({
|
||||||
|
pid: child.pid,
|
||||||
|
ppid: tree.pid,
|
||||||
|
command: child.name,
|
||||||
|
})) : [])
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return new Promise<ChildProcess[]>((resolve, reject) => {
|
||||||
|
psNode.lookup({ ppid: this.truePID }, (err, processes) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resolve(processes as ChildProcess[])
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async gracefullyKillProcess (): Promise<void> {
|
async gracefullyKillProcess (): Promise<void> {
|
||||||
@@ -188,9 +297,9 @@ export class Session extends BaseSession {
|
|||||||
} else {
|
} else {
|
||||||
await new Promise<void>((resolve) => {
|
await new Promise<void>((resolve) => {
|
||||||
this.kill('SIGTERM')
|
this.kill('SIGTERM')
|
||||||
setTimeout(async () => {
|
setTimeout(() => {
|
||||||
try {
|
try {
|
||||||
process.kill(await this.pty!.getPID(), 0)
|
process.kill(this.pty!.getPID(), 0)
|
||||||
// still alive
|
// still alive
|
||||||
this.kill('SIGKILL')
|
this.kill('SIGKILL')
|
||||||
resolve()
|
resolve()
|
||||||
@@ -203,16 +312,19 @@ export class Session extends BaseSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
supportsWorkingDirectory (): boolean {
|
supportsWorkingDirectory (): boolean {
|
||||||
return !!(this.initialCWD ?? this.reportedCWD ?? this.guessedCWD)
|
return !!(this.truePID ?? this.reportedCWD ?? this.guessedCWD)
|
||||||
}
|
}
|
||||||
|
|
||||||
async getWorkingDirectory (): Promise<string|null> {
|
async getWorkingDirectory (): Promise<string|null> {
|
||||||
if (this.reportedCWD) {
|
if (this.reportedCWD) {
|
||||||
return this.reportedCWD
|
return this.reportedCWD
|
||||||
}
|
}
|
||||||
|
if (!this.truePID) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
let cwd: string|null = null
|
let cwd: string|null = null
|
||||||
try {
|
try {
|
||||||
cwd = await this.pty?.getWorkingDirectory() ?? null
|
cwd = getWorkingDirectoryFromPID(this.truePID)
|
||||||
} catch (exc) {
|
} catch (exc) {
|
||||||
console.info('Could not read working directory:', exc)
|
console.info('Could not read working directory:', exc)
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@ import * as path from 'path'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform } from 'tabby-core'
|
import { HostAppService, Platform } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable()
|
@Injectable()
|
@@ -2,7 +2,7 @@ import * as path from 'path'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform } from 'tabby-core'
|
import { HostAppService, Platform } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/* eslint-disable block-scoped-var */
|
/* eslint-disable block-scoped-var */
|
||||||
|
|
@@ -2,7 +2,7 @@ import * as path from 'path'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform } from 'tabby-core'
|
import { HostAppService, Platform } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/* eslint-disable block-scoped-var */
|
/* eslint-disable block-scoped-var */
|
||||||
|
|
@@ -2,7 +2,7 @@ import * as path from 'path'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { Platform, ConfigService, HostAppService } from 'tabby-core'
|
import { Platform, ConfigService, HostAppService } from 'tabby-core'
|
||||||
|
|
||||||
import { Shell } from 'tabby-local'
|
import { Shell } from '../api'
|
||||||
import { WindowsBaseShellProvider } from './windowsBase'
|
import { WindowsBaseShellProvider } from './windowsBase'
|
||||||
|
|
||||||
/* eslint-disable block-scoped-var */
|
/* eslint-disable block-scoped-var */
|
@@ -2,7 +2,7 @@ import * as fs from 'mz/fs'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform, LogService, Logger, TranslateService } from 'tabby-core'
|
import { HostAppService, Platform, LogService, Logger, TranslateService } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable()
|
@Injectable()
|
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'
|
|||||||
import promiseIpc, { RendererProcessType } from 'electron-promise-ipc'
|
import promiseIpc, { RendererProcessType } from 'electron-promise-ipc'
|
||||||
import { HostAppService, Platform, TranslateService } from 'tabby-core'
|
import { HostAppService, Platform, TranslateService } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable()
|
@Injectable()
|
@@ -3,7 +3,7 @@ import * as path from 'path'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform } from 'tabby-core'
|
import { HostAppService, Platform } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable()
|
@Injectable()
|
@@ -3,7 +3,7 @@ import slugify from 'slugify'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform } from 'tabby-core'
|
import { HostAppService, Platform } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable()
|
@Injectable()
|
@@ -1,7 +1,7 @@
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, ConfigService, Platform } from 'tabby-core'
|
import { HostAppService, ConfigService, Platform } from 'tabby-core'
|
||||||
|
|
||||||
import { Shell } from 'tabby-local'
|
import { Shell } from '../api'
|
||||||
import { WindowsBaseShellProvider } from './windowsBase'
|
import { WindowsBaseShellProvider } from './windowsBase'
|
||||||
|
|
||||||
/* eslint-disable block-scoped-var */
|
/* eslint-disable block-scoped-var */
|
@@ -3,7 +3,7 @@ import * as fs from 'fs/promises'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform } from 'tabby-core'
|
import { HostAppService, Platform } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/* eslint-disable quote-props */
|
/* eslint-disable quote-props */
|
||||||
const vsIconMap: Record<string, string> = {
|
const vsIconMap: Record<string, string> = {
|
@@ -1,7 +1,7 @@
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform, TranslateService } from 'tabby-core'
|
import { HostAppService, Platform, TranslateService } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
import { WSLShellProvider } from './wsl'
|
import { WSLShellProvider } from './wsl'
|
||||||
import { PowerShellCoreShellProvider } from './powershellCore'
|
import { PowerShellCoreShellProvider } from './powershellCore'
|
@@ -1,6 +1,6 @@
|
|||||||
import { ConfigService, HostAppService } from 'tabby-core'
|
import { ConfigService, HostAppService } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider } from 'tabby-local'
|
import { ShellProvider } from '../api'
|
||||||
|
|
||||||
export abstract class WindowsBaseShellProvider extends ShellProvider {
|
export abstract class WindowsBaseShellProvider extends ShellProvider {
|
||||||
constructor (
|
constructor (
|
@@ -3,9 +3,9 @@ import * as fs from 'fs/promises'
|
|||||||
import hasbin from 'hasbin'
|
import hasbin from 'hasbin'
|
||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform, ConfigService } from 'tabby-core'
|
import { HostAppService, Platform, ConfigService } from 'tabby-core'
|
||||||
import { ElectronService } from '../services/electron.service'
|
import { ElectronService } from 'tabby-electron'
|
||||||
|
|
||||||
import { Shell } from 'tabby-local'
|
import { Shell } from '../api'
|
||||||
import { WindowsBaseShellProvider } from './windowsBase'
|
import { WindowsBaseShellProvider } from './windowsBase'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
@@ -4,7 +4,7 @@ import slugify from 'slugify'
|
|||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { HostAppService, Platform, isWindowsBuild, WIN_BUILD_WSL_EXE_DISTRO_FLAG } from 'tabby-core'
|
import { HostAppService, Platform, isWindowsBuild, WIN_BUILD_WSL_EXE_DISTRO_FLAG } from 'tabby-core'
|
||||||
|
|
||||||
import { ShellProvider, Shell } from 'tabby-local'
|
import { ShellProvider, Shell } from '../api'
|
||||||
|
|
||||||
/* eslint-disable block-scoped-var */
|
/* eslint-disable block-scoped-var */
|
||||||
|
|
@@ -1,9 +1,10 @@
|
|||||||
import { Inject, Injectable, Optional } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { ConfigService, BaseTabComponent, TabContextMenuItemProvider, NotificationsService, MenuItemOptions, ProfilesService, PromptModalComponent, TranslateService } from 'tabby-core'
|
import { ConfigService, BaseTabComponent, TabContextMenuItemProvider, NotificationsService, MenuItemOptions, ProfilesService, PromptModalComponent, TranslateService } from 'tabby-core'
|
||||||
import { TerminalTabComponent } from './components/terminalTab.component'
|
import { TerminalTabComponent } from './components/terminalTab.component'
|
||||||
|
import { UACService } from './services/uac.service'
|
||||||
import { TerminalService } from './services/terminal.service'
|
import { TerminalService } from './services/terminal.service'
|
||||||
import { LocalProfile, UACService } from './api'
|
import { LocalProfile } from './api'
|
||||||
|
|
||||||
/** @hidden */
|
/** @hidden */
|
||||||
@Injectable()
|
@Injectable()
|
||||||
@@ -63,7 +64,7 @@ export class NewTabContextMenu extends TabContextMenuItemProvider {
|
|||||||
public config: ConfigService,
|
public config: ConfigService,
|
||||||
private profilesService: ProfilesService,
|
private profilesService: ProfilesService,
|
||||||
private terminalService: TerminalService,
|
private terminalService: TerminalService,
|
||||||
@Optional() @Inject(UACService) private uac: UACService|undefined,
|
private uac: UACService,
|
||||||
private translate: TranslateService,
|
private translate: TranslateService,
|
||||||
) {
|
) {
|
||||||
super()
|
super()
|
||||||
@@ -98,7 +99,7 @@ export class NewTabContextMenu extends TabContextMenuItemProvider {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
if (this.uac?.isAvailable) {
|
if (this.uac.isAvailable) {
|
||||||
items.push({
|
items.push({
|
||||||
label: this.translate.instant('New admin tab'),
|
label: this.translate.instant('New admin tab'),
|
||||||
submenu: profiles.map(profile => ({
|
submenu: profiles.map(profile => ({
|
||||||
@@ -116,7 +117,7 @@ export class NewTabContextMenu extends TabContextMenuItemProvider {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab instanceof TerminalTabComponent && tabHeader && this.uac?.isAvailable) {
|
if (tab instanceof TerminalTabComponent && tabHeader && this.uac.isAvailable) {
|
||||||
const terminalTab = tab
|
const terminalTab = tab
|
||||||
items.push({
|
items.push({
|
||||||
label: this.translate.instant('Duplicate as administrator'),
|
label: this.translate.instant('Duplicate as administrator'),
|
||||||
|
@@ -7,12 +7,43 @@ ansi-colors@^4.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
|
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
|
||||||
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
|
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
|
||||||
|
|
||||||
|
async@~1.5:
|
||||||
|
version "1.5.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
||||||
|
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
|
||||||
|
|
||||||
|
connected-domain@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/connected-domain/-/connected-domain-1.0.0.tgz#bfe77238c74be453a79f0cb6058deeb4f2358e93"
|
||||||
|
integrity sha1-v+dyOMdL5FOnnwy2BY3utPI1jpM=
|
||||||
|
|
||||||
dataurl@0.1.0:
|
dataurl@0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/dataurl/-/dataurl-0.1.0.tgz#1f4734feddec05ffe445747978d86759c4b33199"
|
resolved "https://registry.yarnpkg.com/dataurl/-/dataurl-0.1.0.tgz#1f4734feddec05ffe445747978d86759c4b33199"
|
||||||
integrity sha1-H0c0/t3sBf/kRXR5eNhnWcSzMZk=
|
integrity sha1-H0c0/t3sBf/kRXR5eNhnWcSzMZk=
|
||||||
|
|
||||||
|
hasbin@^1.2.3:
|
||||||
|
version "1.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/hasbin/-/hasbin-1.2.3.tgz#78c5926893c80215c2b568ae1fd3fcab7a2696b0"
|
||||||
|
integrity sha1-eMWSaJPIAhXCtWiuH9P8q3omlrA=
|
||||||
|
dependencies:
|
||||||
|
async "~1.5"
|
||||||
|
|
||||||
|
ps-node@^0.1.6:
|
||||||
|
version "0.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/ps-node/-/ps-node-0.1.6.tgz#9af67a99d7b1d0132e51a503099d38a8d2ace2c3"
|
||||||
|
integrity sha1-mvZ6mdex0BMuUaUDCZ04qNKs4sM=
|
||||||
|
dependencies:
|
||||||
|
table-parser "^0.1.3"
|
||||||
|
|
||||||
runes@^0.4.2:
|
runes@^0.4.2:
|
||||||
version "0.4.3"
|
version "0.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/runes/-/runes-0.4.3.tgz#32f7738844bc767b65cc68171528e3373c7bb355"
|
resolved "https://registry.yarnpkg.com/runes/-/runes-0.4.3.tgz#32f7738844bc767b65cc68171528e3373c7bb355"
|
||||||
integrity sha512-K6p9y4ZyL9wPzA+PMDloNQPfoDGTiFYDvdlXznyGKgD10BJpcAosvATKrExRKOrNLgD8E7Um7WGW0lxsnOuNLg==
|
integrity sha512-K6p9y4ZyL9wPzA+PMDloNQPfoDGTiFYDvdlXznyGKgD10BJpcAosvATKrExRKOrNLgD8E7Um7WGW0lxsnOuNLg==
|
||||||
|
|
||||||
|
table-parser@^0.1.3:
|
||||||
|
version "0.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/table-parser/-/table-parser-0.1.3.tgz#0441cfce16a59481684c27d1b5a67ff15a43c7b0"
|
||||||
|
integrity sha1-BEHPzhallIFoTCfRtaZ/8VpDx7A=
|
||||||
|
dependencies:
|
||||||
|
connected-domain "^1.0.0"
|
||||||
|
@@ -21,8 +21,8 @@ ul.nav-tabs.mb-2(ngbNav, #nav='ngbNav')
|
|||||||
i.fas.fa-fw.fa-search(*ngIf='availablePluginsReady')
|
i.fas.fa-fw.fa-search(*ngIf='availablePluginsReady')
|
||||||
input.form-control(
|
input.form-control(
|
||||||
type='text',
|
type='text',
|
||||||
[(ngModel)]='availableFilter',
|
[(ngModel)]='_1',
|
||||||
(ngModelChange)='searchAvailable(availableFilter)',
|
(ngModelChange)='searchAvailable(_1)',
|
||||||
[placeholder]='"Search plugins"|translate'
|
[placeholder]='"Search plugins"|translate'
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -64,8 +64,8 @@ ul.nav-tabs.mb-2(ngbNav, #nav='ngbNav')
|
|||||||
i.fas.fa-fw.fa-search
|
i.fas.fa-fw.fa-search
|
||||||
input.form-control(
|
input.form-control(
|
||||||
type='text',
|
type='text',
|
||||||
[(ngModel)]='installedFilter',
|
[(ngModel)]='_2',
|
||||||
(ngModelChange)='searchInstalled(installedFilter)',
|
(ngModelChange)='searchInstalled(_2)',
|
||||||
[placeholder]='"Search plugins"|translate'
|
[placeholder]='"Search plugins"|translate'
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ ul.nav-tabs.mb-2(ngbNav, #nav='ngbNav')
|
|||||||
i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Installing')
|
i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Installing')
|
||||||
span(
|
span(
|
||||||
translate='Upgrade to {version}',
|
translate='Upgrade to {version}',
|
||||||
[translateParams]='{version: knownUpgrades[plugin.name]?.version}'
|
[translateParams]='{version: knownUpgrades[plugin.name].version}'
|
||||||
)
|
)
|
||||||
|
|
||||||
ng-template(ngbPanelContent)
|
ng-template(ngbPanelContent)
|
||||||
|
@@ -32,8 +32,6 @@ export class PluginsSettingsTabComponent {
|
|||||||
@HostBinding('class.content-box') true
|
@HostBinding('class.content-box') true
|
||||||
|
|
||||||
installedPlugins$: PluginInfo[] = []
|
installedPlugins$: PluginInfo[] = []
|
||||||
installedFilter = ''
|
|
||||||
availableFilter = ''
|
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private config: ConfigService,
|
private config: ConfigService,
|
||||||
|
@@ -132,7 +132,7 @@ export class SerialSession extends BaseSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
write (data: Buffer): void {
|
write (data: Buffer): void {
|
||||||
this.serial?.write(data)
|
this.serial?.write(data.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
async destroy (): Promise<void> {
|
async destroy (): Promise<void> {
|
||||||
|
@@ -85,7 +85,7 @@ ul.nav-tabs(ngbNav, #nav='ngbNav')
|
|||||||
.header
|
.header
|
||||||
.title(translate) Slow feed
|
.title(translate) Slow feed
|
||||||
.description(translate) Sends data one byte at a time
|
.description(translate) Sends data one byte at a time
|
||||||
toggle([(ngModel)]='profile.options.slowSend')
|
toggle([(ngModel)]='profile.options.slowFeed')
|
||||||
|
|
||||||
li(ngbNavItem)
|
li(ngbNavItem)
|
||||||
a(ngbNavLink, translate) Login scripts
|
a(ngbNavLink, translate) Login scripts
|
||||||
|
@@ -9,18 +9,6 @@ h3.mb-3(translate) Window
|
|||||||
)
|
)
|
||||||
option(*ngFor='let theme of themes', [ngValue]='theme.name') {{theme.name}}
|
option(*ngFor='let theme of themes', [ngValue]='theme.name') {{theme.name}}
|
||||||
|
|
||||||
.form-line
|
|
||||||
.header
|
|
||||||
.title(translate) Spaciness
|
|
||||||
.description(translate) Controls the amount of space between elements
|
|
||||||
input(
|
|
||||||
type='range',
|
|
||||||
[(ngModel)]='config.store.appearance.spaciness',
|
|
||||||
(mouseup)='saveConfiguration()',
|
|
||||||
min='0.6',
|
|
||||||
max='1.4',
|
|
||||||
step='0.1'
|
|
||||||
)
|
|
||||||
|
|
||||||
.form-line(*ngIf='hostApp.platform === Platform.Web')
|
.form-line(*ngIf='hostApp.platform === Platform.Web')
|
||||||
.header
|
.header
|
||||||
@@ -197,7 +185,6 @@ h3.mt-4(translate) Docking
|
|||||||
label.btn.btn-secondary(id='dockScreenCurrent')
|
label.btn.btn-secondary(id='dockScreenCurrent')
|
||||||
span(translate) Current
|
span(translate) Current
|
||||||
input.btn-check(
|
input.btn-check(
|
||||||
*ngFor='let screen of screens',
|
|
||||||
type='radio',
|
type='radio',
|
||||||
name='dockScreen',
|
name='dockScreen',
|
||||||
[(ngModel)]='config.store.appearance.dockScreen',
|
[(ngModel)]='config.store.appearance.dockScreen',
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
.d-flex.align-items-center
|
.d-flex.align-items-center
|
||||||
label(translate) Last known host key fingerprint
|
label(translate) Last known host key fingerprint
|
||||||
.badge.text-bg-danger.ms-auto {{ selector.type }}
|
.badge.text-bg-danger.ms-auto {{ selector.type }}
|
||||||
code {{knownHost?.digest}}
|
code {{knownHost.digest}}
|
||||||
|
|
||||||
.mb-3
|
.mb-3
|
||||||
.d-flex.align-items-center
|
.d-flex.align-items-center
|
||||||
|
@@ -46,6 +46,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-link svg {
|
.btn-close svg {
|
||||||
width: 12px;
|
width: 12px;
|
||||||
}
|
}
|
||||||
|