Compare commits

...

38 commits

Author SHA1 Message Date
dependabot[bot]
352fc760e7
Update prettier requirement from ^2.7.0 to ^2.7.1
Updates the requirements on [prettier](https://github.com/prettier/prettier) to permit the latest version.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.7.0...2.7.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 09:26:28 +00:00
KayoticCarnige
fb6348ee82
(Attempt 2) A bunch of shit (#175)
* 2 new things (Read desc.)

- Cleaned up ASAR packaging, ignoring unneeded files for building
- Moved install location for Windows users ("AppData\Local\Programs" -> "AppData\Local"

* 3 things (Read desc.)

- Updated things related to Hummus (Hummus settings don't save nor load in it's respective settings window yet, idk why)
- Added check for package version (ArmCord's internal version)
- Made check for Kernel mod a bit cleaner, it still uses the same jank method

* 3 things

- Made macOS titlebar more accurate to Discord
- Added "unFocused" class when window isn't focused
- Added option to uninstall Husky hook for Windows users with reminder to run format script before committing

* Resolved a dumb issue

My dumbass not knowing the "echo" command existed smh

* Made "precommit-fix" warning more noticable

* Whoops

* Fixed a CSS bug

Discord updates are gonna hate us, huh?
2022-08-22 11:24:55 +02:00
Anonymous
ccb87c53d8
Translated using Weblate (Swedish)
Currently translated at 100.0% (0 of 0 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/sv/
2022-08-15 11:49:58 +02:00
Christoffer
881f3b5fd6
Added translation using Weblate (Swedish) 2022-08-15 11:48:26 +02:00
nero
42322b40e3
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (54 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/pt_BR/
2022-08-15 05:12:37 +02:00
kris
95a26bfe84
Translated using Weblate (French)
Currently translated at 44.4% (24 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/fr/
2022-08-12 21:17:25 +02:00
Anonymous
dcfa4a6e14
Translated using Weblate (Japanese)
Currently translated at 100.0% (0 of 0 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/ja/
2022-07-29 01:43:23 +02:00
sjk
0784b8ce79
Added translation using Weblate (Japanese) 2022-07-29 01:43:18 +02:00
smartfridge
6138281e4c Move Licensing header under imports 2022-07-25 10:37:01 +02:00
Zekiu_
ab9ab6304f
Translated using Weblate (Polish)
Currently translated at 66.6% (36 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/pl/
2022-07-22 14:15:37 +02:00
altinat
bace17dca6
Translated using Weblate (Thai)
Currently translated at 57.4% (31 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/th/
2022-07-18 22:40:24 +02:00
smartfridge
e71376237e Update English translation 2022-07-18 21:22:04 +02:00
KayoticCarnige
cb69a35dd6
2 new things (Read desc.) (#159)
- Cleaned up ASAR packaging, ignoring unneeded files for building
- Moved install location for Windows users ("AppData\Local\Programs" -> "AppData\Local"
2022-07-18 20:53:25 +02:00
smartfridge
408c4b5f7b Merge remote-tracking branch 'origin/dev' into dev 2022-07-18 17:14:01 +02:00
smartfridge
0fb71dfe2b Add Cordwood, better Hummus support and skip splash 2022-07-18 17:13:52 +02:00
smartfridge
381dab90e8
Translated using Weblate (Polish)
Currently translated at 66.6% (36 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/pl/
2022-07-18 01:27:23 +02:00
Alyxia Sother
d746b43013
Translated using Weblate (Dutch)
Currently translated at 48.1% (26 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/nl/
2022-07-18 01:27:23 +02:00
Allan Nordhøy
2720ae9bc0
Translated using Weblate (Norwegian Bokmål)
Currently translated at 88.8% (48 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/nb_NO/
2022-07-18 01:27:22 +02:00
Anonymous
24be5a69e2
Translated using Weblate (Portuguese (Brazil))
Currently translated at 33.3% (18 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/pt_BR/
2022-07-16 11:32:53 +02:00
Anonymous
a599481bc5
Translated using Weblate (Russian)
Currently translated at 42.5% (23 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/ru/
2022-07-16 11:32:52 +02:00
Anonymous
82e3c76389
Translated using Weblate (Persian)
Currently translated at 37.0% (20 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/fa/
2022-07-16 11:32:52 +02:00
Anonymous
f87307ff95
Translated using Weblate (Thai)
Currently translated at 46.2% (25 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/th/
2022-07-16 11:32:51 +02:00
Anonymous
17b51b7b94
Translated using Weblate (Spanish (Latin America))
Currently translated at 35.1% (19 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/es_419/
2022-07-16 11:32:51 +02:00
Anonymous
c5d71bed86
Translated using Weblate (Indonesian)
Currently translated at 44.4% (24 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/id/
2022-07-16 11:32:50 +02:00
Anonymous
b2f6c94ad4
Translated using Weblate (Polish)
Currently translated at 37.0% (20 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/pl/
2022-07-16 11:32:50 +02:00
Anonymous
e411b8653c
Translated using Weblate (Dutch)
Currently translated at 37.0% (20 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/nl/
2022-07-16 11:32:49 +02:00
Anonymous
f404a7356a
Translated using Weblate (Norwegian Bokmål)
Currently translated at 37.0% (20 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/nb_NO/
2022-07-16 11:32:49 +02:00
Anonymous
5d1721c9f9
Translated using Weblate (Italian)
Currently translated at 37.0% (20 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/it/
2022-07-16 11:32:48 +02:00
Anonymous
3ef612b3c7
Translated using Weblate (French)
Currently translated at 37.0% (20 of 54 strings)

Translation: ArmCord/ArmCord
Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/fr/
2022-07-16 11:32:48 +02:00
smartfridge
9717eaedb1 Add description strings to i18n 2022-07-16 11:31:34 +02:00
smartfridge
e48500f00e Merge remote-tracking branch 'origin/dev' into dev 2022-07-15 23:04:14 +02:00
smartfridge
52bca257f8 Add floating settings button and few new options 2022-07-15 23:04:00 +02:00
smartfridge
414c7d120f Fix alternative paste 2022-07-15 11:17:42 +02:00
KayoticCarnige
0c34328f43 Whoops 2022-07-14 17:47:30 -04:00
KayoticCarnige
fbca68d8b5 Fixed an issue with the custom titlebar 2022-07-14 17:34:16 -04:00
smartfridge
33b2b05792 Finish settings redesign 2022-07-14 22:37:33 +02:00
smartfridge
3e2efad943 Add alternative paste setting 2022-07-14 20:37:03 +02:00
smartfridge
a1f91d4d89 Redesign settings 2022-07-14 19:46:01 +02:00
36 changed files with 3490 additions and 274 deletions

View file

@ -13,18 +13,44 @@
"next": "Next",
"setup_question4": "Select a client mod you want to install:",
"setup_question4_clientmodnotice": "Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our Discord.",
"settings-theme": "ArmCord theme:",
"settings-theme": "ArmCord theme",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-theme-default": "Default",
"settings-theme-native": "Native",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-tray": "Minimize to tray",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches": "Automatic Patches",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode": "Mobile mode",
"settings-channel": "Discord channel:",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel": "Discord channel",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! Only client mod\n available to run alongside with it is Cordwood. It's run by community, so you take all the risk by\n using it.",
"settings-invitewebsocket": "Invite Websocket",
"settings-mod": "Client mod:",
"settings-prfmMode": "Performance mode:",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste": "Alternative Paste",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod": "Client mod",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-prfmMode": "Performance mode",
"settings-prfmMode": "Performance mode is an experimental function that may either increase responsiveness and performance of\n ArmCord or... decrease it. Please try every option and see which fits you the best.",
"settings-prfmMode-performance": "Performance",
"settings-prfmMode-battery": "Battery",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder",
"settings-none": "None",
"settings-save": "Save Settings",
"settings-updater": "Check for updates"

View file

@ -27,5 +27,30 @@
"settings-none": "Ninguna",
"settings-save": "Guardar ajustes",
"settings-updater": "Buscar una actualización",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobile mode",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste": "Alternative Paste",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder"
}

View file

@ -27,5 +27,30 @@
"settings-none": "هیچکدام",
"settings-save": "ذخیره تنظیمات",
"settings-updater": "بررسی برای بروزرسانی",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobile mode",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste": "Alternative Paste",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder"
}

View file

@ -2,8 +2,8 @@
"loading_screen_start": "Démarrage d'ArmCord…",
"loading_screen_update": "Une nouvelle version d'ArmCord est disponible. Veuillez mettre à jour vers la dernière version.",
"setup_question1": "Sélectionnez le type de configuration que vous souhaitez effectuer :",
"setup_question1_answer1": "Configuration express",
"setup_question1_answer2": "Configuration complète",
"setup_question1_answer1": "Configuration Express",
"setup_question1_answer2": "Configuration Complète",
"setup_question2": "Choisissez votre canal/instance Discord :",
"setup_question3": "ArmCord doit-il s'occuper de l'installation des mods clients ?",
"yes": "Oui",
@ -18,7 +18,7 @@
"settings-mod": "Modification client :",
"settings-save": "Sauvegarder les paramètres",
"settings-updater": "Vérifier les mises à jour",
"settings-theme": "Thème ArmCord :",
"settings-theme": "Thème ArmCord",
"settings-theme-default": "Default",
"settings-theme-native": "Native",
"settings-patches": "Correctifs automatiques",
@ -27,5 +27,30 @@
"settings-prfmMode-performance": "Performance",
"settings-prfmMode-battery": "Batterie",
"settings-none": "Aucun",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobile mode",
"settings-theme-desc1": "Les \"thèmes\" d'ArmCord gèrent le comportement et l'apparence des applications.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-altPaste": "Alternative Paste",
"settings-storageFolder": "Open storage folder",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder"
}

View file

@ -27,5 +27,30 @@
"settings-prfmMode-performance": "kinerja",
"settings-prfmMode-battery": "Baterai",
"settings-none": "tidak ada",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobile mode",
"settings-altPaste": "Alternative Paste",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder"
}

View file

@ -27,5 +27,30 @@
"settings-prfmMode-performance": "Performance",
"settings-prfmMode-battery": "Battery",
"settings-none": "None",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobile mode",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste": "Alternative Paste",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder"
}

56
assets/lang/ja-JP.json Normal file
View file

@ -0,0 +1,56 @@
{
"setup_question1_answer2": "Full Setup",
"yes": "Yes",
"settings-theme-default": "Default",
"settings-invitewebsocket": "Invite Websocket",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"loading_screen_start": "Starting ArmCord…",
"loading_screen_offline": "You appear to be offline. Please connect to the Internet and try again.",
"loading_screen_update": "A new version of ArmCord is available. Please update to the latest version.",
"setup_question1": "Select what kind of setup you want to perform:",
"setup_question1_answer1": "Express Setup",
"setup_offline": "You appear to be offline. Please connect to the internet and restart ArmCord.",
"setup_question2": "Choose your Discord channel/instance:",
"setup_question3": "Should ArmCord handle client mods installation?",
"no": "No",
"next": "Next",
"setup_question4": "Select a client mod you want to install:",
"setup_question4_clientmodnotice": "Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our Discord.",
"settings-theme": "ArmCord theme",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-theme-native": "Native",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-tray": "Minimize to tray",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches": "Automatic Patches",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode": "Mobile mode",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel": "Discord channel",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! Only client mod\n available to run alongside with it is Cordwood. It's run by community, so you take all the risk by\n using it.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste": "Alternative Paste",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod": "Client mod",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-prfmMode": "Performance mode is an experimental function that may either increase responsiveness and performance of\n ArmCord or... decrease it. Please try every option and see which fits you the best.",
"settings-prfmMode-performance": "Performance",
"settings-prfmMode-battery": "Battery",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder",
"settings-none": "None",
"settings-save": "Save Settings",
"settings-updater": "Check for updates"
}

View file

@ -9,23 +9,48 @@
"no": "Nei",
"setup_question1_answer1": "Hurtigoppsett",
"setup_question3": "Skal ArmCord håndtere installasjon av klient-modifikasjoner?",
"setup_offline": "Koble til Internett og start ArmCord-oppsett på ny.",
"setup_offline": "Det ser ut til at du er frakoblet. Koblet til Internett og start ArmCord på ny.",
"next": "Neste",
"setup_question4": "Velg en klient-modifikasjon du ønsker å installere:",
"setup_question4_clientmodnotice": "Hvorfor ikke alle? Å ha mange klient-modifikasjoner samtidig kan forårsake problemer. Hvis du vil gjøre det likevel bør du lese dokumentasjonen vår.",
"settings-tray": "Minimize to tray",
"settings-channel": "Discord channel:",
"settings-mod": "Client mod:",
"settings-save": "Save settings",
"settings-channel": "Discord-kanal:",
"settings-mod": "Klient-modifikasjon:",
"settings-save": "Lagre innstillingene",
"settings-updater": "Check for updates",
"settings-theme": "ArmCord Theme:",
"settings-theme": "ArmCord-drakt",
"settings-theme-default": "Default",
"settings-theme-native": "Native",
"settings-patches": "Automatic Patches",
"settings-invitewebsocket": "discord.gg support",
"settings-prfmMode": "Performance mode:",
"settings-prfmMode": "Ytelsesmodus er en eksperimentell funksjon som enten øker responsen og ytelsen til\n ArmCord, eller senker den. Prøv begge deler og finn ut hva som passer deg best.",
"settings-prfmMode-performance": "Performance",
"settings-prfmMode-battery": "Battery",
"settings-none": "None",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobilmodus",
"settings-theme-desc1": "Draktene endrer systemadferd og utseende.",
"settings-theme-desc2": "ArmCord ser slik ut første gang du starter deg. Her finner du et gjenskapt\n tilpasset tittelfelt og spesifikke ArmCord-stiler som injiseres i Discord..",
"settings-theme-desc3": "Bruker det systemspesifikke tittelfeltet tilhørende operativsystemet du bruker (f.eks Windows 7/10).\n Fungerer mer likt det faktiske Dicrod-programmet på Linux|GNU.",
"settings-csp-desc": "ArmCord CSP er systemet vårt brukt til innlasting av egendefinert innhold i Discord-programmet. Ting som\n klient-modifikasjoner og drakter trenger det. Skru dette av for å bli kvitt modifikasjoner og stilendriner.",
"settings-tray-desc": "Når avskrudd vil ArmCord lukkes som ethvert annet vindu. Ellers vil det være å finne\n i systemkurven din for senere bruk.",
"settings-channel-desc1": "Du kan bruke denne innstillingen for å endre den nåværende Discord-instansen:",
"settings-patches-desk": "Henter automatiske feilfikser som distribueres hvis utgivelsen viser seg å ha feil etter at den er sluppet.\n Vanligvis trenger ikke dette å forbli påslått, med mindre det varsles i støtte-Discord-en.",
"settings-mobileMode-desc": "For enheter med pekeskjerm. Aktiverer Discord sitt skjulte modbilmodus tiltenkt telefoner og nettbrett.\n Den eneste store funksjonen som mangler er stemmesludring. Ideelt for PinePhone-brukere og lign.",
"settings-channel-desc2": "Du kjenner antagelig denne best. Det er den som brukes i den forvalgte Discord-\n klienten.",
"settings-channel-desc3": "dette er en alfa-testutgave av Discord. Ved å bruke den får du tilgang til de nyeste\n funksjonene og fiksene.",
"settings-channel-desc4": "Offentlig test-bygg. Får funksjoner tidligere enn den stabile versjonen, men litt senere enn Canary.",
"settings-channel-desc5": "Uoffisiell Discord-instans i 2016-stil. Ingen av klient-modifikasjonene\n som er å finne i ArmCord fungerer med den. Den drives av gemenskapen, så du tar all risiko ved bruk.",
"settings-invitewebsocket-desc": "Når dette er påskrudd støtter ArmCord Discord.gg-lenker, noe som betyr at ArmCord automatisk godtar\n invitasjoner hvis du åpner dem i nettleseren. Kan til tider slutte å svare.",
"settings-altPaste": "Alternativ innliming",
"settings-altPaste-desc": "Hvis du er på GNOME eller Linux, eller ganske enkelt ikke kan lime inn bilder kopiert fra andre bilder er\n dette noe for deg. Det skrur på den alternative modulen for innliming av bilder. Kun skru på dette\n hvis du har problemer.",
"settings-mod-desc1": "Klientmodifikasjoner er prorammer som lar de endre Discord-opplevelsen. De kan endre klientens\n utseende, endre adferden, eller legge til nye funksjoner.",
"settings-mod-desc2": "Fokuserer på å gjøre utviklingen av Discord-programtillegg enklere. Minimalistisk og\n lett.",
"settings-mod-desc3": "Lett, sikkert, og enkelt å bruke, ferdig til bruk. Har en innebygd\n butikk for programtillegg.",
"settings-mod-desc4": "Under iherdig utvikling. Har ikke fungerende grensesnitt.",
"settings-trayIcon": "Systemkurvsikon",
"settings-trayIcon-desc": "Sett ikonet som vises i systemkurven.",
"settings-advanced": "Sone for avanserte brukere",
"settings-pluginsFolder": "Åpne programtilleggsmappen",
"settings-themesFolder": "Åpne draktmappen",
"settings-storageFolder": "Åpne lagringsmappen"
}

View file

@ -1,11 +1,11 @@
{
"setup_question1": "Selecteer wat voor soort setup je wilt starten:",
"setup_question1_answer1": "Express setup",
"setup_question1_answer2": "Volledige setup",
"setup_question1_answer1": "Express Setup",
"setup_question1_answer2": "Volledige Setup",
"setup_question3": "Moet ArmCord client mods installeren?",
"yes": "Ja",
"no": "Nee",
"setup_offline": "Het lijkt erop alsof je offline bent. Verbind met het Internet en herstart ArmCord setup.",
"setup_offline": "Het lijkt erop alsof je offline bent. Verbind met het internet en herstart ArmCord setup.",
"loading_screen_start": "ArmCord starten…",
"next": "Volgende",
"setup_question4": "Selecteer een client mod om te installeren:",
@ -19,7 +19,7 @@
"settings-save": "Instellingen opslaan",
"settings-updater": "Check voor updates",
"settings-patches": "Automatische Patches",
"settings-theme": "ArmCord Thema:",
"settings-theme": "ArmCord Thema",
"settings-theme-default": "Standaard",
"settings-theme-native": "Native",
"settings-invitewebsocket": "discord.gg support",
@ -27,5 +27,30 @@
"settings-prfmMode": "Performance mode:",
"settings-prfmMode-performance": "Performance",
"settings-prfmMode-battery": "Battery",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobile mode",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-altPaste": "Alternative Paste",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-theme-desc1": "ArmCord thema's beheren de functionaliteit en het uitzien van de app.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder"
}

View file

@ -12,13 +12,13 @@
"loading_screen_offline": "Wydaje nam się, że nie jesteś połączony z Internetem. Połącz się z internetem i spróbuj ponownie.",
"setup_question1_answer1": "Ekspresowa konfiguracja",
"setup_question1": "Wybierz w jaki sposób chcesz skonfigurować ArmCord:",
"setup_offline": "Wydaje nam się że nie jesteś połączony z internetem. Połącz się z internetem i uruchom ponownie konfiguracje ArmCord .",
"settings-channel": "Kanał Discorda:",
"setup_offline": "Wydaje nam się, że nie jesteś połączony z internetem. Połącz się z internetem i uruchom ponownie konfiguracje ArmCord.",
"settings-channel": "Kanał Discorda",
"settings-updater": "Sprawdź aktualizacje",
"settings-tray": "Zminimalizuj do zasobnika zadań",
"settings-save": "Zapisz ustawienia",
"settings-mod": "Modyfikacja klienta:",
"settings-theme": "Motyw ArmCord:",
"settings-theme": "Motyw ArmCord",
"settings-theme-default": "Domyślny",
"settings-theme-native": "Natywny",
"settings-patches": "Automatyczne łatki",
@ -27,5 +27,30 @@
"settings-prfmMode-performance": "Wydajny",
"settings-prfmMode-battery": "Bateria",
"settings-none": "Nic/Brak",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Tryb mobilny",
"settings-theme-desc1": "Motywy ArmCord zarządzają zachowanie i wygląd aplikacji.",
"settings-theme-desc2": "tak wygląda ArmCord przy pierwszym uruchomieniu. Zawiera rekreacje\n paska zadań Discord oraz specjalne style ArmCord wstrzyknięte do Discorda.",
"settings-theme-desc3": "używa natywnego paska zadań twojego systemu(np. Windows 7/10). Funkcjonuje\n bliżej do normalnego Discorda na Linuxie.",
"settings-csp-desc": "ArmCord CSP to nasz autorski system który zarządza ładowaniem niestandardowych rzeczy do klienta. Na przykład\n modyfikacje klienta lub motywy wymagają jego obecności. Wyłącz jeśli chcesz się pozbyć modyfikacji i motywów Discorda.",
"settings-tray-desc": "Kiedy wyłączone, ArmCord zamknie swoje okno jak każda inna aplikacje, jednak gdy jest włączone usiądzie i odpocznie\n w pasku zadań.",
"settings-patches-desk": "Ściąga automatyczne łatki, które są rozprowadzane jeśli wersja okaże się mięc błędy. Najczęśćiej\n nie musisz mieć tego włączonego, chyba że poproszony/a na Discordzie.",
"settings-mobileMode-desc": "Jeśli jesteś na urządzeniu z dotykowym ekranem, ta opcja jest dla ciebie! Aktywuje ona ukryty tryb Discord\n przeznaczony na telefony i tablety. Jedyna większa brakująca funkcja to kanał głosowy. Jest to idealne rozwiązanie dla\n użytkowników PinePhone i podobnych.",
"settings-channel-desc1": "Możesz użyć tej opcji aby zmienić obecny kanał Discorda:",
"settings-channel-desc2": "jesteś najpewniej najbardziej zapoznany z tym. Jest on używany w domyślnym oficjalnym kliencie\n Discorda!",
"settings-altPaste": "Alternative Paste",
"settings-channel-desc3": "jest to wersja alpha Discorda. Poprzez używanie jej otrzymujesz dostęp do najnowszych\n funkcji i poprawek.",
"settings-channel-desc4": "publiczny kanał testowania. Dostaje funkcje szybciej niż stable, jednak jest troche starszy od Canary.",
"settings-channel-desc5": "nieoficjalny kanał Discorda który zabiera cię do 2016 roku! Żadne z modyfikacji klienta\n normalnie zawartych w ArmCordzie nie działa w nim. Jest on prowadzony przez społeczność więc używaj na własne ryzyko.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder"
}

View file

@ -1,31 +1,56 @@
{
"no": "Não",
"loading_screen_start": "Iniciando ArmCord…",
"loading_screen_offline": "Você parece estar offline. Conecte-se à internet e tente novamente.",
"loading_screen_update": "Uma nova versão do ArmCord está disponível. Atualize para a versão mais recente.",
"setup_question1": "Selecione que tipo de instação você quer fazer:",
"loading_screen_offline": "Você parece estar offline. Por favor, conecte-se à internet e tente novamente.",
"loading_screen_update": "Uma nova versão do ArmCord está disponível. Por favor, atualize para a versão mais recente.",
"setup_question1": "Selecione que tipo de instação você deseja fazer:",
"setup_question1_answer1": "Instalação rápida",
"setup_question1_answer2": "Instalação completa",
"setup_offline": "Você parece estar offline. Conecte-se à internet e tente novamente.",
"setup_question2": "Escolha o canal/instância do seu Discord",
"setup_question3": "O ArmCord deve suportar a instalação dos mods de cliente?",
"setup_offline": "Você parece estar offline. Por favor, conecte-se à internet e tente novamente.",
"setup_question2": "Escolha o canal/instância do seu Discord:",
"setup_question3": "O ArmCord deve lidar com a instalação de mods do cliente?",
"yes": "Sim",
"next": "Próximo",
"setup_question4": "Selecione um mod de cliente que você quer instalar:",
"setup_question4_clientmodnotice": "Por que não todos eles? Tendo vários mods de cliente ao mesmo tempo pode causar problemas, Se você realmente quer fazer isso mesmo assim, veja o nosso Discord.",
"settings-theme": "Tema do ArmCord:",
"setup_question4": "Selecione um mod de cliente que você deseja instalar:",
"setup_question4_clientmodnotice": "Por que não todos eles? Ter muitos mods de cliente ao mesmo tempo pode causar problemas. Se você realmente quiser fazer isso, verifique nosso Discord.",
"settings-theme": "Tema do ArmCord",
"settings-theme-default": "Padrão",
"settings-theme-native": "Nativo",
"settings-tray": "Minimizar para a bandeja",
"settings-patches": "Patches automáticos",
"settings-channel": "Tipo de Discord:",
"settings-invitewebsocket": "Invite Websocket",
"settings-mod": "Client mod:",
"settings-prfmMode": "Performance mode:",
"settings-prfmMode-performance": "Performance",
"settings-prfmMode-battery": "Battery",
"settings-none": "None",
"settings-save": "Save Settings",
"settings-updater": "Check for updates",
"settings-mobileMode": "Mobile mode"
"settings-channel": "Canal do Discord",
"settings-invitewebsocket": "Convite por WebSocket",
"settings-mod": "Modificação de cliente",
"settings-prfmMode": "O modo de desempenho é uma função experimental que pode aumentar a capacidade de resposta e o desempenho\n do ArmCord, ou... diminuí-lo. Por favor, teste todas as opções e veja qual se adapta melhor a você.",
"settings-prfmMode-performance": "Desempenho",
"settings-prfmMode-battery": "Bateria",
"settings-none": "Nenhum",
"settings-save": "Salvar configurações",
"settings-updater": "Verificar atualizações",
"settings-mobileMode": "Modo móvel",
"settings-channel-desc1": "Você pode usar esta opção para alterar a atual instância do Discord:",
"settings-theme-desc1": "Os \"temas\" do ArmCord gerenciam o comportamento e a aparência de aplicativos.",
"settings-theme-desc2": "esta é a aparência do ArmCord quando você o inicia pela primeira vez. Inclui uma recriação\n personalizada da barra de título do Discord e estilos específicos do ArmCord injetados nele.",
"settings-theme-desc3": "utiliza a barra de título nativa do SO que você está executando no momento (no Windows 7/10). Funções mais\n parecidas com o real aplicativo do Discord no Linux.",
"settings-csp-desc": "ArmCord CSP é o nosso sistema que gerencia o carregamento de conteúdo personalizado no aplicativo do Discord. Coisas como\n mods de cliente e temas dependem disso. Desative se você quiser se livrar de mods e estilos personalizados.",
"settings-patches-desk": "Busca patches automáticos que são distribuídos se a versão mais recente apresentar bugs após o lançamento. Normalmente\n você não precisa manter isso ativado, a menos que seja notificado no suporte do Discord.",
"settings-mobileMode-desc": "Se estiver em um dispositivo com tela sensível ao toque, este recurso é para você! Ele ativa o modo móvel oculto do Discord\n destinado a celulares e tablets. A única característica importante ausente é o suporte ao bate-papo por voz. Isso é ideal para\n usuários do PinePhone e similares.",
"settings-tray-desc": "Quando desativado, o ArmCord irá encerrar como qualquer outra janela quando for fechado, caso contrário, permanecerá\n em repouso na bandeja do seu sistema para mais tarde.",
"settings-channel-desc2": "você provavelmente está mais familiarizado com este. É o que você vê no cliente padrão do\n Discord!",
"settings-channel-desc3": "esta é a versão de teste alfa do Discord. Ao utilizá-la, você obtém acesso aos recursos e correções\n mais recentes.",
"settings-invitewebsocket-desc": "Quando ativado, o ArmCord suportará links Discord.gg; isto é, se você abrir um link de convite em seu\n navegador, o ArmCord irá aceitá-lo automaticamente. Pode não responder às vezes.",
"settings-channel-desc4": "canal de teste público. Recebe recursos mais cedo do que o estável, mas é um pouco mais antigo do que o Canary.",
"settings-altPaste": "Colar alternativo",
"settings-altPaste-desc": "Se você usa GNOME no Linux, ou simplesmente não consegue colar imagens copiadas a partir de outras mensagens, então isto é\n para você. Isto habilita o módulo alternativo para colar imagens. Ative isso apenas quando estiver com\n problemas.",
"settings-channel-desc5": "instância não oficial do Discord que leva você de volta a 2016! O único cliente modificado\n disponível para rodar junto com ele é o Cordwood. É administrado pela comunidade, portanto você assume todos os riscos\n ao utilizá-lo.",
"settings-mod-desc1": "Mods de cliente são programas que permitem personalizar sua experiência no Discord. Eles podem alterar a aparência\n do cliente, modificar comportamentos ou adicionar novos recursos!",
"settings-mod-desc2": "concentra-se em tornar a experiência de desenvolvimento de plugins para o Discord mais fácil. Mínimo e\n leve.",
"settings-mod-desc3": "leve, seguro e fácil, já pronto para usar. Possui uma loja integrada\n para plugins.",
"settings-mod-desc4": "trabalho pesado em andamento, não possui uma interface do usuário funcional.",
"settings-trayIcon": "Ícone da bandeja",
"settings-trayIcon-desc": "Defina o ícone que aparecerá no menu da bandeja.",
"settings-advanced": "Área para usuários avançados",
"settings-pluginsFolder": "Abrir pasta de plugins",
"settings-themesFolder": "Abrir pasta de temas",
"settings-storageFolder": "Abrir pasta de armazenamento"
}

View file

@ -27,5 +27,30 @@
"settings-none": "Ничего",
"settings-save": "Сохранить настройки",
"settings-updater": "Проверить наличие обновлений",
"settings-mobileMode": "Mobile mode"
"settings-mobileMode": "Mobile mode",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste": "Alternative Paste",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone"
}

56
assets/lang/sv-SE.json Normal file
View file

@ -0,0 +1,56 @@
{
"loading_screen_start": "Starting ArmCord…",
"loading_screen_offline": "You appear to be offline. Please connect to the Internet and try again.",
"loading_screen_update": "A new version of ArmCord is available. Please update to the latest version.",
"setup_question1": "Select what kind of setup you want to perform:",
"setup_question1_answer1": "Express Setup",
"setup_question1_answer2": "Full Setup",
"setup_offline": "You appear to be offline. Please connect to the internet and restart ArmCord.",
"setup_question2": "Choose your Discord channel/instance:",
"setup_question3": "Should ArmCord handle client mods installation?",
"yes": "Yes",
"no": "No",
"next": "Next",
"setup_question4": "Select a client mod you want to install:",
"setup_question4_clientmodnotice": "Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our Discord.",
"settings-theme": "ArmCord theme",
"settings-theme-desc1": "ArmCord \"themes\" manage apps behaviour and looks.",
"settings-theme-desc2": "this is how ArmCord looks when you first launch it. It includes recreation of Discord's\n custom titlebar and ArmCord specific styles injected into Discord.",
"settings-theme-desc3": "uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more\n similar to actual Discord app on Linux.",
"settings-theme-default": "Default",
"settings-theme-native": "Native",
"settings-mod": "Client mod",
"settings-prfmMode-performance": "Performance",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-csp-desc": "ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like\n client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.",
"settings-tray": "Minimize to tray",
"settings-tray-desc": "When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax\n in your system tray for later.",
"settings-patches": "Automatic Patches",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode": "Mobile mode",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel": "Discord channel",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! Only client mod\n available to run alongside with it is Cordwood. It's run by community, so you take all the risk by\n using it.",
"settings-invitewebsocket": "Invite Websocket",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste": "Alternative Paste",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-prfmMode": "Performance mode is an experimental function that may either increase responsiveness and performance of\n ArmCord or... decrease it. Please try every option and see which fits you the best.",
"settings-prfmMode-battery": "Battery",
"settings-trayIcon": "Tray icon",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder",
"settings-none": "None",
"settings-save": "Save Settings",
"settings-updater": "Check for updates"
}

View file

@ -14,7 +14,7 @@
"setup_question4": "เลือกไคลเอนต์มอดที่ต้องการติดตั้ง:",
"settings-prfmMode-battery": "ประหยัดแบตเตอรี่",
"setup_question4_clientmodnotice": "ทำไมไม่ใช้พร้อมกันทั้งหมดล่ะ? การมีไคลเอนต์มอดหลายตัวพร้อมกันอาจทำให้เกิดปัญหาได้ หากต้องการที่จะทำจริงๆ ให้ไปดูใน Discord ของเรา",
"settings-theme": "ธีม ArmCord:",
"settings-theme": "ธีม ArmCord",
"settings-theme-default": "ค่าเริ่มต้น",
"settings-theme-native": "ดั้งเดิม",
"settings-tray": "ย่อขนาดหน้าต่าง",
@ -27,5 +27,30 @@
"settings-none": "ไม่มี",
"settings-save": "บันทึกการตั้งค่า",
"settings-updater": "ตรวจหาการอัปเดต",
"settings-mobileMode": "โหมดมือถือ"
"settings-mobileMode": "โหมดมือถือ",
"settings-theme-desc1": "\"ธีม\" ของ ArmCord เป็นการจัดการลักษณะและการทำงานของแอป",
"settings-patches-desk": "Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually\n you don't have to keep this enabled, unless notified in support Discord.",
"settings-mobileMode-desc": "If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile\n mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for\n users on PinePhone and similar.",
"settings-channel-desc1": "You can use this setting to change current instance of Discord:",
"settings-channel-desc2": "you're probably most familiar with this one. It's the one you see in default Discord\n client!",
"settings-altPaste": "Alternative Paste",
"settings-trayIcon": "Tray icon",
"settings-theme-desc2": "นี่คือหน้าตา ArmCord ตอนที่เปิดครั้งแรก เป็นการปรับปรุงจากหน้าตาเดิมของ Discord\n แถบชื่อหน้าต่างและหน้าตาใหม่ ๆ ที่ ArmCord เปลี่ยน Discord",
"settings-theme-desc3": "ใช้แถบชื่อหน้าต่างเริ่มต้นของระบบปฏิบัติการที่กำลังใช้อยู่ (เช่น Windows 7/10) ตัวเลือกคล้ายกันกับ\n แอป Discord ใน Linux",
"settings-csp-desc": "ArmCord CSP คือระบบที่จัดการการโหลดเนื้อหากำหนดเองลงไปในแอป Discord สิ่งอย่างเช่น สิ่งอย่างเช่น\n ไคลแอนต์มอด ธีม ต้องใช้มัน สามารถปิดใช้งานได้หากต้องการปิดมอดและหน้าตากำหนดเอง",
"settings-tray-desc": "เมื่อปิด ArmCord จะปิดเหมือนหน้าตาอื่น ๆ เมื่อปิด ไม่อย่างนั้นมันจะนั่งนิ่ง\n ในถาดระบบภายหลัง",
"settings-channel-desc3": "this is alpha test release of Discord. By using it you gain access to the newest\n features and fixes.",
"settings-channel-desc4": "public test build. Receives features earlier than stable but is a bit older than Canary.",
"settings-channel-desc5": "unofficial instance of Discord that takes you back to 2016! None of the client mods\n bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.",
"settings-invitewebsocket-desc": "When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your\n browser, ArmCord will automatically accept the invite. Can be unresponsive at times.",
"settings-altPaste-desc": "If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is\n for you. This enables alternative module for pasting images. Only enable this when you're experiencing\n issues.",
"settings-mod-desc1": "Client mods are programs that allow you customize your Discord experience. They can change appearance of\n the client, modify behaviours or add new features!",
"settings-mod-desc2": "focuses on making the Discord plugin development experience easier. Minimal and\n lightweight.",
"settings-mod-desc3": "light, secure, and easy to use, with out of the box experience. Features a built-in\n store for plugins.",
"settings-mod-desc4": "heavily work in progress, doesn't have a working UI.",
"settings-trayIcon-desc": "Set the icon which will appear in tray menu.",
"settings-advanced": "Advanced user zone",
"settings-pluginsFolder": "Open plugins folder",
"settings-themesFolder": "Open themes folder",
"settings-storageFolder": "Open storage folder"
}

8
build/installer.nsh Normal file
View file

@ -0,0 +1,8 @@
!macro preInit
SetRegView 64
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
SetRegView 32
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
!macroend

View file

@ -11,7 +11,9 @@
"packageQuick": "npm run build && electron-builder --dir",
"format": "prettier --write src/**/*",
"CIbuild": "npm run build && electron-builder --linux zip && electron-builder --windows zip && electron-builder --macos zip",
"postinstall": "husky install"
"postinstall": "husky install",
"precommit-fix": "husky uninstall && echo - && echo !Make sure to run 'npm run format' before commiting! | chalk --stdin yellow inverse && echo -",
"precommit-fix:format": "husky uninstall && npm run format"
},
"repository": {
"type": "git",
@ -30,8 +32,9 @@
"electron": "^19.0.8",
"electron-builder": "^23.0.3",
"husky": "^8.0.1",
"prettier": "^2.7.0",
"typescript": "^4.7.3"
"prettier": "^2.7.1",
"typescript": "^4.7.3",
"chalk-cli": "^5.0.0"
},
"dependencies": {
"electron-context-menu": "github:ArmCord/electron-context-menu",
@ -40,6 +43,17 @@
"ws": "^8.8.0"
},
"build": {
"nsis": {
"include": "build/installer.nsh"
},
"files": [
"!*",
"assets",
"node_modules",
"ts-out",
"package.json",
"LICENSE"
],
"appId": "com.smartfridge.armcord",
"productName": "ArmCord",
"mac": {

2179
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -8,6 +8,10 @@
padding: 0;
padding-top: 4px;
}
[customTitlebar] .backdrop-2ByYRN {
top: -30px;
padding-top: 30px;
}
* {
outline: none;
}
@ -33,7 +37,7 @@
}
.none-2-_0dP:hover::-webkit-scrollbar {
width: 0.29em !important;
width: 0.3em !important;
border-radius: 25px;
height: 0px !important;
background: transparent !important;

View file

@ -60,20 +60,66 @@ body::-webkit-scrollbar-thumb {
* {
font-family: "Whitney", sans-serif;
box-sizing: border-box;
cursor: default;
}
.left {
float: right;
vertical-align: right !important;
}
p {
pointer-events: none;
user-select: none;
}
.switch {
vertical-align: middle;
border-radius: 10px;
background: var(--background-floating);
border: 20px;
border-color: var(--background-floating);
border-style: solid;
}
.saveBar {
position: fixed;
bottom: 20px;
font-weight: bold;
z-index: 999;
font-size: 10px;
}
.saveBar > button {
width: 90px;
}
.header {
color: var(--header-primary);
font-size: 1.46em;
font-size: 1.5em;
position: relative;
bottom: 20px;
font-weight: bold;
}
.header2 {
color: var(--header-primary);
font-size: 1.5em;
position: relative;
bottom: 0px;
font-weight: bold;
}
.description2 {
position: relative;
color: white;
font-size: 1.2em;
font-weight: lighter;
bottom: 15px;
}
.description {
position: relative;
color: white;
font-size: 1.2em;
font-weight: lighter;
bottom: 40px;
}
.dropdown {
position: relative;
font-size: 25px;
}
.center {
text-align: center;
@ -82,6 +128,12 @@ body::-webkit-scrollbar-thumb {
transform: translateX(50%);
float: right;
}
.advancedText {
color: var(--header-primary);
font-size: 1.5em;
font-weight: bold;
width: max-content;
}
/*buttons*/
button {
background: var(--brand-experiment);
@ -90,6 +142,7 @@ button {
border: none;
border-radius: 5px;
padding: 8px;
margin-top: 10px;
transition: 0.17s ease;
}
button:hover {
@ -201,3 +254,36 @@ select {
white-space: nowrap;
outline: none !important;
}
.acTheme {
height: 15em !important;
}
.acCSP {
height: 10em !important;
}
.acPatches {
height: 10em !important;
}
.acWebsocket {
height: 10em !important;
}
.acMobileMode {
height: 11em !important;
}
.acAltPaste {
height: 11em !important;
}
.acChannel {
height: 21em !important;
}
.acClientMod {
height: 18em !important;
}
.acCordwood {
height: 8em !important;
}
.acPrfmMode {
height: 10em !important;
}
.acTray {
height: 8em !important;
}

View file

@ -12,7 +12,6 @@
height: 30px;
line-height: 30px;
-webkit-app-region: drag;
width: 100%;
user-select: none;
-webkit-user-select: none;
position: fixed;
@ -225,13 +224,22 @@
}
/* ArmCord on MacOS (Why would you do this?) */
[armcord-platform="darwin"] .withFrame-haYltI {
height: 0px !important;
}
[armcord-platform="darwin"] .sidebar-1tnWFu {
border-top-left-radius: 0px !important;
}
[armcord-platform="darwin"] .scroller-3X7KbA {
padding-top: 35px !important;
}
[armcord-platform="darwin"] .container-2RRFHK {
padding-top: 45px;
top: -45px;
padding-top: 48px;
top: -48px;
}
[armcord-platform="darwin"] .titlebar {
height: 45px;
line-height: 45px;
height: 48px;
line-height: 48px;
}
[armcord-platform="darwin"] .titlebar #window-controls-container {
float: left;
@ -239,7 +247,7 @@
height: 60%;
line-height: 45px;
-webkit-app-region: no-drag;
transform: translate(-78px, 4px);
transform: translate(-82px, 4px);
}
[armcord-platform="darwin"] .titlebar #window-controls-container:hover #minimize #minimize-icon,
@ -248,6 +256,13 @@
display: list-item;
}
[armcord-platform="darwin"][unFocused] .titlebar #window-controls-container #minimize,
[armcord-platform="darwin"][unFocused] .titlebar #window-controls-container #maximize,
[armcord-platform="darwin"][unFocused] .titlebar #window-controls-container #quit {
background-color: #d6d6d5 !important;
transition: background-color 0.1s ease-in;
}
[armcord-platform="darwin"] .titlebar #window-controls-container #quit #quit-icon {
background-color: #79282b;
-webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4yOTI4OSA2TDIuODE4MDEgMy41MjUxM0wzLjUyNTEyIDIuODE4MDJMNS45OTk5OSA1LjI5Mjg5TDguNDc0ODcgMi44MTgwMkw5LjE4MTk3IDMuNTI1MTNMNi43MDcxIDZMOS4xODE5NyA4LjQ3NDg3TDguNDc0ODcgOS4xODE5OEw1Ljk5OTk5IDYuNzA3MTFMMy41MjUxMiA5LjE4MTk4TDIuODE4MDEgOC40NzQ4N0w1LjI5Mjg5IDZaIiBmaWxsPSJyZ2JhKDEyOCwgNiwgMCwgMSkiLz48L3N2Zz4=")
@ -275,6 +290,7 @@
[armcord-platform="darwin"] .titlebar #window-controls-container #minimize {
background-color: #fac536;
transition: background-color 0.1s ease-in;
border: 1px solid #da9e10;
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='13' height='13'%3E%3Cstyle%3E.a%7Bfill:%23808080%7D%3C/style%3E%3Ccircle class='a' cx='15' cy='15' r='15'/%3E%3C/svg%3E")
no-repeat 50% 50%;
@ -284,6 +300,7 @@
}
[armcord-platform="darwin"] .titlebar #window-controls-container #maximize {
background-color: #39ea49;
transition: background-color 0.1s ease-in;
border: 1px solid #13c11e;
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='13' height='13'%3E%3Cstyle%3E.a%7Bfill:%23808080%7D%3C/style%3E%3Ccircle class='a' cx='15' cy='15' r='15'/%3E%3C/svg%3E")
no-repeat 50% 50%;
@ -293,6 +310,7 @@
}
[armcord-platform="darwin"] .titlebar #window-controls-container #quit {
background-color: #f25056;
transition: background-color 0.1s ease-in;
border: 1px solid #d52735;
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='13' height='13'%3E%3Cstyle%3E.a%7Bfill:%23808080%7D%3C/style%3E%3Ccircle class='a' cx='15' cy='15' r='15'/%3E%3C/svg%3E")
no-repeat 50% 50%;
@ -331,13 +349,7 @@
}
[armcord-platform="darwin"] .window-title {
content: var(--wordmark-svg);
height: 10px;
left: 50%;
margin-right: 50%;
transform: translate(50%, 9.5px);
float: right;
padding: 0;
display: none;
}
[armcord-platform="linux"] .window-title,

View file

@ -116,8 +116,8 @@
windowStyle: "default",
channel: "stable",
armcordCSP: true,
autoLaunch: true,
minimizeToTray: true,
alternativePaste: false,
automaticPatches: false,
mods: "cumcord",
inviteWebsocket: true,
@ -153,6 +153,7 @@
mobileMode: false,
automaticPatches: false,
performanceMode: "none",
alternativePaste: false,
trayIcon: "ac_plug_colored",
mods: options.mod,
inviteWebsocket: true
@ -168,6 +169,7 @@
automaticPatches: false,
mobileMode: false,
mods: "none",
alternativePaste: false,
performanceMode: "none",
trayIcon: "ac_plug_colored",
inviteWebsocket: true

View file

@ -28,7 +28,7 @@ const unstrictCSP = () => {
"https://raw.githubusercontent.com/Cumcord/Cumcord/stable/dist/build.js",
"https://raw.githubusercontent.com/Cumcord/Cumcord/master/dist/build.js",
"https://raw.githubusercontent.com/FlickerMod/dist/main/build.js",
"https://localhost:1234/dist.js"
"https://raw.githubusercontent.com/Cordwood/builds/master/index.js"
];
electron.session.defaultSession.webRequest.onHeadersReceived(({responseHeaders, url}, done) => {

View file

@ -1,7 +1,7 @@
//ipc stuff
import {app, ipcMain, shell, desktopCapturer} from "electron";
import {mainWindow} from "./window";
import {setConfigBulk, getVersion, getConfig, setLang, getLang, getWindowState} from "./utils";
import {setConfigBulk, getVersion, getConfig, setLang, getLang, getWindowState, packageVersion} from "./utils";
import {customTitlebar} from "./main";
import {createSettingsWindow} from "./settings/main";
export function registerIpc() {
@ -44,21 +44,24 @@ export function registerIpc() {
ipcMain.on("get-app-version", (event) => {
event.returnValue = getVersion();
});
ipcMain.on("get-package-version", (event) => {
event.returnValue = packageVersion;
});
ipcMain.on("splashEnd", async (event, arg) => {
try {
var width = await getWindowState("width") ?? 800;
var height= await getWindowState("height") ?? 600;
var isMaximized = await getWindowState("isMaximized") ?? false;
var width = (await getWindowState("width")) ?? 800;
var height = (await getWindowState("height")) ?? 600;
var isMaximized = (await getWindowState("isMaximized")) ?? false;
} catch (e) {
console.log("[Window state manager] No window state file found. Fallbacking to default values.")
console.log("[Window state manager] No window state file found. Fallbacking to default values.");
mainWindow.setSize(800, 600);
}
if (isMaximized) {
mainWindow.setSize(800, 600); //just so the whole thing doesn't cover whole screen
mainWindow.maximize()
mainWindow.maximize();
} else {
mainWindow.setSize(width, height);
console.log("[Window state manager] Not maximized.")
console.log("[Window state manager] Not maximized.");
}
});
ipcMain.on("restart", (event, arg) => {

View file

@ -43,7 +43,7 @@ app.whenReady().then(async () => {
break;
}
}
await init()
await init();
session.fromPartition("some-partition").setPermissionRequestHandler((webContents, permission, callback) => {
if (permission === "notifications") {
// Approves the permissions request
@ -55,7 +55,6 @@ app.whenReady().then(async () => {
}
});
app.on("activate", async function () {
if (BrowserWindow.getAllWindows().length === 0)
await init()
if (BrowserWindow.getAllWindows().length === 0) await init();
});
});

View file

@ -1,51 +1,84 @@
import { Menu, app, clipboard, globalShortcut } from "electron";
import {Menu, app, clipboard, globalShortcut} from "electron";
import {mainWindow} from "./window";
import {getConfig} from "./utils";
function paste(contents: any) {
const contentTypes = clipboard.availableFormats().toString();
//Workaround: fix pasting the images.
if(contentTypes.includes('image/') && contentTypes.includes('text/html')) {
if (contentTypes.includes("image/") && contentTypes.includes("text/html")) {
clipboard.writeImage(clipboard.readImage());
}
contents.paste();
}
export function setMenu() {
globalShortcut.register("CmdOrCtrl+V", function () {
if (mainWindow.isFocused()) {
paste(mainWindow.webContents)
}
})
var template: Electron.MenuItemConstructorOptions[] = [{
label: "ArmCord",
submenu: [
{label: "About ArmCord", role: "about"},//orderFrontStandardAboutPanel
{type: "separator"},
{
label: "Developer tools", accelerator: "CmdOrCtrl+Shift+I", click: function () {
mainWindow.webContents.openDevTools()
export async function setMenu() {
if ((await getConfig("alternativePaste")) == true) {
mainWindow.on("focus", function () {
console.log("[Window state manager] Focus");
globalShortcut.register("CmdOrCtrl+V", function () {
if (mainWindow.isFocused()) {
paste(mainWindow.webContents);
}
},
{
label: "Quit", accelerator: "CmdOrCtrl+Q", click: function () {
app.quit();
});
});
mainWindow.on("show", function () {
console.log("[Window state manager] Show");
mainWindow.focus();
globalShortcut.register("CmdOrCtrl+V", function () {
if (mainWindow.isFocused()) {
paste(mainWindow.webContents);
}
}
]
}, {
label: "Edit",
submenu: [
{label: "Undo", accelerator: "CmdOrCtrl+Z", role: "undo"},
{label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", role: "redo"},
{type: "separator"},
{label: "Cut", accelerator: "CmdOrCtrl+X", role: "cut"},
{label: "Copy", accelerator: "CmdOrCtrl+C", role: "copy"},
{label: "Paste", accelerator: "CmdOrCtrl+V", click: function () {
paste(mainWindow.webContents)
}},
{label: "Select All", accelerator: "CmdOrCtrl+A", role: "selectAll"}
]
});
});
mainWindow.on("blur", function () {
console.log("[Window state manager] Defocus");
globalShortcut.unregister("CmdOrCtrl+V");
});
mainWindow.on("hide", function () {
console.log("[Window state manager] Hide");
globalShortcut.unregister("CmdOrCtrl+V");
});
}
]
var template: Electron.MenuItemConstructorOptions[] = [
{
label: "ArmCord",
submenu: [
{label: "About ArmCord", role: "about"}, //orderFrontStandardAboutPanel
{type: "separator"},
{
label: "Developer tools",
accelerator: "CmdOrCtrl+Shift+I",
click: function () {
mainWindow.webContents.openDevTools();
}
},
{
label: "Quit",
accelerator: "CmdOrCtrl+Q",
click: function () {
app.quit();
}
}
]
},
{
label: "Edit",
submenu: [
{label: "Undo", accelerator: "CmdOrCtrl+Z", role: "undo"},
{label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", role: "redo"},
{type: "separator"},
{label: "Cut", accelerator: "CmdOrCtrl+X", role: "cut"},
{label: "Copy", accelerator: "CmdOrCtrl+C", role: "copy"},
{
label: "Paste",
accelerator: "CmdOrCtrl+V",
click: function () {
paste(mainWindow.webContents);
}
},
{label: "Select All", accelerator: "CmdOrCtrl+A", role: "selectAll"}
]
}
];
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
}

View file

@ -21,6 +21,7 @@ contextBridge.exposeInMainWorld("armcord", {
return result;
}),
version: ipcRenderer.sendSync("get-app-version", "app-version"),
packageVersion: ipcRenderer.sendSync("get-package-version", "app-version"),
getDisplayMediaSelector: getDisplayMediaSelector,
openSettingsWindow: () => ipcRenderer.send("openSettingsWindow")
});

View file

@ -3,11 +3,12 @@ import "./capturer";
import "./patch";
import * as fs from "fs";
import * as path from "path";
import {injectTitlebar} from "./titlebar";
import {injectHummusTitlebar, injectTitlebar} from "./titlebar";
import {sleep, addStyle, injectJS, addScript} from "../utils";
import {ipcRenderer} from "electron";
import {injectMobileStuff} from "./mobile";
var version = ipcRenderer.sendSync("get-app-version", "app-version");
var channel = ipcRenderer.sendSync("channel");
async function updateLang() {
if (window.location.href.indexOf("setup.html") > -1) {
console.log("Setup, skipping lang update");
@ -25,7 +26,8 @@ declare global {
const clientMods = {
goosemod: "https://api.goosemod.com/inject.js",
cumcord: "https://raw.githubusercontent.com/Cumcord/Cumcord/stable/dist/build.js",
flicker: "https://raw.githubusercontent.com/FlickerMod/dist/main/build.js"
flicker: "https://raw.githubusercontent.com/FlickerMod/dist/main/build.js",
cordwood: "https://raw.githubusercontent.com/Cordwood/builds/master/index.js"
};
console.log("ArmCord " + version);
@ -36,7 +38,11 @@ if (window.location.href.indexOf("splash.html") > -1) {
console.log("Skipping titlebar injection and client mod injection.");
} else {
if (ipcRenderer.sendSync("titlebar")) {
injectTitlebar();
if (channel == "hummus") {
injectHummusTitlebar();
} else {
injectTitlebar();
}
}
if (ipcRenderer.sendSync("mobileMode")) {
injectMobileStuff();
@ -61,6 +67,11 @@ if (window.location.href.indexOf("splash.html") > -1) {
console.log("Loading FlickerMod...");
await updateLang();
break;
case "cordwood":
injectJS(clientMods.cordwood);
console.log("Loading Cordwood...");
await updateLang();
break;
}
});
}

View file

@ -5,11 +5,6 @@ import * as path from "path";
import os from "os";
export function injectTitlebar() {
document.addEventListener("DOMContentLoaded", function (event) {
if (window.armcord.channel == "hummus") {
window.alert(
"ArmCord Titlebar doesn't currently work well in Hummus, please change ArmCord style to native for better experience."
);
}
var elem = document.createElement("div");
elem.innerHTML = `<nav class="titlebar">
<div class="window-title" id="window-title"></div>
@ -59,3 +54,51 @@ export function injectTitlebar() {
});
});
}
export function injectHummusTitlebar() {
document.addEventListener("DOMContentLoaded", function (event) {
var elem = document.createElement("div");
elem.innerHTML = `
<button class="win-minimize" id="minimize"></button><button class="win-maximize" id="maximize"></button><button class="win-close" id="quit"></button>
`;
elem.classList.add("win-buttons");
elem.classList.add("win-buttons-light");
document.getElementsByClassName("titlebar")[0].appendChild(elem);
document.body.setAttribute("customTitlebar", "");
document.body.setAttribute("hummus", "");
document.body.setAttribute("armcord-platform", os.platform());
addStyle(`
html, body {
background-color: #1e2124;
}
.friends-header,
.chat > .title-wrap {
float: right !important;
padding-right: 140px !important;
}`);
var minimize = document.getElementById("minimize");
var maximize = document.getElementById("maximize");
var quit = document.getElementById("quit");
minimize!.addEventListener("click", () => {
ipcRenderer.send("win-minimize");
});
maximize!.addEventListener("click", () => {
if (ipcRenderer.sendSync("win-isMaximized") == true) {
ipcRenderer.send("win-unmaximize");
document.body.removeAttribute("isMaximized");
} else if (ipcRenderer.sendSync("win-isNormal") == true) {
ipcRenderer.send("win-maximize");
}
});
quit!.addEventListener("click", () => {
if (ipcRenderer.sendSync("minimizeToTray") === true) {
ipcRenderer.send("win-hide");
} else if (ipcRenderer.sendSync("minimizeToTray") === false) {
ipcRenderer.send("win-quit");
}
});
});
}

201
src/settings/hummus.html Normal file
View file

@ -0,0 +1,201 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>ArmCord Settings</title>
<style>
@import url("../content/css/settings.css");
.acAdvSettings {
height: 19em !important;
}
</style>
</head>
<body>
<div class="saveBar">
<button id="settings-save" class="center">Save Settings</button>
</div>
<div class="switch acCSP">
<label class="header2">ArmCord CSP</label>
<input class="tgl tgl-light left" id="csp" type="checkbox" />
<label class="tgl-btn left" for="csp"></label>
<p class="description2">
ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like
client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.
</p>
</div>
<br />
<div class="switch acTray">
<label class="header2" id="settings-tray">Minimize to tray</label>
<input class="tgl tgl-light left" id="tray" type="checkbox" />
<label class="tgl-btn left" for="tray"></label>
<p class="description2">
When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax
in your system tray for later.
</p>
</div>
<br />
<div class="switch acPatches">
<label class="header2" id="settings-patches">Automatic Patches</label>
<input class="tgl tgl-light left" id="patches" type="checkbox" />
<label class="tgl-btn left" for="patches"></label>
<p class="description2">
Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually
you don't have to keep this enabled, unless notified in support Discord.
</p>
</div>
<br />
<div class="switch acAltPaste">
<label class="header2" id="settings-alternativePaste">Alternative paste</label>
<input class="tgl tgl-light left" id="alternativePaste" type="checkbox" />
<label class="tgl-btn left" for="alternativePaste"></label>
<p class="description2">
If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is
for you. This enables alternative module for pasting images. Only enable this when you're experiencing
issues.
</p>
</div>
<br />
<div class="switch acChannel">
<select name="channel" id="channel" class="left dropdown">
<option value="stable">Stable</option>
<option value="canary">Canary</option>
<option value="ptb">PTB</option>
<option value="hummus">Hummus (unofficial)</option>
</select>
<div>
<p class="header" id="settings-channel">Discord channel:</p>
<p class="description">
You can use this setting to change current instance of Discord:
<br />
<b>Stable</b> - you're probably most familiar with this one. It's the one you see in default Discord
client!
<br />
<b>Canary</b> - this is alpha test release of Discord. By using it you gain access to newest
features and fixes.
<br />
<b>PTB</b> - public test build. Gets features earlier than stable but is a bit older than Canary.
<br />
<b>Hummus</b> - unofficial instance of Discord that takes you back to 2016! None of the client mods
bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.
</p>
</div>
</div>
<br />
<div class="switch acCordwood">
<label class="header2" id="settings-cordwood">Cordwood client mod</label>
<input class="tgl tgl-light left" id="cordwood" type="checkbox" />
<label class="tgl-btn left" for="cordwood"></label>
<p class="description2">
Client mod for Hummus that focuses on making the plugin development experience easier. Minimal, light,
and easy to use
</p>
</div>
<br />
<div class="switch acPrfmMode">
<select name="prfmMode" id="prfmMode" class="left dropdown">
<option value="performance">Performance</option>
<option value="battery">Battery</option>
<option value="none">None</option>
</select>
<p class="header" id="settings-prfmMode">Performance mode:</p>
<p class="description">
Performance mode is an experimental function that may either increase responsiveness and performance of
ArmCord or... decrease it. Please try every option and see which fits you the best.
</p>
</div>
<br />
<div class="switch acTray">
<select name="trayIcon" id="trayIcon" class="left dropdown">
<option value="ac_plug_colored">Default</option>
<option value="dsc-tray">Discord Icon</option>
<option value="ac_white_plug">White Icon</option>
<option value="ac_black_plug">Black Icon</option>
<option value="ac_white_plug_hollow">White Hollowed Icon</option>
<option value="ac_black_plug_hollow">Black Hollowed Icon</option>
</select>
<p class="header" id="settings-trayIcon">Tray icon:</p>
<p class="description">Set the icon which will appear in tray menu.</p>
</div>
<br />
<br />
<div class="switch acAdvSettings">
<h1 class="center advancedText">⚠️ Advanced User Zone ⚠️</h1>
<button id="settings-pluginsFolder" class="center">Open Plugins Folder</button>
<br />
<button id="settings-themesFolder" class="center">Open Themes Folder</button>
<br />
<button id="settings-storageFolder" class="center">Open Storage Folder</button>
<br />
<button id="settings-copyDebugInfo" class="center">Copy Debug Info</button>
</div>
</body>
<script>
async function loadLang() {
document.getElementById("settings-save").innerHTML = await settings.getLang("settings-save");
document.getElementById("settings-mod").innerHTML = await settings.getLang("settings-mod");
document.getElementById("settings-channel").innerHTML = await settings.getLang("settings-channel");
document.getElementById("settings-invitewebsocket").innerHTML = await settings.getLang(
"settings-invitewebsocket"
);
document.getElementById("settings-patches").innerHTML = await settings.getLang("settings-patches");
document.getElementById("settings-tray").innerHTML = await settings.getLang("settings-tray");
document.getElementById("settings-mobileMode").innerHTML = await settings.getLang("settings-mobileMode");
document.getElementById("settings-theme").innerHTML = await settings.getLang("settings-theme");
//select stuff
document.getElementById("mod").options[3].text = await settings.getLang("settings-none");
document.getElementById("prfmMode").options[2].text = await settings.getLang("settings-none");
document.getElementById("prfmMode").options[1].text = await settings.getLang("settings-prfmMode-battery");
document.getElementById("prfmMode").options[0].text = await settings.getLang(
"settings-prfmMode-performance"
);
document.getElementById("theme").options[1].text = await settings.getLang("settings-theme-native");
document.getElementById("theme").options[0].text = await settings.getLang("settings-theme-default");
}
loadLang();
</script>
<script>
async function loadSettings() {
document.getElementById("csp").checked = await settings.get("armcordCSP");
document.getElementById("tray").checked = await settings.get("minimizeToTray");
document.getElementById("websocket").checked = await settings.get("inviteWebsocket");
document.getElementById("alternativePaste").checked = await settings.get("alternativePaste");
document.getElementById("mobile").checked = await settings.get("mobileMode");
document.getElementById("patches").value = await settings.get("automaticPatches");
document.getElementById("mod").value = await settings.get("mods");
document.getElementById("channel").value = await settings.get("channel");
document.getElementById("theme").value = await settings.get("windowStyle");
document.getElementById("prfmMode").value = await settings.get("performanceMode");
document.getElementById("trayIcon").value = await settings.get("trayIcon");
}
loadSettings();
document.getElementById("settings-save").addEventListener("click", function () {
settings.save({
windowStyle: document.getElementById("theme").value,
channel: document.getElementById("channel").value,
armcordCSP: document.getElementById("csp").checked,
minimizeToTray: document.getElementById("tray").checked,
alternativePaste: document.getElementById("alternativePaste").checked,
automaticPatches: document.getElementById("patches").checked,
mods: document.getElementById("mod").value,
mobileMode: document.getElementById("mobile").checked,
inviteWebsocket: document.getElementById("websocket").checked,
performanceMode: document.getElementById("prfmMode").value,
trayIcon: document.getElementById("trayIcon").value,
doneSetup: true
});
});
document.getElementById("settings-pluginsFolder").addEventListener("click", function () {
settings.openPluginsFolder();
});
document.getElementById("settings-themesFolder").addEventListener("click", function () {
settings.openThemesFolder();
});
document.getElementById("settings-storageFolder").addEventListener("click", function () {
settings.openStorageFolder();
});
document.getElementById("settings-copyDebugInfo").addEventListener("click", function () {
settings.copyDebugInfo();
});
</script>
</html>

View file

@ -1,9 +1,14 @@
import {BrowserWindow, shell, ipcMain} from "electron";
import {getConfig, setConfigBulk, Settings, getLang} from "../utils";
import {BrowserWindow, shell, ipcMain, app, clipboard} from "electron";
import {getConfig, setConfigBulk, Settings, getLang, getVersion, getConfigLocation} from "../utils";
import path from "path";
import os from "os";
import fs from "fs";
var settingsWindow: BrowserWindow;
var instance: number = 0;
const userDataPath = app.getPath("userData");
const storagePath = path.join(userDataPath, "/storage/");
const themesPath = path.join(userDataPath, "/themes/");
const pluginsPath = path.join(userDataPath, "/plugins/");
export function createSettingsWindow() {
console.log("Creating a settings window.");
instance = instance + 1;
@ -14,8 +19,8 @@ export function createSettingsWindow() {
}
} else {
settingsWindow = new BrowserWindow({
width: 500,
height: 555,
width: 660,
height: 670,
title: "ArmCord Settings",
darkTheme: true,
frame: true,
@ -24,18 +29,53 @@ export function createSettingsWindow() {
preload: path.join(__dirname, "preload.js")
}
});
async function settingsLoadPage() {
if ((await getConfig("channel")) == "hummus") {
settingsWindow.loadURL(`file://${__dirname}/hummus.html`);
} else {
settingsWindow.loadURL(`file://${__dirname}/settings.html`);
}
}
ipcMain.on("saveSettings", (event, args: Settings) => {
console.log(args);
setConfigBulk(args);
});
ipcMain.on("openStorageFolder", (event) => {
shell.openPath(storagePath);
});
ipcMain.on("openThemesFolder", (event) => {
shell.openPath(themesPath);
});
ipcMain.on("openPluginsFolder", (event) => {
shell.openPath(pluginsPath);
});
ipcMain.handle("getSetting", (event, toGet: string) => {
return getConfig(toGet);
});
ipcMain.on("copyDebugInfo", (event) => {
let settingsFileContent = fs.readFileSync(getConfigLocation(), "utf-8");
clipboard.writeText(
"**OS:** " +
os.platform() +
" " +
os.version() +
"\n**Architecture:** " +
os.arch() +
"\n**ArmCord version:** " +
getVersion() +
"\n**Electron version:** " +
process.versions.electron +
"\n`" +
settingsFileContent +
"`"
);
});
settingsWindow.webContents.setWindowOpenHandler(({url}) => {
shell.openExternal(url);
return {action: "deny"};
});
settingsWindow.loadURL(`file://${__dirname}/settings.html`);
settingsLoadPage();
settingsWindow.on("close", (event: Event) => {
ipcMain.removeHandler("getSetting");
ipcMain.removeAllListeners("saveSettings");

View file

@ -1,5 +1,6 @@
import {contextBridge, ipcRenderer} from "electron";
console.log("ArmCord Settings");
contextBridge.exposeInMainWorld("settings", {
save: (...args: any) => ipcRenderer.send("saveSettings", ...args),
getLang: (toGet: string) =>
@ -9,5 +10,9 @@ contextBridge.exposeInMainWorld("settings", {
get: (toGet: string) =>
ipcRenderer.invoke("getSetting", toGet).then((result) => {
return result;
}) //jank but works
}), //jank but works
openThemesFolder: () => ipcRenderer.send("openThemesFolder"),
openPluginsFolder: () => ipcRenderer.send("openPluginsFolder"),
openStorageFolder: () => ipcRenderer.send("openStorageFolder"),
copyDebugInfo: () => ipcRenderer.send("copyDebugInfo")
});

View file

@ -5,75 +5,160 @@
<title>ArmCord Settings</title>
<style>
@import url("../content/css/settings.css");
.acAdvSettings {
height: 26em !important;
}
</style>
</head>
<body>
<div class="switch">
<select name="theme" id="theme" class="left">
<div class="saveBar">
<button id="settings-save" class="center">Save Settings</button>
</div>
<div class="switch acTheme">
<select name="theme" id="theme" class="left dropdown">
<option value="default">Default</option>
<option value="native">Native</option>
</select>
<p class="header" id="settings-theme">ArmCord theme:</p>
<p class="header" id="settings-theme">ArmCord theme</p>
<p class="description">
ArmCord "themes" manage apps behaviour and looks.
<br />
<b>Default</b> - this is how ArmCord looks when you first launch it. It includes recreation of Discord's
custom titlebar and ArmCord specific styles injected into Discord.
<br />
<b>Native</b> - uses native titlebar of OS you're currently running (e.g Windows 7/10). Functions more
similar to actual Discord app on Linux.
</p>
</div>
<br />
<div class="switch">
<label class="header">ArmCord CSP</label>
<div class="switch acCSP">
<label class="header2">ArmCord CSP</label>
<input class="tgl tgl-light left" id="csp" type="checkbox" />
<label class="tgl-btn left" for="csp"></label>
<p class="description2">
ArmCord CSP is our system that manages loading custom content loading into the Discord app. Stuff like
client mods and themes depend on it. Disable if you want to get rid of mods and custom styles.
</p>
</div>
<br />
<div class="switch">
<label class="header" id="settings-tray">Minimize to tray</label>
<div class="switch acTray">
<label class="header2" id="settings-tray">Minimize to tray</label>
<input class="tgl tgl-light left" id="tray" type="checkbox" />
<label class="tgl-btn left" for="tray"></label>
<p class="description2">
When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax
in your system tray for later.
</p>
</div>
<br />
<div class="switch">
<label class="header" id="settings-patches">Automatic Patches</label>
<div class="switch acPatches">
<label class="header2" id="settings-patches">Automatic Patches</label>
<input class="tgl tgl-light left" id="patches" type="checkbox" />
<label class="tgl-btn left" for="patches"></label>
<p class="description2">
Fetches automatic patches that are distributed if release turns out to have bugs after release. Usually
you don't have to keep this enabled, unless notified in support Discord.
</p>
</div>
<br />
<div class="switch">
<label class="header" id="settings-invitewebsocket">Invite Websocket</label>
<div class="switch acWebsocket">
<label class="header2" id="settings-invitewebsocket">Invite Websocket</label>
<input class="tgl tgl-light left" id="websocket" type="checkbox" />
<label class="tgl-btn left" for="websocket"></label>
<p class="description2">
When enabled ArmCord will support Discord.gg links which means that if you open an invite link in your
browser, ArmCord will automatically accept the invite. Can be unresponsive at times.
</p>
</div>
<br />
<div class="switch">
<label class="header" id="settings-mobileMode">Mobile mode</label>
<div class="switch acMobileMode">
<label class="header2" id="settings-mobileMode">Mobile mode</label>
<input class="tgl tgl-light left" id="mobile" type="checkbox" />
<label class="tgl-btn left" for="mobile"></label>
<p class="description2">
If you're on a device with touch-screen this feature is for you! It activates Discord's hidden mobile
mode meant for phones and tablets. Only major feature missing is voice chat support. This is ideal for
users on PinePhone and similar.
</p>
</div>
<div class="switch">
<select name="channel" id="channel" class="left">
<br />
<div class="switch acAltPaste">
<label class="header2" id="settings-alternativePaste">Alternative paste</label>
<input class="tgl tgl-light left" id="alternativePaste" type="checkbox" />
<label class="tgl-btn left" for="alternativePaste"></label>
<p class="description2">
If you're on Gnome on Linux or just simply can't paste images copied from other messages, then this is
for you. This enables alternative module for pasting images. Only enable this when you're experiencing
issues.
</p>
</div>
<br />
<div class="switch acChannel">
<select name="channel" id="channel" class="left dropdown">
<option value="stable">Stable</option>
<option value="canary">Canary</option>
<option value="ptb">PTB</option>
<option value="hummus">Hummus (unofficial)</option>
</select>
<p class="header" id="settings-channel">Discord channel:</p>
<div>
<p class="header" id="settings-channel">Discord channel</p>
<p class="description">
You can use this setting to change current instance of Discord:
<br />
<b>Stable</b> - you're probably most familiar with this one. It's the one you see in default Discord
client!
<br />
<b>Canary</b> - this is alpha test release of Discord. By using it you gain access to the newest
features and fixes.
<br />
<b>PTB</b> - public test build. Receives features earlier than stable but is a bit older than
Canary.
<br />
<b>Hummus</b> - unofficial instance of Discord that takes you back to 2016! Only client mod
available to run alongside with it is Cordwood. It's run by community, so you take all the risk by
using it.
</p>
</div>
</div>
<div class="switch">
<select name="mod" id="mod" class="left">
<br />
<div class="switch acClientMod">
<select name="mod" id="mod" class="left dropdown">
<option value="cumcord">Cumcord</option>
<option value="goosemod">GooseMod</option>
<option value="flicker">Flicker</option>
<option value="none">None</option>
</select>
<p class="header" id="settings-mod">Client mod:</p>
<p class="header" id="settings-mod">Client mod</p>
<p class="description">
Client mods are programs that allow you customize your Discord experience. They can change appearance of
the client, modify behaviours or add new features!
<br />
<b>Cumcord</b> - focuses on making the Discord plugin development experience easier. Minimal and
lightweight.
<br />
<b>GooseMod</b> - light, secure, and easy to use, with out of the box experience. Features a built-in
store for plugins.
<br />
<b>Flicker</b> - heavily work in progress, doesn't have a working UI.
</p>
</div>
<div class="switch">
<select name="prfmMode" id="prfmMode" class="left">
<br />
<div class="switch acPrfmMode">
<select name="prfmMode" id="prfmMode" class="left dropdown">
<option value="performance">Performance</option>
<option value="battery">Battery</option>
<option value="none">None</option>
</select>
<p class="header" id="settings-prfmMode">Performance mode:</p>
<p class="header" id="settings-prfmMode">Performance mode</p>
<p class="description">
Performance mode is an experimental function that may either increase responsiveness and performance of
ArmCord or... decrease it. Please try every option and see which fits you the best.
</p>
</div>
<div class="switch">
<select name="trayIcon" id="trayIcon" class="left">
<br />
<div class="switch acTray">
<select name="trayIcon" id="trayIcon" class="left dropdown">
<option value="ac_plug_colored">Default</option>
<option value="dsc-tray">Discord Icon</option>
<option value="ac_white_plug">White Icon</option>
@ -81,9 +166,27 @@
<option value="ac_white_plug_hollow">White Hollowed Icon</option>
<option value="ac_black_plug_hollow">Black Hollowed Icon</option>
</select>
<p class="header" id="settings-trayIcon">Tray icon:</p>
<p class="header" id="settings-trayIcon">Tray icon</p>
<p class="description">Set the icon which will appear in tray menu.</p>
</div>
<br />
<br />
<div class="switch acAdvSettings">
<h1 class="center advancedText">⚠️ Advanced User Zone ⚠️</h1>
<br />
<label class="header2" id="settings-skipSplash">Skip Splash Screen (Experimental)</label>
<input class="tgl tgl-light left" id="skipSplash" type="checkbox" />
<label class="tgl-btn left" for="skipSplash"></label>
<p class="description2">Skips ArmCord splash screen when you start up the app.</p>
<br />
<button id="settings-pluginsFolder" class="center">Open Plugins Folder</button>
<br />
<button id="settings-themesFolder" class="center">Open Themes Folder</button>
<br />
<button id="settings-storageFolder" class="center">Open Storage Folder</button>
<br />
<button id="settings-copyDebugInfo" class="center">Copy Debug Info</button>
</div>
<button id="settings-save" class="center">Save Settings</button>
</body>
<script>
async function loadLang() {
@ -114,6 +217,8 @@
document.getElementById("csp").checked = await settings.get("armcordCSP");
document.getElementById("tray").checked = await settings.get("minimizeToTray");
document.getElementById("websocket").checked = await settings.get("inviteWebsocket");
document.getElementById("alternativePaste").checked = await settings.get("alternativePaste");
document.getElementById("skipSplash").checked = await settings.get("skipSplash");
document.getElementById("mobile").checked = await settings.get("mobileMode");
document.getElementById("patches").value = await settings.get("automaticPatches");
document.getElementById("mod").value = await settings.get("mods");
@ -129,6 +234,8 @@
channel: document.getElementById("channel").value,
armcordCSP: document.getElementById("csp").checked,
minimizeToTray: document.getElementById("tray").checked,
alternativePaste: document.getElementById("alternativePaste").checked,
skipSplash: document.getElementById("skipSplash").checked,
automaticPatches: document.getElementById("patches").checked,
mods: document.getElementById("mod").value,
mobileMode: document.getElementById("mobile").checked,
@ -138,5 +245,17 @@
doneSetup: true
});
});
document.getElementById("settings-pluginsFolder").addEventListener("click", function () {
settings.openPluginsFolder();
});
document.getElementById("settings-themesFolder").addEventListener("click", function () {
settings.openThemesFolder();
});
document.getElementById("settings-storageFolder").addEventListener("click", function () {
settings.openStorageFolder();
});
document.getElementById("settings-copyDebugInfo").addEventListener("click", function () {
settings.copyDebugInfo();
});
</script>
</html>

View file

@ -1,27 +1,28 @@
// MIT License
// Copyright (c) 2020-2022 Dawid Papiewski "SpacingBat3"
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
import type {Server, WebSocket} from "ws";
import {inviteWindow, createInviteWindow} from "./window";
/*
MIT License
Copyright (c) 2020-2022 Dawid Papiewski "SpacingBat3"
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
async function wsLog(message: string, ...args: unknown[]) {
console.log("[WebSocket] " + message, ...args);
}

View file

@ -1,16 +1,15 @@
import * as fs from "fs";
import { app, Menu, Tray, nativeImage} from "electron";
import { mainWindow } from "./window";
import { getConfig, getConfigLocation, setWindowState } from "./utils";
import {app, Menu, Tray, nativeImage} from "electron";
import {mainWindow} from "./window";
import {getConfig, getConfigLocation, setWindowState} from "./utils";
import * as path from "path";
import { createSettingsWindow } from "./settings/main";
import {createSettingsWindow} from "./settings/main";
let tray: any = null;
app.whenReady().then(async () => {
let finishedSetup = (await getConfig("doneSetup"));
let finishedSetup = await getConfig("doneSetup");
var trayIcon = (await getConfig("trayIcon")) ?? "ac_plug_colored";
let trayPath = nativeImage.createFromPath(path.join(__dirname, "../", `/assets/${trayIcon}.png`));
if(process.platform === "darwin" && trayPath.getSize().height > 22)
trayPath = trayIcon.resize({height: 22});
if (process.platform === "darwin" && trayPath.getSize().height > 22) trayPath = trayIcon.resize({height: 22});
if ((await getConfig("windowStyle")) == "basic") {
var clientName = (await getConfig("clientName")) ?? "ArmCord";
tray = new Tray(trayPath);
@ -28,7 +27,7 @@ app.whenReady().then(async () => {
if (err) throw err;
console.log('Closed during setup. "settings.json" was deleted');
app.quit();
});
});
}
}
]);
@ -43,18 +42,18 @@ app.whenReady().then(async () => {
{
label: `Quit ${clientName}`,
click: function () {
let [width, height] = mainWindow.getSize()
let [width, height] = mainWindow.getSize();
setWindowState({
width: width,
height: height,
isMaximized: mainWindow.isMaximized()
})
});
app.quit();
}
}
]);
}
}
};
tray.setToolTip(clientName);
tray.setContextMenu(contextMenu);
@ -74,57 +73,55 @@ app.whenReady().then(async () => {
if (err) throw err;
console.log('Closed during setup. "settings.json" was deleted');
app.quit();
});
});
}
}
]);
tray.setContextMenu(contextMenu);
} else {
const contextMenu = Menu.buildFromTemplate([
{
label: `${clientName} ` + app.getVersion(),
enabled: false
},
{
type: "separator"
},
{
label: `Open ${clientName}`,
click: function () {
mainWindow.show();
}
},
{
label: "Open Settings",
click: function () {
createSettingsWindow();
}
},
{
label: "Support Discord Server",
click: function () {
mainWindow.show();
mainWindow.loadURL("https://discord.gg/TnhxcqynZ2");
}
},
{
type: "separator"
},
{
label: `Quit ${clientName}`,
click: function () {
app.quit();
}
} else {
const contextMenu = Menu.buildFromTemplate([
{
label: `${clientName} ` + app.getVersion(),
enabled: false
},
{
type: "separator"
},
{
label: `Open ${clientName}`,
click: function () {
mainWindow.show();
}
]);
tray.setContextMenu(contextMenu);
}
},
{
label: "Open Settings",
click: function () {
createSettingsWindow();
}
},
{
label: "Support Discord Server",
click: function () {
mainWindow.show();
mainWindow.loadURL("https://discord.gg/TnhxcqynZ2");
}
},
{
type: "separator"
},
{
label: `Quit ${clientName}`,
click: function () {
app.quit();
}
}
]);
tray.setContextMenu(contextMenu);
}
tray.setToolTip(clientName);
tray.on('click', function(){
mainWindow.show()
});
}
);
tray.setToolTip(clientName);
tray.on("click", function () {
mainWindow.show();
});
});

View file

@ -1,5 +1,5 @@
import * as fs from "fs";
import { app, dialog } from "electron";
import {app, dialog} from "electron";
import path from "path";
export var firstRun: boolean;
export var contentPath: string;
@ -39,8 +39,10 @@ export function setup() {
armcordCSP: true,
minimizeToTray: true,
automaticPatches: false,
alternativePaste: false,
mods: "cumcord",
performanceMode: "none",
skipSplash: false,
inviteWebsocket: true,
mobileMode: false,
trayIcon: "ac_plug_colored",
@ -51,9 +53,16 @@ export function setup() {
});
}
//Get the version value from the "package.json" file
export var packageVersion = require("../package.json").version;
export function getVersion() {
//I'm too lazy to replace every mf reference so :p
return app.getVersion();
//Checks if the app version # has 4 sections (3.1.0.0) instead of 3 (3.1.0) / Shitty way to check if Kernel Mod is installed
if ((app.getVersion() == packageVersion) == false) {
return `${packageVersion} [Kernel Mod]`;
} else {
return packageVersion;
}
}
export async function injectJS(inject: string) {
const js = await (await fetch(`${inject}`)).text();
@ -125,8 +134,8 @@ export async function getLang(object: string) {
let parsed = JSON.parse(rawdata);
language = parsed["lang"];
} catch (e) {
console.log("Language config file doesn't exist. Fallback to English.")
language = "en-US"
console.log("Language config file doesn't exist. Fallback to English.");
language = "en-US";
}
}
if (language.length == 2) {
@ -139,11 +148,11 @@ export async function getLang(object: string) {
let rawdata = fs.readFileSync(langPath, "utf-8");
let parsed = JSON.parse(rawdata);
if (parsed[object] == undefined) {
console.log(object + " is undefined in " + language)
console.log(object + " is undefined in " + language);
langPath = path.join(__dirname, "../", "/assets/lang/en-US.json");
rawdata = fs.readFileSync(langPath, "utf-8");
parsed = JSON.parse(rawdata);
return parsed[object]
return parsed[object];
} else {
return parsed[object];
}
@ -182,8 +191,10 @@ export interface Settings {
armcordCSP: boolean;
minimizeToTray: boolean;
automaticPatches: boolean;
alternativePaste: boolean;
mods: string;
mobileMode: boolean,
mobileMode: boolean;
skipSplash: boolean;
performanceMode: string;
inviteWebsocket: boolean;
trayIcon: string;

View file

@ -2,11 +2,11 @@
// I had to add most of the window creation code here to split both into seperete functions
// WHY? Because I can't use the same code for both due to annoying bug with value `frame` not responding to variables
// I'm sorry for this mess but I'm not sure how to fix it.
import { BrowserWindow, shell, app, dialog } from "electron";
import {BrowserWindow, shell, app, dialog} from "electron";
import path from "path";
import { checkIfConfigIsBroken, firstRun, getConfig, contentPath, setConfig, setLang, setWindowState } from "./utils";
import { registerIpc } from "./ipc";
import { setMenu } from "./menu";
import {checkIfConfigIsBroken, firstRun, getConfig, contentPath, setConfig, setLang, setWindowState} from "./utils";
import {registerIpc} from "./ipc";
import {setMenu} from "./menu";
import * as fs from "fs";
import startServer from "./socket";
import contextMenu from "electron-context-menu";
@ -14,7 +14,7 @@ import os from "os";
export var icon: string;
export let mainWindow: BrowserWindow;
export let inviteWindow: BrowserWindow;
var osType = os.type()
var osType = os.type();
contextMenu({
showSaveImageAs: true,
@ -27,16 +27,17 @@ async function doAfterDefiningTheWindow() {
checkIfConfigIsBroken();
registerIpc();
if (await getConfig("mobileMode")) {
mainWindow.webContents.userAgent = "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.149 Mobile Safari/537.36"
mainWindow.webContents.userAgent =
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.149 Mobile Safari/537.36";
} else {
// A little sloppy but it works :p
if (osType == 'Windows_NT') {
osType = "Windows " + os.release().split('.')[0] + " (" + os.release() + ")";
if (osType == "Windows_NT") {
osType = "Windows " + os.release().split(".")[0] + " (" + os.release() + ")";
}
mainWindow.webContents.userAgent = `Mozilla/5.0 (X11; ${osType} ${os.arch()}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36`; //fake useragent for screenshare to work
}
mainWindow.webContents.setWindowOpenHandler(({ url }) => {
mainWindow.webContents.setWindowOpenHandler(({url}) => {
if (url.startsWith("https:" || url.startsWith("http:") || url.startsWith("mailto:"))) {
shell.openExternal(url);
} else {
@ -54,7 +55,7 @@ async function doAfterDefiningTheWindow() {
checkboxChecked: false
};
dialog.showMessageBox(mainWindow, options).then(({ response, checkboxChecked }) => {
dialog.showMessageBox(mainWindow, options).then(({response, checkboxChecked}) => {
console.log(response, checkboxChecked);
if (checkboxChecked) {
if (response == 0) {
@ -71,10 +72,10 @@ async function doAfterDefiningTheWindow() {
});
}
}
return { action: "deny" };
return {action: "deny"};
});
mainWindow.webContents.session.webRequest.onBeforeRequest((details, callback) => {
if (/api\/v\d\/science$/g.test(details.url)) return callback({ cancel: true });
if (/api\/v\d\/science$/g.test(details.url)) return callback({cancel: true});
return callback({});
});
const userDataPath = app.getPath("userData");
@ -83,26 +84,29 @@ async function doAfterDefiningTheWindow() {
fs.mkdirSync(themesFolder);
console.log("Created missing theme folder");
}
mainWindow.webContents.on('did-finish-load', () => {
mainWindow.webContents.on("did-finish-load", () => {
fs.readdirSync(themesFolder).forEach((file) => {
try {
const manifest = fs.readFileSync(`${themesFolder}/${file}/manifest.json`, "utf8");
var themeFile = JSON.parse(manifest);
mainWindow.webContents.send("themeLoader", fs.readFileSync(`${themesFolder}/${file}/${themeFile.theme}`, "utf-8"))
mainWindow.webContents.send(
"themeLoader",
fs.readFileSync(`${themesFolder}/${file}/${themeFile.theme}`, "utf-8")
);
console.log(`%cLoaded ${themeFile.name} made by ${themeFile.author}`, "color:red");
} catch (err) {
console.error(err);
}
});
});
setMenu()
setMenu();
mainWindow.on("close", async (e) => {
let [width, height] = mainWindow.getSize()
let [width, height] = mainWindow.getSize();
setWindowState({
width: width,
height: height,
isMaximized: mainWindow.isMaximized()
})
});
if (await getConfig("minimizeToTray")) {
e.preventDefault();
mainWindow.hide();
@ -111,22 +115,52 @@ async function doAfterDefiningTheWindow() {
app.quit();
}
});
mainWindow.on('maximize', () => {
mainWindow.webContents.executeJavaScript(`document.body.setAttribute("isMaximized", "");`)
})
mainWindow.on('unmaximize', () => {
mainWindow.webContents.executeJavaScript(`document.body.removeAttribute("isMaximized");`)
})
mainWindow.on("focus", () => {
mainWindow.webContents.executeJavaScript(`document.body.removeAttribute("unFocused");`);
});
mainWindow.on("blur", () => {
mainWindow.webContents.executeJavaScript(`document.body.setAttribute("unFocused", "");`);
});
mainWindow.on("maximize", () => {
mainWindow.webContents.executeJavaScript(`document.body.setAttribute("isMaximized", "");`);
});
mainWindow.on("unmaximize", () => {
mainWindow.webContents.executeJavaScript(`document.body.removeAttribute("isMaximized");`);
});
console.log(contentPath);
if ((await getConfig("inviteWebsocket")) == true) {
await startServer();
}
if (firstRun) {
await setLang(Intl.DateTimeFormat().resolvedOptions().locale)
await setLang(Intl.DateTimeFormat().resolvedOptions().locale);
mainWindow.setSize(390, 470);
await mainWindow.loadFile(path.join(__dirname, "/content/setup.html"));
} else {
await mainWindow.loadFile(path.join(__dirname, "/content/splash.html"));
if ((await getConfig("skipSplash")) == true) {
switch (await getConfig("channel")) {
case "stable":
mainWindow.loadURL("https://discord.com/app");
break;
case "canary":
mainWindow.loadURL("https://canary.discord.com/app");
break;
case "ptb":
mainWindow.loadURL("https://ptb.discord.com/app");
break;
case "hummus":
mainWindow.loadURL("https://hummus.sys42.net/");
break;
case undefined:
mainWindow.loadURL("https://discord.com/app");
break;
default:
mainWindow.loadURL("https://discord.com/app");
}
} else {
await mainWindow.loadFile(path.join(__dirname, "/content/splash.html"));
}
}
}
export function createCustomWindow() {