mirror of
https://github.com/smartfrigde/armcord.git
synced 2026-08-19 06:03:22 +00:00
Compare commits
2 commits
e9a95d4c75
...
3ed5fca353
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ed5fca353 | ||
|
|
ee88b2dbc5 |
24 changed files with 914 additions and 903 deletions
|
|
@ -52,8 +52,8 @@
|
||||||
"settings-csp-desc": "Legcord CSP ist unser System, der das Laden von benutzerdefinierten Inhalten in die Discord-App verwaltet. Dinge wie Client-Mods und Designs hängen davon ab. Deaktivieren Sie es, wenn Sie Mods und benutzerdefinierte Stile entfernen möchten.",
|
"settings-csp-desc": "Legcord CSP ist unser System, der das Laden von benutzerdefinierten Inhalten in die Discord-App verwaltet. Dinge wie Client-Mods und Designs hängen davon ab. Deaktivieren Sie es, wenn Sie Mods und benutzerdefinierte Stile entfernen möchten.",
|
||||||
"settings-mintoTray": "Im Hintergrund arbeiten",
|
"settings-mintoTray": "Im Hintergrund arbeiten",
|
||||||
"settings-mintoTray-desc": "Wenn diese Option deaktiviert ist, wird Legcord wie jedes andere Fenster geschlossen, wenn es geschlossen wird. Andernfalls bleibt es in Ihrer Taskleiste für später gespeichert.",
|
"settings-mintoTray-desc": "Wenn diese Option deaktiviert ist, wird Legcord wie jedes andere Fenster geschlossen, wenn es geschlossen wird. Andernfalls bleibt es in Ihrer Taskleiste für später gespeichert.",
|
||||||
"settings-startMinimized": "Minimiert starten",
|
"settings-startMinimized": "Startfenster",
|
||||||
"settings-startMinimized-desc": "Legcord startet im Hintergrund und bleibt Ihnen nicht im Weg.",
|
"settings-startMinimized-desc": "Legt fest, wie Legcord beim Start erscheint. Tray-Modus blendet das Fenster vollständig aus (Tray-Symbol muss aktiviert sein).",
|
||||||
"settings-useSystemCssEditor": "System-CSS-Editor verwenden",
|
"settings-useSystemCssEditor": "System-CSS-Editor verwenden",
|
||||||
"settings-useSystemCssEditor-desc": "Verwenden Sie den System-CSS-Editor, um CSS zu bearbeiten.",
|
"settings-useSystemCssEditor-desc": "Verwenden Sie den System-CSS-Editor, um CSS zu bearbeiten.",
|
||||||
"settings-MultiInstance": "Mehrfachinstanz",
|
"settings-MultiInstance": "Mehrfachinstanz",
|
||||||
|
|
@ -243,5 +243,8 @@
|
||||||
"settings-csp-vanilla": "Vanilla",
|
"settings-csp-vanilla": "Vanilla",
|
||||||
"settings-firstTimeCrash": "Wir richten Dinge für sie ein!",
|
"settings-firstTimeCrash": "Wir richten Dinge für sie ein!",
|
||||||
"settings-automaticClientUpdates": "Automatische client updates",
|
"settings-automaticClientUpdates": "Automatische client updates",
|
||||||
"settings-automaticClientUpdates-desc": "Deaktiviert automatische Legcord Updates"
|
"settings-automaticClientUpdates-desc": "Deaktiviert automatische Legcord Updates",
|
||||||
|
"settings-startMinimized-off": "Normal",
|
||||||
|
"settings-startMinimized-minimized": "Minimiert in die Taskleiste",
|
||||||
|
"settings-startMinimized-tray": "Im Tray versteckt"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,8 +57,11 @@
|
||||||
"settings-openCustomIconDialog": "Set desktop icon",
|
"settings-openCustomIconDialog": "Set desktop icon",
|
||||||
"settings-mintoTray": "Work in background",
|
"settings-mintoTray": "Work in background",
|
||||||
"settings-mintoTray-desc": "When disabled, Legcord will close like any other window when closed, otherwise it'll sit back and relax in your system tray for later.",
|
"settings-mintoTray-desc": "When disabled, Legcord will close like any other window when closed, otherwise it'll sit back and relax in your system tray for later.",
|
||||||
"settings-startMinimized": "Start minimized",
|
"settings-startMinimized": "Startup window",
|
||||||
"settings-startMinimized-desc": "Legcord starts in background and remains out of your way.",
|
"settings-startMinimized-desc": "Choose how Legcord appears when it launches. Tray mode hides the window completely (needs a tray icon enabled).",
|
||||||
|
"settings-startMinimized-off": "Normal",
|
||||||
|
"settings-startMinimized-minimized": "Minimized to taskbar",
|
||||||
|
"settings-startMinimized-tray": "Hidden in tray",
|
||||||
"settings-csp": "Content Security Policy",
|
"settings-csp": "Content Security Policy",
|
||||||
"settings-csp-desc": "Set the strictness of Legcord's Content Security Policy. Strict CSP provides better security but may cause compatibility issues with some client mods/themes/plugins.",
|
"settings-csp-desc": "Set the strictness of Legcord's Content Security Policy. Strict CSP provides better security but may cause compatibility issues with some client mods/themes/plugins.",
|
||||||
"settings-csp-strict": "Strict",
|
"settings-csp-strict": "Strict",
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@
|
||||||
"settings-csp-desc": "Legcord CSP es nuestro sistema que gestiona la carga de contenido personalizado en la aplicación Discord. Elementos como los mods y los temas del cliente dependen de él. Desactívalo si quieres deshacerte de los mods y los estilos personalizados.",
|
"settings-csp-desc": "Legcord CSP es nuestro sistema que gestiona la carga de contenido personalizado en la aplicación Discord. Elementos como los mods y los temas del cliente dependen de él. Desactívalo si quieres deshacerte de los mods y los estilos personalizados.",
|
||||||
"settings-mintoTray": "Trabajar en segundo plano",
|
"settings-mintoTray": "Trabajar en segundo plano",
|
||||||
"settings-mintoTray-desc": "Cuando está desactivado, Legcord se cerrará como cualquier otra ventana al cerrarlo; de lo contrario, permanecerá en la bandeja del sistema para su uso posterior.",
|
"settings-mintoTray-desc": "Cuando está desactivado, Legcord se cerrará como cualquier otra ventana al cerrarlo; de lo contrario, permanecerá en la bandeja del sistema para su uso posterior.",
|
||||||
"settings-startMinimized": "Iniciar minimizado",
|
"settings-startMinimized": "Ventana al iniciar",
|
||||||
"settings-startMinimized-desc": "Legcord se inicia en segundo plano y no interfiere en tu trabajo.",
|
"settings-startMinimized-desc": "Elige cómo aparece Legcord al iniciar. El modo bandeja oculta la ventana por completo (hace falta el icono de bandeja).",
|
||||||
"settings-useSystemCssEditor": "Utilizar el editor CSS del sistema",
|
"settings-useSystemCssEditor": "Utilizar el editor CSS del sistema",
|
||||||
"settings-useSystemCssEditor-desc": "Utilice el editor CSS del sistema para editar CSS.",
|
"settings-useSystemCssEditor-desc": "Utilice el editor CSS del sistema para editar CSS.",
|
||||||
"settings-MultiInstance": "Múltiples instancias",
|
"settings-MultiInstance": "Múltiples instancias",
|
||||||
|
|
@ -304,5 +304,8 @@
|
||||||
"games-application": "Aplicación",
|
"games-application": "Aplicación",
|
||||||
"settings-vaapi": "VAAPI",
|
"settings-vaapi": "VAAPI",
|
||||||
"settings-vaapi-desc": "Utiliza VAAPI (aceleración por hardware) para la decodificación de vídeo en Linux. Esto reduce considerablemente el uso de la CPU durante el uso compartido de pantalla, pero puede causar problemas en algunos sistemas. Desactívalo si experimentas bloqueos o pantallas en negro durante el uso compartido de pantalla.",
|
"settings-vaapi-desc": "Utiliza VAAPI (aceleración por hardware) para la decodificación de vídeo en Linux. Esto reduce considerablemente el uso de la CPU durante el uso compartido de pantalla, pero puede causar problemas en algunos sistemas. Desactívalo si experimentas bloqueos o pantallas en negro durante el uso compartido de pantalla.",
|
||||||
"settings-material": "Material de Ventana"
|
"settings-material": "Material de Ventana",
|
||||||
|
"settings-startMinimized-off": "Normal",
|
||||||
|
"settings-startMinimized-minimized": "Minimizada en la barra de tareas",
|
||||||
|
"settings-startMinimized-tray": "Oculta en la bandeja"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
"settings-audio-loopback": "Loopback",
|
"settings-audio-loopback": "Loopback",
|
||||||
"settings-audio-loopbackWithMute": "Loopback avec sourdine",
|
"settings-audio-loopbackWithMute": "Loopback avec sourdine",
|
||||||
"settings-openCustomIconDialog": "Définir une icône de bureau",
|
"settings-openCustomIconDialog": "Définir une icône de bureau",
|
||||||
"settings-startMinimized-desc": "Legcord démarre en arrière-plan sans vous déranger.",
|
"settings-startMinimized-desc": "Choisit comment Legcord apparaît au lancement. Le mode tray masque complètement la fenêtre (icône de tray requise).",
|
||||||
"settings-useSystemCssEditor": "Utiliser l'éditeur CSS du système",
|
"settings-useSystemCssEditor": "Utiliser l'éditeur CSS du système",
|
||||||
"settings-useSystemCssEditor-desc": "Utiliser l'éditeur CSS du système pour modifier le CSS.",
|
"settings-useSystemCssEditor-desc": "Utiliser l'éditeur CSS du système pour modifier le CSS.",
|
||||||
"settings-MultiInstance": "Multi-instances",
|
"settings-MultiInstance": "Multi-instances",
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
"settings-csp-desc": "Legcord CSP est notre système qui gère le chargement du contenu personnalisé dans l'application Discord. Des éléments tels que les mods et les thèmes en dépendent. Désactivez-le si vous souhaitez vous débarrasser des mods et des styles personnalisés.",
|
"settings-csp-desc": "Legcord CSP est notre système qui gère le chargement du contenu personnalisé dans l'application Discord. Des éléments tels que les mods et les thèmes en dépendent. Désactivez-le si vous souhaitez vous débarrasser des mods et des styles personnalisés.",
|
||||||
"settings-mintoTray": "Actif en arrière-plan",
|
"settings-mintoTray": "Actif en arrière-plan",
|
||||||
"settings-mintoTray-desc": "Si désactivé, Legcord se fermera comme n'importe quelle autre fenêtre, sinon il restera actif dans la barre d'état pour plus tard.",
|
"settings-mintoTray-desc": "Si désactivé, Legcord se fermera comme n'importe quelle autre fenêtre, sinon il restera actif dans la barre d'état pour plus tard.",
|
||||||
"settings-startMinimized": "Démarrer en mode minimisé",
|
"settings-startMinimized": "Fenêtre au démarrage",
|
||||||
"settings-noBundleUpdates": "Pas de mises à jour",
|
"settings-noBundleUpdates": "Pas de mises à jour",
|
||||||
"settings-noBundleUpdates-desc": "Désactive les mises à jour automatique des mods.",
|
"settings-noBundleUpdates-desc": "Désactive les mises à jour automatique des mods.",
|
||||||
"settings-mobileMode-desc": "Si vous êtes sur un appareil doté d'un écran tactile cette fonctionnalité est faite pour vous ! Elle active le mode mobile caché de Discord conçu pour les téléphones et tablettes. La seule fonction majeure manquante est le tchat vocal. Idéal pour les utilisateurs de PinePhone ou équivalents.",
|
"settings-mobileMode-desc": "Si vous êtes sur un appareil doté d'un écran tactile cette fonctionnalité est faite pour vous ! Elle active le mode mobile caché de Discord conçu pour les téléphones et tablettes. La seule fonction majeure manquante est le tchat vocal. Idéal pour les utilisateurs de PinePhone ou équivalents.",
|
||||||
|
|
@ -344,5 +344,8 @@
|
||||||
"supportBanner-title": "Soutenir le projet",
|
"supportBanner-title": "Soutenir le projet",
|
||||||
"supportBanner-subtitle": "Aidez-nous à continuer le développement de Legcord. Votre soutien permet de maintenir le projet en vie et nous permet de proposer plus de fonctionnalités.",
|
"supportBanner-subtitle": "Aidez-nous à continuer le développement de Legcord. Votre soutien permet de maintenir le projet en vie et nous permet de proposer plus de fonctionnalités.",
|
||||||
"supportBanner-donate": "Faire un don",
|
"supportBanner-donate": "Faire un don",
|
||||||
"keybind-enabled": "Activé"
|
"keybind-enabled": "Activé",
|
||||||
|
"settings-startMinimized-off": "Normale",
|
||||||
|
"settings-startMinimized-minimized": "Réduite dans la barre des tâches",
|
||||||
|
"settings-startMinimized-tray": "Masquée dans le tray"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,8 @@
|
||||||
"settings-csp-desc": "Állítsd be a Legcord tartalombiztonsági szabályzatának szigorúságát. A szigorú CSP jobb biztonságot nyújt, de kompatibilitási problémákat okozhat egyes kliens modokkal/témákkal/bővítményekkel.",
|
"settings-csp-desc": "Állítsd be a Legcord tartalombiztonsági szabályzatának szigorúságát. A szigorú CSP jobb biztonságot nyújt, de kompatibilitási problémákat okozhat egyes kliens modokkal/témákkal/bővítményekkel.",
|
||||||
"settings-mintoTray": "Futás a háttérben",
|
"settings-mintoTray": "Futás a háttérben",
|
||||||
"settings-mintoTray-desc": "Ha le van tiltva, a Legcord a többi ablakhoz hasonlóan bezáródik, különben csak a tálcára csukódik le.",
|
"settings-mintoTray-desc": "Ha le van tiltva, a Legcord a többi ablakhoz hasonlóan bezáródik, különben csak a tálcára csukódik le.",
|
||||||
"settings-startMinimized": "Kisablakos indítás",
|
"settings-startMinimized": "Induló ablak",
|
||||||
"settings-startMinimized-desc": "A Legcord a háttérben indul el, és nem zavar.",
|
"settings-startMinimized-desc": "Meghatározza, hogyan jelenik meg a Legcord indításkor. A tálca mód teljesen elrejti az ablakot (tálcaikon szükséges).",
|
||||||
"settings-useSystemCssEditor": "Használja a rendszer CSS-szerkesztőjét",
|
"settings-useSystemCssEditor": "Használja a rendszer CSS-szerkesztőjét",
|
||||||
"settings-useSystemCssEditor-desc": "A CSS szerkesztéséhez használja a rendszer CSS-szerkesztőjét.",
|
"settings-useSystemCssEditor-desc": "A CSS szerkesztéséhez használja a rendszer CSS-szerkesztőjét.",
|
||||||
"settings-MultiInstance": "Több példány",
|
"settings-MultiInstance": "Több példány",
|
||||||
|
|
@ -351,5 +351,8 @@
|
||||||
"settings-csp-none": "Egyik sem",
|
"settings-csp-none": "Egyik sem",
|
||||||
"keybind-openSettings": "Beállítások megnyitása",
|
"keybind-openSettings": "Beállítások megnyitása",
|
||||||
"settings-firstTimeCrash": "Mindent előkészítünk számodra!",
|
"settings-firstTimeCrash": "Mindent előkészítünk számodra!",
|
||||||
"settings-firstTimeCrash-desc": "Az első indításkor a beállítások még nem érhetők el. Kérjük, használd az alábbi gombot az újraindításhoz, és a beállítások az újraindítás után már elérhetőek lesznek."
|
"settings-firstTimeCrash-desc": "Az első indításkor a beállítások még nem érhetők el. Kérjük, használd az alábbi gombot az újraindításhoz, és a beállítások az újraindítás után már elérhetőek lesznek.",
|
||||||
|
"settings-startMinimized-off": "Normál",
|
||||||
|
"settings-startMinimized-minimized": "Kis méretű a tálcán",
|
||||||
|
"settings-startMinimized-tray": "Elrejtve a rendszertálcán"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@
|
||||||
"settings-csp-desc": "Atur tingkat keketatan Kebijakan Keamanan Konten Legcord. CSP ketat memberikan keamanan lebih baik tetapi dapat menyebabkan masalah kompatibilitas dengan beberapa mod/tema/plugin klien.",
|
"settings-csp-desc": "Atur tingkat keketatan Kebijakan Keamanan Konten Legcord. CSP ketat memberikan keamanan lebih baik tetapi dapat menyebabkan masalah kompatibilitas dengan beberapa mod/tema/plugin klien.",
|
||||||
"settings-mintoTray": "Bekerja di latar belakang",
|
"settings-mintoTray": "Bekerja di latar belakang",
|
||||||
"settings-mintoTray-desc": "Ketika dinonaktifkan, Legcord akan ditutup seperti jendela lainnya saat ditutup, sedangkan jika tidak, ia akan tetap berada di area sistem tray Anda untuk digunakan nanti.",
|
"settings-mintoTray-desc": "Ketika dinonaktifkan, Legcord akan ditutup seperti jendela lainnya saat ditutup, sedangkan jika tidak, ia akan tetap berada di area sistem tray Anda untuk digunakan nanti.",
|
||||||
"settings-startMinimized": "Mulai dalam mode minimized",
|
"settings-startMinimized": "Jendela saat mulai",
|
||||||
"settings-startMinimized-desc": "Legcord berjalan di latar belakang dan tidak mengganggu Anda.",
|
"settings-startMinimized-desc": "Pilih bagaimana Legcord muncul saat diluncurkan. Mode tray menyembunyikan jendela sepenuhnya (ikon tray harus diaktifkan).",
|
||||||
"settings-useSystemCssEditor": "Gunakan editor CSS sistem",
|
"settings-useSystemCssEditor": "Gunakan editor CSS sistem",
|
||||||
"settings-useSystemCssEditor-desc": "Gunakan editor CSS sistem untuk mengedit CSS.",
|
"settings-useSystemCssEditor-desc": "Gunakan editor CSS sistem untuk mengedit CSS.",
|
||||||
"settings-MultiInstance": "Multi Instans",
|
"settings-MultiInstance": "Multi Instans",
|
||||||
|
|
@ -348,5 +348,8 @@
|
||||||
"backup-restoreDoneBody": "Data Anda telah dipulihkan. Mulai ulang Legcord agar semua perubahan berlaku.",
|
"backup-restoreDoneBody": "Data Anda telah dipulihkan. Mulai ulang Legcord agar semua perubahan berlaku.",
|
||||||
"supportBanner-title": "Dukung Proyek",
|
"supportBanner-title": "Dukung Proyek",
|
||||||
"supportBanner-subtitle": "Bantu kami terus mengembangkan Legcord. Dukungan Anda menjaga proyek tetap hidup dan memungkinkan kami menghadirkan lebih banyak fitur.",
|
"supportBanner-subtitle": "Bantu kami terus mengembangkan Legcord. Dukungan Anda menjaga proyek tetap hidup dan memungkinkan kami menghadirkan lebih banyak fitur.",
|
||||||
"supportBanner-donate": "Donasi"
|
"supportBanner-donate": "Donasi",
|
||||||
|
"settings-startMinimized-off": "Normal",
|
||||||
|
"settings-startMinimized-minimized": "Diminimalkan ke bilah tugas",
|
||||||
|
"settings-startMinimized-tray": "Tersembunyi di tray"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,8 +100,8 @@
|
||||||
"settings-csp-desc": "\"Legcord CSP\" é o nosso sistema que cuida do carregamento de conteúdo customizado dentro do cliente do DIscord. Coisas como modificações e temas dependem desse sistema. Desabilite se quiser se livrar de modificações e estilos customizados.",
|
"settings-csp-desc": "\"Legcord CSP\" é o nosso sistema que cuida do carregamento de conteúdo customizado dentro do cliente do DIscord. Coisas como modificações e temas dependem desse sistema. Desabilite se quiser se livrar de modificações e estilos customizados.",
|
||||||
"settings-mintoTray": "Funcionar em segundo plano",
|
"settings-mintoTray": "Funcionar em segundo plano",
|
||||||
"settings-mintoTray-desc": "Quando desabilitado, Legcord será fechado como qualquer outra janela, do contrário, ele funcionará em segundo plano e ficará na bandeja do sistema disponível a qualquer momento.",
|
"settings-mintoTray-desc": "Quando desabilitado, Legcord será fechado como qualquer outra janela, do contrário, ele funcionará em segundo plano e ficará na bandeja do sistema disponível a qualquer momento.",
|
||||||
"settings-startMinimized": "Abrir minimizado",
|
"settings-startMinimized": "Janela ao iniciar",
|
||||||
"settings-startMinimized-desc": "Legcord inicia em segundo plano e fica fora do seu caminho.",
|
"settings-startMinimized-desc": "Escolha como o Legcord aparece ao iniciar. O modo bandeja oculta a janela por completo (é preciso o ícone da bandeja).",
|
||||||
"settings-useSystemCssEditor": "Usar editor de estilo (CSS) do sistema",
|
"settings-useSystemCssEditor": "Usar editor de estilo (CSS) do sistema",
|
||||||
"settings-useSystemCssEditor-desc": "Usar editor de estilo padrão do sistema para editar CSS.",
|
"settings-useSystemCssEditor-desc": "Usar editor de estilo padrão do sistema para editar CSS.",
|
||||||
"settings-MultiInstance": "Múltiplas instâncias",
|
"settings-MultiInstance": "Múltiplas instâncias",
|
||||||
|
|
@ -250,5 +250,8 @@
|
||||||
"setup-trayEnableDesc": "Mostrar o Legcord na bandeja do sistema",
|
"setup-trayEnableDesc": "Mostrar o Legcord na bandeja do sistema",
|
||||||
"setup-trayDisableTitle": "Desabilitar ícone de bandeja",
|
"setup-trayDisableTitle": "Desabilitar ícone de bandeja",
|
||||||
"setup-trayDisableDesc": "Não mostrar o Legcord na bandeja do sistema",
|
"setup-trayDisableDesc": "Não mostrar o Legcord na bandeja do sistema",
|
||||||
"setup-finishTitle": "Você está pronto!"
|
"setup-finishTitle": "Você está pronto!",
|
||||||
|
"settings-startMinimized-off": "Normal",
|
||||||
|
"settings-startMinimized-minimized": "Minimizado na barra de tarefas",
|
||||||
|
"settings-startMinimized-tray": "Oculto na bandeja"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -135,8 +135,8 @@
|
||||||
"settings-openCustomIconDialog": "Definir ícone de desktop",
|
"settings-openCustomIconDialog": "Definir ícone de desktop",
|
||||||
"settings-mintoTray": "Funcionar em segundo plano",
|
"settings-mintoTray": "Funcionar em segundo plano",
|
||||||
"settings-mintoTray-desc": "Quando desativado, Legcord será fechado como qualquer outra janela, do contrário, ele funcionará em segundo plano e ficará na bandeja do sistema disponível a qualquer momento.",
|
"settings-mintoTray-desc": "Quando desativado, Legcord será fechado como qualquer outra janela, do contrário, ele funcionará em segundo plano e ficará na bandeja do sistema disponível a qualquer momento.",
|
||||||
"settings-startMinimized": "Abrir minimizado",
|
"settings-startMinimized": "Janela ao iniciar",
|
||||||
"settings-startMinimized-desc": "Legcord inicia em segundo plano e fica fora do seu caminho.",
|
"settings-startMinimized-desc": "Escolha como o Legcord aparece ao iniciar. O modo tabuleiro oculta a janela por completo (é preciso o ícone do tabuleiro).",
|
||||||
"settings-csp-none": "Nenhum",
|
"settings-csp-none": "Nenhum",
|
||||||
"settings-useSystemCssEditor": "Usar editor de estilo (CSS) do sistema",
|
"settings-useSystemCssEditor": "Usar editor de estilo (CSS) do sistema",
|
||||||
"settings-useSystemCssEditor-desc": "Usar editor de estilo padrão do sistema para editar CSS.",
|
"settings-useSystemCssEditor-desc": "Usar editor de estilo padrão do sistema para editar CSS.",
|
||||||
|
|
@ -351,5 +351,8 @@
|
||||||
"backup-restoreDoneTitle": "Restauração completa",
|
"backup-restoreDoneTitle": "Restauração completa",
|
||||||
"backup-restoreDoneBody": "Os seus dados foram restaurados. Reinicie o Legcord para que todas as mudanças tomem efeito.",
|
"backup-restoreDoneBody": "Os seus dados foram restaurados. Reinicie o Legcord para que todas as mudanças tomem efeito.",
|
||||||
"supportBanner-title": "Suportar o Projeto",
|
"supportBanner-title": "Suportar o Projeto",
|
||||||
"supportBanner-subtitle": "Ajude-nos a continuar a desenvolver o Legcord. O seu suporte mantém o projeto vivo e permite-nos introduzir mais funcionalidades."
|
"supportBanner-subtitle": "Ajude-nos a continuar a desenvolver o Legcord. O seu suporte mantém o projeto vivo e permite-nos introduzir mais funcionalidades.",
|
||||||
|
"settings-startMinimized-off": "Normal",
|
||||||
|
"settings-startMinimized-minimized": "Minimizado na barra de tarefas",
|
||||||
|
"settings-startMinimized-tray": "Oculto no tabuleiro"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@
|
||||||
"settings-openCustomIconDialog": "Выберите иконку рабочего стола",
|
"settings-openCustomIconDialog": "Выберите иконку рабочего стола",
|
||||||
"settings-mintoTray": "Работа в фоне",
|
"settings-mintoTray": "Работа в фоне",
|
||||||
"settings-mintoTray-desc": "При выключенной настройке, закрытие окна будет полностью закрывать Legcord, а при включённой, Legcord просто пойдёт отдыхать в ваш системный трей.",
|
"settings-mintoTray-desc": "При выключенной настройке, закрытие окна будет полностью закрывать Legcord, а при включённой, Legcord просто пойдёт отдыхать в ваш системный трей.",
|
||||||
"settings-startMinimized": "Запуск в свёрнутом виде",
|
"settings-startMinimized": "Окно при запуске",
|
||||||
"settings-startMinimized-desc": "Legcord всегда будет запускаться в фоне, чтобы не мешать вам.",
|
"settings-startMinimized-desc": "Как Legcord появляется при запуске. Режим трея полностью скрывает окно (нужна иконка в трее).",
|
||||||
"settings-csp": "Политика Защиты Данных (CSP)",
|
"settings-csp": "Политика Защиты Данных (CSP)",
|
||||||
"settings-csp-desc": "Установите строгость защиты данных в Legcord. Строгий режим CSP безопаснее, но может быть несовместим с некоторыми модами/темами/плагинами.",
|
"settings-csp-desc": "Установите строгость защиты данных в Legcord. Строгий режим CSP безопаснее, но может быть несовместим с некоторыми модами/темами/плагинами.",
|
||||||
"settings-csp-strict": "Строгий",
|
"settings-csp-strict": "Строгий",
|
||||||
|
|
@ -221,5 +221,8 @@
|
||||||
"settings-trayIcon-black-plug": "Чёрный Штекер",
|
"settings-trayIcon-black-plug": "Чёрный Штекер",
|
||||||
"settings-trayIcon-black-plug-alt": "Чёрный Штекер (Альт.)",
|
"settings-trayIcon-black-plug-alt": "Чёрный Штекер (Альт.)",
|
||||||
"settings-category-behaviour": "Поведение",
|
"settings-category-behaviour": "Поведение",
|
||||||
"menu-quit": "Выход"
|
"menu-quit": "Выход",
|
||||||
|
"settings-startMinimized-off": "Обычный",
|
||||||
|
"settings-startMinimized-minimized": "Свёрнуто в панель задач",
|
||||||
|
"settings-startMinimized-tray": "Скрыто в трее"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@
|
||||||
"settings-csp-desc": "Legcord CSP – це наша система, яка керує завантаженням користувацького контенту в додаток Discord. Від неї залежать такі речі, як клієнтські моди та теми. Вимкніть, якщо хочете позбутися модів та користувацьких стилів.",
|
"settings-csp-desc": "Legcord CSP – це наша система, яка керує завантаженням користувацького контенту в додаток Discord. Від неї залежать такі речі, як клієнтські моди та теми. Вимкніть, якщо хочете позбутися модів та користувацьких стилів.",
|
||||||
"settings-mintoTray": "Робота у фоновому режимі",
|
"settings-mintoTray": "Робота у фоновому режимі",
|
||||||
"settings-mintoTray-desc": "Якщо вимкнено, Legcord закриється, як і будь-яке інше вікно, якщо його закрити, інакше він залишиться в системному треї на потім.",
|
"settings-mintoTray-desc": "Якщо вимкнено, Legcord закриється, як і будь-яке інше вікно, якщо його закрити, інакше він залишиться в системному треї на потім.",
|
||||||
"settings-startMinimized": "Почати згорнутий",
|
"settings-startMinimized": "Вікно при запуску",
|
||||||
"settings-startMinimized-desc": "Легкорд починається на задньому плані та залишається поза вашими перешкодами.",
|
"settings-startMinimized-desc": "Як Legcord з’являється під час запуску. Режим трея повністю ховає вікно (потрібна іконка в треї).",
|
||||||
"settings-useSystemCssEditor": "Використовуйте системний редактор CSS",
|
"settings-useSystemCssEditor": "Використовуйте системний редактор CSS",
|
||||||
"settings-useSystemCssEditor-desc": "Використовуйте системний редактор CSS для редагування CSS.",
|
"settings-useSystemCssEditor-desc": "Використовуйте системний редактор CSS для редагування CSS.",
|
||||||
"settings-MultiInstance": "Багато екземплярів",
|
"settings-MultiInstance": "Багато екземплярів",
|
||||||
|
|
@ -142,5 +142,8 @@
|
||||||
"settings-windowsLegacyScanning": "Сканування застарілих версій Windows",
|
"settings-windowsLegacyScanning": "Сканування застарілих версій Windows",
|
||||||
"settings-windowsLegacyScanning-desc": "Використовує застарілий метод для процесів сканування у Windows (до версії 1.1.6). Може покращити сумісність у деяких системах, але менш ефективний.",
|
"settings-windowsLegacyScanning-desc": "Використовує застарілий метод для процесів сканування у Windows (до версії 1.1.6). Може покращити сумісність у деяких системах, але менш ефективний.",
|
||||||
"settings-scanInterval": "Інтервал сканування (мс)",
|
"settings-scanInterval": "Інтервал сканування (мс)",
|
||||||
"settings-scanInterval-desc": "Встановлює частоту (у мілісекундах) сканування процесу. Нижчі значення можуть покращити швидкість виявлення, але можуть збільшити використання процесора."
|
"settings-scanInterval-desc": "Встановлює частоту (у мілісекундах) сканування процесу. Нижчі значення можуть покращити швидкість виявлення, але можуть збільшити використання процесора.",
|
||||||
|
"settings-startMinimized-off": "Звичайний",
|
||||||
|
"settings-startMinimized-minimized": "Згорнуто на панель завдань",
|
||||||
|
"settings-startMinimized-tray": "Сховано в треї"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.5.5/schema.json",
|
||||||
"vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true },
|
"vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true },
|
||||||
"files": {
|
"files": {
|
||||||
"ignoreUnknown": false,
|
"ignoreUnknown": false,
|
||||||
"includes": ["**", "!**/assets/app/js"]
|
"includes": ["**", "!**/assets/app/js", "!**/assets/**/*.svg"]
|
||||||
},
|
},
|
||||||
"formatter": {
|
"formatter": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
"linter": {
|
"linter": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"rules": {
|
"rules": {
|
||||||
"recommended": true,
|
"preset": "recommended",
|
||||||
"complexity": {
|
"complexity": {
|
||||||
"noForEach": "off"
|
"noForEach": "off"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
22
package.json
22
package.json
|
|
@ -32,28 +32,28 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/Legcord/Legcord#readme",
|
"homepage": "https://github.com/Legcord/Legcord#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.4.16",
|
"@biomejs/biome": "2.5.5",
|
||||||
"@rolldown-plugin/solid": "^0.0.4",
|
"@rolldown-plugin/solid": "^0.1.0",
|
||||||
"@rollup/plugin-esm-shim": "^0.1.8",
|
"@rollup/plugin-esm-shim": "^0.1.8",
|
||||||
"@types/adm-zip": "^0.5.8",
|
"@types/adm-zip": "^0.5.8",
|
||||||
"@types/node": "^25.9.1",
|
"@types/node": "^26.1.1",
|
||||||
"@types/ws": "^8.18.1",
|
"@types/ws": "^8.18.1",
|
||||||
"@uwu/lune": "^1.6.2",
|
"@uwu/lune": "^1.6.3",
|
||||||
"@uwu/shelter-defs": "^1.5.1",
|
"@uwu/shelter-defs": "^1.5.1",
|
||||||
"@uwu/shelter-ui": "^0.0.6",
|
"@uwu/shelter-ui": "^0.0.6",
|
||||||
"@xmldom/xmldom": "^0.9.10",
|
"@xmldom/xmldom": "^0.9.10",
|
||||||
"app-builder-lib": "^26.8.1",
|
"app-builder-lib": "^26.15.3",
|
||||||
"babel-preset-solid": "^1.9.12",
|
"babel-preset-solid": "^1.9.12",
|
||||||
"electron": "43.2.0",
|
"electron": "43.2.0",
|
||||||
"electron-builder": "26.15.7",
|
"electron-builder": "26.15.7",
|
||||||
"lucide-solid": "^1.16.0",
|
"lucide-solid": "^1.26.0",
|
||||||
"monaco-editor": "0.52.2",
|
"monaco-editor": "0.56.0",
|
||||||
"rolldown": "1.2.0",
|
"rolldown": "1.2.0",
|
||||||
"rollup-plugin-copy": "^3.5.0",
|
"rollup-plugin-copy": "^3.5.0",
|
||||||
"solid-js": "^1.9.14",
|
"solid-js": "^1.9.14",
|
||||||
"solid-motionone": "^1.0.4",
|
"solid-motionone": "^1.0.4",
|
||||||
"spdx-license-list": "^6.11.0",
|
"spdx-license-list": "^6.11.0",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^7.0.2",
|
||||||
"xml-formatter": "^3.7.0"
|
"xml-formatter": "^3.7.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -62,14 +62,14 @@
|
||||||
"arrpc": "github:Legcord/arrpc#efe7589762470d32b9ba10d529be5acc23cd0e19",
|
"arrpc": "github:Legcord/arrpc#efe7589762470d32b9ba10d529be5acc23cd0e19",
|
||||||
"electron-context-menu": "^4.1.2",
|
"electron-context-menu": "^4.1.2",
|
||||||
"electron-is-dev": "^3.0.1",
|
"electron-is-dev": "^3.0.1",
|
||||||
"electron-updater": "^6.8.3",
|
"electron-updater": "^6.8.9",
|
||||||
"ms": "^2.1.3",
|
"ms": "^2.1.3",
|
||||||
"spitroast": "^2.1.6",
|
"spitroast": "^2.1.6",
|
||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"ws": "^8.21.0"
|
"ws": "^8.21.1"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@vencord/venmic": "^6.1.0"
|
"@vencord/venmic": "^7.1.0"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@11.10.0",
|
"packageManager": "pnpm@11.10.0",
|
||||||
"package-manager-strict": false
|
"package-manager-strict": false
|
||||||
|
|
|
||||||
1549
pnpm-lock.yaml
generated
1549
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
3
src/@types/settings.d.ts
vendored
3
src/@types/settings.d.ts
vendored
|
|
@ -58,7 +58,8 @@ export interface Settings {
|
||||||
| "none";
|
| "none";
|
||||||
customJsBundle: RequestInfo | URL | string;
|
customJsBundle: RequestInfo | URL | string;
|
||||||
customCssBundle: RequestInfo | URL | string;
|
customCssBundle: RequestInfo | URL | string;
|
||||||
startMinimized: boolean;
|
/** How the main window appears on launch: normal, taskbar minimized, or tray-only. */
|
||||||
|
startMinimized: "off" | "minimized" | "tray";
|
||||||
keybinds: Keybind[];
|
keybinds: Keybind[];
|
||||||
hardwareAcceleration: boolean;
|
hardwareAcceleration: boolean;
|
||||||
/** Rewrite H.264 Constrained Baseline (42e0) → Baseline (4200) in WebRTC SDP for HW encode. */
|
/** Rewrite H.264 Constrained Baseline (42e0) → Baseline (4200) in WebRTC SDP for HW encode. */
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ const defaults: Settings = {
|
||||||
performanceMode: "none",
|
performanceMode: "none",
|
||||||
skipSplash: false,
|
skipSplash: false,
|
||||||
inviteWebsocket: true,
|
inviteWebsocket: true,
|
||||||
startMinimized: false,
|
startMinimized: "off",
|
||||||
disableHttpCache: false,
|
disableHttpCache: false,
|
||||||
customJsBundle: "https://legcord.app/placeholder.js",
|
customJsBundle: "https://legcord.app/placeholder.js",
|
||||||
customCssBundle: "https://legcord.app/placeholder.css",
|
customCssBundle: "https://legcord.app/placeholder.css",
|
||||||
|
|
@ -123,9 +123,29 @@ export function getConfig<K extends keyof Settings>(object: K): Settings[K] {
|
||||||
return returnData[object];
|
return returnData[object];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** True when the settings toggle is on or `--start-minimized` was passed for this session. */
|
const START_MINIMIZED_MODES = new Set<Settings["startMinimized"]>(["off", "minimized", "tray"]);
|
||||||
export function shouldStartMinimized(): boolean {
|
|
||||||
return process.argv.includes("--start-minimized") || getConfig("startMinimized") === true;
|
/** Effective startup window mode (CLI overrides are session-only). */
|
||||||
|
export function getStartMinimizedMode(): Settings["startMinimized"] {
|
||||||
|
if (process.argv.includes("--start-in-tray")) return "tray";
|
||||||
|
if (process.argv.includes("--start-minimized")) return "minimized";
|
||||||
|
const mode = getConfig("startMinimized");
|
||||||
|
return START_MINIMIZED_MODES.has(mode) ? mode : "off";
|
||||||
|
}
|
||||||
|
|
||||||
|
/** True when startup should not show the window normally (skip splash). */
|
||||||
|
export function isBackgroundStart(): boolean {
|
||||||
|
return getStartMinimizedMode() !== "off";
|
||||||
|
}
|
||||||
|
|
||||||
|
function migrateStartMinimized(settingsObject: Record<string, unknown>): boolean {
|
||||||
|
const value = settingsObject.startMinimized;
|
||||||
|
if (typeof value === "boolean") {
|
||||||
|
settingsObject.startMinimized = value ? "tray" : "off";
|
||||||
|
console.log(`[Config] Migrated startMinimized boolean → "${settingsObject.startMinimized}"`);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
export function setConfig<K extends keyof Settings>(object: K, toSet: Settings[K]): void {
|
export function setConfig<K extends keyof Settings>(object: K, toSet: Settings[K]): void {
|
||||||
const rawData = readFileSync(getConfigLocation(), "utf-8");
|
const rawData = readFileSync(getConfigLocation(), "utf-8");
|
||||||
|
|
@ -189,10 +209,15 @@ export function checkIfConfigExists(): void {
|
||||||
export function checkIfConfigIsBroken(): void {
|
export function checkIfConfigIsBroken(): void {
|
||||||
try {
|
try {
|
||||||
const settingsData = readFileSync(getConfigLocation(), "utf-8");
|
const settingsData = readFileSync(getConfigLocation(), "utf-8");
|
||||||
const settingsObject = JSON.parse(settingsData) as Settings;
|
const settingsObject = JSON.parse(settingsData) as Settings & Record<string, unknown>;
|
||||||
|
|
||||||
|
// Migrate before typeof repair — boolean → "tray" | "off"
|
||||||
|
if (migrateStartMinimized(settingsObject)) {
|
||||||
|
writeFileSync(getConfigLocation(), JSON.stringify(settingsObject, null, 4), "utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
// Performance optimization: Update cache after validation
|
// Performance optimization: Update cache after validation
|
||||||
configCache = settingsObject;
|
configCache = settingsObject as Settings;
|
||||||
configCacheTime = Date.now();
|
configCacheTime = Date.now();
|
||||||
|
|
||||||
let configWasFine = true;
|
let configWasFine = true;
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,8 @@ export function navigateTo(passedWindow: BrowserWindow, url: string): void {
|
||||||
passedWindow.webContents.executeJavaScript(
|
passedWindow.webContents.executeJavaScript(
|
||||||
`history.pushState({}, null, ${JSON.stringify(sanitized)});window.dispatchEvent(new PopStateEvent("popstate", {}));`,
|
`history.pushState({}, null, ${JSON.stringify(sanitized)});window.dispatchEvent(new PopStateEvent("popstate", {}));`,
|
||||||
);
|
);
|
||||||
|
passedWindow.setSkipTaskbar(false);
|
||||||
|
if (passedWindow.isMinimized()) passedWindow.restore();
|
||||||
passedWindow.show();
|
passedWindow.show();
|
||||||
passedWindow.focus();
|
passedWindow.focus();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
37
src/common/windowVisibility.ts
Normal file
37
src/common/windowVisibility.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
import type { BrowserWindow } from "electron";
|
||||||
|
import { getConfig, getStartMinimizedMode } from "./config.js";
|
||||||
|
|
||||||
|
/** Show the main window and restore taskbar/dock presence after a tray-only start. */
|
||||||
|
export function revealWindow(win: BrowserWindow): void {
|
||||||
|
if (win.isDestroyed()) return;
|
||||||
|
win.setSkipTaskbar(false);
|
||||||
|
if (win.isMinimized()) win.restore();
|
||||||
|
win.show();
|
||||||
|
win.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Apply startMinimized mode when splash will not call splashEnd, or from splashEnd itself. */
|
||||||
|
export function applyStartupWindowVisibility(win: BrowserWindow): void {
|
||||||
|
if (win.isDestroyed()) return;
|
||||||
|
const mode = getStartMinimizedMode();
|
||||||
|
switch (mode) {
|
||||||
|
case "minimized":
|
||||||
|
win.setSkipTaskbar(false);
|
||||||
|
win.show();
|
||||||
|
win.minimize();
|
||||||
|
break;
|
||||||
|
case "tray":
|
||||||
|
if (getConfig("tray") === "disabled") {
|
||||||
|
console.warn(
|
||||||
|
'[Window] startMinimized is "tray" but the tray icon is disabled; the window will be hidden with no tray.',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
win.setSkipTaskbar(true);
|
||||||
|
win.hide();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
win.setSkipTaskbar(false);
|
||||||
|
win.show();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ import {
|
||||||
unblacklistGame as blacklistGameRemove,
|
unblacklistGame as blacklistGameRemove,
|
||||||
getBlacklist,
|
getBlacklist,
|
||||||
} from "../common/blacklistGame.js";
|
} from "../common/blacklistGame.js";
|
||||||
import { getConfig, getConfigLocation, setConfig, setConfigBulk, shouldStartMinimized } from "../common/config.js";
|
import { getConfig, getConfigLocation, setConfig, setConfigBulk } from "../common/config.js";
|
||||||
import { addDetectable, getDetectables, removeDetectable } from "../common/detectables.js";
|
import { addDetectable, getDetectables, removeDetectable } from "../common/detectables.js";
|
||||||
import { getLang, getLangName, getRawLang, setLang } from "../common/lang.js";
|
import { getLang, getLangName, getRawLang, setLang } from "../common/lang.js";
|
||||||
import {
|
import {
|
||||||
|
|
@ -32,6 +32,7 @@ import {
|
||||||
uninstallTheme,
|
uninstallTheme,
|
||||||
} from "../common/themes.js";
|
} from "../common/themes.js";
|
||||||
import { getDisplayVersion, getVersion } from "../common/version.js";
|
import { getDisplayVersion, getVersion } from "../common/version.js";
|
||||||
|
import { applyStartupWindowVisibility, revealWindow } from "../common/windowVisibility.js";
|
||||||
import { openCssEditor } from "../cssEditor/main.js";
|
import { openCssEditor } from "../cssEditor/main.js";
|
||||||
import { getAppliedFlags, handleRestart } from "../main.js";
|
import { getAppliedFlags, handleRestart } from "../main.js";
|
||||||
import { isPowerSavingEnabled, setPowerSaving } from "../power.js";
|
import { isPowerSavingEnabled, setPowerSaving } from "../power.js";
|
||||||
|
|
@ -218,11 +219,7 @@ export function registerIpc(passedWindow: BrowserWindow): void {
|
||||||
|
|
||||||
ipcMain.on("splashEnd", () => {
|
ipcMain.on("splashEnd", () => {
|
||||||
splashWindow?.close();
|
splashWindow?.close();
|
||||||
if (shouldStartMinimized()) {
|
applyStartupWindowVisibility(passedWindow);
|
||||||
passedWindow.hide();
|
|
||||||
} else {
|
|
||||||
passedWindow.show();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
ipcMain.on("setLang", (_event, lang: string) => {
|
ipcMain.on("setLang", (_event, lang: string) => {
|
||||||
setLang(lang);
|
setLang(lang);
|
||||||
|
|
@ -270,7 +267,7 @@ export function registerIpc(passedWindow: BrowserWindow): void {
|
||||||
passedWindow.unmaximize();
|
passedWindow.unmaximize();
|
||||||
});
|
});
|
||||||
ipcMain.on("win-show", () => {
|
ipcMain.on("win-show", () => {
|
||||||
passedWindow.show();
|
revealWindow(passedWindow);
|
||||||
});
|
});
|
||||||
ipcMain.on("win-hide", () => {
|
ipcMain.on("win-hide", () => {
|
||||||
passedWindow.hide();
|
passedWindow.hide();
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import { getConfig } from "../common/config.js";
|
||||||
import { setForceQuit } from "../common/forceQuit.js";
|
import { setForceQuit } from "../common/forceQuit.js";
|
||||||
import { openSettings, runAction } from "../common/keybindActions.js";
|
import { openSettings, runAction } from "../common/keybindActions.js";
|
||||||
import { getLang } from "../common/lang.js";
|
import { getLang } from "../common/lang.js";
|
||||||
|
import { revealWindow } from "../common/windowVisibility.js";
|
||||||
import { mainWindows } from "./window.js";
|
import { mainWindows } from "./window.js";
|
||||||
|
|
||||||
const keybindActionLabels: Record<KeybindActions, string> = {
|
const keybindActionLabels: Record<KeybindActions, string> = {
|
||||||
|
|
@ -53,7 +54,7 @@ export function setMenu(): void {
|
||||||
accelerator: "Cmd+,",
|
accelerator: "Cmd+,",
|
||||||
click() {
|
click() {
|
||||||
mainWindows.forEach((mainWindow) => {
|
mainWindows.forEach((mainWindow) => {
|
||||||
mainWindow.show();
|
revealWindow(mainWindow);
|
||||||
openSettings();
|
openSettings();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { navigateTo } from "../common/dom.js";
|
||||||
import { setForceQuit } from "../common/forceQuit.js";
|
import { setForceQuit } from "../common/forceQuit.js";
|
||||||
import { getLang } from "../common/lang.js";
|
import { getLang } from "../common/lang.js";
|
||||||
import { getDisplayVersion } from "../common/version.js";
|
import { getDisplayVersion } from "../common/version.js";
|
||||||
|
import { revealWindow } from "../common/windowVisibility.js";
|
||||||
import { handleRestart } from "../main.js";
|
import { handleRestart } from "../main.js";
|
||||||
import { mainWindows } from "./window.js";
|
import { mainWindows } from "./window.js";
|
||||||
export let tray: Tray;
|
export let tray: Tray;
|
||||||
|
|
@ -44,7 +45,7 @@ export function createTray() {
|
||||||
label: getLang("tray-openLegcord"),
|
label: getLang("tray-openLegcord"),
|
||||||
click() {
|
click() {
|
||||||
mainWindows.forEach((mainWindow) => {
|
mainWindows.forEach((mainWindow) => {
|
||||||
mainWindow.show();
|
revealWindow(mainWindow);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -52,7 +53,7 @@ export function createTray() {
|
||||||
label: getLang("tray-openSettings"),
|
label: getLang("tray-openSettings"),
|
||||||
click() {
|
click() {
|
||||||
mainWindows.forEach((mainWindow) => {
|
mainWindows.forEach((mainWindow) => {
|
||||||
mainWindow.show();
|
revealWindow(mainWindow);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -86,7 +87,7 @@ export function createTray() {
|
||||||
tray.setToolTip(getLang("tray-tooltip"));
|
tray.setToolTip(getLang("tray-tooltip"));
|
||||||
tray.on("click", () => {
|
tray.on("click", () => {
|
||||||
mainWindows.forEach((mainWindow) => {
|
mainWindows.forEach((mainWindow) => {
|
||||||
mainWindow.show();
|
revealWindow(mainWindow);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import {
|
||||||
shell,
|
shell,
|
||||||
} from "electron";
|
} from "electron";
|
||||||
import contextMenu from "electron-context-menu";
|
import contextMenu from "electron-context-menu";
|
||||||
import { firstRun, getConfig, setConfig, shouldStartMinimized } from "../common/config.js";
|
import { firstRun, getConfig, isBackgroundStart, setConfig } from "../common/config.js";
|
||||||
import { navigateTo } from "../common/dom.js";
|
import { navigateTo } from "../common/dom.js";
|
||||||
import { forceQuit, setForceQuit } from "../common/forceQuit.js";
|
import { forceQuit, setForceQuit } from "../common/forceQuit.js";
|
||||||
import { handleCommands, passedValidArgument } from "../common/handleCommands.js";
|
import { handleCommands, passedValidArgument } from "../common/handleCommands.js";
|
||||||
|
|
@ -35,6 +35,7 @@ import {
|
||||||
sanitizeWindowBounds,
|
sanitizeWindowBounds,
|
||||||
} from "../common/windowBounds.js";
|
} from "../common/windowBounds.js";
|
||||||
import { getWindowState, setWindowState } from "../common/windowState.js";
|
import { getWindowState, setWindowState } from "../common/windowState.js";
|
||||||
|
import { applyStartupWindowVisibility, revealWindow } from "../common/windowVisibility.js";
|
||||||
import { disconnectDbusService } from "../dbus.js";
|
import { disconnectDbusService } from "../dbus.js";
|
||||||
import { init } from "../main.js";
|
import { init } from "../main.js";
|
||||||
import { registerGlobalKeybinds } from "./globalKeybinds.js";
|
import { registerGlobalKeybinds } from "./globalKeybinds.js";
|
||||||
|
|
@ -182,8 +183,7 @@ function doAfterDefiningTheWindow(passedWindow: BrowserWindow): void {
|
||||||
// we should focus our window if the user is not running special commands.
|
// we should focus our window if the user is not running special commands.
|
||||||
if (passedWindow && !passedValidArgument(commandLine)) {
|
if (passedWindow && !passedValidArgument(commandLine)) {
|
||||||
if (passedWindow.isMinimized()) passedWindow.restore();
|
if (passedWindow.isMinimized()) passedWindow.restore();
|
||||||
passedWindow.show();
|
revealWindow(passedWindow);
|
||||||
passedWindow.focus();
|
|
||||||
}
|
}
|
||||||
if (commandLine && commandLine.length > 0) {
|
if (commandLine && commandLine.length > 0) {
|
||||||
handleCommands(commandLine);
|
handleCommands(commandLine);
|
||||||
|
|
@ -475,12 +475,8 @@ function doAfterDefiningTheWindow(passedWindow: BrowserWindow): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
// When splash won't run, finalize visibility here (splashEnd never fires).
|
// When splash won't run, finalize visibility here (splashEnd never fires).
|
||||||
if (getConfig("skipSplash") || shouldStartMinimized()) {
|
if (getConfig("skipSplash") || isBackgroundStart()) {
|
||||||
if (shouldStartMinimized()) {
|
applyStartupWindowVisibility(passedWindow);
|
||||||
passedWindow.hide();
|
|
||||||
} else {
|
|
||||||
passedWindow.show();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,15 @@ import {
|
||||||
firstRun,
|
firstRun,
|
||||||
getConfig,
|
getConfig,
|
||||||
getConfigLocation,
|
getConfigLocation,
|
||||||
|
isBackgroundStart,
|
||||||
setConfig,
|
setConfig,
|
||||||
setFirstRun,
|
setFirstRun,
|
||||||
setup,
|
setup,
|
||||||
shouldStartMinimized,
|
|
||||||
} from "./common/config.js";
|
} from "./common/config.js";
|
||||||
import { getPreset } from "./common/flags.js";
|
import { getPreset } from "./common/flags.js";
|
||||||
import { setLang } from "./common/lang.js";
|
import { setLang } from "./common/lang.js";
|
||||||
import { applyProxyCommandLineSwitches, applySessionProxy, configureNodeProxyEnv } from "./common/proxy.js";
|
import { applyProxyCommandLineSwitches, applySessionProxy, configureNodeProxyEnv } from "./common/proxy.js";
|
||||||
|
import { revealWindow } from "./common/windowVisibility.js";
|
||||||
import { setupGlobalShortcuts, startDbusService } from "./dbus.js";
|
import { setupGlobalShortcuts, startDbusService } from "./dbus.js";
|
||||||
|
|
||||||
// Chrome flags tracking
|
// Chrome flags tracking
|
||||||
|
|
@ -111,7 +112,7 @@ export async function init(): Promise<void> {
|
||||||
if (bypassSetup || !(firstRun === true || undefined)) {
|
if (bypassSetup || !(firstRun === true || undefined)) {
|
||||||
// Splash owns the final show/hide via splashEnd; skip it when splash is disabled
|
// Splash owns the final show/hide via splashEnd; skip it when splash is disabled
|
||||||
// or when we intentionally start in the background.
|
// or when we intentionally start in the background.
|
||||||
if (getConfig("skipSplash") === false && !shouldStartMinimized()) {
|
if (getConfig("skipSplash") === false && !isBackgroundStart()) {
|
||||||
void createSplashWindow(); // NOTE - Awaiting will hang at start
|
void createSplashWindow(); // NOTE - Awaiting will hang at start
|
||||||
}
|
}
|
||||||
createWindow();
|
createWindow();
|
||||||
|
|
@ -407,7 +408,7 @@ if (!app.requestSingleInstanceLock() && getConfig("multiInstance") === false) {
|
||||||
void init();
|
void init();
|
||||||
} else {
|
} else {
|
||||||
BrowserWindow.getAllWindows().forEach((window) => {
|
BrowserWindow.getAllWindows().forEach((window) => {
|
||||||
window.show();
|
revealWindow(window);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,9 @@ export function SettingsPage() {
|
||||||
t["settings-disableAutogain"],
|
t["settings-disableAutogain"],
|
||||||
t["settings-mintoTray"],
|
t["settings-mintoTray"],
|
||||||
t["settings-startMinimized"],
|
t["settings-startMinimized"],
|
||||||
|
t["settings-startMinimized-off"],
|
||||||
|
t["settings-startMinimized-minimized"],
|
||||||
|
t["settings-startMinimized-tray"],
|
||||||
t["settings-smoothScroll"],
|
t["settings-smoothScroll"],
|
||||||
t["settings-autoScroll"],
|
t["settings-autoScroll"],
|
||||||
t["settings-spellcheck"],
|
t["settings-spellcheck"],
|
||||||
|
|
@ -485,14 +488,26 @@ export function SettingsPage() {
|
||||||
{t["settings-mintoTray"]}
|
{t["settings-mintoTray"]}
|
||||||
</SwitchItem>
|
</SwitchItem>
|
||||||
</SearchableSetting>
|
</SearchableSetting>
|
||||||
<SearchableSetting keywords={[t["settings-startMinimized"], t["settings-startMinimized-desc"]]}>
|
<SearchableSetting
|
||||||
<SwitchItem
|
keywords={[
|
||||||
note={t["settings-startMinimized-desc"]}
|
t["settings-startMinimized"],
|
||||||
|
t["settings-startMinimized-desc"],
|
||||||
|
t["settings-startMinimized-off"],
|
||||||
|
t["settings-startMinimized-minimized"],
|
||||||
|
t["settings-startMinimized-tray"],
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<DropdownItem
|
||||||
value={settings.startMinimized}
|
value={settings.startMinimized}
|
||||||
onChange={(e: boolean) => setConfig("startMinimized", e, true)}
|
onChange={(v) => setConfig("startMinimized", v as Settings["startMinimized"], true)}
|
||||||
>
|
title={t["settings-startMinimized"]}
|
||||||
{t["settings-startMinimized"]}
|
note={t["settings-startMinimized-desc"]}
|
||||||
</SwitchItem>
|
options={[
|
||||||
|
{ label: t["settings-startMinimized-off"], value: "off" },
|
||||||
|
{ label: t["settings-startMinimized-minimized"], value: "minimized" },
|
||||||
|
{ label: t["settings-startMinimized-tray"], value: "tray" },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
</SearchableSetting>
|
</SearchableSetting>
|
||||||
<SearchableSetting keywords={[t["settings-smoothScroll"], t["settings-smoothScroll-desc"]]}>
|
<SearchableSetting keywords={[t["settings-smoothScroll"], t["settings-smoothScroll-desc"]]}>
|
||||||
<SwitchItem
|
<SwitchItem
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { BrowserWindow, ipcMain } from "electron";
|
import { BrowserWindow, ipcMain } from "electron";
|
||||||
import isDev from "electron-is-dev";
|
import isDev from "electron-is-dev";
|
||||||
import { getConfig, shouldStartMinimized } from "../common/config.js";
|
import { getConfig, isBackgroundStart } from "../common/config.js";
|
||||||
import { getLang } from "../common/lang.js";
|
import { getLang } from "../common/lang.js";
|
||||||
|
|
||||||
export let splashWindow: BrowserWindow;
|
export let splashWindow: BrowserWindow;
|
||||||
export async function createSplashWindow(): Promise<void> {
|
export async function createSplashWindow(): Promise<void> {
|
||||||
if (shouldStartMinimized()) return;
|
if (isBackgroundStart()) return;
|
||||||
splashWindow = new BrowserWindow({
|
splashWindow = new BrowserWindow({
|
||||||
width: 300,
|
width: 300,
|
||||||
height: 350,
|
height: 350,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue