PowerTools/main_view.html

628 lines
36 KiB
HTML
Raw Normal View History

2022-04-18 22:21:51 +01:00
<html>
<head>
<link rel="stylesheet" href="/steam_resource/css/2.css">
<link rel="stylesheet" href="/steam_resource/css/39.css">
<link rel="stylesheet" href="/steam_resource/css/library.css">
<script src="/static/library.js"></script>
<script>
// Python functions
2022-04-30 02:01:24 +01:00
function getVersion() {
return call_plugin_method("get_version", {});
}
function onViewReady() {
return call_plugin_method("on_ready", {});
}
2022-04-22 02:01:48 +01:00
function setCPUs(value, smt) {
return call_plugin_method("set_cpus", {"count":value, "smt": smt});
}
function getCPUs() {
return call_plugin_method("get_cpus", {});
}
2022-04-22 02:01:48 +01:00
function getSMT() {
return call_plugin_method("get_smt", {});
}
2022-04-21 21:17:23 +01:00
function setCPUBoost(value) {
return call_plugin_method("set_boost", {"enabled": value});
}
function getCPUBoost() {
return call_plugin_method("get_boost", {});
}
2022-04-21 23:15:41 +01:00
function setMaxBoost(index) {
return call_plugin_method("set_max_boost", {"index": index});
}
function getMaxBoost() {
return call_plugin_method("get_max_boost", {});
}
2022-04-28 04:03:23 +01:00
2022-04-30 02:16:10 +01:00
function setGPUPower(value, index) {
return call_plugin_method("set_gpu_power", {"value": value, "power_number": index});
}
function getGPUPower(index) {
return call_plugin_method("get_gpu_power", {"power_number": index});
}
2022-04-28 04:03:23 +01:00
function setFanTick(tick) {
return call_plugin_method("set_fan_tick", {"tick": tick});
}
function getFanTick() {
return call_plugin_method("get_fan_tick", {});
}
2022-04-29 22:17:44 +01:00
2022-05-09 18:14:28 +01:00
function getFantastic() {
return call_plugin_method("fantastic_installed", {});
}
2022-04-29 22:17:44 +01:00
function getChargeNow() {
return call_plugin_method("get_charge_now", {});
}
function getChargeFull() {
return call_plugin_method("get_charge_full", {});
}
function getChargeDesign() {
return call_plugin_method("get_charge_design", {});
}
2022-05-13 19:01:48 +01:00
function setPersistent(value) {
return call_plugin_method("set_persistent", {"enabled": value});
}
function getPersistent() {
return call_plugin_method("get_persistent", {});
}
2022-05-22 22:47:33 +01:00
function getCurrentGame() {
return call_plugin_method("get_current_game", {});
}
2022-04-21 21:17:23 +01:00
// other logic
async function onReady() {
await onViewReady();
2022-05-22 22:47:33 +01:00
// detect game starts and exits
console.log("Injecting game detection code into main window (SP)");
await execute_in_tab("SP", false,
`SteamClient.Apps.RegisterForGameActionStart((actionType, data) => {
console.log("start game", appStore.GetAppOverviewByGameID(data));
fetch("http://127.0.0.1:5030/on_game_start/" + data.toString(), {method: "POST", body: JSON.stringify(appStore.GetAppOverviewByGameID(data))}).then((_) => {});
});
// this seems to not run when I thought (runs right after ^^^, not when game exits)
/*SteamClient.Apps.RegisterForGameActionEnd((actionType, data) => {
if (data != null && data != undefined) {
console.log("stop game", appStore.GetAppOverviewByGameID(data));
fetch("http://127.0.0.1:5030/on_game_exit/" + data.toString(), {method: "POST", body: JSON.stringify(appStore.GetAppOverviewByGameID(data))}).then((_) => {});
} else {
console.log("stop game null");
fetch("http://127.0.0.1:5030/on_game_exit_null", {method: "POST", body:data}).then((_) => {});
}
});*/`
);
2022-04-21 21:17:23 +01:00
let boostToggle = document.getElementById("boostToggle");
setToggleState(boostToggle, await getCPUBoost());
2022-04-22 02:01:48 +01:00
setToggleState(document.getElementById("smtToggle"), await getSMT());
2022-04-21 23:15:41 +01:00
selectNotch("cpuThreadsNotch", await getCPUs() - 1, 8);
selectNotch("frequencyNotch", await getMaxBoost(), 3);
2022-04-30 02:16:10 +01:00
await onReadyGPU();
2022-05-09 18:14:28 +01:00
let isFantasticInstalled = await getFantastic();
if (isFantasticInstalled) {
// Don't fight with Fantastic
let fanRoot = document.getElementById("fanRoot");
fanRoot.style.visibility = "hidden";
fanRoot.style.height = "0px";
} else {
selectNotch("fanNotch", await getFanTick(), 8);
}
2022-04-29 22:17:44 +01:00
await updateBatteryStats();
2022-05-13 19:01:48 +01:00
setToggleState(document.getElementById("persistToggle"), await getPersistent());
2022-04-30 02:01:24 +01:00
// this is unimportant; always do it last
await updateVersion();
2022-05-22 22:47:33 +01:00
window.setInterval(function() {
updateBatteryStats().then(_ => {});
updateCurrentGame().then(_ => {});
}, 5000);
}
2022-04-21 23:15:41 +01:00
async function setCPUNotch(index) {
const ROOT_ID = "cpuThreadsNotch";
2022-04-22 02:01:48 +01:00
await setCPUs(index, getToggleState(document.getElementById("smtToggle")));
2022-04-21 23:15:41 +01:00
selectNotch(ROOT_ID, await getCPUs() - 1, 8);
}
2022-05-12 17:59:35 +01:00
const TOGGLE_ON_CLASS = "gamepaddialog_On_3ld7T";
2022-04-21 21:17:23 +01:00
function setToggleState(toggle, state) {
2022-05-12 17:59:35 +01:00
if (state && !toggle.classList.contains(TOGGLE_ON_CLASS)) {
toggle.classList.add(TOGGLE_ON_CLASS);
2022-04-21 21:17:23 +01:00
}
2022-05-12 17:59:35 +01:00
if (!state && toggle.classList.contains(TOGGLE_ON_CLASS)) {
toggle.classList.remove(TOGGLE_ON_CLASS);
2022-04-21 21:17:23 +01:00
}
}
function getToggleState(toggle) {
2022-05-12 17:59:35 +01:00
return toggle.classList.contains(TOGGLE_ON_CLASS);
2022-04-21 21:17:23 +01:00
}
async function toggleCPUBoost() {
let toggle = document.getElementById("boostToggle");
let isActive = getToggleState(toggle);
await setCPUBoost(!isActive);
2022-04-22 02:01:48 +01:00
setToggleState(toggle, !isActive);
}
async function toggleCPUSMT() {
let toggle = document.getElementById("smtToggle");
let isActive = getToggleState(toggle);
2022-04-22 02:27:38 +01:00
let currentCPUs = await getCPUs();
if (currentCPUs == 4 && !isActive) {
// if all cores are running, enable all the threads as well
await setCPUs(8, !isActive);
} else {
await setCPUs(currentCPUs, !isActive);
}
2022-04-22 02:01:48 +01:00
setToggleState(toggle, !isActive);
selectNotch("cpuThreadsNotch", await getCPUs() - 1, 8);
2022-04-21 21:17:23 +01:00
}
2022-04-21 23:15:41 +01:00
async function setBoostNotch(index) {
const ROOT_ID = "frequencyNotch";
await setMaxBoost(index);
selectNotch(ROOT_ID, await getMaxBoost(), 3);
}
2022-04-28 04:03:23 +01:00
async function onSetFanNotch(index) {
const ROOT_ID = "fanNotch";
await setFanTick(index);
selectNotch(ROOT_ID, index, 8);
2022-04-28 04:03:23 +01:00
}
2022-04-30 02:16:10 +01:00
async function onReadyGPU() {
let power1_cap = await getGPUPower(1);
let power2_cap = await getGPUPower(2);
if (power1_cap <= 0) {
selectNotch("slowPPTNotch", 0, 3);
document.getElementById("slowPPTAutoDefault").innerText = "Default";
} else if (power1_cap > 15000000) {
selectNotch("slowPPTNotch", 2, 3);
document.getElementById("slowPPTAutoDefault").innerText = "Default";
} else {
selectNotch("slowPPTNotch", 1, 3);
}
if (power2_cap <= 0) {
selectNotch("fastPPTNotch", 0, 3);
document.getElementById("fastPPTAutoDefault").innerText = "Default";
} else if (power2_cap > 15000000) {
selectNotch("fastPPTNotch", 2, 3);
document.getElementById("fastPPTAutoDefault").innerText = "Default";
} else {
selectNotch("fastPPTNotch", 1, 3);
}
}
async function onSetSlowPPTNotch(index) {
const ROOT_ID = "slowPPTNotch";
document.getElementById("slowPPTAutoDefault").innerText = "Default";
if (index == 0) {
await setGPUPower(0, 1);
} else if (index == 1) {
await setGPUPower(15000000, 1);
} else {
await setGPUPower(29000000, 1);
}
selectNotch(ROOT_ID, index, 3);
}
async function onSetFastPPTNotch(index) {
const ROOT_ID = "fastPPTNotch";
document.getElementById("fastPPTAutoDefault").innerText = "Default";
if (index == 0) {
await setGPUPower(0, 2);
} else if (index == 1) {
await setGPUPower(15000000, 2);
} else {
await setGPUPower(30000000, 2);
}
selectNotch(ROOT_ID, index, 3);
}
2022-04-21 23:15:41 +01:00
function selectNotch(rootId, index, elements) {
// WARNING: this yeets any style in div of slider
2022-05-12 17:59:35 +01:00
const ENABLED_CLASS = "gamepadslider_TickActive_1gnUV";
2022-04-21 23:15:41 +01:00
//console.log("Selecting notches up to " + index);
let root = document.getElementById(rootId);
root.style = "--normalized-slider-value:" + index/(elements-1) + ";";
for (let i = 0; i < elements; i++) {
let notch = document.getElementById(rootId + i);
if (notch.classList.contains(ENABLED_CLASS) && i > index) {
notch.classList.remove(ENABLED_CLASS);
} else if (!notch.classList.contains(ENABLED_CLASS) && i <= index) {
notch.classList.add(ENABLED_CLASS);
}
}
}
2022-04-29 22:17:44 +01:00
async function updateBatteryStats() {
//console.log("Updating battery stats");
2022-04-29 22:17:44 +01:00
let batCapacityNow = document.getElementById("batCapacityNow");
let batCapacityFull = document.getElementById("batCapacityFull");
let chargeNow = await getChargeNow();
let chargeFull = await getChargeFull();
let chargeDesign = await getChargeDesign();
batCapacityNow.innerText = (7.7 * chargeNow / 1000000).toFixed(2).toString() + " Wh (" + (100 * chargeNow / chargeFull).toFixed(0).toString() + "%)";
batCapacityFull.innerText = (7.7 * chargeFull / 1000000).toFixed(2).toString() + " Wh (" + (100 * chargeFull / chargeDesign).toFixed(0).toString() + "%)";
}
2022-05-13 19:01:48 +01:00
async function togglePersist() {
let toggle = document.getElementById("persistToggle");
let isActive = getToggleState(toggle);
await setPersistent(!isActive);
setToggleState(toggle, !isActive);
}
2022-05-22 22:47:33 +01:00
async function updateCurrentGame() {
let gameNow = document.getElementById("gameNow");
let gameNameNow = await getCurrentGame();
gameNow.innerText = gameNameNow;
}
let versionCount = -1;
async function updateVersion() {
let version = await getVersion();
let target = document.getElementById("versionStr");
target.innerText = "v" + version;
if (versionCount >= 9) {
target.innerText += " by NGnius ;) ";
versionCount = 0;
} else {
versionCount += 1;
}
}
2022-04-21 21:17:23 +01:00
</script>
2022-04-21 23:15:41 +01:00
<style type="text/css" media="screen"></style>
2022-04-18 22:21:51 +01:00
</head>
2022-05-12 17:59:35 +01:00
<body onload="onReady()" style="/*margin:0px;padding:0px;*/overflow-x:hidden;margin:0px;">
2022-04-30 02:16:10 +01:00
<!-- CPU -->
2022-04-22 02:01:48 +01:00
<!-- SMT toggle switch, roughly copied from https://github.com/SteamDeckHomebrew/ExtraSettingsPlugin/blob/main/main_view.html -->
2022-05-12 17:59:35 +01:00
<!-- Due to a bug in MangoHud, this has a warning for now -->
<div class="quickaccessmenu_TabGroupPanel_1QO7b Panel Focusable">
2022-05-12 17:59:35 +01:00
<div class="quickaccesscontrols_PanelSection_2C0g0" style="padding:0px 4px;">
<div class="quickaccesscontrols_PanelSectionRow_2VQ88">
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_WithDescription_3bMIS gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" style="--indent-level:0;">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">
2022-04-22 02:01:48 +01:00
CPU SMT
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldChildren_14_HB">
<div id="smtToggle" tabindex="0" class="gamepaddialog_Toggle_24G4g Focusable" onclick="toggleCPUSMT()">
<div class="gamepaddialog_ToggleRail_2JtC3"></div>
<div class="gamepaddialog_ToggleSwitch_3__OD"></div>
2022-04-22 02:01:48 +01:00
</div>
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldDescription_2OJfk">Enables odd-numbered CPUs</div>
<div style="font-size:x-small;">
WARNING: Disabling crashes the performance overlay.
</div>
2022-04-22 02:01:48 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
2022-04-29 22:17:44 +01:00
2022-04-21 23:15:41 +01:00
<!-- CPUs selector -->
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_WithChildrenBelow_1u5FT gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_ChildrenWidthFixed_1ugIU gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">Threads</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div id="cpuThreadsNotch" class="gamepadslider_SliderControlAndNotches_1Cccx Focusable" tabindex="0" style="--normalized-slider-value:0.5;">
<div class="gamepadslider_SliderControl_3o137">
<div class="gamepadslider_SliderTrack_Mq25N gamepadslider_SliderHasNotches_2XiAy "></div>
<div class="gamepadslider_SliderHandleContainer_1pQZi">
<div class="gamepadslider_SliderHandle_2yVKj"></div>
2022-04-21 23:15:41 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotchContainer_2N-a5 Panel Focusable">
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch0" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(1)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">1</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch1" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(2)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">2</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch2" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(3)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">3</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch3" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(4)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">4</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch4" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(5)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">5</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch5" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(6)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">6</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch6" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(7)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">7</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="cpuThreadsNotch7" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setCPUNotch(8)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">8</div>
2022-04-21 23:15:41 +01:00
</div>
</div>
</div>
</div>
2022-04-21 23:15:41 +01:00
2022-05-12 17:59:35 +01:00
</div>
2022-04-22 02:01:48 +01:00
<!-- CPU Boost toggle switch, roughly copied from https://github.com/SteamDeckHomebrew/ExtraSettingsPlugin/blob/main/main_view.html -->
2022-05-12 17:59:35 +01:00
<div class="quickaccesscontrols_PanelSection_2C0g0" style="padding:0px 4px;">
<div class="quickaccesscontrols_PanelSectionRow_2VQ88">
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_WithDescription_3bMIS gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" style="--indent-level:0;">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">
2022-04-21 21:17:23 +01:00
CPU Boost
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldChildren_14_HB">
<div id="boostToggle" tabindex="0" class="gamepaddialog_Toggle_24G4g Focusable" onclick="toggleCPUBoost()">
<div class="gamepaddialog_ToggleRail_2JtC3"></div>
<div class="gamepaddialog_ToggleSwitch_3__OD"></div>
2022-04-22 02:01:48 +01:00
</div>
2022-04-21 21:17:23 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldDescription_2OJfk">Allows the CPU to go above max frequency</div>
2022-04-21 21:17:23 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
2022-04-29 22:17:44 +01:00
2022-04-21 23:15:41 +01:00
<!-- Frequency selector -->
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_WithChildrenBelow_1u5FT gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_ChildrenWidthFixed_1ugIU gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">Max Frequency</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldChildren_14_HB">
<div id="frequencyNotch" class="gamepadslider_SliderControlAndNotches_1Cccx Focusable" tabindex="0" style="--normalized-slider-value:0.5;">
<div class="gamepadslider_SliderControl_3o137">
<div class="gamepadslider_SliderTrack_Mq25N gamepadslider_SliderHasNotches_2XiAy "></div>
<div class="gamepadslider_SliderHandleContainer_1pQZi">
<div class="gamepadslider_SliderHandle_2yVKj"></div>
2022-04-21 23:15:41 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotchContainer_2N-a5 Panel Focusable">
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="frequencyNotch0" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='setBoostNotch(0)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1" style="margin-left:2em;">1.7GHz</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="frequencyNotch1" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='setBoostNotch(1)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">2.4GHz</div>
2022-04-21 23:15:41 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="frequencyNotch2" class="gamepadslider_SliderNotchTick_Fv1Ht" onclick='setBoostNotch(2)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1" style="margin-right:2em;">2.8GHz</div>
2022-04-21 23:15:41 +01:00
</div>
</div>
</div>
</div>
2022-04-22 02:01:48 +01:00
<div style="font-size:x-small;">
WARNING: This will change the CPU governor.
2022-04-22 02:01:48 +01:00
</div>
2022-04-21 23:15:41 +01:00
</div>
2022-04-28 04:03:23 +01:00
2022-05-12 17:59:35 +01:00
</div>
2022-04-30 02:16:10 +01:00
<!-- GPU -->
2022-05-12 17:59:35 +01:00
<div class="quickaccesscontrols_PanelSection_2C0g0" style="padding:0px 4px;">
2022-04-30 02:16:10 +01:00
<!-- SlowPPT power limit (number 1) -->
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_WithChildrenBelow_1u5FT gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_ChildrenWidthFixed_1ugIU gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">GPU SlowPPT Power</div>
2022-04-30 02:16:10 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldChildren_14_HB">
<div id="slowPPTNotch" class="gamepadslider_SliderControlAndNotches_1Cccx Focusable" tabindex="0" style="--normalized-slider-value:0.33;">
<div class="gamepadslider_SliderControl_3o137">
<div class="gamepadslider_SliderTrack_Mq25N gamepadslider_SliderHasNotches_2XiAy "></div>
<div class="gamepadslider_SliderHandleContainer_1pQZi">
<div class="gamepadslider_SliderHandle_2yVKj"></div>
2022-04-30 02:16:10 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotchContainer_2N-a5 Panel Focusable">
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="slowPPTNotch0" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetSlowPPTNotch(0)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">0</div>
2022-04-30 02:16:10 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="slowPPTNotch1" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetSlowPPTNotch(1)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1" id="slowPPTAutoDefault">Auto</div>
2022-04-30 02:16:10 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="slowPPTNotch2" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetSlowPPTNotch(2)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">Max</div>
2022-04-30 02:16:10 +01:00
</div>
</div>
</div>
</div>
</div>
<!-- FastPPT power limit (number 2) -->
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_WithChildrenBelow_1u5FT gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_ChildrenWidthFixed_1ugIU gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">GPU FastPPT Power</div>
2022-04-30 02:16:10 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldChildren_14_HB">
<div id="fastPPTNotch" class="gamepadslider_SliderControlAndNotches_1Cccx Focusable" tabindex="0" style="--normalized-slider-value:0.33;">
<div class="gamepadslider_SliderControl_3o137">
<div class="gamepadslider_SliderTrack_Mq25N gamepadslider_SliderHasNotches_2XiAy "></div>
<div class="gamepadslider_SliderHandleContainer_1pQZi">
<div class="gamepadslider_SliderHandle_2yVKj"></div>
2022-04-30 02:16:10 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotchContainer_2N-a5 Panel Focusable">
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fastPPTNotch0" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFastPPTNotch(0)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">0</div>
2022-04-30 02:16:10 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fastPPTNotch1" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFastPPTNotch(1)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1" id="fastPPTAutoDefault">Auto</div>
2022-04-30 02:16:10 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fastPPTNotch2" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFastPPTNotch(2)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">Max</div>
2022-04-30 02:16:10 +01:00
</div>
</div>
</div>
</div>
</div>
2022-05-12 17:59:35 +01:00
</div>
<!-- Fan RPM selector -->
2022-04-29 22:17:44 +01:00
<!-- TODO: Make this non-notched slider when PluginLoader PR#41 is merged -->
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_WithChildrenBelow_1u5FT gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_ChildrenWidthFixed_1ugIU gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" id="fanRoot">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">Fan RPM</div>
2022-04-28 04:03:23 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepaddialog_FieldChildren_14_HB">
<div id="fanNotch" class="gamepadslider_SliderControlAndNotches_1Cccx Focusable" tabindex="0" style="--normalized-slider-value:0.33;">
<div class="gamepadslider_SliderControl_3o137">
<div class="gamepadslider_SliderTrack_Mq25N gamepadslider_SliderHasNotches_2XiAy "></div>
<div class="gamepadslider_SliderHandleContainer_1pQZi">
<div class="gamepadslider_SliderHandle_2yVKj"></div>
2022-04-28 04:03:23 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotchContainer_2N-a5 Panel Focusable">
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch0" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(0)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">0</div>
2022-04-28 04:03:23 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch1" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(1)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">1K</div>
2022-04-28 04:03:23 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch2" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(2)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">2K</div>
2022-04-28 04:03:23 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch3" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(3)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">3K</div>
2022-04-28 04:03:23 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch4" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(4)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">4K</div>
2022-04-28 04:03:23 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch5" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(5)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">5K</div>
2022-04-28 04:03:23 +01:00
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch6" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(6)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">6K</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="gamepadslider_SliderNotch_3x6ve">
<div id="fanNotch7" class="gamepadslider_SliderNotchTick_Fv1Ht gamepadslider_TickActive_j418S" onclick='onSetFanNotch(7)'></div>
<div class="gamepadslider_SliderNotchLabel_u_sH1">Auto</div>
2022-04-28 04:03:23 +01:00
</div>
</div>
</div>
</div>
2022-05-03 19:37:30 +01:00
<div style="font-size:x-small;">
WARNING: This can cause component overheating.
</div>
2022-04-28 04:03:23 +01:00
</div>
2022-04-29 22:17:44 +01:00
<!-- Battery Info -->
2022-05-12 17:59:35 +01:00
<div class="quickaccesscontrols_PanelSection_2C0g0" style="padding:0px 4px;" onclick="updateBatteryStats()" style="margin-bottom:0px;">
<div class="quickaccesscontrols_PanelSectionTitle_2iFf9">
<div class="quickaccesscontrols_Text_1hJkB">Battery</div>
2022-04-29 22:17:44 +01:00
</div>
<div class="Panel Focusable" tabindex="0">
2022-05-12 17:59:35 +01:00
<div class="quickaccesscontrols_PanelSectionRow_2VQ88">
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" style="--indent-level:0;">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">Now (Charge)</div>
<div class="gamepaddialog_FieldChildren_14_HB">
<div class="gamepaddialog_LabelFieldValue_5Mylh" id="batCapacityNow"> :'( (|-_-|) </div>
2022-04-29 22:17:44 +01:00
</div>
</div>
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="quickaccesscontrols_PanelSectionRow_2VQ88">
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" style="--indent-level:0;">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">Max (Design)</div>
<div class="gamepaddialog_FieldChildren_14_HB">
<div class="gamepaddialog_LabelFieldValue_5Mylh" id="batCapacityFull"> 9000+ (420%) </div>
2022-04-29 22:17:44 +01:00
</div>
</div>
</div>
</div>
</div>
</div>
2022-05-13 19:01:48 +01:00
<div class="quickaccesscontrols_PanelSection_2C0g0" style="padding:0px 4px;">
<div class="quickaccesscontrols_PanelSectionRow_2VQ88">
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_WithDescription_3bMIS gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_ gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" style="--indent-level:0;">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">
Persistent
</div>
<div class="gamepaddialog_FieldChildren_14_HB">
<div id="persistToggle" tabindex="0" class="gamepaddialog_Toggle_24G4g Focusable" onclick="togglePersist()">
<div class="gamepaddialog_ToggleRail_2JtC3"></div>
<div class="gamepaddialog_ToggleSwitch_3__OD"></div>
</div>
</div>
</div>
<div class="gamepaddialog_FieldDescription_2OJfk">Restores settings after a reboot</div>
2022-05-22 22:47:33 +01:00
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" style="--indent-level:0;">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">Now Playing</div>
<div class="gamepaddialog_FieldChildren_14_HB">
<div class="gamepaddialog_LabelFieldValue_5Mylh" id="gameNow"> Littlewood (894940) </div>
</div>
</div>
</div>
</div>
2022-05-13 19:01:48 +01:00
</div>
</div>
2022-05-12 17:59:35 +01:00
<div class="quickaccesscontrols_PanelSection_2C0g0" style="padding:0px 4px;">
<div class="quickaccesscontrols_PanelSectionRow_2VQ88" onclick="updateVersion()">
<div class="gamepaddialog_Field_S-_La gamepaddialog_WithFirstRow_qFXi6 gamepaddialog_VerticalAlignCenter_3XNvA gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6 gamepaddialog_WithBottomSeparator_1lUZx gamepaddialog_StandardPadding_XRBFu gamepaddialog_HighlightOnFocus_wE4V6 Panel Focusable" style="--indent-level:0;">
<div class="gamepaddialog_FieldLabelRow_H9WOq">
<div class="gamepaddialog_FieldLabel_3b0U-">PowerTools</div>
<div class="gamepaddialog_FieldChildren_14_HB">
<div class="gamepaddialog_LabelFieldValue_5Mylh" id="versionStr"> v0.42.0 </div>
</div>
2022-04-30 02:01:24 +01:00
</div>
</div>
</div>
</div>
2022-05-12 17:59:35 +01:00
</div>
2022-05-13 19:01:48 +01:00
</div>
2022-04-18 22:21:51 +01:00
</body>
</html>