From eeb53cb4839950b781fa099f4cdffca49b45c0e5 Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Wed, 26 Jul 2023 20:23:50 +0200 Subject: [PATCH 1/6] New translations Strings.resx (Lithuanian) --- app/Properties/Strings.lt.resx | 38 +++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/app/Properties/Strings.lt.resx b/app/Properties/Strings.lt.resx index bb30cbe3..a2d9553c 100644 --- a/app/Properties/Strings.lt.resx +++ b/app/Properties/Strings.lt.resx @@ -163,13 +163,13 @@ Veikiančios Asus tarnybos - Battery State + Būsena Kvėpavimas - Clockwise + Pagal laikrodžio rodyklę Spalvų ciklas @@ -178,7 +178,7 @@ Comet - Counterclockwise + Prieš laikrodžio rodyklę Greitas @@ -190,7 +190,7 @@ Vaivorykštė - Random + Atsitiktinė React @@ -211,7 +211,7 @@ Automatinis - Nustato 60Hz, kad stokotų akumuliatorių, ir atgal, kai prijungtas prie lizdo + Nustato 60Hz, kad taupytų energiją, ir atgal, kai įjungtas į lizdą Pabudęs @@ -271,7 +271,7 @@ Tvarkyklės ir programinė įranga - Išjungia dGPU, kad stokotų akumuliatorių + Išjungia dGPU, kad taupytų energiją Ekonomiškas @@ -381,7 +381,7 @@ Vis tiek norite tęsti? Šviesos juosta - Lighting + Apšvietimas Logotipas @@ -420,25 +420,25 @@ Vis tiek norite tęsti? Maksimalus kadrų dažnis už mažesnę delsą - 60Hz kadrų dažnis, kad stokotumėte akumuliatorių + 60Hz kadrų dažnis, kad taupytumėte energiją - Minute + min. - Minutes + min. Angle Snapping - Auto Power Off After + Automatiškai išjungti po Pakilimo atstumas - Low Battery Warning at + Senkančio akumuliatoriaus įspėjimas Našumas @@ -453,16 +453,16 @@ Vis tiek norite tęsti? Mikrofono nutildymas - Never + Niekada - Prieinami naujinimai + Nauji naujinimai - Nėra prieinamų naujinimų + Nėra naujų naujinimų - Not Connected + Neprijungta Atidaryti G-Helper langą @@ -471,7 +471,7 @@ Vis tiek norite tęsti? Optimizuotas - Perjungti į ekonomišką, kai naudojamas akumuliatorius, ir į standartinį, kai prijungtas prie lizdo + Perjungti į ekonomišką, kai naudojamas akumuliatorius, ir į standartinį, kai įjungtas į lizdą Neįjungti GPU, kai naudojamas USB-C įkroviklis optimizuotame režime @@ -486,7 +486,7 @@ Vis tiek norite tęsti? Režimas - Peripherals + Išoriniai įrenginiai Paveikslėlis / GIF @@ -495,7 +495,7 @@ Vis tiek norite tęsti? Paleisti / Pristabdyti - Polling Rate + Iškvietų dažnis Galios ribos From ccb413b2e62196cda4d33f3ccacb52efb55aacaf Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Wed, 26 Jul 2023 21:13:24 +0200 Subject: [PATCH 2/6] Clamshell mode is now properly off by default --- app/Helpers/ClamshellModeControl.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs index d4fb59fc..89fdf00b 100644 --- a/app/Helpers/ClamshellModeControl.cs +++ b/app/Helpers/ClamshellModeControl.cs @@ -31,7 +31,7 @@ namespace GHelper.Helpers public bool IsClamshellEnabled() { - return AppConfig.Get("toggle_clamshell_mode") != 0; + return AppConfig.Is("toggle_clamshell_mode"); } public bool IsChargerConnected() From 254e6a8633b829ed01c8d1a31074d27b906693a8 Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Wed, 26 Jul 2023 21:14:03 +0200 Subject: [PATCH 3/6] Users can set a config option clamshell_default_lid_action to set their desired option when clamshell is not engaged. --- app/Helpers/ClamshellModeControl.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs index 89fdf00b..0210dda7 100644 --- a/app/Helpers/ClamshellModeControl.cs +++ b/app/Helpers/ClamshellModeControl.cs @@ -62,7 +62,7 @@ namespace GHelper.Helpers } public static void DisableClamshellMode() { - PowerNative.SetLidAction(1, true); + PowerNative.SetLidAction(GetDefaultLidAction(), true); Logger.WriteLine("Disengaging Clamshell Mode"); } @@ -89,5 +89,15 @@ namespace GHelper.Helpers if (IsClamshellEnabled()) ToggleLidAction(); } + + //Power users can change that setting. + //0 = Do nothing + //1 = Sleep (default) + //2 = Hibernate + //3 = Shutdown + private static int GetDefaultLidAction() + { + return AppConfig.Get("clamshell_default_lid_action", 1); + } } } From e16a50f1f2677cfc401accb883e49229000257b7 Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Wed, 26 Jul 2023 21:16:30 +0200 Subject: [PATCH 4/6] Safeguard to prevent users from choosing invalid options. --- app/Helpers/ClamshellModeControl.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs index 0210dda7..539b516c 100644 --- a/app/Helpers/ClamshellModeControl.cs +++ b/app/Helpers/ClamshellModeControl.cs @@ -97,7 +97,14 @@ namespace GHelper.Helpers //3 = Shutdown private static int GetDefaultLidAction() { - return AppConfig.Get("clamshell_default_lid_action", 1); + int val = AppConfig.Get("clamshell_default_lid_action", 1); + + if (val < 0 || val > 3) + { + val = 1; + } + + return val; } } } From cff2c9af0b7337f22f0cc6e2f9f366d53ccb85dd Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Wed, 26 Jul 2023 23:15:28 +0200 Subject: [PATCH 5/6] Save lid action to config file during startup if user has set it to hibernate or shutdown. --- app/Helpers/ClamshellModeControl.cs | 22 ++++++++++++++++++++++ app/Mode/PowerNative.cs | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs index 539b516c..9bc02461 100644 --- a/app/Helpers/ClamshellModeControl.cs +++ b/app/Helpers/ClamshellModeControl.cs @@ -6,6 +6,13 @@ namespace GHelper.Helpers { internal class ClamshellModeControl { + + public ClamshellModeControl() + { + //Save current setting if hibernate or shutdown to prevent reverting the user set option. + CheckAndSaveLidAction(); + } + public bool IsExternalDisplayConnected() { var devices = ScreenInterrogatory.GetAllDevices().ToArray(); @@ -90,6 +97,21 @@ namespace GHelper.Helpers ToggleLidAction(); } + private static int CheckAndSaveLidAction() + { + int val = PowerNative.GetLidAction(true); + //If it is 0 then it is likely already set by clamshell mdoe + //If 0 was set by the user, then why do they even use clamshell mode? + //We only care about hibernate or shutdown setting here + if (val == 2 || val == 3) + { + AppConfig.Set("clamshell_default_lid_action", val); + return val; + } + + return 1; + } + //Power users can change that setting. //0 = Do nothing //1 = Sleep (default) diff --git a/app/Mode/PowerNative.cs b/app/Mode/PowerNative.cs index 06a65bb2..ae70ee60 100644 --- a/app/Mode/PowerNative.cs +++ b/app/Mode/PowerNative.cs @@ -167,6 +167,28 @@ namespace GHelper.Mode } } + public static int GetLidAction(bool ac) + { + Guid activeSchemeGuid = GetActiveScheme(); + + IntPtr activeIndex; + if (ac) + PowerReadACValueIndex(IntPtr.Zero, + activeSchemeGuid, + GUID_SYSTEM_BUTTON_SUBGROUP, + GUID_LIDACTION, out activeIndex); + + else + PowerReadDCValueIndex(IntPtr.Zero, + activeSchemeGuid, + GUID_SYSTEM_BUTTON_SUBGROUP, + GUID_LIDACTION, out activeIndex); + + + return activeIndex.ToInt32(); + } + + public static void SetLidAction(int action, bool acOnly = false) { /** From dfe4bebe58afc104f3b0153e00f0ab9af9238c83 Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Wed, 26 Jul 2023 23:19:36 +0200 Subject: [PATCH 6/6] Only write the setting if it does not exist yet. --- app/Helpers/ClamshellModeControl.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs index 9bc02461..b5c39831 100644 --- a/app/Helpers/ClamshellModeControl.cs +++ b/app/Helpers/ClamshellModeControl.cs @@ -99,6 +99,12 @@ namespace GHelper.Helpers private static int CheckAndSaveLidAction() { + if (AppConfig.Get("clamshell_default_lid_action", -1) != -1) + { + //Seting was alredy set. Do not touch it + return AppConfig.Get("clamshell_default_lid_action", -1); + } + int val = PowerNative.GetLidAction(true); //If it is 0 then it is likely already set by clamshell mdoe //If 0 was set by the user, then why do they even use clamshell mode?