Compare commits

...

10 Commits

7 changed files with 45 additions and 16 deletions

View File

@@ -413,7 +413,7 @@ public static class AppConfig
public static bool IsDUO()
{
return ContainsModel("Duo") || ContainsModel("GX550") || ContainsModel("GX650");
return ContainsModel("Duo") || ContainsModel("GX550") || ContainsModel("GX650") || ContainsModel("UX840");
}
// G14 2020 has no aura, but media keys instead
@@ -454,7 +454,7 @@ public static class AppConfig
public static bool IsOLED()
{
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606") || ContainsModel("UX5406") || ContainsModel("UM5606");
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606") || ContainsModel("UX5406") || ContainsModel("M5606");
}
public static bool IsNoOverdrive()

View File

@@ -6,7 +6,14 @@ namespace GHelper.Display
{
public const int MAX_REFRESH = 1000;
public static int MIN_RATE = AppConfig.Get("min_rate", 60);
public static int MAX_RATE = AppConfig.Get("max_rate");
public static int GetMaxRate(string? laptopScreen)
{
if (MAX_RATE > 0) return MAX_RATE;
else return ScreenNative.GetMaxRefreshRate(laptopScreen);
}
public void AutoScreen(bool force = false)
{
@@ -15,7 +22,7 @@ namespace GHelper.Display
if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online)
SetScreen(MAX_REFRESH, 1);
else
SetScreen(60, 0);
SetScreen(MIN_RATE, 0);
}
else
{
@@ -29,7 +36,7 @@ namespace GHelper.Display
var refreshRate = ScreenNative.GetRefreshRate(laptopScreen);
if (refreshRate < 0) return;
ScreenNative.SetRefreshRate(laptopScreen, refreshRate > 60 ? 60 : ScreenNative.GetMaxRefreshRate(laptopScreen));
ScreenNative.SetRefreshRate(laptopScreen, refreshRate > MIN_RATE ? MIN_RATE : GetMaxRate(laptopScreen));
InitScreen();
}
@@ -43,7 +50,7 @@ namespace GHelper.Display
if (frequency >= MAX_REFRESH)
{
frequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
frequency = GetMaxRate(laptopScreen);
}
if (frequency > 0 && frequency != refreshRate)
@@ -151,7 +158,7 @@ namespace GHelper.Display
{
var laptopScreen = ScreenNative.FindLaptopScreen();
int frequency = ScreenNative.GetRefreshRate(laptopScreen);
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
int maxFrequency = GetMaxRate(laptopScreen);
if (maxFrequency > 0) AppConfig.Set("max_frequency", maxFrequency);
else maxFrequency = AppConfig.Get("max_frequency");

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.196</AssemblyVersion>
<AssemblyVersion>0.197</AssemblyVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -106,7 +106,7 @@ public class Startup
{
td.RegistrationInfo.Description = "G-Helper Auto Start";
td.Triggers.Add(new LogonTrigger { UserId = WindowsIdentity.GetCurrent().Name, Delay = TimeSpan.FromSeconds(1) });
td.Triggers.Add(new LogonTrigger { UserId = WindowsIdentity.GetCurrent().Name, Delay = TimeSpan.FromSeconds(2) });
td.Actions.Add(strExeFilePath);
if (ProcessHelper.IsUserAdministrator())

View File

@@ -118,6 +118,13 @@ namespace GHelper.Input
if (!AppConfig.Is("skip_hotkeys"))
{
if (AppConfig.IsDUO())
{
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F7);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F8);
}
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F13);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14);
@@ -129,8 +136,6 @@ namespace GHelper.Input
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F19);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F20);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp);
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown);
@@ -435,6 +440,12 @@ namespace GHelper.Input
case Keys.F4:
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
break;
case Keys.F7:
SetScreenpad(-10);
break;
case Keys.F8:
SetScreenpad(10);
break;
case Keys.F13:
ToggleScreenRate();
break;
@@ -735,6 +746,7 @@ namespace GHelper.Input
KeyProcess("fne");
return;
case 174: // FN+F5
case 157: // Zenbook DUO FN+F
modeControl.CyclePerformanceMode(Control.ModifierKeys == Keys.Shift);
return;
case 179: // FN+F4

View File

@@ -10,6 +10,8 @@ namespace GHelper.Input
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
Action<int> _handler;
static int retry = 0;
public KeyboardListener(Action<int> KeyHandler)
{
_handler = KeyHandler;
@@ -67,6 +69,12 @@ namespace GHelper.Input
catch (Exception ex)
{
Logger.WriteLine($"Listener exited: {ex.Message}");
if (retry++ < 2)
{
Thread.Sleep(300);
Logger.WriteLine($"Restarting listener {retry}");
Listen();
}
}
}

View File

@@ -850,7 +850,7 @@ namespace GHelper
private void Button60Hz_MouseHover(object? sender, EventArgs e)
{
labelTipScreen.Text = Properties.Strings.MinRefreshTooltip;
labelTipScreen.Text = Properties.Strings.MinRefreshTooltip.Replace("60", ScreenControl.MIN_RATE.ToString());
}
private void ButtonScreen_MouseLeave(object? sender, EventArgs e)
@@ -860,7 +860,7 @@ namespace GHelper
private void ButtonScreenAuto_MouseHover(object? sender, EventArgs e)
{
labelTipScreen.Text = Properties.Strings.AutoRefreshTooltip;
labelTipScreen.Text = Properties.Strings.AutoRefreshTooltip.Replace("60", ScreenControl.MIN_RATE.ToString());
}
private void ButtonUltimate_MouseHover(object? sender, EventArgs e)
@@ -1215,7 +1215,7 @@ namespace GHelper
private void Button60Hz_Click(object? sender, EventArgs e)
{
AppConfig.Set("screen_auto", 0);
screenControl.SetScreen(60, 0);
screenControl.SetScreen(ScreenControl.MIN_RATE, 0);
}
@@ -1246,16 +1246,18 @@ namespace GHelper
{
buttonScreenAuto.Activated = true;
}
else if (frequency == 60)
else if (frequency == ScreenControl.MIN_RATE)
{
button60Hz.Activated = true;
}
else if (frequency > 60)
else if (frequency > ScreenControl.MIN_RATE)
{
button120Hz.Activated = true;
}
if (maxFrequency > 60)
button60Hz.Text = ScreenControl.MIN_RATE + "Hz";
if (maxFrequency > ScreenControl.MIN_RATE)
{
button120Hz.Text = maxFrequency.ToString() + "Hz" + (overdriveSetting ? " + OD" : "");
panelScreen.Visible = true;