diff --git a/app/Helpers/ClamshellModeControl.cs b/app/Helpers/ClamshellModeControl.cs
index d4fb59fc..b5c39831 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();
@@ -31,7 +38,7 @@ namespace GHelper.Helpers
public bool IsClamshellEnabled()
{
- return AppConfig.Get("toggle_clamshell_mode") != 0;
+ return AppConfig.Is("toggle_clamshell_mode");
}
public bool IsChargerConnected()
@@ -62,7 +69,7 @@ namespace GHelper.Helpers
}
public static void DisableClamshellMode()
{
- PowerNative.SetLidAction(1, true);
+ PowerNative.SetLidAction(GetDefaultLidAction(), true);
Logger.WriteLine("Disengaging Clamshell Mode");
}
@@ -89,5 +96,43 @@ namespace GHelper.Helpers
if (IsClamshellEnabled())
ToggleLidAction();
}
+
+ 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?
+ //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)
+ //2 = Hibernate
+ //3 = Shutdown
+ private static int GetDefaultLidAction()
+ {
+ int val = AppConfig.Get("clamshell_default_lid_action", 1);
+
+ if (val < 0 || val > 3)
+ {
+ val = 1;
+ }
+
+ return val;
+ }
}
}
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)
{
/**
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