mirror of
				https://github.com/smartfrigde/armcord.git
				synced 2024-08-14 23:56:58 +00:00 
			
		
		
		
	Add performance mode
This commit is contained in:
		
							parent
							
								
									40d743d0e2
								
							
						
					
					
						commit
						81377d3657
					
				
					 4 changed files with 57 additions and 3 deletions
				
			
		|  | @ -101,6 +101,7 @@ | |||
|                     automaticPatches: false, | ||||
|                     mods: "cumcord", | ||||
|                     inviteWebsocket: true, | ||||
|                     performanceMode: "none", | ||||
|                     blurType: "acrylic" | ||||
|                 }); | ||||
|                 setTimeout(() => window.armcordinternal.restart(), 5000); | ||||
|  | @ -130,6 +131,7 @@ | |||
|                             autoLaunch: true, | ||||
|                             minimizeToTray: true, | ||||
|                             automaticPatches: false, | ||||
|                             performanceMode: "none", | ||||
|                             mods: options.mod, | ||||
|                             inviteWebsocket: true, | ||||
|                             blurType: "acrylic" | ||||
|  | @ -145,6 +147,7 @@ | |||
|                         automaticPatches: false, | ||||
|                         autoLaunch: true, | ||||
|                         mods: "none", | ||||
|                         performanceMode: "none", | ||||
|                         inviteWebsocket: true, | ||||
|                         blurType: "acrylic" | ||||
|                     }); | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| // Modules to control application life and create native browser window
 | ||||
| import {app, BrowserWindow, session, dialog} from "electron"; | ||||
| import "v8-compile-cache"; | ||||
| import {getConfig, setup, checkIfConfigExists} from "./utils"; | ||||
| import {getConfig, setup, checkIfConfigExists, injectElectronFlags} from "./utils"; | ||||
| import "./extensions/mods"; | ||||
| import "./extensions/plugin"; | ||||
| import "./tray"; | ||||
|  | @ -12,6 +12,7 @@ export var settings: any; | |||
| export var customTitlebar: boolean; | ||||
| export var tabs: boolean; | ||||
| 
 | ||||
| 
 | ||||
| if (process.platform == "linux") { | ||||
|     if (process.env.$XDG_SESSION_TYPE == "wayland") { | ||||
|         console.log("Wayland specific patches applied."); | ||||
|  | @ -24,7 +25,7 @@ if (process.platform == "linux") { | |||
|     } | ||||
| } | ||||
| checkIfConfigExists(); | ||||
| 
 | ||||
| injectElectronFlags(); | ||||
| app.whenReady().then(async () => { | ||||
|     switch (await getConfig("windowStyle")) { | ||||
|         case "default": | ||||
|  |  | |||
|  | @ -58,7 +58,14 @@ | |||
|             </select> | ||||
|             <p class="header">Client mod:</p> | ||||
|         </div> | ||||
| 
 | ||||
|         <div class="switch"> | ||||
|             <select name="prfmMode" id="prfmMode" class="left"> | ||||
|                 <option value="performance">Performance</option> | ||||
|                 <option value="battery">Battery</option> | ||||
|                 <option value="none">None</option> | ||||
|             </select> | ||||
|             <p class="header">Performance mode:</p> | ||||
|         </div> | ||||
|         <button id="save" class="center">Save settings</button> | ||||
|     </body> | ||||
| 
 | ||||
|  | @ -71,6 +78,7 @@ | |||
|             document.getElementById("mod").value = await settings.get("mods"); | ||||
|             document.getElementById("channel").value = await settings.get("channel"); | ||||
|             document.getElementById("theme").value = await settings.get("windowStyle"); | ||||
|             document.getElementById("performanceMode").value = await settings.get("performanceMode"); | ||||
|         } | ||||
|         loadSettings(); | ||||
|         document.getElementById("save").addEventListener("click", function () { | ||||
|  | @ -84,6 +92,7 @@ | |||
|                 mods: document.getElementById("mod").value, | ||||
|                 blurType: "acrylic", | ||||
|                 inviteWebsocket: document.getElementById("websocket").checked, | ||||
|                 performanceMode: document.getElementById("prfmMode").value, | ||||
|                 doneSetup: true | ||||
|             }); | ||||
|         }); | ||||
|  |  | |||
							
								
								
									
										41
									
								
								src/utils.ts
									
										
									
									
									
								
							
							
						
						
									
										41
									
								
								src/utils.ts
									
										
									
									
									
								
							|  | @ -1,6 +1,7 @@ | |||
| import * as fs from "fs"; | ||||
| import {app, dialog} from "electron"; | ||||
| import path from "path"; | ||||
| import { defaultMaxListeners } from "events"; | ||||
| export var firstRun: boolean; | ||||
| export var isSetup: boolean; | ||||
| export var contentPath: string; | ||||
|  | @ -42,6 +43,7 @@ export function setup() { | |||
|         automaticPatches: false, | ||||
|         mods: "cumcord", | ||||
|         blurType: "acrylic", | ||||
|         performanceMode: "none", | ||||
|         inviteWebsocket: true, | ||||
|         doneSetup: false | ||||
|     }; | ||||
|  | @ -63,7 +65,45 @@ export async function injectJS(inject: string) { | |||
| 
 | ||||
|     document.body.appendChild(el); | ||||
| } | ||||
| export async function injectElectronFlags() { | ||||
|     //     MIT License
 | ||||
| 
 | ||||
|     // Copyright (c) 2022 GooseNest
 | ||||
| 
 | ||||
|     // Permission is hereby granted, free of charge, to any person obtaining a copy
 | ||||
|     // of this software and associated documentation files (the "Software"), to deal
 | ||||
|     // in the Software without restriction, including without limitation the rights
 | ||||
|     // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | ||||
|     // copies of the Software, and to permit persons to whom the Software is
 | ||||
|     // furnished to do so, subject to the following conditions:
 | ||||
| 
 | ||||
|     // The above copyright notice and this permission notice shall be included in all
 | ||||
|     // copies or substantial portions of the Software.
 | ||||
| 
 | ||||
|     // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | ||||
|     // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | ||||
|     // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | ||||
|     // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | ||||
|     // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | ||||
|     // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | ||||
|     // SOFTWARE.
 | ||||
|     const presets = { | ||||
|         'performance': `--enable-gpu-rasterization --enable-zero-copy --ignore-gpu-blocklist --enable-hardware-overlays=single-fullscreen,single-on-top,underlay --enable-features=EnableDrDc,CanvasOopRasterization,BackForwardCache:TimeToLiveInBackForwardCacheInSeconds/300/should_ignore_blocklists/true/enable_same_site/true,ThrottleDisplayNoneAndVisibilityHiddenCrossOriginIframes,UseSkiaRenderer,WebAssemblyLazyCompilation --disable-features=Vulkan --force_high_performance_gpu`, // Performance
 | ||||
|         'battery': '--enable-features=TurnOffStreamingMediaCachingOnBattery --force_low_power_gpu' // Known to have better battery life for Chromium?
 | ||||
|     }; | ||||
|     switch (await getConfig("performanceMode")) { | ||||
|         case "performance": | ||||
|             console.log("Performance mode enabled"); | ||||
|             app.commandLine.appendSwitch(presets.performance); | ||||
|             break; | ||||
|         case "battery": | ||||
|             console.log("Battery mode enabled"); | ||||
|             app.commandLine.appendSwitch(presets.battery); | ||||
|             break; | ||||
|         default: | ||||
|             console.log("No performance modes set"); | ||||
|     } | ||||
| } | ||||
| //ArmCord Settings/Storage manager
 | ||||
| 
 | ||||
| export interface Settings { | ||||
|  | @ -73,6 +113,7 @@ export interface Settings { | |||
|     minimizeToTray: boolean; | ||||
|     automaticPatches: boolean; | ||||
|     mods: string; | ||||
|     performanceMode: string, | ||||
|     blurType: string; | ||||
|     inviteWebsocket: boolean; | ||||
|     doneSetup: boolean; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue