From f072dbe02005df90fa9f7a8ab8f2ce64ae82aa3e Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Fri, 5 Apr 2024 14:06:59 +0200 Subject: [PATCH] Refresh rate hotkey https://github.com/seerge/g-helper/issues/2389 --- app/Display/ScreenControl.cs | 10 ++++++++++ app/Input/InputDispatcher.cs | 12 ++++++++++++ 2 files changed, 22 insertions(+) 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;