diff --git a/app/Display/ScreenControl.cs b/app/Display/ScreenControl.cs index 797a983a..dc0f6ceb 100644 --- a/app/Display/ScreenControl.cs +++ b/app/Display/ScreenControl.cs @@ -21,6 +21,16 @@ } } + public void ToggleScreenRate() + { + var laptopScreen = ScreenNative.FindLaptopScreen(true); + var refreshRate = ScreenNative.GetRefreshRate(laptopScreen); + if (refreshRate < 0) return; + + ScreenNative.SetRefreshRate(laptopScreen, refreshRate > 60 ? 60 : ScreenNative.GetMaxRefreshRate(laptopScreen)); + InitScreen(); + } + public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1) { diff --git a/app/Input/InputDispatcher.cs b/app/Input/InputDispatcher.cs index c0b94208..f7211a69 100644 --- a/app/Input/InputDispatcher.cs +++ b/app/Input/InputDispatcher.cs @@ -118,6 +118,8 @@ namespace GHelper.Input if (!AppConfig.Is("skip_hotkeys")) { + hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F13); + hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F15); @@ -128,6 +130,7 @@ namespace GHelper.Input 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); @@ -385,6 +388,9 @@ namespace GHelper.Input case Keys.F4: Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey); break; + case Keys.F13: + ToggleScreenRate(); + break; case Keys.F14: Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeEco); break; @@ -836,6 +842,12 @@ namespace GHelper.Input Program.toast.RunToast($"Screen Pad " + (toggle == 1 ? "On" : "Off"), toggle > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown); } + public static void ToggleScreenRate() + { + AppConfig.Set("screen_auto", 0); + screenControl.ToggleScreenRate(); + } + public static void ToggleCamera() { if (!ProcessHelper.IsUserAdministrator()) return;