mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b64f89351 | ||
|
|
de10360224 | ||
|
|
63828e3db7 | ||
|
|
8b66e95b8b | ||
|
|
cd930cebf9 | ||
|
|
7bdaca93d5 | ||
|
|
ef6990c528 | ||
|
|
72f01321ae | ||
|
|
e6767126c9 | ||
|
|
50f0c82b70 | ||
|
|
12587e222f | ||
|
|
dfb51b897e | ||
|
|
cc36184834 | ||
|
|
338a5e85f4 | ||
|
|
632ed073a1 | ||
|
|
07a1ea46c7 | ||
|
|
8e0bea59aa | ||
|
|
0deccfa47a |
@@ -41,10 +41,19 @@ public static class AppConfig
|
||||
{
|
||||
config = JsonSerializer.Deserialize<Dictionary<string, object>>(text);
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("Broken config: " + text);
|
||||
Init();
|
||||
Logger.WriteLine($"Broken config: {ex.Message} {text}");
|
||||
try
|
||||
{
|
||||
text = File.ReadAllText(configFile + ".bak");
|
||||
config = JsonSerializer.Deserialize<Dictionary<string, object>>(text);
|
||||
}
|
||||
catch (Exception exb)
|
||||
{
|
||||
Logger.WriteLine($"Broken backup config: {exb.Message} {text}");
|
||||
Init();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -422,7 +431,7 @@ public static class AppConfig
|
||||
|
||||
public static bool IsInputBacklight()
|
||||
{
|
||||
return ContainsModel("GA503") || IsSlash();
|
||||
return ContainsModel("GA503") || IsSlash() || IsVivoZenPro();
|
||||
}
|
||||
|
||||
public static bool IsInvertedFNLock()
|
||||
|
||||
@@ -114,8 +114,11 @@ public class AsusACPI
|
||||
public const int APU_MEM = 0x000600C1;
|
||||
|
||||
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
||||
public const int VIVO_KB_BRIGHTNESS = 0x0005002F;
|
||||
|
||||
public const int TUF_KB = 0x00100056;
|
||||
public const int TUF_KB2 = 0x0010005a;
|
||||
|
||||
public const int TUF_KB_STATE = 0x00100057;
|
||||
|
||||
public const int MicMuteLed = 0x00040017;
|
||||
@@ -785,6 +788,8 @@ public class AsusACPI
|
||||
{
|
||||
int param = 0x80 | (brightness & 0x7F);
|
||||
DeviceSet(TUF_KB_BRIGHTNESS, param, "TUF Brightness");
|
||||
if (AppConfig.IsVivoZenPro()) DeviceSet(VIVO_KB_BRIGHTNESS, param, "VIVO Brightness");
|
||||
|
||||
}
|
||||
|
||||
public void TUFKeyboardRGB(AuraMode mode, Color color, int speed, string? log = "TUF RGB")
|
||||
@@ -800,7 +805,13 @@ public class AsusACPI
|
||||
setting[5] = (byte)speed;
|
||||
|
||||
int result = DeviceSet(TUF_KB, setting, log);
|
||||
if (result != 1) DeviceSet(TUF_KB2, setting, log);
|
||||
if (result != 1)
|
||||
{
|
||||
setting[0] = (byte)0xb3;
|
||||
DeviceSet(TUF_KB2, setting, log);
|
||||
setting[0] = (byte)0xb4;
|
||||
DeviceSet(TUF_KB2, setting, log);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -709,7 +709,10 @@ namespace GHelper
|
||||
{
|
||||
using (var amdControl = new AmdGpuControl())
|
||||
{
|
||||
amdControl.SetVariBright(checkVariBright.Checked ? 1 : 0);
|
||||
if (NvidiaSmi.GetDisplayActiveStatus()) return; // Skip if Nvidia GPU is active
|
||||
var status = checkVariBright.Checked ? 1 : 0;
|
||||
var result = amdControl.SetVariBright(status);
|
||||
Logger.WriteLine($"VariBright {status}: {result}");
|
||||
ProcessHelper.KillByName("RadeonSoftware");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<AssemblyVersion>0.184</AssemblyVersion>
|
||||
<AssemblyVersion>0.185</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -92,7 +92,12 @@ namespace GHelper.Gpu
|
||||
{
|
||||
if (AppConfig.NoAutoUltimate())
|
||||
{
|
||||
Program.acpi.SetGPUEco(0);
|
||||
int standardStatus = Program.acpi.SetGPUEco(0);
|
||||
if (standardStatus == 0)
|
||||
{
|
||||
settings.VisualiseGPUMode();
|
||||
return;
|
||||
}
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
|
||||
@@ -222,6 +227,7 @@ namespace GHelper.Gpu
|
||||
if ((GpuAuto && !IsPlugged()) || (ForceGPU && GpuMode == AsusACPI.GPUModeEco))
|
||||
{
|
||||
|
||||
if (Program.acpi.IsXGConnected()) return false;
|
||||
if (HardwareControl.IsUsedGPU())
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertDGPU, Properties.Strings.AlertDGPUTitle, MessageBoxButtons.YesNo);
|
||||
|
||||
@@ -32,7 +32,7 @@ public static class NvidiaSmi
|
||||
|
||||
public static int GetDefaultMaxGPUPower()
|
||||
{
|
||||
if (AppConfig.ContainsModel("GU605")) return 125;
|
||||
if (AppConfig.ContainsModel("GU605") || AppConfig.ContainsModel("GA605")) return 125;
|
||||
if (AppConfig.ContainsModel("GA403")) return 90;
|
||||
if (AppConfig.ContainsModel("FA607")) return 140;
|
||||
else return 175;
|
||||
|
||||
@@ -7,6 +7,8 @@ namespace GHelper.Helpers
|
||||
|
||||
public static bool IsEnabled()
|
||||
{
|
||||
if (Environment.OSVersion.Version.Build < 22000) return false;
|
||||
|
||||
using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Lighting");
|
||||
var registryValueObject = key?.GetValue("AmbientLightingEnabled");
|
||||
|
||||
|
||||
@@ -707,9 +707,6 @@ namespace GHelper.Input
|
||||
case 55: // Arconym
|
||||
KeyProcess("m6");
|
||||
return;
|
||||
case 136: // FN + F12
|
||||
if (!AppConfig.IsNoAirplaneMode()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
|
||||
return;
|
||||
case 181: // FN + Numpad Enter
|
||||
KeyProcess("fne");
|
||||
return;
|
||||
@@ -726,12 +723,6 @@ namespace GHelper.Input
|
||||
case 158: // Fn + C
|
||||
KeyProcess("fnc");
|
||||
return;
|
||||
case 78: // Fn + ESC
|
||||
ToggleFnLock();
|
||||
return;
|
||||
case 75: // Fn + Arrow Lock
|
||||
ToggleArrowLock();
|
||||
return;
|
||||
case 189: // Tablet mode
|
||||
TabletMode();
|
||||
return;
|
||||
@@ -821,6 +812,15 @@ namespace GHelper.Input
|
||||
case 126: // Fn+F8 emojis popup
|
||||
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.OemSemicolon);
|
||||
return;
|
||||
case 78: // Fn + ESC
|
||||
ToggleFnLock();
|
||||
return;
|
||||
case 75: // Fn + Arrow Lock
|
||||
ToggleArrowLock();
|
||||
return;
|
||||
case 136: // FN + F12
|
||||
if (!AppConfig.IsNoAirplaneMode()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
|
||||
return;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -282,19 +282,22 @@ namespace GHelper
|
||||
}
|
||||
else
|
||||
{
|
||||
var screen = Screen.PrimaryScreen;
|
||||
if (screen is null) screen = Screen.FromControl(settingsForm);
|
||||
|
||||
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
|
||||
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
|
||||
settingsForm.Location = screen.WorkingArea.Location;
|
||||
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
|
||||
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
|
||||
|
||||
settingsForm.Show();
|
||||
settingsForm.Activate();
|
||||
|
||||
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
|
||||
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
|
||||
|
||||
if (AppConfig.IsAlly())
|
||||
settingsForm.Top = Math.Max(10, Screen.FromControl(settingsForm).Bounds.Height - 110 - settingsForm.Height);
|
||||
settingsForm.Top = Math.Max(10, screen.Bounds.Height - 110 - settingsForm.Height);
|
||||
else
|
||||
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
|
||||
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
|
||||
|
||||
settingsForm.VisualiseGPUMode();
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
<value>Tout</value>
|
||||
</data>
|
||||
<data name="AuraZoneDock" xml:space="preserve">
|
||||
<value>Dock</value>
|
||||
<value>Station d'accueil</value>
|
||||
</data>
|
||||
<data name="AuraZoneLogo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
@@ -495,7 +495,7 @@ Voulez-vous continuer ?</value>
|
||||
<value>Écran</value>
|
||||
</data>
|
||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||
<value>LED Status Indicators</value>
|
||||
<value>Indicateurs d'état LED</value>
|
||||
</data>
|
||||
<data name="Lid" xml:space="preserve">
|
||||
<value>Capot</value>
|
||||
@@ -507,7 +507,7 @@ Voulez-vous continuer ?</value>
|
||||
<value>Éclairage</value>
|
||||
</data>
|
||||
<data name="LockScreen" xml:space="preserve">
|
||||
<value>Lock Screen</value>
|
||||
<value>Écran de verrouillage</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
@@ -585,10 +585,10 @@ Voulez-vous continuer ?</value>
|
||||
<value>Synchroniser avec le pointeur</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Multi Zone</value>
|
||||
<value>Multi-zones</value>
|
||||
</data>
|
||||
<data name="MultizoneStrong" xml:space="preserve">
|
||||
<value>Multi Zone Strong</value>
|
||||
<value>Forte zone multiple</value>
|
||||
</data>
|
||||
<data name="Muted" xml:space="preserve">
|
||||
<value>Son désactivé</value>
|
||||
@@ -741,7 +741,7 @@ Voulez-vous continuer ?</value>
|
||||
<value>Allumer l'écran</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
<value>Activer/désactiver l'écran tactile</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value/>
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
<value>Taikyti</value>
|
||||
</data>
|
||||
<data name="ApplyFanCurve" xml:space="preserve">
|
||||
<value>Taikyti tinkintą aušintuvo kreivę</value>
|
||||
<value>Taikyti tinkintą kreivę</value>
|
||||
</data>
|
||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||
<value>Taikyti galios ribas</value>
|
||||
@@ -244,7 +244,7 @@
|
||||
<value>Automatinis</value>
|
||||
</data>
|
||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||
<value>Nustato 60Hz, kad taupytų energiją, ir atgal, kai įjungtas į lizdą</value>
|
||||
<value>Nustatomas 60Hz dažn. taupymui, ir atgal, kuomet įkraunama</value>
|
||||
</data>
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Pabudęs</value>
|
||||
@@ -280,7 +280,7 @@
|
||||
<value>Įkrovos riba</value>
|
||||
</data>
|
||||
<data name="BatteryHealth" xml:space="preserve">
|
||||
<value>Sveikata</value>
|
||||
<value>Baterijos būklė</value>
|
||||
</data>
|
||||
<data name="BatteryLimitFull" xml:space="preserve">
|
||||
<value>Vienkartinė įkrova iki 100%</value>
|
||||
@@ -313,7 +313,7 @@
|
||||
<value>Ryškumo didinimas</value>
|
||||
</data>
|
||||
<data name="BWTrayIcon" xml:space="preserve">
|
||||
<value>Black and white tray icon</value>
|
||||
<value>Naudoti juodai baltą piktogramą</value>
|
||||
</data>
|
||||
<data name="Calibrate" xml:space="preserve">
|
||||
<value>Kalibruoti</value>
|
||||
@@ -346,7 +346,7 @@
|
||||
<value>Išjungti valdiklį</value>
|
||||
</data>
|
||||
<data name="DisableOnLidClose" xml:space="preserve">
|
||||
<value>Disable on lid close</value>
|
||||
<value>Išjungti uždarius gaubtą</value>
|
||||
</data>
|
||||
<data name="DisableOverdrive" xml:space="preserve">
|
||||
<value>Išjungti ekrano pikselių spartinimą</value>
|
||||
@@ -364,7 +364,7 @@
|
||||
<value>Tvarkyklės ir programinė įranga</value>
|
||||
</data>
|
||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||
<value>Išjungia dGPU, kad taupytų energiją</value>
|
||||
<value>Išjungia dGPU akumuliatoriaus taupymui</value>
|
||||
</data>
|
||||
<data name="EcoMode" xml:space="preserve">
|
||||
<value>Ekonomiškas</value>
|
||||
@@ -465,7 +465,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Temperatūros tikslas</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Minutės iki miego su akumuliatoriumi (0 – IŠJUNGTA)</value>
|
||||
<value>Užmigimo laikas akumuliatoriaus režimu (0 – IŠJUNGTA)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Aukštas</value>
|
||||
@@ -483,7 +483,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Klaviatūra</value>
|
||||
</data>
|
||||
<data name="KillGpuApps" xml:space="preserve">
|
||||
<value>Sustabdyti visas GPU naudojančias programėles, kai perjungiama į ekonomišką režimą</value>
|
||||
<value>Sustabdyti visas GPU naudojančias programėles, kai perjungiama į ekon. režimą</value>
|
||||
</data>
|
||||
<data name="LaptopBacklight" xml:space="preserve">
|
||||
<value>Apšvietimas</value>
|
||||
@@ -549,10 +549,10 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Paveikslėlis</value>
|
||||
</data>
|
||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||
<value>Maksimalus kadrų dažnis už mažesnę delsą</value>
|
||||
<value>Maksimalus kadrų dažnis mažesnei delsai</value>
|
||||
</data>
|
||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||
<value>60Hz kadrų dažnis, kad taupytumėte energiją</value>
|
||||
<value>60Hz kadrų dažnis energijos taupymui</value>
|
||||
</data>
|
||||
<data name="Minute" xml:space="preserve">
|
||||
<value>min.</value>
|
||||
@@ -561,7 +561,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>min.</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
<value>Kampinis fiksavimas</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Automatiškai išjungti po</value>
|
||||
@@ -570,7 +570,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Klavišo atsakas</value>
|
||||
</data>
|
||||
<data name="MouseImportFailed" xml:space="preserve">
|
||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
||||
<value>Importuoti nepavyko. Pasirinktas failas nėra galiojantis pelės profilis arba yra sugadintas.</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Pakilimo atstumas</value>
|
||||
@@ -609,10 +609,10 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Neprijungta</value>
|
||||
</data>
|
||||
<data name="Off" xml:space="preserve">
|
||||
<value>Off</value>
|
||||
<value>Išjungta</value>
|
||||
</data>
|
||||
<data name="On" xml:space="preserve">
|
||||
<value>On</value>
|
||||
<value>Įjungta</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
@@ -624,10 +624,10 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Optimizuotas</value>
|
||||
</data>
|
||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||
<value>Perjungti į ekonomišką, kai naudojamas akumuliatorius, ir į standartinį, kai įjungtas į lizdą</value>
|
||||
<value>Naudojant akumuliatorių įjungiamas ekon. režimas, įkraunant - stand. režimas</value>
|
||||
</data>
|
||||
<data name="OptimizedUSBC" xml:space="preserve">
|
||||
<value>Neįjungti GPU, kai naudojamas USB-C įkroviklis optimizuotame režime</value>
|
||||
<value>Išjungti GPU optimizuotame režime, kai naudojamas USB-C įkroviklis</value>
|
||||
</data>
|
||||
<data name="Other" xml:space="preserve">
|
||||
<value>Kita</value>
|
||||
@@ -756,7 +756,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Išjungti naudojant akumuliatorių</value>
|
||||
</data>
|
||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||
<value>Nukreipia ekraną į dGPU, kad maksimizuotų kadrų dažnį</value>
|
||||
<value>Maksimaliai padidinamas kadrų kiekis, nukreipiant ekraną į dGPU</value>
|
||||
</data>
|
||||
<data name="UltimateMode" xml:space="preserve">
|
||||
<value>Maksimalus</value>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra load and unnecessary services.
|
||||
|
||||
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally and many more!
|
||||
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally / Ally X and many more!
|
||||
|
||||
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
||||
**⭐ If you like the app - please spread the word about it online**
|
||||
@@ -17,7 +17,7 @@ Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13
|
||||
<a href="https://bit.ly/4c0ZWs9"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/paypal-eur.png" height="36" alt="PayPal EUR"></a>
|
||||
<a href="https://bit.ly/4aGTyW8"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/paypal-usd.png" height="36" alt="PayPal USD"></a>
|
||||
<a href="https://buy.stripe.com/8wM6pt8HbgK50tWbIK"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/stripe.png" height="36" alt="Stripe"></a>
|
||||
<a href="https://buy.stripe.com/8wM6pt8HbgK50tWbIK"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/alipay.png" height="36" alt="Alipay"></a>
|
||||
<a href="https://buy.stripe.com/6oE29dg9D3Xj7Wo28b"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/alipay.png" height="36" alt="Alipay"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Reference in New Issue
Block a user