diff --git a/.all-contributorsrc b/.all-contributorsrc
index 6a0e9f9a..97c51061 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -1292,6 +1292,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "C41M50N",
+ "name": "Charles Buffington",
+ "avatar_url": "https://avatars.githubusercontent.com/u/29805363?v=4",
+ "profile": "https://cbuff.dev",
+ "contributions": [
+ "code"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/HACKING.md b/HACKING.md
index 2382cdd2..730bd204 100644
--- a/HACKING.md
+++ b/HACKING.md
@@ -23,6 +23,8 @@ sudo apt install libfontconfig-dev libsecret-1-dev libarchive-tools libnss3 liba
yarn
```
+_⚠️Note: If you forked this repository, you may need to pull down the tags from this repository before installing node modules. `git pull --tags upstream master`_
+
Build Tabby:
```
diff --git a/README.de-DE.md b/README.de-DE.md
index 05c5a1f8..e07fd082 100644
--- a/README.de-DE.md
+++ b/README.de-DE.md
@@ -338,6 +338,7 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.es-ES.md b/README.es-ES.md
index f9109b4b..6b7ceb13 100644
--- a/README.es-ES.md
+++ b/README.es-ES.md
@@ -340,6 +340,7 @@ Gracias a estas maravillosas personas ([emoji key](https://allcontributors.org/d
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.id-ID.md b/README.id-ID.md
index 74b35780..33f1b274 100644
--- a/README.id-ID.md
+++ b/README.id-ID.md
@@ -337,6 +337,7 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.it-IT.md b/README.it-IT.md
index 3f4a19db..38c22aa2 100644
--- a/README.it-IT.md
+++ b/README.it-IT.md
@@ -333,6 +333,7 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.ja-JP.md b/README.ja-JP.md
index ea38bd11..9bf11428 100644
--- a/README.ja-JP.md
+++ b/README.ja-JP.md
@@ -348,6 +348,7 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.ko-KR.md b/README.ko-KR.md
index b85f1f0b..74379bde 100644
--- a/README.ko-KR.md
+++ b/README.ko-KR.md
@@ -332,6 +332,7 @@ Pull requests and plugins are welcome!
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.md b/README.md
index f7e629d6..848c4e29 100644
--- a/README.md
+++ b/README.md
@@ -354,6 +354,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.pt-BR.md b/README.pt-BR.md
index e8309297..6811f251 100644
--- a/README.pt-BR.md
+++ b/README.pt-BR.md
@@ -341,6 +341,7 @@ Obrigado vai para essas pessoas maravilhosas ([emoji key](https://allcontributor
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.ru-RU.md b/README.ru-RU.md
index 9d41b502..02f7ee42 100644
--- a/README.ru-RU.md
+++ b/README.ru-RU.md
@@ -29,7 +29,7 @@
[**Tabby**](https://tabby.sh) (ранее **Terminus**) — широко конфигурируемый эмулятор терминала, SSH- и COM-клиент для Windows, macOS и Linux:
* Встроенный SSH- и Telnet-клиент и менеджер подключений;
-* Встроенный последовтаельный терминал;
+* Встроенный последовательный терминал;
* Темы и цветовые схемы;
* Полностью настраеваемые сочетания клавиш;
* Панели;
@@ -39,7 +39,7 @@
* Полная поддержка Unicode, включая символы двойной ширины;
* Не задыхается при быстром выводе;
* Полноценный опыт работы с shell на Windows, включая дополнение слов и команд по Tab (при помощи Clink);
-* Втроенное защищённое хранилище для SSH-ключей и настроек;
+* Встроенное защищённое хранилище для SSH-ключей и настроек;
* SSH-, SFTP- и Telnet-клиент доступен как [веб-приложение](https://tabby.sh/app) (также для [самостоятелньного хостинга](https://github.com/Eugeny/tabby-web)).
# Содержание
@@ -71,7 +71,7 @@
* Деление окна на несколько панелей;
* Вкладки на любой стороне окна;
* Опционально закрепляемое окно с глобальной горячей клавишей для вызова («Quake console»);
-* Определение прогресса процесса;
+* Определение прогресса выполняемого процесса;
* Уведомления о завершении процессов;
* Защита от выполнения команд при вставке, предупреждения о вставке нескольких строк;
* Лигатуры шрифтов;
@@ -94,7 +94,7 @@
* Сохранение соединений;
* Поддержка ввода readline;
-* Опциональый побатный ввод HEX и вывод hexdump;
+* Опциональный побатный ввод HEX и вывод hexdump;
* Преобразование newline;
* Автоматическое восстановление соединения.
@@ -115,9 +115,9 @@
* [save-output](https://github.com/Eugeny/tabby-save-output) — запись вывода терминала в файл;
* [sync-config](https://github.com/starxg/terminus-sync-config) — синхронизация конфига в Gist или Gitee;
* [clippy](https://github.com/Eugeny/tabby-clippy) — плагин-пример, который постоянно будет вас бесить;
-* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) — позволяет создавать пользовательские провили рабочего окружеиня на основе конфига;
+* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) — позволяет создавать пользовательские профили рабочего окружения на основе конфига;
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) — открывает браузер по умолчанию с текстом, выделенном во вкладке Tabby.
-* [sftp-tab](https://github.com/wljince007/tabby-sftp-tab) - open sftp tab for ssh connection like SecureCRT
+* [sftp-tab](https://github.com/wljince007/tabby-sftp-tab) - открывает sftp вкладку для ssh соединения, похож на SecureCRT
# Темы
@@ -333,6 +333,7 @@ Pull-запросы и плагины приветствуются!
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/README.zh-CN.md b/README.zh-CN.md
index fed1beca..55789378 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -332,6 +332,7 @@
Mxmilu 💻 |
+ Charles Buffington 💻 |
diff --git a/app/lib/app.ts b/app/lib/app.ts
index a6c8f682..8a1406bf 100644
--- a/app/lib/app.ts
+++ b/app/lib/app.ts
@@ -183,9 +183,10 @@ export class Application {
}
enableTray (): void {
- if (!!this.tray || process.platform === 'linux') {
+ if (!!this.tray || process.platform === 'linux' || (this.configStore.hideTray ?? false) === true) {
return
}
+
if (process.platform === 'darwin') {
this.tray = new Tray(`${app.getAppPath()}/assets/tray-darwinTemplate.png`)
this.tray.setPressedImage(`${app.getAppPath()}/assets/tray-darwinHighlightTemplate.png`)
diff --git a/build/linux/after-install.tpl b/build/linux/after-install.tpl
index b0eb562e..596fd34b 100644
--- a/build/linux/after-install.tpl
+++ b/build/linux/after-install.tpl
@@ -1,7 +1,7 @@
#!/bin/bash
cat > '/usr/bin/${executable}' << END
#!/bin/sh
-'/opt/${productFilename}/${executable}' --no-sandbox $@
+'/opt/${productFilename}/${executable}' --no-sandbox \$@
END
chmod +x '/usr/bin/${executable}'
diff --git a/locale/en-GB.po b/locale/en-GB.po
index 0435d80f..724d623e 100644
--- a/locale/en-GB.po
+++ b/locale/en-GB.po
@@ -2036,6 +2036,10 @@ msgstr ""
msgid "Show Serial connections"
msgstr ""
+#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:73
+msgid "Hide Tabby in tray or menu bar."
+msgstr ""
+
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:152
msgid "Show tabs in fullscreen mode"
msgstr ""
@@ -2044,6 +2048,10 @@ msgstr ""
msgid "Show toolbar"
msgstr ""
+#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:73
+msgid "Hide tray"
+msgstr ""
+
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:45
msgid "Show vault contents"
msgstr ""
diff --git a/tabby-core/src/configDefaults.yaml b/tabby-core/src/configDefaults.yaml
index 6c1fc36a..096fa942 100644
--- a/tabby-core/src/configDefaults.yaml
+++ b/tabby-core/src/configDefaults.yaml
@@ -43,6 +43,7 @@ enableWelcomeTab: true
electronFlags:
- ['force_discrete_gpu', '0']
enableAutomaticUpdates: true
+hideTray: false
version: 1
vault: null
encrypted: false
diff --git a/tabby-settings/src/components/windowSettingsTab.component.pug b/tabby-settings/src/components/windowSettingsTab.component.pug
index a7b4d705..6ab08ca7 100644
--- a/tabby-settings/src/components/windowSettingsTab.component.pug
+++ b/tabby-settings/src/components/windowSettingsTab.component.pug
@@ -121,6 +121,15 @@ h3.mb-3(translate) Window
label.btn.btn-secondary(for='frameFull')
span(translate) Full
+.form-line(*ngIf='hostApp.platform !== Platform.Web && hostApp.platform !== Platform.Linux')
+ .header
+ .title(translate) Hide tray
+ .description(translate) Hide Tabby in tray or menu bar.
+ toggle(
+ [(ngModel)]='config.store.hideTray',
+ (ngModelChange)='saveConfiguration(true)'
+ )
+
h3.mt-4(translate) Docking
.form-line(*ngIf='docking')
diff --git a/tabby-settings/src/services/configSync.service.ts b/tabby-settings/src/services/configSync.service.ts
index fdd5efec..4fc32e51 100644
--- a/tabby-settings/src/services/configSync.service.ts
+++ b/tabby-settings/src/services/configSync.service.ts
@@ -184,13 +184,17 @@ export class ConfigSyncService {
private async autoSync () {
while (true) {
- if (this.isEnabled() && this.config.store.configSync.auto) {
- const cfg = await this.getConfig(this.config.store.configSync.configID)
- if (new Date(cfg.modified_at) > this.lastRemoteChange) {
- this.logger.info('Remote config changed, downloading')
- this.download()
- this.lastRemoteChange = new Date(cfg.modified_at)
+ try {
+ if (this.isEnabled() && this.config.store.configSync.auto) {
+ const cfg = await this.getConfig(this.config.store.configSync.configID)
+ if (new Date(cfg.modified_at) > this.lastRemoteChange) {
+ this.logger.info('Remote config changed, downloading')
+ this.download()
+ this.lastRemoteChange = new Date(cfg.modified_at)
+ }
}
+ } catch (error) {
+ this.logger.debug('Recovering from autoSync network error')
}
await new Promise(resolve => setTimeout(resolve, 60000))
}