diff --git a/assets/clsc-dsc-tray.png b/assets/clsc-dsc-tray.png new file mode 100644 index 0000000..a220ce0 Binary files /dev/null and b/assets/clsc-dsc-tray.png differ diff --git a/assets/dsc-tray.png b/assets/dsc-tray.png index 820ac08..0be7ec2 100644 Binary files a/assets/dsc-tray.png and b/assets/dsc-tray.png differ diff --git a/assets/lang/en-US.json b/assets/lang/en-US.json index 7dc1551..094cd29 100644 --- a/assets/lang/en-US.json +++ b/assets/lang/en-US.json @@ -53,5 +53,6 @@ "settings-storageFolder": "Open storage folder", "settings-none": "None", "settings-save": "Save Settings", + "settings-restart": "Restart App", "settings-updater": "Check for updates" } diff --git a/src/content/css/settings.css b/src/content/css/settings.css index 051c673..3d9428d 100644 --- a/src/content/css/settings.css +++ b/src/content/css/settings.css @@ -74,52 +74,56 @@ p { vertical-align: middle; border-radius: 10px; background: var(--background-floating); - border: 20px; + padding-left: 20px; + padding-right: 20px; border-color: var(--background-floating); border-style: solid; } .saveBar { position: fixed; bottom: 20px; + float: left; + left: 0; + font-weight: bold; + z-index: 999; + font-size: 10px; +} +.restartBar { + position: fixed; + bottom: 20px; + float: right; + right: 0; font-weight: bold; z-index: 999; font-size: 10px; } .saveBar > button { width: 90px; + transform: translateX(56%); +} +.restartBar > button { + width: 90px; + transform: translateX(50%); } .header { color: var(--header-primary); 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; + top: 15px; + margin: auto; } .description { position: relative; color: white; font-size: 1.2em; font-weight: lighter; - bottom: 40px; } .dropdown { position: relative; font-size: 25px; + margin-top: 20px; } .center { text-align: center; @@ -159,6 +163,9 @@ button:active { #save { font-size: 15px; } +.acAdvSettings { + height: 400px !important; +} .tgl { display: none; } @@ -170,6 +177,7 @@ button:active { .tgl *:before, .tgl + .tgl-btn { box-sizing: border-box; + margin-top: 20px; } .tgl::-moz-selection, .tgl:after::-moz-selection, @@ -238,6 +246,17 @@ button:active { .tgl-light:checked + .tgl-btn { background: var(--brand-experiment); } + +select optgroup { + color: #fff6; + font-weight: 200; + font-style: italic; +} +select option { + color: #fff; + font-weight: 400; + font-style: normal; +} select { -webkit-appearance: button; -moz-appearance: button; diff --git a/src/content/css/setup.css b/src/content/css/setup.css index 78f20b4..a32aaf7 100644 --- a/src/content/css/setup.css +++ b/src/content/css/setup.css @@ -90,7 +90,18 @@ body { } /* }}} */ -/* Logo {{{ */ +/* Titlebar {{{ */ +div { + margin: 0; + padding: 0; + border: 0; + display: block; + font-weight: inherit; + font-style: inherit; + font-family: inherit; + font-size: 100%; + vertical-align: baseline; +} #logo { display: flex; flex-direction: row; @@ -100,20 +111,25 @@ body { width: 292px; } -.titlebar #window-controls-container #maximize { + +[armcord-platform="win32"] .titlebar #window-controls-container #maximize, +[armcord-platform="linux"] .titlebar #window-controls-container #maximize { display: none; } -.titlebar #window-controls-container #spacer { +[armcord-platform="win32"] .titlebar #window-controls-container #spacer, +[armcord-platform="linux"] .titlebar #window-controls-container #spacer { float: left; height: 100%; width: 33%; } -[armcord-platform="darwin"] .titlebar #window-controls-container { - margin-left: -26px; +[armcord-platform="darwin"] .titlebar #window-controls-container #quit { + width: 18% !important; } -[armcord-platform="darwin"] .titlebar #window-controls-container #minimize { - transform: translateX(5px); +[armcord-platform="darwin"] .titlebar #window-controls-container #maximize, +[armcord-platform="darwin"] .titlebar #window-controls-container #maximize #maximize-icon { + background-color: #d6d6d5 !important; + pointer-events: none; } /* }}} */ diff --git a/src/content/css/titlebar.css b/src/content/css/titlebar.css index a0328ce..1efc2b2 100644 --- a/src/content/css/titlebar.css +++ b/src/content/css/titlebar.css @@ -260,10 +260,11 @@ [armcord-platform="darwin"][unFocused] .titlebar #window-controls-container #maximize, [armcord-platform="darwin"][unFocused] .titlebar #window-controls-container #quit { background-color: #d6d6d5 !important; + pointer-events: none; transition: background-color 0.1s ease-in; } -[armcord-platform="darwin"] .titlebar #window-controls-container #quit #quit-icon { +[armcord-platform="darwin"]:not([unFocused]) .titlebar #window-controls-container #quit #quit-icon { background-color: #79282b; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4yOTI4OSA2TDIuODE4MDEgMy41MjUxM0wzLjUyNTEyIDIuODE4MDJMNS45OTk5OSA1LjI5Mjg5TDguNDc0ODcgMi44MTgwMkw5LjE4MTk3IDMuNTI1MTNMNi43MDcxIDZMOS4xODE5NyA4LjQ3NDg3TDguNDc0ODcgOS4xODE5OEw1Ljk5OTk5IDYuNzA3MTFMMy41MjUxMiA5LjE4MTk4TDIuODE4MDEgOC40NzQ4N0w1LjI5Mjg5IDZaIiBmaWxsPSJyZ2JhKDEyOCwgNiwgMCwgMSkiLz48L3N2Zz4=") no-repeat 50% 50%; @@ -271,7 +272,7 @@ no-repeat 50% 50%; transform: translate(-0.3px, -11.7px); } -[armcord-platform="darwin"] .titlebar #window-controls-container #minimize #minimize-icon { +[armcord-platform="darwin"]:not([unFocused]) .titlebar #window-controls-container #minimize #minimize-icon { background-color: #7d631b; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAgNS4zOTk5OUgyVjYuNTk5OTlIMTBWNS4zOTk5OVoiIGZpbGw9IiM5ODY4MDEiLz48L3N2Zz4=") no-repeat 50% 50%; @@ -279,7 +280,7 @@ no-repeat 50% 50%; transform: translate(-0px, -11.7px); } -[armcord-platform="darwin"] .titlebar #window-controls-container #maximize #maximize-icon { +[armcord-platform="darwin"]:not([unFocused]) .titlebar #window-controls-container #maximize #maximize-icon { background-color: #1d7525; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC41ODgyMyA2Ljk5MDE1TDUuMDA5NzkgMy40MTE3QzQuODU1ODMgMy4yNTc3NCA0Ljk1ODYgMi45OTQyMiA1LjE3NjE0IDIuOTg1MTRMOC45MTA0MiAyLjgyOTMxQzkuMDU2NTggMi44MjMyMSA5LjE3NjczIDIuOTQzMzUgOS4xNzA2MyAzLjA4OTUyTDkuMDE0NzkgNi44MjM4QzkuMDA1NzEgNy4wNDEzNCA4Ljc0MjE5IDcuMTQ0MTEgOC41ODgyMyA2Ljk5MDE1WiIgZmlsbD0iIzEyNUUxRSIvPjxwYXRoIGQ9Ik0zLjQxMTc3IDUuMDA5ODJMNi45OTAyMSA4LjU4ODI3QzcuMTQ0MTcgOC43NDIyMyA3LjA0MTQgOS4wMDU3NSA2LjgyMzg2IDkuMDE0ODNMMy4wODk1OCA5LjE3MDY2QzIuOTQzNDIgOS4xNzY3NiAyLjgyMzI3IDkuMDU2NjEgMi44MjkzNyA4LjkxMDQ1TDIuOTg1MjEgNS4xNzYxN0MyLjk5NDI5IDQuOTU4NjMgMy4yNTc4MSA0Ljg1NTg2IDMuNDExNzcgNS4wMDk4MloiIGZpbGw9IiMxMjVFMUUiLz48L3N2Zz4=") no-repeat 50% 50%; diff --git a/src/content/favicon.ico b/src/content/favicon.ico new file mode 100644 index 0000000..997fd77 Binary files /dev/null and b/src/content/favicon.ico differ diff --git a/src/content/setup.html b/src/content/setup.html index 14e11de..f20030a 100644 --- a/src/content/setup.html +++ b/src/content/setup.html @@ -2,6 +2,7 @@ + ArmCord Setup diff --git a/src/content/splash.html b/src/content/splash.html index 4f9ce70..728417a 100644 --- a/src/content/splash.html +++ b/src/content/splash.html @@ -2,6 +2,7 @@ + ArmCord @@ -15,6 +11,9 @@
+
+ +
-

+

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.


- + -

+

When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax in your system tray for later.


- + -

+

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.


- + -

+

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. @@ -100,10 +99,10 @@


- + -

+

Client mod for Hummus that focuses on making the plugin development experience easier. Minimal, light, and easy to use

@@ -124,13 +123,18 @@

Tray icon:

Set the icon which will appear in tray menu.

@@ -139,6 +143,13 @@

⚠️ Advanced User Zone ⚠️

+
+
+ + + +

Skips ArmCord splash screen when you start up the app.

+

@@ -182,27 +193,27 @@ document.getElementById("trayIcon").value = await settings.get("trayIcon"); } loadSettings(); - document.getElementById("settings-save").addEventListener("click", async function () { - var cordwood; - if (document.getElementById("cordwood").checked) { - cordwood = true; - } else { - cordwood = false; - } + 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, + skipSplash: document.getElementById("skipSplash").checked, automaticPatches: document.getElementById("patches").checked, mods: cordwood, - mobileMode: await settings.get("mobileMode"), - inviteWebsocket: await settings.get("inviteWebsocket"), + mobileMode: document.getElementById("mobile").checked, + inviteWebsocket: document.getElementById("websocket").checked, performanceMode: document.getElementById("prfmMode").value, trayIcon: document.getElementById("trayIcon").value, doneSetup: true }); + alert(`Your settings have been saved! +Some changes may require the app to restart before taking effect.`) + }); + document.getElementById("settings-restart").addEventListener("click", function () { + settings.restart(); }); document.getElementById("settings-pluginsFolder").addEventListener("click", async function () { settings.openPluginsFolder(); diff --git a/src/settings/main.ts b/src/settings/main.ts index 93405a5..d2d8f42 100644 --- a/src/settings/main.ts +++ b/src/settings/main.ts @@ -1,5 +1,15 @@ import {BrowserWindow, shell, ipcMain, app, clipboard} from "electron"; -import {getConfig, setConfigBulk, Settings, getLang, getVersion, getConfigLocation, getLangName, sleep} from "../utils"; +import { + getConfig, + setConfigBulk, + Settings, + getLang, + getVersion, + getConfigLocation, + getLangName, + sleep, + getDisplayVersion +} from "../utils"; import path from "path"; import os from "os"; import fs from "fs"; @@ -22,7 +32,7 @@ export function createSettingsWindow() { settingsWindow = new BrowserWindow({ width: 660, height: 670, - title: "ArmCord Settings", + title: `ArmCord Settings | Version: ${getDisplayVersion()}`, darkTheme: true, frame: true, autoHideMenuBar: true, diff --git a/src/settings/preload.ts b/src/settings/preload.ts index f7958d2..89b5117 100644 --- a/src/settings/preload.ts +++ b/src/settings/preload.ts @@ -6,6 +6,8 @@ console.log("ArmCord Settings"); contextBridge.exposeInMainWorld("settings", { save: (...args: any) => ipcRenderer.send("saveSettings", ...args), + restart: () => ipcRenderer.send("restart"), + saveAlert: (restartFunc: any) => ipcRenderer.send("saveAlert", restartFunc), getLang: (toGet: string) => ipcRenderer.invoke("getLang", toGet).then((result) => { return result; @@ -19,13 +21,6 @@ contextBridge.exposeInMainWorld("settings", { openStorageFolder: () => ipcRenderer.send("openStorageFolder"), copyDebugInfo: () => ipcRenderer.send("copyDebugInfo") }); -if (ipcRenderer.sendSync("getLangName") == "en-US") { - console.log("[Settings]: Lang " + ipcRenderer.sendSync("getLangName")); - const cssPath = path.join(__dirname, "../", "/content/css/settingsEng.css"); - document.addEventListener("DOMContentLoaded", function (event) { - addStyle(fs.readFileSync(cssPath, "utf8")); - }); -} ipcRenderer.on("themeLoader", (event, message) => { addStyle(message); }); diff --git a/src/settings/settings.html b/src/settings/settings.html index bc8afd9..7727e25 100644 --- a/src/settings/settings.html +++ b/src/settings/settings.html @@ -2,12 +2,8 @@ - ArmCord Settings @@ -15,6 +11,9 @@
+
+ +
-

+

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.


- + -

+

When disabled, ArmCord will close like any other window when closed, otherwise it'll sit back and relax in your system tray for later.


- + -

+

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.


- + -

+

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.


- + -

+

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. @@ -84,10 +83,10 @@


- + -

+

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. @@ -99,7 +98,7 @@ - +

Discord channel

@@ -159,13 +158,18 @@

Tray icon

Set the icon which will appear in tray menu.

@@ -174,11 +178,12 @@

⚠️ Advanced User Zone ⚠️

-
- +
+
+ -

Skips ArmCord splash screen when you start up the app.

+

Skips ArmCord splash screen when you start up the app.



@@ -191,6 +196,7 @@