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 | |
|---|---|---|---|
|
|
9d30f2f83e | ||
|
|
b93f1a385b | ||
|
|
6bb4ba4119 | ||
|
|
178cb04002 | ||
|
|
2d41cd62a8 | ||
|
|
f9e4e89c15 | ||
|
|
02717c47be | ||
|
|
cc010053b2 |
@@ -284,6 +284,11 @@ public static class AppConfig
|
|||||||
return ContainsModel("TUF");
|
return ContainsModel("TUF");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsVivobook()
|
||||||
|
{
|
||||||
|
return ContainsModel("Vivobook");
|
||||||
|
}
|
||||||
|
|
||||||
// Devices with bugged bios command to change brightness
|
// Devices with bugged bios command to change brightness
|
||||||
public static bool SwappedBrightness()
|
public static bool SwappedBrightness()
|
||||||
{
|
{
|
||||||
@@ -335,7 +340,7 @@ public static class AppConfig
|
|||||||
|
|
||||||
public static bool NoAutoUltimate()
|
public static bool NoAutoUltimate()
|
||||||
{
|
{
|
||||||
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507");
|
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ public class AsusACPI
|
|||||||
public const uint ScreenOverdrive = 0x00050019;
|
public const uint ScreenOverdrive = 0x00050019;
|
||||||
public const uint ScreenMiniled = 0x0005001E;
|
public const uint ScreenMiniled = 0x0005001E;
|
||||||
|
|
||||||
|
public const uint DevsCPUFan = 0x00110022;
|
||||||
|
public const uint DevsGPUFan = 0x00110023;
|
||||||
|
|
||||||
public const uint DevsCPUFanCurve = 0x00110024;
|
public const uint DevsCPUFanCurve = 0x00110024;
|
||||||
public const uint DevsGPUFanCurve = 0x00110025;
|
public const uint DevsGPUFanCurve = 0x00110025;
|
||||||
public const uint DevsMidFanCurve = 0x00110032;
|
public const uint DevsMidFanCurve = 0x00110032;
|
||||||
@@ -90,6 +93,8 @@ public class AsusACPI
|
|||||||
public const int TUF_KB = 0x00100056;
|
public const int TUF_KB = 0x00100056;
|
||||||
public const int TUF_KB_STATE = 0x00100057;
|
public const int TUF_KB_STATE = 0x00100057;
|
||||||
|
|
||||||
|
public const int MICMUTE_LED = 0x00040017;
|
||||||
|
|
||||||
public const int TabletState = 0x00060077;
|
public const int TabletState = 0x00060077;
|
||||||
public const int FnLock = 0x00100023;
|
public const int FnLock = 0x00100023;
|
||||||
|
|
||||||
@@ -336,6 +341,25 @@ public class AsusACPI
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int SetFanRange(AsusFan device, byte[] curve)
|
||||||
|
{
|
||||||
|
byte min = (byte)(curve[8] * 255 / 100);
|
||||||
|
byte max = (byte)(curve[15] * 255 / 100);
|
||||||
|
byte[] range = { min, max};
|
||||||
|
|
||||||
|
int result;
|
||||||
|
switch (device)
|
||||||
|
{
|
||||||
|
case AsusFan.GPU:
|
||||||
|
result = DeviceSet(DevsGPUFan, range, "FanRangeGPU");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
result = DeviceSet(DevsCPUFan, range, "FanRangeCPU");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public int SetFanCurve(AsusFan device, byte[] curve)
|
public int SetFanCurve(AsusFan device, byte[] curve)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ namespace GHelper
|
|||||||
public static Color Color1 = Color.White;
|
public static Color Color1 = Color.White;
|
||||||
public static Color Color2 = Color.Black;
|
public static Color Color2 = Color.Black;
|
||||||
|
|
||||||
static bool isTuf = AppConfig.IsTUF();
|
static bool isTuf = AppConfig.IsTUF() || AppConfig.IsVivobook();
|
||||||
static bool isStrix = AppConfig.IsStrix();
|
static bool isStrix = AppConfig.IsStrix();
|
||||||
|
|
||||||
static public bool isSingleColor = false;
|
static public bool isSingleColor = false;
|
||||||
|
|||||||
3
app/Extra.Designer.cs
generated
3
app/Extra.Designer.cs
generated
@@ -31,6 +31,7 @@ namespace GHelper
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
|
components = new System.ComponentModel.Container();
|
||||||
panelServices = new Panel();
|
panelServices = new Panel();
|
||||||
pictureService = new PictureBox();
|
pictureService = new PictureBox();
|
||||||
labelServices = new Label();
|
labelServices = new Label();
|
||||||
@@ -113,6 +114,7 @@ namespace GHelper
|
|||||||
numericHibernateAfter = new NumericUpDown();
|
numericHibernateAfter = new NumericUpDown();
|
||||||
labelHibernateAfter = new Label();
|
labelHibernateAfter = new Label();
|
||||||
pictureHibernate = new PictureBox();
|
pictureHibernate = new PictureBox();
|
||||||
|
toolTip = new ToolTip(components);
|
||||||
panelServices.SuspendLayout();
|
panelServices.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureService).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureService).BeginInit();
|
||||||
panelBindingsHeader.SuspendLayout();
|
panelBindingsHeader.SuspendLayout();
|
||||||
@@ -1353,5 +1355,6 @@ namespace GHelper
|
|||||||
private Label labelHibernateAfter;
|
private Label labelHibernateAfter;
|
||||||
private NumericUpDown numericHibernateAfter;
|
private NumericUpDown numericHibernateAfter;
|
||||||
private CheckBox checkGPUFix;
|
private CheckBox checkGPUFix;
|
||||||
|
private ToolTip toolTip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -320,6 +320,8 @@ namespace GHelper
|
|||||||
checkGPUFix.Checked = AppConfig.IsGPUFix();
|
checkGPUFix.Checked = AppConfig.IsGPUFix();
|
||||||
checkGPUFix.CheckedChanged += CheckGPUFix_CheckedChanged;
|
checkGPUFix.CheckedChanged += CheckGPUFix_CheckedChanged;
|
||||||
|
|
||||||
|
toolTip.SetToolTip(checkAutoToggleClamshellMode, "Disable sleep on lid close when plugged in and external monitor is connected");
|
||||||
|
|
||||||
InitVariBright();
|
InitVariBright();
|
||||||
InitServices();
|
InitServices();
|
||||||
InitHibernate();
|
InitHibernate();
|
||||||
@@ -401,7 +403,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
buttonServices.Enabled = false;
|
buttonServices.Enabled = false;
|
||||||
|
|
||||||
if (OptimizationService.IsRunning())
|
if (OptimizationService.GetRunningCount() > 0)
|
||||||
{
|
{
|
||||||
labelServices.Text = Properties.Strings.StoppingServices + " ...";
|
labelServices.Text = Properties.Strings.StoppingServices + " ...";
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
|
|||||||
@@ -117,4 +117,7 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.116</AssemblyVersion>
|
<AssemblyVersion>0.118</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public static class HardwareControl
|
|||||||
if (_fanMax < 0 && AppConfig.ContainsModel("503")) _fanMax = 68;
|
if (_fanMax < 0 && AppConfig.ContainsModel("503")) _fanMax = 68;
|
||||||
if (_fanMax < 0) _fanMax = DEFAULT_FAN_MAX;
|
if (_fanMax < 0) _fanMax = DEFAULT_FAN_MAX;
|
||||||
|
|
||||||
_fanRpm = AppConfig.Is("fan_rpm");
|
_fanRpm = AppConfig.IsNotFalse("fan_rpm");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,15 @@ namespace GHelper.Input
|
|||||||
if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
|
if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
|
||||||
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
|
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
|
||||||
|
|
||||||
|
// Arrow-lock group
|
||||||
|
if (AppConfig.Is("arrow_lock") && AppConfig.IsDUO())
|
||||||
|
{
|
||||||
|
hook.RegisterHotKey(ModifierKeys.None, Keys.Left);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.None, Keys.Right);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.None, Keys.Up);
|
||||||
|
hook.RegisterHotKey(ModifierKeys.None, Keys.Down);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CustomKey(string configKey = "m3")
|
static void CustomKey(string configKey = "m3")
|
||||||
@@ -272,6 +281,18 @@ namespace GHelper.Input
|
|||||||
case Keys.VolumeUp:
|
case Keys.VolumeUp:
|
||||||
KeyProcess("m2");
|
KeyProcess("m2");
|
||||||
break;
|
break;
|
||||||
|
case Keys.Left:
|
||||||
|
KeyboardHook.KeyPress(Keys.Home);
|
||||||
|
break;
|
||||||
|
case Keys.Right:
|
||||||
|
KeyboardHook.KeyPress(Keys.End);
|
||||||
|
break;
|
||||||
|
case Keys.Up:
|
||||||
|
KeyboardHook.KeyPress(Keys.PageUp);
|
||||||
|
break;
|
||||||
|
case Keys.Down:
|
||||||
|
KeyboardHook.KeyPress(Keys.PageDown);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -355,7 +376,7 @@ namespace GHelper.Input
|
|||||||
break;
|
break;
|
||||||
case "screen":
|
case "screen":
|
||||||
Logger.WriteLine("Screen off toggle");
|
Logger.WriteLine("Screen off toggle");
|
||||||
NativeMethods.TurnOffScreen(Program.settingsForm.Handle);
|
NativeMethods.TurnOffScreen();
|
||||||
break;
|
break;
|
||||||
case "miniled":
|
case "miniled":
|
||||||
screenControl.ToogleMiniled();
|
screenControl.ToogleMiniled();
|
||||||
@@ -378,6 +399,7 @@ namespace GHelper.Input
|
|||||||
case "micmute":
|
case "micmute":
|
||||||
bool muteStatus = Audio.ToggleMute();
|
bool muteStatus = Audio.ToggleMute();
|
||||||
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
||||||
|
if (AppConfig.IsVivobook()) Program.acpi.DeviceSet(AsusACPI.MICMUTE_LED, muteStatus ? 1 : 0, "MicmuteLed");
|
||||||
break;
|
break;
|
||||||
case "brightness_up":
|
case "brightness_up":
|
||||||
SetBrightness(+10);
|
SetBrightness(+10);
|
||||||
@@ -411,6 +433,15 @@ namespace GHelper.Input
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ToggleArrowLock()
|
||||||
|
{
|
||||||
|
int arLock = AppConfig.Is("arrow_lock") ? 0 : 1;
|
||||||
|
AppConfig.Set("arrow_lock", arLock);
|
||||||
|
|
||||||
|
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
|
||||||
|
Program.toast.RunToast("Arrow-Lock " + (arLock == 1 ? "On" : "Off"), ToastIcon.FnLock);
|
||||||
|
}
|
||||||
|
|
||||||
public static void ToggleFnLock()
|
public static void ToggleFnLock()
|
||||||
{
|
{
|
||||||
int fnLock = AppConfig.Is("fn_lock") ? 0 : 1;
|
int fnLock = AppConfig.Is("fn_lock") ? 0 : 1;
|
||||||
@@ -492,6 +523,9 @@ namespace GHelper.Input
|
|||||||
case 78: // Fn + ESC
|
case 78: // Fn + ESC
|
||||||
ToggleFnLock();
|
ToggleFnLock();
|
||||||
return;
|
return;
|
||||||
|
case 75: // Fn + ESC
|
||||||
|
ToggleArrowLock();
|
||||||
|
return;
|
||||||
case 189: // Tablet mode
|
case 189: // Tablet mode
|
||||||
TabletMode();
|
TabletMode();
|
||||||
return;
|
return;
|
||||||
@@ -505,7 +539,7 @@ namespace GHelper.Input
|
|||||||
SetBacklight(4);
|
SetBacklight(4);
|
||||||
return;
|
return;
|
||||||
case 53: // FN+F6 on GA-502DU model
|
case 53: // FN+F6 on GA-502DU model
|
||||||
NativeMethods.TurnOffScreen(Program.settingsForm.Handle);
|
NativeMethods.TurnOffScreen();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -536,6 +570,11 @@ namespace GHelper.Input
|
|||||||
case 108: // FN+F11
|
case 108: // FN+F11
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.KB_Sleep, "Sleep");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.KB_Sleep, "Sleep");
|
||||||
break;
|
break;
|
||||||
|
case 106: // Screenpad button on DUO
|
||||||
|
SetScreenpad(100);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -593,14 +632,33 @@ namespace GHelper.Input
|
|||||||
public static void SetScreenpad(int delta)
|
public static void SetScreenpad(int delta)
|
||||||
{
|
{
|
||||||
int brightness = AppConfig.Get("screenpad", 100);
|
int brightness = AppConfig.Get("screenpad", 100);
|
||||||
brightness = Math.Max(Math.Min(100, brightness + delta), 0);
|
|
||||||
|
if (delta == 100)
|
||||||
|
{
|
||||||
|
if (brightness < 0) brightness = 100;
|
||||||
|
else if (brightness >= 100) brightness = 0;
|
||||||
|
else brightness = -10;
|
||||||
|
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
brightness = Math.Max(Math.Min(100, brightness + delta), -10);
|
||||||
|
}
|
||||||
|
|
||||||
AppConfig.Set("screenpad", brightness);
|
AppConfig.Set("screenpad", brightness);
|
||||||
|
|
||||||
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, (brightness * 255 / 100), "Screenpad");
|
if (brightness >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
|
||||||
if (brightness == 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, brightness, "ScreenpadToggle");
|
|
||||||
|
|
||||||
Program.toast.RunToast($"Screen Pad {brightness}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(brightness * 255 / 100, 0 ), "Screenpad");
|
||||||
|
|
||||||
|
if (brightness < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
|
||||||
|
|
||||||
|
string toast;
|
||||||
|
|
||||||
|
if (brightness < 0) toast = "Off";
|
||||||
|
else if (brightness == 0) toast = "Hidden";
|
||||||
|
else toast = brightness.ToString() + "%";
|
||||||
|
|
||||||
|
Program.toast.RunToast($"Screen Pad {toast}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -148,10 +148,16 @@ namespace GHelper.Mode
|
|||||||
// something went wrong, resetting to default profile
|
// something went wrong, resetting to default profile
|
||||||
if (cpuResult != 1 || gpuResult != 1)
|
if (cpuResult != 1 || gpuResult != 1)
|
||||||
{
|
{
|
||||||
int mode = Modes.GetCurrentBase();
|
cpuResult = Program.acpi.SetFanRange(AsusFan.CPU, AppConfig.GetFanConfig(AsusFan.CPU));
|
||||||
Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
|
gpuResult = Program.acpi.SetFanRange(AsusFan.GPU, AppConfig.GetFanConfig(AsusFan.GPU));
|
||||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode");
|
|
||||||
settings.LabelFansResult("ASUS BIOS rejected fan curve");
|
if (cpuResult != 1 || gpuResult != 1)
|
||||||
|
{
|
||||||
|
int mode = Modes.GetCurrentBase();
|
||||||
|
Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode");
|
||||||
|
settings.LabelFansResult("ASUS BIOS rejected fan curve");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ public class NativeMethods
|
|||||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
private static extern uint FormatMessage(uint dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, out string lpBuffer, uint nSize, IntPtr Arguments);
|
private static extern uint FormatMessage(uint dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, out string lpBuffer, uint nSize, IntPtr Arguments);
|
||||||
|
|
||||||
public static void TurnOffScreen(IntPtr handle)
|
public static void TurnOffScreen()
|
||||||
{
|
{
|
||||||
IntPtr result = SendMessage(handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MONITOR_OFF);
|
IntPtr result = SendMessage(-1, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MONITOR_OFF);
|
||||||
if (result == IntPtr.Zero)
|
if (result == IntPtr.Zero)
|
||||||
{
|
{
|
||||||
int error = Marshal.GetLastWin32Error();
|
int error = Marshal.GetLastWin32Error();
|
||||||
|
|||||||
@@ -700,6 +700,8 @@ namespace GHelper
|
|||||||
comboKeyboard.SelectedIndex += 1;
|
comboKeyboard.SelectedIndex += 1;
|
||||||
else
|
else
|
||||||
comboKeyboard.SelectedIndex = 0;
|
comboKeyboard.SelectedIndex = 0;
|
||||||
|
|
||||||
|
Program.toast.RunToast(comboKeyboard.GetItemText(comboKeyboard.SelectedItem), ToastIcon.BacklightUp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e)
|
private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
|
|||||||
Reference in New Issue
Block a user