Compare commits
1 commit
2956d8b8a9
...
0642bd01a8
Author | SHA1 | Date | |
---|---|---|---|
|
0642bd01a8 |
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="https://armcord.vercel.app/logo.png" width="520">
|
<img src="https://armcord.vercel.app/armcord_full_logo.png" width="520">
|
||||||
<br>ArmCord is a custom client designed to enhance your Discord experience while keeping everything lightweight.
|
<br>ArmCord is a custom client designed to enhance your Discord experience while keeping everything lightweight.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 10 KiB |
BIN
assets/ac_white_plug_filled.png
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 10 KiB |
|
@ -1,30 +1,30 @@
|
||||||
{
|
{
|
||||||
"loading_screen_start": "Starting ArmCord…",
|
"loading_screen_start": "Starting ArmCord…",
|
||||||
"loading_screen_offline": "You appear to be offline. Please connect to the Internet and try again.",
|
"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.",
|
"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": "Select what kind of setup you want to perform:",
|
||||||
"setup_question1_answer1": "Express Setup",
|
"setup_question1_answer1": "Express setup",
|
||||||
"setup_question1_answer2": "Full Setup",
|
"setup_question1_answer2": "Full setup",
|
||||||
"setup_offline": "You appear to be offline. Please connect to the internet and restart ArmCord.",
|
"setup_offline": "You appear to be offline. Please connect to the Internet and restart the ArmCord setup.",
|
||||||
"setup_question2": "Choose your Discord channel/instance:",
|
"setup_question2": "Choose your Discord channel/instance:",
|
||||||
"setup_question3": "Should ArmCord handle client mods installation?",
|
"setup_question3": "Should ArmCord handle client mods installation?",
|
||||||
"yes": "Yes",
|
"yes": "Yes",
|
||||||
"no": "No",
|
"no": "No",
|
||||||
"next": "Next",
|
"next": "Next",
|
||||||
"setup_question4": "Select a client mod you want to install:",
|
"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.",
|
"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-default": "Default",
|
"settings-theme-default": "Default",
|
||||||
"settings-theme-native": "Native",
|
"settings-theme-native": "Native",
|
||||||
"settings-tray": "Minimize to tray",
|
"settings-tray": "Minimize to tray",
|
||||||
"settings-patches": "Automatic Patches",
|
"settings-patches": "Automatic Patches",
|
||||||
"settings-channel": "Discord channel:",
|
"settings-channel": "Discord channel:",
|
||||||
"settings-invitewebsocket": "Invite Websocket",
|
"settings-invitewebsocket": "Invite Websocket",
|
||||||
"settings-mod": "Client mod:",
|
"settings-mod": "Client mod:",
|
||||||
"settings-prfmMode": "Performance mode:",
|
"settings-prfmMode": "Performance mode:",
|
||||||
"settings-prfmMode-performance": "Performance",
|
"settings-prfmMode-performance": "Performance",
|
||||||
"settings-prfmMode-battery": "Battery",
|
"settings-prfmMode-battery": "Battery",
|
||||||
"settings-none": "None",
|
"settings-none": "None",
|
||||||
"settings-save": "Save settings",
|
"settings-save": "Save settings",
|
||||||
"settings-updater": "Check for updates"
|
"settings-updater": "Check for updates"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +1,30 @@
|
||||||
{
|
{
|
||||||
"loading_screen_start": "درحال پیاده سازی ArmCord…",
|
"loading_screen_start": "Starting ArmCord…",
|
||||||
"loading_screen_offline": "به نظر میرسد شما آفلاین هستید. لطفا به اینترنت متصل شده و سپس دوباره تلاش کنید.",
|
"loading_screen_offline": "You appear to be offline. Please connect to the Internet and try again.",
|
||||||
"loading_screen_update": "نسخه جدید ArmCord در دسترس است. لطفا به آخرین نسخه بروزرسانی کنید.",
|
"loading_screen_update": "A new version of ArmCord is available. Please update to the latest version.",
|
||||||
"setup_question1": "انتخاب کنید که چگونه میخواهید نصب کنید:",
|
"setup_question1": "Select what kind of setup you want to perform:",
|
||||||
"setup_question1_answer1": "راهاندازی سریع",
|
"setup_question1_answer1": "Express setup",
|
||||||
"setup_question1_answer2": "راهاندازی کامل",
|
"setup_question1_answer2": "Full setup",
|
||||||
"setup_offline": "به نظر میرسد شما آفلاین هستید. لطفا به اینترنت وصل شده و سپس نصب ArmCord را از ابتدا شروع کنید.",
|
"setup_offline": "You appear to be offline. Please connect to the Internet and restart the ArmCord setup.",
|
||||||
"setup_question2": "نوع دیسکورد را انتخاب کنید:",
|
"setup_question2": "Choose your Discord channel/instance:",
|
||||||
"setup_question3": "آیا میخواهید ArmCord تغییرات کلاینت را خودکار اعمال کند؟",
|
"setup_question3": "Should ArmCord handle client mods installation?",
|
||||||
"yes": "بله",
|
"yes": "Yes",
|
||||||
"no": "خیر",
|
"no": "No",
|
||||||
"next": "بعدی",
|
"next": "Next",
|
||||||
"setup_question4": "نوع اصلاحساز برنامه که میخواهید نصب کنید انتخاب کنید:",
|
"setup_question4": "Select a client mod you want to install:",
|
||||||
"setup_question4_clientmodnotice": "چرا همه نه؟ داشتن اصلاحسازهای زیاد به صورت همزمان میتواند خرابی به بار آورد. اگر واقعا میخواهید انجامش دهید، به دیسکورد ما سر بزنید.",
|
"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:",
|
"settings-theme": "ArmCord theme:",
|
||||||
"settings-theme-default": "پیشفرض",
|
"settings-theme-default": "Default",
|
||||||
"settings-theme-native": "محلی",
|
"settings-theme-native": "Native",
|
||||||
"settings-tray": "مینیماز در نوارابزار کوچک",
|
"settings-tray": "Minimize to tray",
|
||||||
"settings-patches": "اعمال تغییرات به صورت خودکار",
|
"settings-patches": "Automatic Patches",
|
||||||
"settings-channel": "نوع دیسکورد:",
|
"settings-channel": "Discord channel:",
|
||||||
"settings-invitewebsocket": "وب سوکت دعوت",
|
"settings-invitewebsocket": "Invite Websocket",
|
||||||
"settings-mod": "نوع اصلاحساز کلاینت:",
|
"settings-mod": "Client mod:",
|
||||||
"settings-prfmMode": "حالت عملکرد:",
|
"settings-prfmMode": "Performance mode:",
|
||||||
"settings-prfmMode-performance": "قدرت بیشتر",
|
"settings-prfmMode-performance": "Performance",
|
||||||
"settings-prfmMode-battery": "ذخیره برای باتری",
|
"settings-prfmMode-battery": "Battery",
|
||||||
"settings-none": "هیچکدام",
|
"settings-none": "None",
|
||||||
"settings-save": "ذخیره تنظیمات",
|
"settings-save": "Save settings",
|
||||||
"settings-updater": "بررسی برای بروزرسانی"
|
"settings-updater": "Check for updates"
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,15 +13,15 @@
|
||||||
"setup_question4_clientmodnotice": "Pourquoi pas tous ? Le fait d'avoir plusieurs clients mods en même temps peut causer des problèmes. Si vous voulez vraiment le faire, consultez notre Discord.",
|
"setup_question4_clientmodnotice": "Pourquoi pas tous ? Le fait d'avoir plusieurs clients mods en même temps peut causer des problèmes. Si vous voulez vraiment le faire, consultez notre Discord.",
|
||||||
"loading_screen_offline": "Vous semblez être hors ligne. Veuillez vous connecter à internet et réessayer.",
|
"loading_screen_offline": "Vous semblez être hors ligne. Veuillez vous connecter à internet et réessayer.",
|
||||||
"setup_offline": "Vous semblez être hors ligne. Veuillez vous connecter à internet et redémarrer l'installateur ArmCord.",
|
"setup_offline": "Vous semblez être hors ligne. Veuillez vous connecter à internet et redémarrer l'installateur ArmCord.",
|
||||||
"settings-tray": "Minimiser dans la zone de notification",
|
"settings-tray": "Minimize to tray",
|
||||||
"settings-channel": "Canaux Discord :",
|
"settings-channel": "Discord channel:",
|
||||||
"settings-mod": "Modification client :",
|
"settings-mod": "Client mod:",
|
||||||
"settings-save": "Sauvegarder les paramètres",
|
"settings-save": "Save settings",
|
||||||
"settings-updater": "Vérifier les mises à jour",
|
"settings-updater": "Check for updates",
|
||||||
"settings-theme": "Thème ArmCord :",
|
"settings-theme": "Thème ArmCord :",
|
||||||
"settings-theme-default": "Default",
|
"settings-theme-default": "Default",
|
||||||
"settings-theme-native": "Native",
|
"settings-theme-native": "Native",
|
||||||
"settings-patches": "Correctifs automatiques",
|
"settings-patches": "Automatic Patches",
|
||||||
"settings-invitewebsocket": "Lien discord.gg",
|
"settings-invitewebsocket": "Lien discord.gg",
|
||||||
"settings-prfmMode": "Mode performance :",
|
"settings-prfmMode": "Mode performance :",
|
||||||
"settings-prfmMode-performance": "Performance",
|
"settings-prfmMode-performance": "Performance",
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"setup_question1": "เลือกประเภทการติดตั้งที่คุณต้องการ:",
|
"setup_question1": "เลือกประเภทการติดตั้งที่คุณต้องการ:",
|
||||||
"setup_question1_answer1": "ติดตั้งแบบรวดเร็ว",
|
"setup_question1_answer1": "ติดตั้งแบบรวดเร็ว",
|
||||||
"setup_question1_answer2": "ติดตั้งเต็มรูปแบบ",
|
"setup_question1_answer2": "ติดตั้งเต็มรูปแบบ",
|
||||||
"setup_offline": "ดูเหมือนว่าคุณออฟไลน์อยู่ โปรดเชื่อมต่ออินเทอร์เน็ตและลองเริ่ม ArmCord ใหม่อีกครั้ง",
|
"setup_offline": "ดูเหมือนว่าคุณออฟไลน์อยู่ โปรดเชื่อมต่ออินเทอร์เน็ตและลองใหม่อีกครั้ง",
|
||||||
"setup_question2": "เลือกช่อง/อินสแตนส์ Discord:",
|
"setup_question2": "เลือกช่อง/อินสแตนส์ Discord:",
|
||||||
"setup_question3": "ต้องการให้ ArmCord จัดการการติดตั้งมอดของไคลเอนต์หรือไม่?",
|
"setup_question3": "ต้องการให้ ArmCord จัดการการติดตั้งมอดของไคลเอนต์หรือไม่?",
|
||||||
"yes": "ใช่",
|
"yes": "ใช่",
|
||||||
|
|
BIN
build/icon.icns
BIN
build/icon.ico
Before Width: | Height: | Size: 66 KiB |
|
@ -26,7 +26,7 @@
|
||||||
"@types/node": "^17.0.42",
|
"@types/node": "^17.0.42",
|
||||||
"@types/ws": "^8.5.3",
|
"@types/ws": "^8.5.3",
|
||||||
"copyfiles": "^2.4.1",
|
"copyfiles": "^2.4.1",
|
||||||
"electron": "^19.0.7",
|
"electron": "^19.0.4",
|
||||||
"electron-builder": "^23.1.0",
|
"electron-builder": "^23.1.0",
|
||||||
"husky": "^8.0.1",
|
"husky": "^8.0.1",
|
||||||
"prettier": "^2.7.0",
|
"prettier": "^2.7.0",
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
"linux": {
|
"linux": {
|
||||||
"icon": "build/icon.icns",
|
"icon": "build/icon.icns",
|
||||||
"category": "Network",
|
"category": "Network",
|
||||||
"maintainer": "smartfridge@vivaldi.net",
|
"maintainer": "smartfrigde@gmail.com",
|
||||||
"target": [
|
"target": [
|
||||||
"deb",
|
"deb",
|
||||||
"tar.gz",
|
"tar.gz",
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
.notice-2HEN-u {
|
.notice-2HEN-u {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
[customTitlebar] .sidebar-1tnWFu {
|
.sidebar-1tnWFu {
|
||||||
border-top-left-radius: 8px;
|
border-top-left-radius: 8px;
|
||||||
}
|
}
|
||||||
[customTitlebar] .scroller-3X7KbA {
|
.scroller-3X7KbA {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
padding-top: 4px;
|
padding-top: 4px;
|
||||||
}
|
}
|
||||||
* {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
[class^="socialLinks-"] + [class^="info-"] {
|
[class^="socialLinks-"] + [class^="info-"] {
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*MIT License
|
/*MIT License
|
||||||
|
|
||||||
Copyright (c) 2022 GooseMod
|
Copyright (c) 2021 GooseMod
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -20,18 +20,11 @@ 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
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.*/
|
SOFTWARE.*/
|
||||||
:root {
|
:root {
|
||||||
--background-secondary: #2f3136;
|
--background-primary: #282b30;
|
||||||
--background-secondary-alt: #292b2f;
|
--background-secondary: rgba(255, 255, 255, 0.1);
|
||||||
--background-floating: #18191c;
|
--brand-experiment: #5865f2;
|
||||||
--background-modifier-hover: rgba(106, 116, 128, 0.16);
|
|
||||||
--brand-experiment: #7289da;
|
|
||||||
--brand-experiment-560: #5c6fb1;
|
|
||||||
--brand-experiment-600: #4e5d94;
|
|
||||||
--interactive-normal: #b9bbbe;
|
|
||||||
--interactive-hover: #dcddde;
|
|
||||||
--text-muted: #72767d;
|
|
||||||
--font-primary: "Whitney";
|
|
||||||
--header-primary: #fff;
|
--header-primary: #fff;
|
||||||
|
--text-muted: #72767d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
|
@ -43,19 +36,12 @@ SOFTWARE.*/
|
||||||
|
|
||||||
html,
|
html,
|
||||||
body {
|
body {
|
||||||
overflow-x: hidden;
|
overflow: hidden;
|
||||||
overflow-y: scroll;
|
|
||||||
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 2%;
|
margin: 2%;
|
||||||
background: var(--background-secondary);
|
background: var(--background-primary);
|
||||||
}
|
|
||||||
body::-webkit-scrollbar {
|
|
||||||
width: 0.4em;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
body::-webkit-scrollbar-thumb {
|
|
||||||
background: var(--background-floating);
|
|
||||||
border-radius: 25px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
|
@ -72,39 +58,31 @@ body::-webkit-scrollbar-thumb {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
color: var(--header-primary);
|
color: white;
|
||||||
font-size: 1.46em;
|
font-size: 1.5em;
|
||||||
}
|
}
|
||||||
.center {
|
.center {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
left: 50%;
|
|
||||||
margin-right: 50%;
|
|
||||||
transform: translateX(50%);
|
|
||||||
float: right;
|
|
||||||
}
|
}
|
||||||
/*buttons*/
|
/*buttons*/
|
||||||
button {
|
button {
|
||||||
background: var(--brand-experiment);
|
background-color: #7289da;
|
||||||
color: var(--header-primary);
|
font-family: Whitney, "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
outline: none;
|
color: #ffffff;
|
||||||
border: none;
|
padding: 4px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 8px;
|
margin-top: 5px;
|
||||||
transition: 0.17s ease;
|
|
||||||
}
|
text-align: center;
|
||||||
button:hover {
|
border-style: none;
|
||||||
background: var(--brand-experiment-560);
|
outline: none;
|
||||||
cursor: pointer;
|
|
||||||
transition: 0.17s ease;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button:active {
|
button:hover {
|
||||||
background: var(--brand-experiment-600);
|
background-color: #687dc6;
|
||||||
|
border-style: none;
|
||||||
|
outline: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: 0.17s ease;
|
|
||||||
}
|
|
||||||
#save {
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
}
|
||||||
.tgl {
|
.tgl {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -157,47 +135,42 @@ button:active {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.tgl + .tgl-btn:after {
|
.tgl + .tgl-btn:after {
|
||||||
left: 1px;
|
left: 0;
|
||||||
}
|
}
|
||||||
.tgl + .tgl-btn:before {
|
.tgl + .tgl-btn:before {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.tgl:checked + .tgl-btn:after {
|
.tgl:checked + .tgl-btn:after {
|
||||||
left: 56%;
|
left: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tgl-light + .tgl-btn {
|
.tgl-light + .tgl-btn {
|
||||||
background: var(--text-muted);
|
background: #5c5757;
|
||||||
border-radius: 25px;
|
border-radius: 2em;
|
||||||
padding: 4px;
|
padding: 2px;
|
||||||
transition: all 0.4s ease;
|
transition: all 0.4s ease;
|
||||||
}
|
}
|
||||||
.tgl-light + .tgl-btn:after {
|
.tgl-light + .tgl-btn:after {
|
||||||
border-radius: 50px;
|
border-radius: 50%;
|
||||||
position: relative;
|
|
||||||
top: 50%;
|
|
||||||
transform: translateY(-50%);
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
background: rgb(255, 255, 255);
|
background: rgb(255, 255, 255);
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
}
|
}
|
||||||
.tgl-light:checked + .tgl-btn {
|
.tgl-light:checked + .tgl-btn {
|
||||||
background: var(--brand-experiment);
|
background: #47ca5a;
|
||||||
}
|
}
|
||||||
select {
|
select {
|
||||||
-webkit-appearance: button;
|
-webkit-appearance: button;
|
||||||
-moz-appearance: button;
|
-moz-appearance: button;
|
||||||
background-color: var(--background-secondary-alt);
|
background-color: #2c2f33;
|
||||||
background-position: center right;
|
background-position: center right;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
border: 1px solid var(--background-floating);
|
border: 1px solid #aaa;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
outline: none !important;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
|
@import url("https://armcord.smartfridge.space/logofont.css");
|
||||||
|
|
||||||
/* Meta {{{ */
|
/* Meta {{{ */
|
||||||
:root {
|
:root {
|
||||||
--background-primary: #282b30;
|
--background-primary: #282b30;
|
||||||
--background-secondary: rgba(255, 255, 255, 0.1);
|
--background-secondary: rgba(255, 255, 255, 0.1);
|
||||||
--background-modifier-hover: rgba(106, 116, 128, 0.16);
|
--background-modifier-hover: rgba(106, 116, 128, 0.16);
|
||||||
--brand-experiment: #7289da;
|
--brand-experiment: #7289da;
|
||||||
--brand-experiment-560: #5c6fb1;
|
|
||||||
--brand-experiment-600: #4e5d94;
|
|
||||||
--interactive-normal: #b9bbbe;
|
--interactive-normal: #b9bbbe;
|
||||||
--interactive-hover: #dcddde;
|
--interactive-hover: #dcddde;
|
||||||
--text-muted: #72767d;
|
--text-muted: #72767d;
|
||||||
|
@ -109,12 +109,7 @@ body {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 33%;
|
width: 33%;
|
||||||
}
|
}
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container {
|
|
||||||
margin-left: -26px;
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #minimize {
|
|
||||||
transform: translateX(5px);
|
|
||||||
}
|
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
/* Buttons {{{ */
|
/* Buttons {{{ */
|
||||||
|
@ -135,18 +130,10 @@ button {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 8px 20px;
|
padding: 8px 20px;
|
||||||
transition: 0.17s ease;
|
|
||||||
}
|
}
|
||||||
button:hover {
|
button:hover {
|
||||||
background: var(--brand-experiment-560);
|
filter: brightness(85%);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: 0.17s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:active {
|
|
||||||
background: var(--brand-experiment-600);
|
|
||||||
cursor: pointer;
|
|
||||||
transition: 0.17s ease;
|
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
@ -170,9 +157,5 @@ select {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
option {
|
|
||||||
text-align: left;
|
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*MIT License
|
/*MIT License
|
||||||
|
|
||||||
Copyright (c) 2022 GooseMod
|
Copyright (c) 2021 GooseMod
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -22,7 +22,7 @@ SOFTWARE.*/
|
||||||
:root {
|
:root {
|
||||||
--background-primary: #282b30;
|
--background-primary: #282b30;
|
||||||
--background-secondary: rgba(255, 255, 255, 0.1);
|
--background-secondary: rgba(255, 255, 255, 0.1);
|
||||||
--brand-experiment: #7289da;
|
--brand-experiment: #5865f2;
|
||||||
--header-primary: #fff;
|
--header-primary: #fff;
|
||||||
--text-muted: #72767d;
|
--text-muted: #72767d;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,105 +47,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ArmCord on Linux */
|
/* ArmCord on Linux */
|
||||||
[armcord-platform="linux"] .container-2RRFHK {
|
|
||||||
padding-top: 45px;
|
|
||||||
top: -45px;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar {
|
|
||||||
height: 45px;
|
|
||||||
line-height: 45px;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container {
|
|
||||||
line-height: 45px;
|
|
||||||
transform: translateY(-8px);
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #minimize:hover {
|
[armcord-platform="linux"] .titlebar #window-controls-container #minimize:hover {
|
||||||
background-color: var(--background-modifier-hover);
|
background-color: #99aab5;
|
||||||
transition: 0.2s ease;
|
|
||||||
}
|
}
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #maximize:hover {
|
[armcord-platform="linux"] .titlebar #window-controls-container #maximize:hover {
|
||||||
background-color: var(--background-modifier-hover);
|
background-color: #99aab5;
|
||||||
transition: 0.2s ease;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #minimize:hover #minimize-icon {
|
|
||||||
background-color: var(--interactive-hover);
|
|
||||||
transition: 0.2s ease;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #maximize:hover #maximize-icon {
|
|
||||||
background-color: var(--interactive-hover);
|
|
||||||
transition: 0.2s ease;
|
|
||||||
}
|
}
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #quit:hover {
|
[armcord-platform="linux"] .titlebar #window-controls-container #quit:hover {
|
||||||
background-color: var(--brand-experiment-560);
|
background-color: #f04747;
|
||||||
transition: 0.2s ease;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #quit #quit-icon {
|
|
||||||
background-color: #ffffff;
|
|
||||||
display: list-item;
|
|
||||||
transition: 0.1s ease;
|
|
||||||
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #minimize-icon {
|
|
||||||
background-color: var(--interactive-normal);
|
|
||||||
display: list-item;
|
|
||||||
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #maximize-icon {
|
|
||||||
background-color: var(--interactive-normal);
|
|
||||||
display: list-item;
|
|
||||||
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
[armcord-platform="linux"][isMaximized] .titlebar #window-controls-container #maximize-icon {
|
|
||||||
background-color: var(--interactive-normal);
|
|
||||||
display: list-item;
|
|
||||||
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='9' height='9'%3E%3Cstyle%3E%3C/style%3E%3Cpath fill-rule='evenodd' d='m6 0h24v24h-6v6h-24v-24h6zm3 6h15v15h3v-18h-18zm-6 21h18v-18h-18z'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='9' height='9'%3E%3Cstyle%3E%3C/style%3E%3Cpath fill-rule='evenodd' d='m6 0h24v24h-6v6h-24v-24h6zm3 6h15v15h3v-18h-18zm-6 21h18v-18h-18z'/%3E%3C/svg%3E")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #minimize {
|
|
||||||
background-color: transparent;
|
|
||||||
transition: 0.1s ease;
|
|
||||||
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='25' height='25'%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%;
|
|
||||||
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='25' height='25'%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%;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #maximize {
|
|
||||||
background-color: transparent;
|
|
||||||
transition: 0.1s ease;
|
|
||||||
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='25' height='25'%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%;
|
|
||||||
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='25' height='25'%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%;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #quit {
|
|
||||||
background-color: var(--brand-experiment);
|
|
||||||
transition: 0.1s ease;
|
|
||||||
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='25' height='25'%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%;
|
|
||||||
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='25' height='25'%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%;
|
|
||||||
}
|
|
||||||
[armcord-platform="linux"] .titlebar #window-controls-container #quit:active {
|
|
||||||
background-color: var(--brand-experiment-600);
|
|
||||||
transition: 0.1s ease;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ArmCord on Windows */
|
/* ArmCord on Windows */
|
||||||
[armcord-platform="win32"] .titlebar #window-controls-container {
|
|
||||||
width: 142px;
|
|
||||||
}
|
|
||||||
[armcord-platform="win32"] .titlebar #window-controls-container #minimize:hover {
|
[armcord-platform="win32"] .titlebar #window-controls-container #minimize:hover {
|
||||||
background-color: var(--background-modifier-hover);
|
background-color: var(--background-modifier-hover);
|
||||||
transition: 0.2s ease;
|
transition: 0.2s ease;
|
||||||
|
@ -190,7 +102,8 @@
|
||||||
background-color: #000000cc;
|
background-color: #000000cc;
|
||||||
transition: 0.1s ease;
|
transition: 0.1s ease;
|
||||||
}
|
}
|
||||||
[armcord-platform="win32"] .titlebar #window-controls-container #quit-icon {
|
|
||||||
|
.titlebar #window-controls-container #quit-icon {
|
||||||
background-color: var(--interactive-normal);
|
background-color: var(--interactive-normal);
|
||||||
display: list-item;
|
display: list-item;
|
||||||
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E")
|
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E")
|
||||||
|
@ -198,7 +111,7 @@
|
||||||
mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E")
|
mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E")
|
||||||
no-repeat 50% 50%;
|
no-repeat 50% 50%;
|
||||||
}
|
}
|
||||||
[armcord-platform="win32"] .titlebar #window-controls-container #minimize-icon {
|
.titlebar #window-controls-container #minimize-icon {
|
||||||
background-color: var(--interactive-normal);
|
background-color: var(--interactive-normal);
|
||||||
display: list-item;
|
display: list-item;
|
||||||
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E")
|
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E")
|
||||||
|
@ -206,7 +119,7 @@
|
||||||
mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E")
|
mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E")
|
||||||
no-repeat 50% 50%;
|
no-repeat 50% 50%;
|
||||||
}
|
}
|
||||||
[armcord-platform="win32"] .titlebar #window-controls-container #maximize-icon {
|
.titlebar #window-controls-container #maximize-icon {
|
||||||
background-color: var(--interactive-normal);
|
background-color: var(--interactive-normal);
|
||||||
display: list-item;
|
display: list-item;
|
||||||
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E")
|
-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E")
|
||||||
|
@ -215,7 +128,7 @@
|
||||||
no-repeat 50% 50%;
|
no-repeat 50% 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
[armcord-platform="win32"][isMaximized] .titlebar #window-controls-container #maximize-icon {
|
[isMaximized] .titlebar #window-controls-container #maximize-icon {
|
||||||
background-color: var(--interactive-normal);
|
background-color: var(--interactive-normal);
|
||||||
display: list-item;
|
display: list-item;
|
||||||
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='11' height='11'%3E%3Cstyle%3E%3C/style%3E%3Cpath fill-rule='evenodd' d='m6 0h24v24h-6v6h-24v-24h6zm3 6h15v15h3v-18h-18zm-6 21h18v-18h-18z'/%3E%3C/svg%3E")
|
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='11' height='11'%3E%3Cstyle%3E%3C/style%3E%3Cpath fill-rule='evenodd' d='m6 0h24v24h-6v6h-24v-24h6zm3 6h15v15h3v-18h-18zm-6 21h18v-18h-18z'/%3E%3C/svg%3E")
|
||||||
|
@ -224,124 +137,7 @@
|
||||||
no-repeat 50% 50%;
|
no-repeat 50% 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ArmCord on MacOS (Why would you do this?) */
|
.window-title {
|
||||||
[armcord-platform="darwin"] .container-2RRFHK {
|
|
||||||
padding-top: 45px;
|
|
||||||
top: -45px;
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar {
|
|
||||||
height: 45px;
|
|
||||||
line-height: 45px;
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container {
|
|
||||||
float: left;
|
|
||||||
width: 150px;
|
|
||||||
height: 60%;
|
|
||||||
line-height: 45px;
|
|
||||||
-webkit-app-region: no-drag;
|
|
||||||
transform: translate(-78px, 4px);
|
|
||||||
}
|
|
||||||
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container:hover #minimize #minimize-icon,
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container:hover #maximize #maximize-icon,
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container:hover #quit #quit-icon {
|
|
||||||
display: list-item;
|
|
||||||
}
|
|
||||||
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #quit #quit-icon {
|
|
||||||
background-color: #79282b;
|
|
||||||
-webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4yOTI4OSA2TDIuODE4MDEgMy41MjUxM0wzLjUyNTEyIDIuODE4MDJMNS45OTk5OSA1LjI5Mjg5TDguNDc0ODcgMi44MTgwMkw5LjE4MTk3IDMuNTI1MTNMNi43MDcxIDZMOS4xODE5NyA4LjQ3NDg3TDguNDc0ODcgOS4xODE5OEw1Ljk5OTk5IDYuNzA3MTFMMy41MjUxMiA5LjE4MTk4TDIuODE4MDEgOC40NzQ4N0w1LjI5Mjg5IDZaIiBmaWxsPSJyZ2JhKDEyOCwgNiwgMCwgMSkiLz48L3N2Zz4=")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4yOTI4OSA2TDIuODE4MDEgMy41MjUxM0wzLjUyNTEyIDIuODE4MDJMNS45OTk5OSA1LjI5Mjg5TDguNDc0ODcgMi44MTgwMkw5LjE4MTk3IDMuNTI1MTNMNi43MDcxIDZMOS4xODE5NyA4LjQ3NDg3TDguNDc0ODcgOS4xODE5OEw1Ljk5OTk5IDYuNzA3MTFMMy41MjUxMiA5LjE4MTk4TDIuODE4MDEgOC40NzQ4N0w1LjI5Mjg5IDZaIiBmaWxsPSJyZ2JhKDEyOCwgNiwgMCwgMSkiLz48L3N2Zz4=")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
transform: translate(-0.3px, -11.7px);
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #minimize #minimize-icon {
|
|
||||||
background-color: #7d631b;
|
|
||||||
-webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAgNS4zOTk5OUgyVjYuNTk5OTlIMTBWNS4zOTk5OVoiIGZpbGw9IiM5ODY4MDEiLz48L3N2Zz4=")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAgNS4zOTk5OUgyVjYuNTk5OTlIMTBWNS4zOTk5OVoiIGZpbGw9IiM5ODY4MDEiLz48L3N2Zz4=")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
transform: translate(-0px, -11.7px);
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #maximize #maximize-icon {
|
|
||||||
background-color: #1d7525;
|
|
||||||
-webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC41ODgyMyA2Ljk5MDE1TDUuMDA5NzkgMy40MTE3QzQuODU1ODMgMy4yNTc3NCA0Ljk1ODYgMi45OTQyMiA1LjE3NjE0IDIuOTg1MTRMOC45MTA0MiAyLjgyOTMxQzkuMDU2NTggMi44MjMyMSA5LjE3NjczIDIuOTQzMzUgOS4xNzA2MyAzLjA4OTUyTDkuMDE0NzkgNi44MjM4QzkuMDA1NzEgNy4wNDEzNCA4Ljc0MjE5IDcuMTQ0MTEgOC41ODgyMyA2Ljk5MDE1WiIgZmlsbD0iIzEyNUUxRSIvPjxwYXRoIGQ9Ik0zLjQxMTc3IDUuMDA5ODJMNi45OTAyMSA4LjU4ODI3QzcuMTQ0MTcgOC43NDIyMyA3LjA0MTQgOS4wMDU3NSA2LjgyMzg2IDkuMDE0ODNMMy4wODk1OCA5LjE3MDY2QzIuOTQzNDIgOS4xNzY3NiAyLjgyMzI3IDkuMDU2NjEgMi44MjkzNyA4LjkxMDQ1TDIuOTg1MjEgNS4xNzYxN0MyLjk5NDI5IDQuOTU4NjMgMy4yNTc4MSA0Ljg1NTg2IDMuNDExNzcgNS4wMDk4MloiIGZpbGw9IiMxMjVFMUUiLz48L3N2Zz4=")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC41ODgyMyA2Ljk5MDE1TDUuMDA5NzkgMy40MTE3QzQuODU1ODMgMy4yNTc3NCA0Ljk1ODYgMi45OTQyMiA1LjE3NjE0IDIuOTg1MTRMOC45MTA0MiAyLjgyOTMxQzkuMDU2NTggMi44MjMyMSA5LjE3NjczIDIuOTQzMzUgOS4xNzA2MyAzLjA4OTUyTDkuMDE0NzkgNi44MjM4QzkuMDA1NzEgNy4wNDEzNCA4Ljc0MjE5IDcuMTQ0MTEgOC41ODgyMyA2Ljk5MDE1WiIgZmlsbD0iIzEyNUUxRSIvPjxwYXRoIGQ9Ik0zLjQxMTc3IDUuMDA5ODJMNi45OTAyMSA4LjU4ODI3QzcuMTQ0MTcgOC43NDIyMyA3LjA0MTQgOS4wMDU3NSA2LjgyMzg2IDkuMDE0ODNMMy4wODk1OCA5LjE3MDY2QzIuOTQzNDIgOS4xNzY3NiAyLjgyMzI3IDkuMDU2NjEgMi44MjkzNyA4LjkxMDQ1TDIuOTg1MjEgNS4xNzYxN0MyLjk5NDI5IDQuOTU4NjMgMy4yNTc4MSA0Ljg1NTg2IDMuNDExNzcgNS4wMDk4MloiIGZpbGw9IiMxMjVFMUUiLz48L3N2Zz4=")
|
|
||||||
no-repeat 50% 50%;
|
|
||||||
transform: translate(-0.2px, -11.7px);
|
|
||||||
}
|
|
||||||
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #minimize {
|
|
||||||
background-color: #fac536;
|
|
||||||
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%;
|
|
||||||
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%;
|
|
||||||
transform: translateX(-21.5px);
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #maximize {
|
|
||||||
background-color: #39ea49;
|
|
||||||
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%;
|
|
||||||
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%;
|
|
||||||
transform: translateX(21.5px);
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #quit {
|
|
||||||
background-color: #f25056;
|
|
||||||
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%;
|
|
||||||
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%;
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container:hover #maximize:active {
|
|
||||||
background-color: #13c11e;
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container:hover #minimize:active {
|
|
||||||
background-color: #da9e10;
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container:hover #quit:active {
|
|
||||||
background-color: #d52735;
|
|
||||||
}
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #spacer,
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #minimize,
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #maximize,
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #quit {
|
|
||||||
float: right;
|
|
||||||
height: 80%;
|
|
||||||
width: 13%;
|
|
||||||
text-align: center;
|
|
||||||
color: transparent;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #minimize-icon,
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #maximize-icon,
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #quit-icon {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
[armcord-platform="darwin"] .titlebar #window-controls-container #spacer {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
[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;
|
|
||||||
}
|
|
||||||
|
|
||||||
[armcord-platform="linux"] .window-title,
|
|
||||||
[armcord-platform="win32"] .window-title {
|
|
||||||
content: var(--wordmark-svg);
|
content: var(--wordmark-svg);
|
||||||
height: 10px;
|
height: 10px;
|
||||||
margin-left: initial;
|
margin-left: initial;
|
||||||
|
@ -350,12 +146,6 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
[wordmark="discord"] .window-title {
|
|
||||||
content: var(--discord-wordmark-svg);
|
|
||||||
height: 11.7px;
|
|
||||||
width: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.withFrame-haYltI {
|
.withFrame-haYltI {
|
||||||
height: 30px !important;
|
height: 30px !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div id="warning" class="hidden">
|
<div id="warning" class="hidden">
|
||||||
<p id="setup_offline">You appear to be offline. Please connect to the internet and restart ArmCord.</p>
|
<p id="setup_offline">
|
||||||
|
You appear to be offline. Please connect to the internet and restart ArmCord Setup.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="setup">
|
<div id="setup">
|
||||||
<div id="logo" class="hidden"></div>
|
<div id="logo" class="hidden"></div>
|
||||||
|
@ -121,7 +123,6 @@
|
||||||
automaticPatches: false,
|
automaticPatches: false,
|
||||||
mods: "cumcord",
|
mods: "cumcord",
|
||||||
inviteWebsocket: true,
|
inviteWebsocket: true,
|
||||||
trayIcon: "ac_plug_colored",
|
|
||||||
performanceMode: "none"
|
performanceMode: "none"
|
||||||
});
|
});
|
||||||
setTimeout(() => window.armcordinternal.restart(), 5000);
|
setTimeout(() => window.armcordinternal.restart(), 5000);
|
||||||
|
@ -152,7 +153,6 @@
|
||||||
minimizeToTray: true,
|
minimizeToTray: true,
|
||||||
automaticPatches: false,
|
automaticPatches: false,
|
||||||
performanceMode: "none",
|
performanceMode: "none",
|
||||||
trayIcon: "ac_plug_colored",
|
|
||||||
mods: options.mod,
|
mods: options.mod,
|
||||||
inviteWebsocket: true
|
inviteWebsocket: true
|
||||||
});
|
});
|
||||||
|
@ -168,13 +168,11 @@
|
||||||
autoLaunch: true,
|
autoLaunch: true,
|
||||||
mods: "none",
|
mods: "none",
|
||||||
performanceMode: "none",
|
performanceMode: "none",
|
||||||
trayIcon: "ac_plug_colored",
|
|
||||||
inviteWebsocket: true
|
inviteWebsocket: true
|
||||||
});
|
});
|
||||||
setTimeout(() => window.armcordinternal.restart(), 500);
|
setTimeout(() => window.armcordinternal.restart(), 500);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
document.body.setAttribute("insetup", "");
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -6,13 +6,6 @@
|
||||||
<style>
|
<style>
|
||||||
@import url("css/splash.css");
|
@import url("css/splash.css");
|
||||||
</style>
|
</style>
|
||||||
<script>
|
|
||||||
window.onbeforeunload = function () {
|
|
||||||
const style = document.createElement("style");
|
|
||||||
style.textContent = "body { display: none; }";
|
|
||||||
document.head.append(style);
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -30,7 +23,7 @@
|
||||||
text.innerHTML = await armcord.getLang("loading_screen_offline");
|
text.innerHTML = await armcord.getLang("loading_screen_offline");
|
||||||
} else {
|
} else {
|
||||||
text.innerHTML = await armcord.getLang("loading_screen_start");
|
text.innerHTML = await armcord.getLang("loading_screen_start");
|
||||||
if (window.armcord.version === "3.1.0") {
|
if (window.armcord.version === "DEV") {
|
||||||
console.log("Running a development build of ArmCord. Skipping updater.");
|
console.log("Running a development build of ArmCord. Skipping updater.");
|
||||||
} else {
|
} else {
|
||||||
const response = await fetch("https://armcord.xyz/latest.json");
|
const response = await fetch("https://armcord.xyz/latest.json");
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//https://github.com/GooseMod/GooseMod/wiki/Stuck-Updater-or-Blank-Window-Fix
|
//https://github.com/GooseMod/GooseMod/wiki/Stuck-Updater-or-Blank-Window-Fix
|
||||||
/*
|
/*
|
||||||
Copyright 2022 GooseMod
|
Copyright 2021 GooseMod
|
||||||
|
|
||||||
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:
|
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:
|
||||||
|
|
||||||
|
@ -60,6 +60,6 @@ electron.app.whenReady().then(async () => {
|
||||||
if (await getConfig("armcordCSP")) {
|
if (await getConfig("armcordCSP")) {
|
||||||
unstrictCSP();
|
unstrictCSP();
|
||||||
} else {
|
} else {
|
||||||
console.log("ArmCord CSP is disabled. The CSP should be managed by a third-party plugin(s).");
|
console.log("ArmCord CSP is disabled. The CSP should be managed by third-party plugin.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -23,9 +23,6 @@ export function registerIpc() {
|
||||||
ipcMain.on("win-isMaximized", (event, arg) => {
|
ipcMain.on("win-isMaximized", (event, arg) => {
|
||||||
event.returnValue = mainWindow.isMaximized();
|
event.returnValue = mainWindow.isMaximized();
|
||||||
});
|
});
|
||||||
ipcMain.on("win-isNormal", (event, arg) => {
|
|
||||||
event.returnValue = mainWindow.isNormal();
|
|
||||||
});
|
|
||||||
ipcMain.on("win-minimize", (event, arg) => {
|
ipcMain.on("win-minimize", (event, arg) => {
|
||||||
mainWindow.minimize();
|
mainWindow.minimize();
|
||||||
});
|
});
|
||||||
|
@ -77,9 +74,6 @@ export function registerIpc() {
|
||||||
ipcMain.on("clientmod", async (event, arg) => {
|
ipcMain.on("clientmod", async (event, arg) => {
|
||||||
event.returnValue = await getConfig("mods");
|
event.returnValue = await getConfig("mods");
|
||||||
});
|
});
|
||||||
ipcMain.on("trayIcon", async (event, arg) => {
|
|
||||||
event.returnValue = await getConfig("trayIcon");
|
|
||||||
});
|
|
||||||
ipcMain.on("titlebar", (event, arg) => {
|
ipcMain.on("titlebar", (event, arg) => {
|
||||||
event.returnValue = customTitlebar;
|
event.returnValue = customTitlebar;
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,7 +10,6 @@ import "./shortcuts";
|
||||||
|
|
||||||
export var settings: any;
|
export var settings: any;
|
||||||
export var customTitlebar: boolean;
|
export var customTitlebar: boolean;
|
||||||
export var clientName: "ArmCord";
|
|
||||||
|
|
||||||
if (process.platform == "linux") {
|
if (process.platform == "linux") {
|
||||||
if (process.env.$XDG_SESSION_TYPE == "wayland") {
|
if (process.env.$XDG_SESSION_TYPE == "wayland") {
|
||||||
|
@ -34,7 +33,7 @@ app.whenReady().then(async () => {
|
||||||
case "native":
|
case "native":
|
||||||
createNativeWindow();
|
createNativeWindow();
|
||||||
break;
|
break;
|
||||||
case "basic":
|
case "discord":
|
||||||
createNativeWindow();
|
createNativeWindow();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -68,7 +67,6 @@ app.whenReady().then(async () => {
|
||||||
createCustomWindow();
|
createCustomWindow();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
console.log("userDataPath = " + app.getPath("userData"));
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -93,5 +93,6 @@ setInterval(() => {
|
||||||
|
|
||||||
el.textContent = `\nArmCord Version: ${version}`;
|
el.textContent = `\nArmCord Version: ${version}`;
|
||||||
el.onclick = () => ipcRenderer.send("openSettingsWindow");
|
el.onclick = () => ipcRenderer.send("openSettingsWindow");
|
||||||
|
|
||||||
host.append(el);
|
host.append(el);
|
||||||
}, 2000);
|
}, 2000);
|
||||||
|
|
|
@ -2,7 +2,7 @@ import {ipcRenderer} from "electron";
|
||||||
import {addStyle} from "../utils";
|
import {addStyle} from "../utils";
|
||||||
import * as fs from "fs";
|
import * as fs from "fs";
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
import os from "os";
|
import {platform} from "node:process";
|
||||||
export function injectTitlebar() {
|
export function injectTitlebar() {
|
||||||
document.addEventListener("DOMContentLoaded", function (event) {
|
document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
var elem = document.createElement("div");
|
var elem = document.createElement("div");
|
||||||
|
@ -25,8 +25,7 @@ export function injectTitlebar() {
|
||||||
const wordmarkcssPath = path.join(__dirname, "../", "/content/css/logos.css");
|
const wordmarkcssPath = path.join(__dirname, "../", "/content/css/logos.css");
|
||||||
addStyle(fs.readFileSync(titlebarcssPath, "utf8"));
|
addStyle(fs.readFileSync(titlebarcssPath, "utf8"));
|
||||||
addStyle(fs.readFileSync(wordmarkcssPath, "utf8"));
|
addStyle(fs.readFileSync(wordmarkcssPath, "utf8"));
|
||||||
document.body.setAttribute("customTitlebar", "");
|
document.body.setAttribute("armcord-platform", platform);
|
||||||
document.body.setAttribute("armcord-platform", "win32");
|
|
||||||
|
|
||||||
var minimize = document.getElementById("minimize");
|
var minimize = document.getElementById("minimize");
|
||||||
var maximize = document.getElementById("maximize");
|
var maximize = document.getElementById("maximize");
|
||||||
|
@ -39,8 +38,7 @@ export function injectTitlebar() {
|
||||||
maximize!.addEventListener("click", () => {
|
maximize!.addEventListener("click", () => {
|
||||||
if (ipcRenderer.sendSync("win-isMaximized") == true) {
|
if (ipcRenderer.sendSync("win-isMaximized") == true) {
|
||||||
ipcRenderer.send("win-unmaximize");
|
ipcRenderer.send("win-unmaximize");
|
||||||
document.body.removeAttribute("isMaximized");
|
} else {
|
||||||
} else if (ipcRenderer.sendSync("win-isNormal") == true) {
|
|
||||||
ipcRenderer.send("win-maximize");
|
ipcRenderer.send("win-maximize");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -66,18 +66,7 @@
|
||||||
</select>
|
</select>
|
||||||
<p class="header" id="settings-prfmMode">Performance mode:</p>
|
<p class="header" id="settings-prfmMode">Performance mode:</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="switch">
|
<button id="settings-save" class="center">Save settings</button>
|
||||||
<select name="trayIcon" id="trayIcon" class="left">
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
<button id="settings-save" class="center">Save Settings</button>
|
|
||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
async function loadLang() {
|
async function loadLang() {
|
||||||
|
@ -112,7 +101,6 @@
|
||||||
document.getElementById("channel").value = await settings.get("channel");
|
document.getElementById("channel").value = await settings.get("channel");
|
||||||
document.getElementById("theme").value = await settings.get("windowStyle");
|
document.getElementById("theme").value = await settings.get("windowStyle");
|
||||||
document.getElementById("prfmMode").value = await settings.get("performanceMode");
|
document.getElementById("prfmMode").value = await settings.get("performanceMode");
|
||||||
document.getElementById("trayIcon").value = await settings.get("trayIcon");
|
|
||||||
}
|
}
|
||||||
loadSettings();
|
loadSettings();
|
||||||
document.getElementById("settings-save").addEventListener("click", function () {
|
document.getElementById("settings-save").addEventListener("click", function () {
|
||||||
|
@ -125,7 +113,6 @@
|
||||||
mods: document.getElementById("mod").value,
|
mods: document.getElementById("mod").value,
|
||||||
inviteWebsocket: document.getElementById("websocket").checked,
|
inviteWebsocket: document.getElementById("websocket").checked,
|
||||||
performanceMode: document.getElementById("prfmMode").value,
|
performanceMode: document.getElementById("prfmMode").value,
|
||||||
trayIcon: document.getElementById("trayIcon").value,
|
|
||||||
doneSetup: true
|
doneSetup: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -14,10 +14,5 @@ app.on("web-contents-created", (webContentsCreatedEvent, webContents) => {
|
||||||
if (shift && control && !alt && !meta && code === "KeyR") {
|
if (shift && control && !alt && !meta && code === "KeyR") {
|
||||||
mainWindow.reload();
|
mainWindow.reload();
|
||||||
}
|
}
|
||||||
// Shortcut: app reload
|
|
||||||
if (alt && control && !shift && !meta && code === "KeyR") {
|
|
||||||
app.relaunch();
|
|
||||||
app.exit();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -23,7 +23,7 @@ import type {Server, WebSocket} from "ws";
|
||||||
import {inviteWindow, createInviteWindow} from "./window";
|
import {inviteWindow, createInviteWindow} from "./window";
|
||||||
|
|
||||||
async function wsLog(message: string, ...args: unknown[]) {
|
async function wsLog(message: string, ...args: unknown[]) {
|
||||||
console.log("[WebSocket] " + message, ...args);
|
console.log("[WebSocket]" + message, ...args);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Generates an inclusive range (as `Array`) from `start` to `end`. */
|
/** Generates an inclusive range (as `Array`) from `start` to `end`. */
|
||||||
|
|
185
src/tray.ts
|
@ -1,128 +1,87 @@
|
||||||
import * as fs from "fs";
|
|
||||||
import { app, Menu, Tray } from "electron";
|
import { app, Menu, Tray } from "electron";
|
||||||
import { mainWindow } from "./window";
|
import { mainWindow } from "./window";
|
||||||
import { getConfig, getConfigLocation, setWindowState } from "./utils";
|
import { getConfig, setWindowState } from "./utils";
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
import { createSettingsWindow } from "./settings/main";
|
import { createSettingsWindow } from "./settings/main";
|
||||||
|
import { platform } from "process";
|
||||||
let tray: any = null;
|
let tray: any = null;
|
||||||
|
let defaultIcon = "ac_plug_colored";
|
||||||
app.whenReady().then(async () => {
|
app.whenReady().then(async () => {
|
||||||
let finishedSetup = (await getConfig("doneSetup"));
|
if (platform == "darwin") {
|
||||||
if ((await getConfig("windowStyle")) == "basic") {
|
defaultIcon = "macos"
|
||||||
var clientName = (await getConfig("clientName")) ?? "ArmCord";
|
}
|
||||||
var trayIcon = (await getConfig("trayIcon")) ?? "ac_plug_colored";
|
if ((await getConfig("windowStyle")) == "discord") {
|
||||||
tray = new Tray(path.join(__dirname, "../", `/assets/${trayIcon}.png`));
|
tray = new Tray(path.join(__dirname, "../", "/assets/dsc-tray.png"));
|
||||||
const contextMenu = function () {
|
const contextMenu = Menu.buildFromTemplate([
|
||||||
if (finishedSetup == false) {
|
{
|
||||||
return Menu.buildFromTemplate([
|
label: "Open ArmCord",
|
||||||
{
|
click: function () {
|
||||||
label: `Finish the setup first!`,
|
mainWindow.show();
|
||||||
enabled: false
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: `Quit ${clientName}`,
|
label: "Quit ArmCord",
|
||||||
click: async function () {
|
click: function () {
|
||||||
fs.unlink(await getConfigLocation(), (err) => {
|
let [width, height] = mainWindow.getSize()
|
||||||
if (err) throw err;
|
setWindowState({
|
||||||
console.log('Closed during setup. "settings.json" was deleted');
|
width: width,
|
||||||
app.quit();
|
height: height,
|
||||||
});
|
isMaximized: mainWindow.isMaximized()
|
||||||
}
|
})
|
||||||
}
|
app.quit();
|
||||||
]);
|
}
|
||||||
} else {
|
|
||||||
return Menu.buildFromTemplate([
|
|
||||||
{
|
|
||||||
label: `Open ${clientName}`,
|
|
||||||
click: function () {
|
|
||||||
mainWindow.show();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: `Quit ${clientName}`,
|
|
||||||
click: function () {
|
|
||||||
let [width, height] = mainWindow.getSize()
|
|
||||||
setWindowState({
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
isMaximized: mainWindow.isMaximized()
|
|
||||||
})
|
|
||||||
app.quit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
]);
|
||||||
|
|
||||||
tray.setToolTip(clientName);
|
tray.setToolTip("Discord");
|
||||||
tray.setContextMenu(contextMenu);
|
tray.setContextMenu(contextMenu);
|
||||||
} else {
|
} else {
|
||||||
var clientName = (await getConfig("clientName")) ?? "ArmCord";
|
var trayIcon = (await getConfig("trayIcon")) ?? defaultIcon;
|
||||||
var trayIcon = (await getConfig("trayIcon")) ?? "ac_plug_colored";
|
|
||||||
tray = new Tray(path.join(__dirname, "../", `/assets/${trayIcon}.png`));
|
tray = new Tray(path.join(__dirname, "../", `/assets/${trayIcon}.png`));
|
||||||
if (finishedSetup == false) {
|
const contextMenu = Menu.buildFromTemplate([
|
||||||
const contextMenu = Menu.buildFromTemplate([
|
{
|
||||||
{
|
label: "ArmCord"
|
||||||
label: `Finish the setup first!`,
|
},
|
||||||
enabled: false
|
{
|
||||||
},
|
type: "separator"
|
||||||
{
|
},
|
||||||
label: `Quit ${clientName}`,
|
{
|
||||||
click: async function () {
|
label: "Open ArmCord",
|
||||||
fs.unlink(await getConfigLocation(), (err) => {
|
click: function () {
|
||||||
if (err) throw err;
|
mainWindow.show();
|
||||||
console.log('Closed during setup. "settings.json" was deleted');
|
}
|
||||||
app.quit();
|
},
|
||||||
});
|
{
|
||||||
}
|
label: "Open Settings",
|
||||||
|
click: function () {
|
||||||
|
createSettingsWindow();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Support Discord Server",
|
||||||
|
click: function () {
|
||||||
|
mainWindow.show();
|
||||||
|
mainWindow.loadURL("https://discord.gg/TnhxcqynZ2");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "separator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Quit ArmCord",
|
||||||
|
click: function () {
|
||||||
|
let [width, height] = mainWindow.getSize()
|
||||||
|
setWindowState({
|
||||||
|
width: width,
|
||||||
|
height: height,
|
||||||
|
isMaximized: mainWindow.isMaximized()
|
||||||
|
})
|
||||||
|
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
tray.setContextMenu(contextMenu);
|
|
||||||
}
|
}
|
||||||
}
|
]);
|
||||||
|
|
||||||
tray.setToolTip(clientName);
|
tray.setToolTip("ArmCord " + app.getVersion());
|
||||||
tray.on('click', function(){
|
tray.setContextMenu(contextMenu);
|
||||||
mainWindow.show()
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
);
|
});
|
||||||
|
|
18
src/utils.ts
|
@ -1,6 +1,7 @@
|
||||||
import * as fs from "fs";
|
import * as fs from "fs";
|
||||||
import { app, dialog } from "electron";
|
import { app, dialog } from "electron";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
import { defaultMaxListeners } from "events";
|
||||||
export var firstRun: boolean;
|
export var firstRun: boolean;
|
||||||
export var isSetup: boolean;
|
export var isSetup: boolean;
|
||||||
export var contentPath: string;
|
export var contentPath: string;
|
||||||
|
@ -43,7 +44,6 @@ export function setup() {
|
||||||
mods: "cumcord",
|
mods: "cumcord",
|
||||||
performanceMode: "none",
|
performanceMode: "none",
|
||||||
inviteWebsocket: true,
|
inviteWebsocket: true,
|
||||||
trayIcon: "ac_plug_colored",
|
|
||||||
doneSetup: false
|
doneSetup: false
|
||||||
};
|
};
|
||||||
setConfigBulk({
|
setConfigBulk({
|
||||||
|
@ -52,8 +52,8 @@ export function setup() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getVersion() {
|
export function getVersion() {
|
||||||
//I'm too lazy to replace every mf reference so :p
|
//to-do better way of doing this
|
||||||
return app.getVersion();
|
return "3.1.0";
|
||||||
}
|
}
|
||||||
export async function injectJS(inject: string) {
|
export async function injectJS(inject: string) {
|
||||||
const js = await (await fetch(`${inject}`)).text();
|
const js = await (await fetch(`${inject}`)).text();
|
||||||
|
@ -180,7 +180,6 @@ export interface Settings {
|
||||||
mods: string;
|
mods: string;
|
||||||
performanceMode: string;
|
performanceMode: string;
|
||||||
inviteWebsocket: boolean;
|
inviteWebsocket: boolean;
|
||||||
trayIcon: string;
|
|
||||||
doneSetup: boolean;
|
doneSetup: boolean;
|
||||||
}
|
}
|
||||||
export async function getConfig(object: string) {
|
export async function getConfig(object: string) {
|
||||||
|
@ -198,17 +197,6 @@ export async function getConfig(object: string) {
|
||||||
return "setup";
|
return "setup";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export async function getConfigLocation() {
|
|
||||||
try {
|
|
||||||
const userDataPath = app.getPath("userData");
|
|
||||||
const storagePath = path.join(userDataPath, "/storage/");
|
|
||||||
return storagePath + "settings.json";
|
|
||||||
} catch (e) {
|
|
||||||
console.log("Config probably doesn't exist yet. Returning setup value.");
|
|
||||||
firstRun = true;
|
|
||||||
return "setup";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
export async function setConfig(object: string, toSet: any) {
|
export async function setConfig(object: string, toSet: any) {
|
||||||
try {
|
try {
|
||||||
const userDataPath = app.getPath("userData");
|
const userDataPath = app.getPath("userData");
|
||||||
|
|