mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
524b84fc38 | ||
|
|
3bd59a4c4d | ||
|
|
96f07606f5 | ||
|
|
ea96af51b8 | ||
|
|
0669bcb2d1 | ||
|
|
67a42c4a21 | ||
|
|
de98588235 | ||
|
|
dffb239ea7 |
@@ -65,6 +65,7 @@ public class AsusACPI
|
|||||||
public const uint GPUXG = 0x00090019;
|
public const uint GPUXG = 0x00090019;
|
||||||
|
|
||||||
public const uint GPUMux = 0x00090016;
|
public const uint GPUMux = 0x00090016;
|
||||||
|
public const uint GPUMuxVivo = 0x00090026;
|
||||||
|
|
||||||
public const uint BatteryLimit = 0x00120057;
|
public const uint BatteryLimit = 0x00120057;
|
||||||
public const uint ScreenOverdrive = 0x00050019;
|
public const uint ScreenOverdrive = 0x00050019;
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ namespace GHelper.Display
|
|||||||
|
|
||||||
public void ToogleMiniled()
|
public void ToogleMiniled()
|
||||||
{
|
{
|
||||||
int miniled = (AppConfig.Get("miniled") == 1) ? 0 : 1;
|
int miniled = (Program.acpi.DeviceGet(AsusACPI.ScreenMiniled) == 1) ? 0 : 1;
|
||||||
AppConfig.Set("miniled", miniled);
|
AppConfig.Set("miniled", miniled);
|
||||||
SetScreen(-1, -1, miniled);
|
SetScreen(-1, -1, miniled);
|
||||||
}
|
}
|
||||||
@@ -77,8 +77,12 @@ namespace GHelper.Display
|
|||||||
int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
||||||
int miniled = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled);
|
int miniled = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled);
|
||||||
|
|
||||||
|
bool hdr = false;
|
||||||
|
|
||||||
if (miniled >= 0)
|
if (miniled >= 0)
|
||||||
|
{
|
||||||
AppConfig.Set("miniled", miniled);
|
AppConfig.Set("miniled", miniled);
|
||||||
|
}
|
||||||
|
|
||||||
bool screenEnabled = (frequency >= 0);
|
bool screenEnabled = (frequency >= 0);
|
||||||
|
|
||||||
@@ -94,7 +98,8 @@ namespace GHelper.Display
|
|||||||
maxFrequency: maxFrequency,
|
maxFrequency: maxFrequency,
|
||||||
overdrive: overdrive,
|
overdrive: overdrive,
|
||||||
overdriveSetting: overdriveSetting,
|
overdriveSetting: overdriveSetting,
|
||||||
miniled: miniled
|
miniled: miniled,
|
||||||
|
hdr: hdr
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
using Microsoft.VisualBasic.Logging;
|
using System.Collections;
|
||||||
using System.Collections;
|
using System.Diagnostics;
|
||||||
using System.Diagnostics.Metrics;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Windows.Forms;
|
|
||||||
using static GHelper.Display.ScreenInterrogatory;
|
using static GHelper.Display.ScreenInterrogatory;
|
||||||
|
|
||||||
namespace GHelper.Display
|
namespace GHelper.Display
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace GHelper.Fan
|
|||||||
|
|
||||||
public const int XGM_FAN_MAX = 72;
|
public const int XGM_FAN_MAX = 72;
|
||||||
|
|
||||||
public const int INADEQUATE_MAX = 90;
|
public const int INADEQUATE_MAX = 92;
|
||||||
|
|
||||||
const int FAN_COUNT = 3;
|
const int FAN_COUNT = 3;
|
||||||
|
|
||||||
|
|||||||
@@ -692,7 +692,14 @@ namespace GHelper
|
|||||||
comboBoost.SelectedIndex = Math.Min(boost, comboBoost.Items.Count - 1);
|
comboBoost.SelectedIndex = Math.Min(boost, comboBoost.Items.Count - 1);
|
||||||
|
|
||||||
string powerMode = PowerNative.GetPowerMode();
|
string powerMode = PowerNative.GetPowerMode();
|
||||||
comboPowerMode.SelectedValue = powerMode;
|
bool batterySaver = PowerNative.GetBatterySaverStatus();
|
||||||
|
|
||||||
|
comboPowerMode.Enabled = !batterySaver;
|
||||||
|
|
||||||
|
if (batterySaver)
|
||||||
|
comboPowerMode.SelectedIndex = 0;
|
||||||
|
else
|
||||||
|
comboPowerMode.SelectedValue = powerMode;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.123</AssemblyVersion>
|
<AssemblyVersion>0.124</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -24,9 +24,13 @@ namespace GHelper.Gpu
|
|||||||
int eco = Program.acpi.DeviceGet(AsusACPI.GPUEco);
|
int eco = Program.acpi.DeviceGet(AsusACPI.GPUEco);
|
||||||
int mux = Program.acpi.DeviceGet(AsusACPI.GPUMux);
|
int mux = Program.acpi.DeviceGet(AsusACPI.GPUMux);
|
||||||
|
|
||||||
|
if (mux < 0) mux = Program.acpi.DeviceGet(AsusACPI.GPUMuxVivo);
|
||||||
|
|
||||||
Logger.WriteLine("Eco flag : " + eco);
|
Logger.WriteLine("Eco flag : " + eco);
|
||||||
Logger.WriteLine("Mux flag : " + mux);
|
Logger.WriteLine("Mux flag : " + mux);
|
||||||
|
|
||||||
|
settings.VisualiseGPUButtons(eco >= 0, mux >= 0);
|
||||||
|
|
||||||
if (mux == 0)
|
if (mux == 0)
|
||||||
{
|
{
|
||||||
gpuMode = AsusACPI.GPUModeUltimate;
|
gpuMode = AsusACPI.GPUModeUltimate;
|
||||||
@@ -38,9 +42,6 @@ namespace GHelper.Gpu
|
|||||||
else
|
else
|
||||||
gpuMode = AsusACPI.GPUModeStandard;
|
gpuMode = AsusACPI.GPUModeStandard;
|
||||||
|
|
||||||
// Ultimate mode not supported
|
|
||||||
if (mux != 1) settings.HideUltimateMode();
|
|
||||||
|
|
||||||
// GPU mode not supported
|
// GPU mode not supported
|
||||||
if (eco < 0 && mux < 0)
|
if (eco < 0 && mux < 0)
|
||||||
{
|
{
|
||||||
@@ -73,12 +74,15 @@ namespace GHelper.Gpu
|
|||||||
var restart = false;
|
var restart = false;
|
||||||
var changed = false;
|
var changed = false;
|
||||||
|
|
||||||
|
int status;
|
||||||
|
|
||||||
if (CurrentGPU == AsusACPI.GPUModeUltimate)
|
if (CurrentGPU == AsusACPI.GPUModeUltimate)
|
||||||
{
|
{
|
||||||
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertUltimateOff, Properties.Strings.AlertUltimateTitle, MessageBoxButtons.YesNo);
|
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertUltimateOff, Properties.Strings.AlertUltimateTitle, MessageBoxButtons.YesNo);
|
||||||
if (dialogResult == DialogResult.Yes)
|
if (dialogResult == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
Program.acpi.DeviceSet(AsusACPI.GPUMux, 1, "GPUMux");
|
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 1, "GPUMux");
|
||||||
|
if (status != 1) Program.acpi.DeviceSet(AsusACPI.GPUMuxVivo, 1, "GPUMuxVivo");
|
||||||
restart = true;
|
restart = true;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
@@ -93,7 +97,8 @@ namespace GHelper.Gpu
|
|||||||
Program.acpi.SetGPUEco(0);
|
Program.acpi.SetGPUEco(0);
|
||||||
Thread.Sleep(100);
|
Thread.Sleep(100);
|
||||||
}
|
}
|
||||||
Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
|
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
|
||||||
|
if (status != 1) Program.acpi.DeviceSet(AsusACPI.GPUMuxVivo, 0, "GPUMuxVivo");
|
||||||
restart = true;
|
restart = true;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
Thread.Sleep(100);
|
Thread.Sleep(100);
|
||||||
if (brightness == ScreenBrightness.Get())
|
if (brightness == ScreenBrightness.Get())
|
||||||
Program.toast.RunToast(ScreenBrightness.Adjust(delta) + "%", (delta < 0 ) ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
|
Program.toast.RunToast(ScreenBrightness.Adjust(delta) + "%", (delta < 0) ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -388,10 +388,17 @@ namespace GHelper.Input
|
|||||||
modeControl.CyclePerformanceMode(Control.ModifierKeys == Keys.Shift);
|
modeControl.CyclePerformanceMode(Control.ModifierKeys == Keys.Shift);
|
||||||
break;
|
break;
|
||||||
case "ghelper":
|
case "ghelper":
|
||||||
Program.settingsForm.BeginInvoke(delegate
|
try
|
||||||
{
|
{
|
||||||
Program.SettingsToggle();
|
Program.settingsForm.BeginInvoke(delegate
|
||||||
});
|
{
|
||||||
|
Program.SettingsToggle();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(ex);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "fnlock":
|
case "fnlock":
|
||||||
ToggleFnLock();
|
ToggleFnLock();
|
||||||
@@ -433,6 +440,11 @@ namespace GHelper.Input
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ToggleTouchpad()
|
||||||
|
{
|
||||||
|
KeyboardHook.KeyCtrlWinPress(Keys.F24);
|
||||||
|
}
|
||||||
|
|
||||||
public static void ToggleArrowLock()
|
public static void ToggleArrowLock()
|
||||||
{
|
{
|
||||||
int arLock = AppConfig.Is("arrow_lock") ? 0 : 1;
|
int arLock = AppConfig.Is("arrow_lock") ? 0 : 1;
|
||||||
@@ -476,7 +488,7 @@ namespace GHelper.Input
|
|||||||
// We'll special-case the translation of those.
|
// We'll special-case the translation of those.
|
||||||
if (AppConfig.IsAlly())
|
if (AppConfig.IsAlly())
|
||||||
{
|
{
|
||||||
switch(EventID)
|
switch (EventID)
|
||||||
{
|
{
|
||||||
|
|
||||||
// This is both the M1 and M2 keys.
|
// This is both the M1 and M2 keys.
|
||||||
@@ -566,7 +578,7 @@ namespace GHelper.Input
|
|||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
||||||
break;
|
break;
|
||||||
case 107: // FN+F10
|
case 107: // FN+F10
|
||||||
AsusUSB.TouchpadToggle();
|
ToggleTouchpad();
|
||||||
Thread.Sleep(200);
|
Thread.Sleep(200);
|
||||||
Program.toast.RunToast(GetTouchpadState() ? "On" : "Off", ToastIcon.Touchpad);
|
Program.toast.RunToast(GetTouchpadState() ? "On" : "Off", ToastIcon.Touchpad);
|
||||||
break;
|
break;
|
||||||
@@ -643,7 +655,8 @@ namespace GHelper.Input
|
|||||||
else if (brightness >= 100) brightness = 0;
|
else if (brightness >= 100) brightness = 0;
|
||||||
else brightness = -10;
|
else brightness = -10;
|
||||||
|
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
brightness = Math.Max(Math.Min(100, brightness + delta), -10);
|
brightness = Math.Max(Math.Min(100, brightness + delta), -10);
|
||||||
}
|
}
|
||||||
@@ -652,9 +665,9 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
if (brightness >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
|
if (brightness >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
|
||||||
|
|
||||||
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(brightness * 255 / 100, 0 ), "Screenpad");
|
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(brightness * 255 / 100, 0), "Screenpad");
|
||||||
|
|
||||||
if (brightness < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
|
if (brightness < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
|
||||||
|
|
||||||
string toast;
|
string toast;
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ public sealed class KeyboardHook : IDisposable
|
|||||||
|
|
||||||
public const int KEYEVENTF_EXTENDEDKEY = 1;
|
public const int KEYEVENTF_EXTENDEDKEY = 1;
|
||||||
public const int KEYEVENTF_KEYUP = 2;
|
public const int KEYEVENTF_KEYUP = 2;
|
||||||
|
|
||||||
private const byte VK_LWIN = 0x5B;
|
private const byte VK_LWIN = 0x5B;
|
||||||
|
private const byte VK_LCONTROL = 0xA2;
|
||||||
|
|
||||||
public static void KeyPress(Keys key)
|
public static void KeyPress(Keys key)
|
||||||
{
|
{
|
||||||
@@ -32,6 +34,16 @@ public sealed class KeyboardHook : IDisposable
|
|||||||
keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void KeyCtrlWinPress(Keys key)
|
||||||
|
{
|
||||||
|
keybd_event(VK_LCONTROL, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
|
||||||
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
|
keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
|
keybd_event(VK_LCONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents the window that is used internally to get the messages.
|
/// Represents the window that is used internally to get the messages.
|
||||||
|
|||||||
@@ -153,6 +153,13 @@ namespace GHelper.Mode
|
|||||||
Guid guidScheme = new Guid(scheme);
|
Guid guidScheme = new Guid(scheme);
|
||||||
|
|
||||||
uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
||||||
|
|
||||||
|
if (GetBatterySaverStatus())
|
||||||
|
{
|
||||||
|
Logger.WriteLine("Battery Saver detected");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (status != 0 || activeScheme != guidScheme)
|
if (status != 0 || activeScheme != guidScheme)
|
||||||
{
|
{
|
||||||
status = PowerSetActiveOverlayScheme(guidScheme);
|
status = PowerSetActiveOverlayScheme(guidScheme);
|
||||||
@@ -288,6 +295,48 @@ namespace GHelper.Mode
|
|||||||
Logger.WriteLine("Setting Hibernate after " + seconds + ": " + (hrAC == 0 ? "OK" : hrAC));
|
Logger.WriteLine("Setting Hibernate after " + seconds + ": " + (hrAC == 0 ? "OK" : hrAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DllImport("Kernel32")]
|
||||||
|
private static extern bool GetSystemPowerStatus(SystemPowerStatus sps);
|
||||||
|
public enum ACLineStatus : byte
|
||||||
|
{
|
||||||
|
Offline = 0, Online = 1, Unknown = 255
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum BatteryFlag : byte
|
||||||
|
{
|
||||||
|
High = 1,
|
||||||
|
Low = 2,
|
||||||
|
Critical = 4,
|
||||||
|
Charging = 8,
|
||||||
|
NoSystemBattery = 128,
|
||||||
|
Unknown = 255
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fields must mirror their unmanaged counterparts, in order
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public class SystemPowerStatus
|
||||||
|
{
|
||||||
|
public ACLineStatus ACLineStatus;
|
||||||
|
public BatteryFlag BatteryFlag;
|
||||||
|
public Byte BatteryLifePercent;
|
||||||
|
public Byte SystemStatusFlag;
|
||||||
|
public Int32 BatteryLifeTime;
|
||||||
|
public Int32 BatteryFullLifeTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool GetBatterySaverStatus()
|
||||||
|
{
|
||||||
|
SystemPowerStatus sps = new SystemPowerStatus();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GetSystemPowerStatus(sps);
|
||||||
|
return (sps.SystemStatusFlag > 0);
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -758,7 +758,7 @@ namespace GHelper
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void VisualiseScreen(bool screenEnabled, bool screenAuto, int frequency, int maxFrequency, int overdrive, bool overdriveSetting, int miniled)
|
public void VisualiseScreen(bool screenEnabled, bool screenAuto, int frequency, int maxFrequency, int overdrive, bool overdriveSetting, int miniled, bool hdr)
|
||||||
{
|
{
|
||||||
|
|
||||||
ButtonEnabled(button60Hz, screenEnabled);
|
ButtonEnabled(button60Hz, screenEnabled);
|
||||||
@@ -800,6 +800,7 @@ namespace GHelper
|
|||||||
if (miniled >= 0)
|
if (miniled >= 0)
|
||||||
{
|
{
|
||||||
buttonMiniled.Activated = (miniled == 1);
|
buttonMiniled.Activated = (miniled == 1);
|
||||||
|
buttonMiniled.Enabled = !hdr;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1025,13 +1026,26 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HideUltimateMode()
|
public void VisualiseGPUButtons(bool eco = true, bool ultimate = true)
|
||||||
{
|
{
|
||||||
tableGPU.Controls.Remove(buttonUltimate);
|
if (!eco)
|
||||||
tablePerf.ColumnCount = 0;
|
{
|
||||||
tableGPU.ColumnCount = 0;
|
menuEco.Visible = buttonEco.Visible = false;
|
||||||
tableScreen.ColumnCount = 0;
|
menuOptimized.Visible = buttonOptimized.Visible = false;
|
||||||
menuUltimate.Visible = false;
|
buttonStopGPU.Visible = true;
|
||||||
|
tableGPU.ColumnCount = 3;
|
||||||
|
tableScreen.ColumnCount = 3;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
buttonStopGPU.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ultimate)
|
||||||
|
{
|
||||||
|
menuUltimate.Visible = buttonUltimate.Visible = false;
|
||||||
|
tableGPU.ColumnCount = 3;
|
||||||
|
tableScreen.ColumnCount = 3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HideGPUModes(bool gpuExists)
|
public void HideGPUModes(bool gpuExists)
|
||||||
@@ -1042,15 +1056,17 @@ namespace GHelper
|
|||||||
buttonStandard.Visible = false;
|
buttonStandard.Visible = false;
|
||||||
buttonUltimate.Visible = false;
|
buttonUltimate.Visible = false;
|
||||||
buttonOptimized.Visible = false;
|
buttonOptimized.Visible = false;
|
||||||
|
|
||||||
buttonStopGPU.Visible = true;
|
buttonStopGPU.Visible = true;
|
||||||
|
|
||||||
|
tableGPU.ColumnCount = 0;
|
||||||
|
|
||||||
SetContextMenu();
|
SetContextMenu();
|
||||||
|
|
||||||
panelGPU.Visible = gpuExists;
|
panelGPU.Visible = gpuExists;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void LockGPUModes(string text = null)
|
public void LockGPUModes(string text = null)
|
||||||
{
|
{
|
||||||
Invoke(delegate
|
Invoke(delegate
|
||||||
|
|||||||
@@ -279,6 +279,12 @@ Disable app's OSD (for performance modes, keyboard backlight, etc.)
|
|||||||
"disable_osd": 1,
|
"disable_osd": 1,
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Disable "Tablet mode" on X13/X16
|
||||||
|
To disable automatic touchpad toggling when laptop enteres / leaves tablet mode
|
||||||
|
```
|
||||||
|
"disable_tablet": 1,
|
||||||
|
```
|
||||||
|
|
||||||
### Extra Keybindings
|
### Extra Keybindings
|
||||||
- ``Ctrl + Shift + F5`` - Toggle Performance Modes
|
- ``Ctrl + Shift + F5`` - Toggle Performance Modes
|
||||||
- ``Ctrl + Shift + F12`` - Open G-Helper window
|
- ``Ctrl + Shift + F12`` - Open G-Helper window
|
||||||
|
|||||||
Reference in New Issue
Block a user