mirror of
				https://github.com/smartfrigde/armcord.git
				synced 2024-08-14 23:56:58 +00:00 
			
		
		
		
	Remove glasstron and tabs completely
This commit is contained in:
		
							parent
							
								
									8d85591e1c
								
							
						
					
					
						commit
						c979328aee
					
				
					 9 changed files with 11 additions and 192 deletions
				
			
		|  | @ -1,46 +0,0 @@ | ||||||
| .tabs { |  | ||||||
|     display: block; |  | ||||||
|     top: 0; |  | ||||||
|     left: 0; |  | ||||||
|     right: 0; |  | ||||||
|     flex-shrink: 0; |  | ||||||
|     overflow: hidden; |  | ||||||
|     zoom: 1; |  | ||||||
|     box-sizing: border-box; |  | ||||||
|     width: 100%; |  | ||||||
|     clear: both; |  | ||||||
|     height: 30px; |  | ||||||
|     line-height: 30px; |  | ||||||
|     background-color: #202225; |  | ||||||
|     -webkit-app-region: drag; |  | ||||||
|     width: 100%; |  | ||||||
|     user-select: none; |  | ||||||
|     -webkit-user-select: none; |  | ||||||
|     position: fixed; |  | ||||||
|     z-index: 99999; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .tabs #tabs-controls-container { |  | ||||||
|     float: left; |  | ||||||
|     width: 150px; |  | ||||||
|     height: 100%; |  | ||||||
|     line-height: 30px; |  | ||||||
|     background-color: #202225; |  | ||||||
|     -webkit-app-region: no-drag; |  | ||||||
| } |  | ||||||
| .tabs-buttons { |  | ||||||
|     color: white; |  | ||||||
|     background-color: inherit; |  | ||||||
|     float: left; |  | ||||||
|     border: none; |  | ||||||
|     outline: none; |  | ||||||
|     cursor: pointer; |  | ||||||
|     transition: 0.3s; |  | ||||||
|     font-size: 20px; |  | ||||||
| } |  | ||||||
| .tabs-buttons:hover { |  | ||||||
|     background-color: #4e515a; |  | ||||||
| } |  | ||||||
| .withFrame-haYltI { |  | ||||||
|     height: 30px !important; |  | ||||||
| } |  | ||||||
|  | @ -123,8 +123,7 @@ | ||||||
|                     automaticPatches: false, |                     automaticPatches: false, | ||||||
|                     mods: "cumcord", |                     mods: "cumcord", | ||||||
|                     inviteWebsocket: true, |                     inviteWebsocket: true, | ||||||
|                     performanceMode: "none", |                     performanceMode: "none" | ||||||
|                     blurType: "acrylic" |  | ||||||
|                 }); |                 }); | ||||||
|                 setTimeout(() => window.armcordinternal.restart(), 5000); |                 setTimeout(() => window.armcordinternal.restart(), 5000); | ||||||
|             }); |             }); | ||||||
|  | @ -155,8 +154,7 @@ | ||||||
|                             automaticPatches: false, |                             automaticPatches: false, | ||||||
|                             performanceMode: "none", |                             performanceMode: "none", | ||||||
|                             mods: options.mod, |                             mods: options.mod, | ||||||
|                             inviteWebsocket: true, |                             inviteWebsocket: true | ||||||
|                             blurType: "acrylic" |  | ||||||
|                         }); |                         }); | ||||||
|                         setTimeout(() => window.armcordinternal.restart(), 500); |                         setTimeout(() => window.armcordinternal.restart(), 500); | ||||||
|                     }); |                     }); | ||||||
|  | @ -170,8 +168,7 @@ | ||||||
|                         autoLaunch: true, |                         autoLaunch: true, | ||||||
|                         mods: "none", |                         mods: "none", | ||||||
|                         performanceMode: "none", |                         performanceMode: "none", | ||||||
|                         inviteWebsocket: true, |                         inviteWebsocket: true | ||||||
|                         blurType: "acrylic" |  | ||||||
|                     }); |                     }); | ||||||
|                     setTimeout(() => window.armcordinternal.restart(), 500); |                     setTimeout(() => window.armcordinternal.restart(), 500); | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								src/ipc.ts
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/ipc.ts
									
										
									
									
									
								
							|  | @ -1,16 +1,13 @@ | ||||||
| //ipc stuff
 | //ipc stuff
 | ||||||
| import {app, ipcMain, shell, desktopCapturer} from "electron"; | import {app, ipcMain, shell, desktopCapturer} from "electron"; | ||||||
| import {createTabsGuest, mainWindow} from "./window"; | import {mainWindow} from "./window"; | ||||||
| import {setConfigBulk, getVersion, getConfig, setLang, getLang} from "./utils"; | import {setConfigBulk, getVersion, getConfig, setLang, getLang} from "./utils"; | ||||||
| import {customTitlebar, tabs} from "./main"; | import {customTitlebar} from "./main"; | ||||||
| import {createSettingsWindow} from "./settings/main"; | import {createSettingsWindow} from "./settings/main"; | ||||||
| export function registerIpc() { | export function registerIpc() { | ||||||
|     ipcMain.on("get-app-path", (event, arg) => { |     ipcMain.on("get-app-path", (event, arg) => { | ||||||
|         event.reply("app-path", app.getAppPath()); |         event.reply("app-path", app.getAppPath()); | ||||||
|     }); |     }); | ||||||
|     ipcMain.on("openTab", (event, number: number) => { |  | ||||||
|         createTabsGuest(number); |  | ||||||
|     }); |  | ||||||
|     ipcMain.on("setLang", (event, lang: string) => { |     ipcMain.on("setLang", (event, lang: string) => { | ||||||
|         setLang(lang); |         setLang(lang); | ||||||
|     }); |     }); | ||||||
|  | @ -66,9 +63,6 @@ export function registerIpc() { | ||||||
|     ipcMain.on("titlebar", (event, arg) => { |     ipcMain.on("titlebar", (event, arg) => { | ||||||
|         event.returnValue = customTitlebar; |         event.returnValue = customTitlebar; | ||||||
|     }); |     }); | ||||||
|     ipcMain.on("tabs", (event, arg) => { |  | ||||||
|         event.returnValue = tabs; |  | ||||||
|     }); |  | ||||||
|     ipcMain.on("shouldPatch", async (event, arg) => { |     ipcMain.on("shouldPatch", async (event, arg) => { | ||||||
|         event.returnValue = await getConfig("automaticPatches"); |         event.returnValue = await getConfig("automaticPatches"); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
							
								
								
									
										30
									
								
								src/main.ts
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								src/main.ts
									
										
									
									
									
								
							|  | @ -1,16 +1,15 @@ | ||||||
| // Modules to control application life and create native browser window
 | // Modules to control application life and create native browser window
 | ||||||
| import {app, BrowserWindow, session, dialog} from "electron"; | import {app, BrowserWindow, session} from "electron"; | ||||||
| import "v8-compile-cache"; | import "v8-compile-cache"; | ||||||
| import {getConfig, setup, checkIfConfigExists, injectElectronFlags} from "./utils"; | import {getConfig, checkIfConfigExists, injectElectronFlags} from "./utils"; | ||||||
| import "./extensions/mods"; | import "./extensions/mods"; | ||||||
| import "./extensions/plugin"; | import "./extensions/plugin"; | ||||||
| import "./tray"; | import "./tray"; | ||||||
| import {createCustomWindow, createNativeWindow, createTabsHost} from "./window"; | import {createCustomWindow, createNativeWindow} from "./window"; | ||||||
| import "./shortcuts"; | import "./shortcuts"; | ||||||
| 
 | 
 | ||||||
| export var settings: any; | export var settings: any; | ||||||
| export var customTitlebar: boolean; | export var customTitlebar: boolean; | ||||||
| export var tabs: boolean; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| if (process.platform == "linux") { | if (process.platform == "linux") { | ||||||
|  | @ -38,17 +37,6 @@ app.whenReady().then(async () => { | ||||||
|         case "discord": |         case "discord": | ||||||
|             createNativeWindow(); |             createNativeWindow(); | ||||||
|             break; |             break; | ||||||
|         case "glasstron": |  | ||||||
|             dialog.showErrorBox( |  | ||||||
|                 "Glasstron is unsupported.", |  | ||||||
|                 "This build doesn't include Glasstron functionality, please edit windowStyle value in your settings.json to something different (default for example)" |  | ||||||
|             ); |  | ||||||
|             app.quit(); |  | ||||||
|             break; |  | ||||||
|         case "tabs": |  | ||||||
|             createTabsHost(); |  | ||||||
|             tabs = true; |  | ||||||
|             break; |  | ||||||
|         default: |         default: | ||||||
|             createCustomWindow(); |             createCustomWindow(); | ||||||
|             customTitlebar = true; |             customTitlebar = true; | ||||||
|  | @ -73,16 +61,8 @@ app.whenReady().then(async () => { | ||||||
|                 case "native": |                 case "native": | ||||||
|                     createNativeWindow(); |                     createNativeWindow(); | ||||||
|                     break; |                     break; | ||||||
|                 case "glasstron": |                 case "discord": | ||||||
|                     dialog.showErrorBox( |                     createNativeWindow(); | ||||||
|                         "Glasstron is unsupported.", |  | ||||||
|                         "This build doesn't include Glasstron functionality, please edit windowStyle value in your settings.json to something different (default for example)" |  | ||||||
|                     ); |  | ||||||
|                     app.quit(); |  | ||||||
|                     break; |  | ||||||
|                 case "tabs": |  | ||||||
|                     createTabsHost(); |  | ||||||
|                     tabs = true; |  | ||||||
|                     break; |                     break; | ||||||
|                 default: |                 default: | ||||||
|                     createCustomWindow(); |                     createCustomWindow(); | ||||||
|  |  | ||||||
|  | @ -6,7 +6,6 @@ import * as path from "path"; | ||||||
| import {injectTitlebar} from "./titlebar"; | import {injectTitlebar} from "./titlebar"; | ||||||
| import {sleep, addStyle, injectJS, addScript} from "../utils"; | import {sleep, addStyle, injectJS, addScript} from "../utils"; | ||||||
| import {ipcRenderer} from "electron"; | import {ipcRenderer} from "electron"; | ||||||
| import {injectTabs} from "./tabs"; |  | ||||||
| var version = ipcRenderer.sendSync("get-app-version", "app-version"); | var version = ipcRenderer.sendSync("get-app-version", "app-version"); | ||||||
| async function updateLang() { | async function updateLang() { | ||||||
|     if (window.location.href.indexOf("setup.html") > -1) { |     if (window.location.href.indexOf("setup.html") > -1) { | ||||||
|  | @ -35,9 +34,6 @@ if (window.location.href.indexOf("splash.html") > -1) { | ||||||
|     if (ipcRenderer.sendSync("titlebar")) { |     if (ipcRenderer.sendSync("titlebar")) { | ||||||
|         injectTitlebar(); |         injectTitlebar(); | ||||||
|     } |     } | ||||||
|     if (ipcRenderer.sendSync("tabs")) { |  | ||||||
|         injectTabs(); |  | ||||||
|     } |  | ||||||
|     sleep(5000).then(async () => { |     sleep(5000).then(async () => { | ||||||
|         const cssPath = path.join(__dirname, "../", "/content/css/discord.css"); |         const cssPath = path.join(__dirname, "../", "/content/css/discord.css"); | ||||||
|         addStyle(fs.readFileSync(cssPath, "utf8")); |         addStyle(fs.readFileSync(cssPath, "utf8")); | ||||||
|  |  | ||||||
|  | @ -1,26 +0,0 @@ | ||||||
| import {addStyle} from "../utils"; |  | ||||||
| import * as fs from "fs"; |  | ||||||
| import * as path from "path"; |  | ||||||
| export function injectTabs() { |  | ||||||
|     document.addEventListener("DOMContentLoaded", function (event) { |  | ||||||
|         var elem = document.createElement("div"); |  | ||||||
|         elem.innerHTML = `<nav class="tabs">
 |  | ||||||
|           <div id="tabs-controls-container"> |  | ||||||
|               <button class="tabs-buttons" onclick="armcord.openTab(1)">1</button> |  | ||||||
|               <button class="tabs-buttons" onclick="armcord.openTab(2)">2</button> |  | ||||||
|               <button class="tabs-buttons" onclick="armcord.openTab(3)">3</button> |  | ||||||
|               <button class="tabs-buttons" onclick="armcord.openTab(4)">4</button> |  | ||||||
|               <button class="tabs-buttons" onclick="armcord.openTab(5)">5</button> |  | ||||||
|               <p class="experimental">Experimental</p> |  | ||||||
|           </div> |  | ||||||
|         </nav>`;
 |  | ||||||
|         elem.classList.add("withFrame-haYltI"); |  | ||||||
|         if (document.getElementById("app-mount") == null) { |  | ||||||
|             document.body.appendChild(elem); |  | ||||||
|         } else { |  | ||||||
|             document.getElementById("app-mount")!.prepend(elem); |  | ||||||
|         } |  | ||||||
|         const cssPath = path.join(__dirname, "../", "/content/css/tabs.css"); |  | ||||||
|         addStyle(fs.readFileSync(cssPath, "utf8")); |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
|  | @ -104,7 +104,6 @@ | ||||||
|         } |         } | ||||||
|         loadSettings(); |         loadSettings(); | ||||||
|         document.getElementById("settings-save").addEventListener("click", function () { |         document.getElementById("settings-save").addEventListener("click", function () { | ||||||
|             //function saveSettings(windowStyle: string, channelSetting: string, armcordCSPSetting: boolean, minimizeToTray: boolean, automaticPatches: boolean,modsSetting: string, blurType: string) |  | ||||||
|             settings.save({ |             settings.save({ | ||||||
|                 windowStyle: document.getElementById("theme").value, |                 windowStyle: document.getElementById("theme").value, | ||||||
|                 channel: document.getElementById("channel").value, |                 channel: document.getElementById("channel").value, | ||||||
|  | @ -112,7 +111,6 @@ | ||||||
|                 minimizeToTray: document.getElementById("tray").checked, |                 minimizeToTray: document.getElementById("tray").checked, | ||||||
|                 automaticPatches: document.getElementById("patches").checked, |                 automaticPatches: document.getElementById("patches").checked, | ||||||
|                 mods: document.getElementById("mod").value, |                 mods: document.getElementById("mod").value, | ||||||
|                 blurType: "acrylic", |  | ||||||
|                 inviteWebsocket: document.getElementById("websocket").checked, |                 inviteWebsocket: document.getElementById("websocket").checked, | ||||||
|                 performanceMode: document.getElementById("prfmMode").value, |                 performanceMode: document.getElementById("prfmMode").value, | ||||||
|                 doneSetup: true |                 doneSetup: true | ||||||
|  |  | ||||||
|  | @ -42,7 +42,6 @@ export function setup() { | ||||||
|         minimizeToTray: true, |         minimizeToTray: true, | ||||||
|         automaticPatches: false, |         automaticPatches: false, | ||||||
|         mods: "cumcord", |         mods: "cumcord", | ||||||
|         blurType: "acrylic", |  | ||||||
|         performanceMode: "none", |         performanceMode: "none", | ||||||
|         inviteWebsocket: true, |         inviteWebsocket: true, | ||||||
|         doneSetup: false |         doneSetup: false | ||||||
|  | @ -148,7 +147,6 @@ export interface Settings { | ||||||
|     automaticPatches: boolean; |     automaticPatches: boolean; | ||||||
|     mods: string; |     mods: string; | ||||||
|     performanceMode: string; |     performanceMode: string; | ||||||
|     blurType: string; |  | ||||||
|     inviteWebsocket: boolean; |     inviteWebsocket: boolean; | ||||||
|     doneSetup: boolean; |     doneSetup: boolean; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| // I had to add most of the window creation code here to split both into seperete functions
 | // 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
 | // 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.
 | // I'm sorry for this mess but I'm not sure how to fix it.
 | ||||||
| import {BrowserWindow, shell, app, ipcMain, dialog, clipboard} from "electron"; | import {BrowserWindow, shell, app, dialog} from "electron"; | ||||||
| import path from "path"; | import path from "path"; | ||||||
| import {checkIfConfigIsBroken, firstRun, getConfig, contentPath, isSetup, setConfig, setLang} from "./utils"; | import {checkIfConfigIsBroken, firstRun, getConfig, contentPath, isSetup, setConfig, setLang} from "./utils"; | ||||||
| import {registerIpc} from "./ipc"; | import {registerIpc} from "./ipc"; | ||||||
|  | @ -12,7 +12,6 @@ import os from "os"; | ||||||
| export var icon: string; | export var icon: string; | ||||||
| export let mainWindow: BrowserWindow; | export let mainWindow: BrowserWindow; | ||||||
| export let inviteWindow: BrowserWindow; | export let inviteWindow: BrowserWindow; | ||||||
| let guestWindows: BrowserWindow[] = []; |  | ||||||
| var osType = os.type() | var osType = os.type() | ||||||
| 
 | 
 | ||||||
| contextMenu({ | contextMenu({ | ||||||
|  | @ -154,77 +153,6 @@ export function createNativeWindow() { | ||||||
|     doAfterDefiningTheWindow(); |     doAfterDefiningTheWindow(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function createTabsHost() { |  | ||||||
|     dialog.showErrorBox( |  | ||||||
|         "READ THIS BEFORE USING THE APP", |  | ||||||
|         "ArmCord Tabs are highly experimental and should be only used for strict testing purposes. Please don't ask for support, however you can still report bugs!" |  | ||||||
|     ); |  | ||||||
|     guestWindows[1] = mainWindow; |  | ||||||
|     mainWindow = new BrowserWindow({ |  | ||||||
|         width: 300, |  | ||||||
|         height: 350, |  | ||||||
|         title: "ArmCord", |  | ||||||
|         darkTheme: true, |  | ||||||
|         icon: path.join(__dirname, "../", "/assets/ac_icon_transparent.png"), |  | ||||||
|         frame: true, |  | ||||||
|         autoHideMenuBar: true, |  | ||||||
|         webPreferences: { |  | ||||||
|             preload: path.join(__dirname, "preload/preload.js") |  | ||||||
|         } |  | ||||||
|     }); |  | ||||||
|     doAfterDefiningTheWindow(); |  | ||||||
| } |  | ||||||
| export function createTabsGuest(number: number) { |  | ||||||
|     console.log(guestWindows); |  | ||||||
|     if (guestWindows[number] !== undefined || null) { |  | ||||||
|         try { |  | ||||||
|             console.log("Showing Guest Window " + number); |  | ||||||
|             mainWindow.hide(); |  | ||||||
|             guestWindows[number].show(); |  | ||||||
|             mainWindow = guestWindows[number]; |  | ||||||
|         } catch (e) { |  | ||||||
|             console.error(e); |  | ||||||
|         } |  | ||||||
|     } else { |  | ||||||
|         console.log("Creating Guest Window " + number); |  | ||||||
|         mainWindow.hide(); |  | ||||||
| 
 |  | ||||||
|         guestWindows[number] = new BrowserWindow({ |  | ||||||
|             width: 800, |  | ||||||
|             height: 600, |  | ||||||
|             title: "ArmCord Guest Window " + number, |  | ||||||
|             darkTheme: true, |  | ||||||
|             icon: path.join(__dirname, "../", "/assets/ac_icon_transparent.png"), |  | ||||||
|             frame: true, |  | ||||||
|             autoHideMenuBar: true, |  | ||||||
|             webPreferences: { |  | ||||||
|                 preload: path.join(__dirname, "preload/preload.js") |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
| 
 |  | ||||||
|         mainWindow = guestWindows[number]; |  | ||||||
|         ipcMain.on("tab" + number, (event) => { |  | ||||||
|             event.returnValue = true; //return true so we know the tab exists
 |  | ||||||
|         }); |  | ||||||
| 
 |  | ||||||
|         guestWindows[number].webContents.userAgent = |  | ||||||
|             "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"; //fake useragent for screenshare to work
 |  | ||||||
| 
 |  | ||||||
|         guestWindows[number].webContents.setWindowOpenHandler(({url}) => { |  | ||||||
|             shell.openExternal(url); |  | ||||||
|             return {action: "deny"}; |  | ||||||
|         }); |  | ||||||
| 
 |  | ||||||
|         guestWindows[number].webContents.session.webRequest.onBeforeRequest( |  | ||||||
|             (details: {url: string}, callback: (arg0: {cancel?: boolean}) => any) => { |  | ||||||
|                 if (/api\/v\d\/science$/g.test(details.url)) return callback({cancel: true}); |  | ||||||
|                 return callback({}); |  | ||||||
|             } |  | ||||||
|         ); |  | ||||||
| 
 |  | ||||||
|         guestWindows[number].loadURL("https://discord.com/app"); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| export function createInviteWindow() { | export function createInviteWindow() { | ||||||
|     inviteWindow = new BrowserWindow({ |     inviteWindow = new BrowserWindow({ | ||||||
|         width: 800, |         width: 800, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue