mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e9b002013 | ||
|
|
5077c30704 | ||
|
|
d6363dee85 | ||
|
|
359575d00d | ||
|
|
9dc444fd33 | ||
|
|
a5b8885ff6 | ||
|
|
56676005a5 | ||
|
|
0e59f9318e | ||
|
|
21a2dca271 | ||
|
|
e265a78b4f | ||
|
|
18b6dd794f | ||
|
|
9fd9506177 | ||
|
|
a30b202022 | ||
|
|
b9534fdfe5 | ||
|
|
cb3bf3ea90 | ||
|
|
5b64f89351 | ||
|
|
de10360224 | ||
|
|
63828e3db7 | ||
|
|
8b66e95b8b | ||
|
|
cd930cebf9 | ||
|
|
7bdaca93d5 | ||
|
|
ef6990c528 | ||
|
|
72f01321ae | ||
|
|
e6767126c9 | ||
|
|
50f0c82b70 | ||
|
|
12587e222f | ||
|
|
dfb51b897e | ||
|
|
cc36184834 | ||
|
|
338a5e85f4 | ||
|
|
632ed073a1 | ||
|
|
07a1ea46c7 | ||
|
|
8e0bea59aa | ||
|
|
0deccfa47a |
@@ -114,6 +114,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
switch ((SlashMode)running)
|
switch ((SlashMode)running)
|
||||||
{
|
{
|
||||||
case SlashMode.Static:
|
case SlashMode.Static:
|
||||||
|
Logger.WriteLine("Slash: Static");
|
||||||
var custom = AppConfig.GetString("slash_custom");
|
var custom = AppConfig.GetString("slash_custom");
|
||||||
if (custom is not null && custom.Length > 0)
|
if (custom is not null && custom.Length > 0)
|
||||||
{
|
{
|
||||||
@@ -126,6 +127,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
break;
|
break;
|
||||||
case SlashMode.BatteryLevel:
|
case SlashMode.BatteryLevel:
|
||||||
// call tick to immediately update the pattern
|
// call tick to immediately update the pattern
|
||||||
|
Logger.WriteLine("Slash: Battery Level");
|
||||||
SlashTimer_start();
|
SlashTimer_start();
|
||||||
SlashTimer_tick();
|
SlashTimer_tick();
|
||||||
break;
|
break;
|
||||||
@@ -278,7 +280,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void SlashTimer_start(int interval = 60000)
|
private void SlashTimer_start(int interval = 180000)
|
||||||
{
|
{
|
||||||
// 100% to 0% in 1hr = 1% every 36 seconds
|
// 100% to 0% in 1hr = 1% every 36 seconds
|
||||||
// 1 bracket every 14.2857 * 36s = 514s ~ 8m 30s
|
// 1 bracket every 14.2857 * 36s = 514s ~ 8m 30s
|
||||||
|
|||||||
@@ -182,17 +182,17 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
public void SetBatteryPattern(int brightness)
|
public void SetBatteryPattern(int brightness)
|
||||||
{
|
{
|
||||||
SetCustom(GetBatteryPattern(brightness, 100 * (GetBatteryChargePercentage() / AppConfig.Get("charge_limit", 100))));
|
SetCustom(GetBatteryPattern(brightness, 100 * (GetBatteryChargePercentage() / AppConfig.Get("charge_limit", 100))), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetCustom(byte[] data)
|
public void SetCustom(byte[] data, string? log = "Static Data")
|
||||||
{
|
{
|
||||||
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAC]), "Static");
|
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAC]), null);
|
||||||
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF]), "StaticSettings");
|
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF]), null);
|
||||||
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAC]), "StaticSave");
|
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAC]), null);
|
||||||
|
|
||||||
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
|
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
|
||||||
Set(CreatePacket(payload.Concat(data.Take(7)).ToArray()), "Static Data");
|
Set(CreatePacket(payload.Concat(data.Take(7)).ToArray()), log);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetOptions(bool status, int brightness = 0, int interval = 0)
|
public void SetOptions(bool status, int brightness = 0, int interval = 0)
|
||||||
|
|||||||
@@ -41,10 +41,19 @@ public static class AppConfig
|
|||||||
{
|
{
|
||||||
config = JsonSerializer.Deserialize<Dictionary<string, object>>(text);
|
config = JsonSerializer.Deserialize<Dictionary<string, object>>(text);
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine("Broken config: " + text);
|
Logger.WriteLine($"Broken config: {ex.Message} {text}");
|
||||||
Init();
|
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
|
else
|
||||||
@@ -382,10 +391,15 @@ public static class AppConfig
|
|||||||
return ContainsModel("Vivobook") || ContainsModel("Zenbook") || ContainsModel("ProArt");
|
return ContainsModel("Vivobook") || ContainsModel("Zenbook") || ContainsModel("ProArt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsHardwareFnLock()
|
||||||
|
{
|
||||||
|
return IsVivoZenPro();
|
||||||
|
}
|
||||||
|
|
||||||
// Devices with bugged bios command to change brightness
|
// Devices with bugged bios command to change brightness
|
||||||
public static bool SwappedBrightness()
|
public static bool SwappedBrightness()
|
||||||
{
|
{
|
||||||
return ContainsModel("FA506IH") || ContainsModel("FA506IC") || ContainsModel("FX506LU") || ContainsModel("FX506IC") || ContainsModel("FX506LH") || ContainsModel("FA506IV") || ContainsModel("FA706IC");
|
return ContainsModel("FA506IH") || ContainsModel("FA506IC") || ContainsModel("FX506LU") || ContainsModel("FX506IC") || ContainsModel("FX506LH") || ContainsModel("FA506IV") || ContainsModel("FA706IC") || ContainsModel("FA706IH");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -397,17 +411,17 @@ public static class AppConfig
|
|||||||
// G14 2020 has no aura, but media keys instead
|
// G14 2020 has no aura, but media keys instead
|
||||||
public static bool NoAura()
|
public static bool NoAura()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA401I") && !ContainsModel("GA401IHR");
|
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("HN7306");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool MediaKeys()
|
public static bool MediaKeys()
|
||||||
{
|
{
|
||||||
return NoAura() || ContainsModel("G712L");
|
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("G712L");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsSingleColor()
|
public static bool IsSingleColor()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU") || ContainsModel("FA617N") || ContainsModel("FA617X");
|
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU") || ContainsModel("FA617N") || ContainsModel("FA617X") || NoAura();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsSlash()
|
public static bool IsSlash()
|
||||||
@@ -422,7 +436,7 @@ public static class AppConfig
|
|||||||
|
|
||||||
public static bool IsInputBacklight()
|
public static bool IsInputBacklight()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA503") || IsSlash();
|
return ContainsModel("GA503") || IsSlash() || IsVivoZenPro();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsInvertedFNLock()
|
public static bool IsInvertedFNLock()
|
||||||
@@ -432,7 +446,7 @@ public static class AppConfig
|
|||||||
|
|
||||||
public static bool IsOLED()
|
public static bool IsOLED()
|
||||||
{
|
{
|
||||||
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650");
|
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsNoOverdrive()
|
public static bool IsNoOverdrive()
|
||||||
@@ -598,12 +612,12 @@ public static class AppConfig
|
|||||||
|
|
||||||
public static bool IsFanRequired()
|
public static bool IsFanRequired()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J") || ContainsModel("G614J") || ContainsModel("G814J") || ContainsModel("FX507V");
|
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J") || ContainsModel("G614J") || ContainsModel("G814J") || ContainsModel("FX507V");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsAMDLight()
|
public static bool IsAMDLight()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA402X") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
|
return ContainsModel("GA402X") || ContainsModel("GA605") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsPowerRequired()
|
public static bool IsPowerRequired()
|
||||||
|
|||||||
@@ -114,8 +114,11 @@ public class AsusACPI
|
|||||||
public const int APU_MEM = 0x000600C1;
|
public const int APU_MEM = 0x000600C1;
|
||||||
|
|
||||||
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
||||||
|
public const int VIVO_KB_BRIGHTNESS = 0x0005002F;
|
||||||
|
|
||||||
public const int TUF_KB = 0x00100056;
|
public const int TUF_KB = 0x00100056;
|
||||||
public const int TUF_KB2 = 0x0010005a;
|
public const int TUF_KB2 = 0x0010005a;
|
||||||
|
|
||||||
public const int TUF_KB_STATE = 0x00100057;
|
public const int TUF_KB_STATE = 0x00100057;
|
||||||
|
|
||||||
public const int MicMuteLed = 0x00040017;
|
public const int MicMuteLed = 0x00040017;
|
||||||
@@ -785,6 +788,8 @@ public class AsusACPI
|
|||||||
{
|
{
|
||||||
int param = 0x80 | (brightness & 0x7F);
|
int param = 0x80 | (brightness & 0x7F);
|
||||||
DeviceSet(TUF_KB_BRIGHTNESS, param, "TUF Brightness");
|
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")
|
public void TUFKeyboardRGB(AuraMode mode, Color color, int speed, string? log = "TUF RGB")
|
||||||
@@ -800,7 +805,13 @@ public class AsusACPI
|
|||||||
setting[5] = (byte)speed;
|
setting[5] = (byte)speed;
|
||||||
|
|
||||||
int result = DeviceSet(TUF_KB, setting, log);
|
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())
|
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");
|
ProcessHelper.KillByName("RadeonSoftware");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.184</AssemblyVersion>
|
<AssemblyVersion>0.186</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -92,7 +92,12 @@ namespace GHelper.Gpu
|
|||||||
{
|
{
|
||||||
if (AppConfig.NoAutoUltimate())
|
if (AppConfig.NoAutoUltimate())
|
||||||
{
|
{
|
||||||
Program.acpi.SetGPUEco(0);
|
int standardStatus = Program.acpi.SetGPUEco(0);
|
||||||
|
if (standardStatus == 0)
|
||||||
|
{
|
||||||
|
settings.VisualiseGPUMode();
|
||||||
|
return;
|
||||||
|
}
|
||||||
Thread.Sleep(100);
|
Thread.Sleep(100);
|
||||||
}
|
}
|
||||||
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
|
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
|
||||||
@@ -222,6 +227,7 @@ namespace GHelper.Gpu
|
|||||||
if ((GpuAuto && !IsPlugged()) || (ForceGPU && GpuMode == AsusACPI.GPUModeEco))
|
if ((GpuAuto && !IsPlugged()) || (ForceGPU && GpuMode == AsusACPI.GPUModeEco))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (Program.acpi.IsXGConnected()) return false;
|
||||||
if (HardwareControl.IsUsedGPU())
|
if (HardwareControl.IsUsedGPU())
|
||||||
{
|
{
|
||||||
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertDGPU, Properties.Strings.AlertDGPUTitle, MessageBoxButtons.YesNo);
|
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertDGPU, Properties.Strings.AlertDGPUTitle, MessageBoxButtons.YesNo);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public static class NvidiaSmi
|
|||||||
|
|
||||||
public static int GetDefaultMaxGPUPower()
|
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("GA403")) return 90;
|
||||||
if (AppConfig.ContainsModel("FA607")) return 140;
|
if (AppConfig.ContainsModel("FA607")) return 140;
|
||||||
else return 175;
|
else return 175;
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ namespace GHelper.Helpers
|
|||||||
|
|
||||||
public static bool IsEnabled()
|
public static bool IsEnabled()
|
||||||
{
|
{
|
||||||
|
if (Environment.OSVersion.Version.Build < 22000) return false;
|
||||||
|
|
||||||
using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Lighting");
|
using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Lighting");
|
||||||
var registryValueObject = key?.GetValue("AmbientLightingEnabled");
|
var registryValueObject = key?.GetValue("AmbientLightingEnabled");
|
||||||
|
|
||||||
|
|||||||
@@ -85,8 +85,7 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
InitBacklightTimer();
|
InitBacklightTimer();
|
||||||
|
|
||||||
if (AppConfig.IsVivoZenbook())
|
if (AppConfig.IsHardwareFnLock()) HardwareFnLock(AppConfig.Is("fn_lock"));
|
||||||
Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,7 +154,7 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
// FN-Lock group
|
// FN-Lock group
|
||||||
|
|
||||||
if (AppConfig.Is("fn_lock") && !AppConfig.IsVivoZenbook())
|
if (AppConfig.Is("fn_lock") && !AppConfig.IsHardwareFnLock())
|
||||||
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
|
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
|
||||||
|
|
||||||
// Arrow-lock group
|
// Arrow-lock group
|
||||||
@@ -629,13 +628,19 @@ namespace GHelper.Input
|
|||||||
Program.toast.RunToast("Arrow-Lock " + (arLock == 1 ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.FnLock);
|
Program.toast.RunToast("Arrow-Lock " + (arLock == 1 ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.FnLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void HardwareFnLock(bool fnLock)
|
||||||
|
{
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
|
||||||
|
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x4E, fnLock ? (byte)0x00 : (byte)0x01], "USB FnLock");
|
||||||
|
}
|
||||||
|
|
||||||
public static void ToggleFnLock()
|
public static void ToggleFnLock()
|
||||||
{
|
{
|
||||||
bool fnLock = !AppConfig.Is("fn_lock");
|
bool fnLock = !AppConfig.Is("fn_lock");
|
||||||
AppConfig.Set("fn_lock", fnLock ? 1 : 0);
|
AppConfig.Set("fn_lock", fnLock ? 1 : 0);
|
||||||
|
|
||||||
if (AppConfig.IsVivoZenbook())
|
if (AppConfig.IsHardwareFnLock())
|
||||||
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
|
HardwareFnLock(fnLock);
|
||||||
else
|
else
|
||||||
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
|
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
|
||||||
|
|
||||||
@@ -707,9 +712,6 @@ namespace GHelper.Input
|
|||||||
case 55: // Arconym
|
case 55: // Arconym
|
||||||
KeyProcess("m6");
|
KeyProcess("m6");
|
||||||
return;
|
return;
|
||||||
case 136: // FN + F12
|
|
||||||
if (!AppConfig.IsNoAirplaneMode()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
|
|
||||||
return;
|
|
||||||
case 181: // FN + Numpad Enter
|
case 181: // FN + Numpad Enter
|
||||||
KeyProcess("fne");
|
KeyProcess("fne");
|
||||||
return;
|
return;
|
||||||
@@ -726,12 +728,6 @@ namespace GHelper.Input
|
|||||||
case 158: // Fn + C
|
case 158: // Fn + C
|
||||||
KeyProcess("fnc");
|
KeyProcess("fnc");
|
||||||
return;
|
return;
|
||||||
case 78: // Fn + ESC
|
|
||||||
ToggleFnLock();
|
|
||||||
return;
|
|
||||||
case 75: // Fn + Arrow Lock
|
|
||||||
ToggleArrowLock();
|
|
||||||
return;
|
|
||||||
case 189: // Tablet mode
|
case 189: // Tablet mode
|
||||||
TabletMode();
|
TabletMode();
|
||||||
return;
|
return;
|
||||||
@@ -821,6 +817,15 @@ namespace GHelper.Input
|
|||||||
case 126: // Fn+F8 emojis popup
|
case 126: // Fn+F8 emojis popup
|
||||||
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.OemSemicolon);
|
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.OemSemicolon);
|
||||||
return;
|
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
|
else
|
||||||
{
|
{
|
||||||
|
var screen = Screen.PrimaryScreen;
|
||||||
|
if (screen is null) screen = Screen.FromControl(settingsForm);
|
||||||
|
|
||||||
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
|
settingsForm.Location = screen.WorkingArea.Location;
|
||||||
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
|
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
|
||||||
|
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
|
||||||
|
|
||||||
settingsForm.Show();
|
settingsForm.Show();
|
||||||
settingsForm.Activate();
|
settingsForm.Activate();
|
||||||
|
|
||||||
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
|
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
|
||||||
|
|
||||||
if (AppConfig.IsAlly())
|
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
|
else
|
||||||
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
|
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
|
||||||
|
|
||||||
settingsForm.VisualiseGPUMode();
|
settingsForm.VisualiseGPUMode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -226,7 +226,7 @@
|
|||||||
<value>Tout</value>
|
<value>Tout</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraZoneDock" xml:space="preserve">
|
<data name="AuraZoneDock" xml:space="preserve">
|
||||||
<value>Dock</value>
|
<value>Station d'accueil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraZoneLogo" xml:space="preserve">
|
<data name="AuraZoneLogo" xml:space="preserve">
|
||||||
<value>Logo</value>
|
<value>Logo</value>
|
||||||
@@ -495,7 +495,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Écran</value>
|
<value>Écran</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||||
<value>LED Status Indicators</value>
|
<value>Indicateurs d'état LED</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lid" xml:space="preserve">
|
<data name="Lid" xml:space="preserve">
|
||||||
<value>Capot</value>
|
<value>Capot</value>
|
||||||
@@ -507,7 +507,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Éclairage</value>
|
<value>Éclairage</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LockScreen" xml:space="preserve">
|
<data name="LockScreen" xml:space="preserve">
|
||||||
<value>Lock Screen</value>
|
<value>Écran de verrouillage</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Logo" xml:space="preserve">
|
<data name="Logo" xml:space="preserve">
|
||||||
<value>Logo</value>
|
<value>Logo</value>
|
||||||
@@ -585,10 +585,10 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Synchroniser avec le pointeur</value>
|
<value>Synchroniser avec le pointeur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multi Zone</value>
|
<value>Multi-zones</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MultizoneStrong" xml:space="preserve">
|
<data name="MultizoneStrong" xml:space="preserve">
|
||||||
<value>Multi Zone Strong</value>
|
<value>Forte zone multiple</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Muted" xml:space="preserve">
|
<data name="Muted" xml:space="preserve">
|
||||||
<value>Son désactivé</value>
|
<value>Son désactivé</value>
|
||||||
@@ -741,7 +741,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Allumer l'écran</value>
|
<value>Allumer l'écran</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||||
<value>Toggle Touchscreen</value>
|
<value>Activer/désactiver l'écran tactile</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Touchscreen" xml:space="preserve">
|
<data name="Touchscreen" xml:space="preserve">
|
||||||
<value/>
|
<value/>
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
<value>Taikyti</value>
|
<value>Taikyti</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyFanCurve" xml:space="preserve">
|
<data name="ApplyFanCurve" xml:space="preserve">
|
||||||
<value>Taikyti tinkintą aušintuvo kreivę</value>
|
<value>Taikyti tinkintą kreivę</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Taikyti galios ribas</value>
|
<value>Taikyti galios ribas</value>
|
||||||
@@ -244,7 +244,7 @@
|
|||||||
<value>Automatinis</value>
|
<value>Automatinis</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
<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>
|
||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>Pabudęs</value>
|
<value>Pabudęs</value>
|
||||||
@@ -280,7 +280,7 @@
|
|||||||
<value>Įkrovos riba</value>
|
<value>Įkrovos riba</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryHealth" xml:space="preserve">
|
<data name="BatteryHealth" xml:space="preserve">
|
||||||
<value>Sveikata</value>
|
<value>Baterijos būklė</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryLimitFull" xml:space="preserve">
|
<data name="BatteryLimitFull" xml:space="preserve">
|
||||||
<value>Vienkartinė įkrova iki 100%</value>
|
<value>Vienkartinė įkrova iki 100%</value>
|
||||||
@@ -313,7 +313,7 @@
|
|||||||
<value>Ryškumo didinimas</value>
|
<value>Ryškumo didinimas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BWTrayIcon" xml:space="preserve">
|
<data name="BWTrayIcon" xml:space="preserve">
|
||||||
<value>Black and white tray icon</value>
|
<value>Naudoti juodai baltą piktogramą</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Calibrate" xml:space="preserve">
|
<data name="Calibrate" xml:space="preserve">
|
||||||
<value>Kalibruoti</value>
|
<value>Kalibruoti</value>
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
<value>Išjungti valdiklį</value>
|
<value>Išjungti valdiklį</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableOnLidClose" xml:space="preserve">
|
<data name="DisableOnLidClose" xml:space="preserve">
|
||||||
<value>Disable on lid close</value>
|
<value>Išjungti uždarius gaubtą</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableOverdrive" xml:space="preserve">
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
<value>Išjungti ekrano pikselių spartinimą</value>
|
<value>Išjungti ekrano pikselių spartinimą</value>
|
||||||
@@ -364,7 +364,7 @@
|
|||||||
<value>Tvarkyklės ir programinė įranga</value>
|
<value>Tvarkyklės ir programinė įranga</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
<value>Išjungia dGPU, kad taupytų energiją</value>
|
<value>Išjungia dGPU akumuliatoriaus taupymui</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoMode" xml:space="preserve">
|
<data name="EcoMode" xml:space="preserve">
|
||||||
<value>Ekonomiškas</value>
|
<value>Ekonomiškas</value>
|
||||||
@@ -465,7 +465,7 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Temperatūros tikslas</value>
|
<value>Temperatūros tikslas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="HibernateAfter" xml:space="preserve">
|
<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>
|
||||||
<data name="High" xml:space="preserve">
|
<data name="High" xml:space="preserve">
|
||||||
<value>Aukštas</value>
|
<value>Aukštas</value>
|
||||||
@@ -483,7 +483,7 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Klaviatūra</value>
|
<value>Klaviatūra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KillGpuApps" xml:space="preserve">
|
<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>
|
||||||
<data name="LaptopBacklight" xml:space="preserve">
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
<value>Apšvietimas</value>
|
<value>Apšvietimas</value>
|
||||||
@@ -549,10 +549,10 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Paveikslėlis</value>
|
<value>Paveikslėlis</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
<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>
|
||||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
<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>
|
||||||
<data name="Minute" xml:space="preserve">
|
<data name="Minute" xml:space="preserve">
|
||||||
<value>min.</value>
|
<value>min.</value>
|
||||||
@@ -561,7 +561,7 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>min.</value>
|
<value>min.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||||
<value>Angle Snapping</value>
|
<value>Kampinis fiksavimas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||||
<value>Automatiškai išjungti po</value>
|
<value>Automatiškai išjungti po</value>
|
||||||
@@ -570,7 +570,7 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Klavišo atsakas</value>
|
<value>Klavišo atsakas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseImportFailed" xml:space="preserve">
|
<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>
|
||||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||||
<value>Pakilimo atstumas</value>
|
<value>Pakilimo atstumas</value>
|
||||||
@@ -609,10 +609,10 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Neprijungta</value>
|
<value>Neprijungta</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Off" xml:space="preserve">
|
<data name="Off" xml:space="preserve">
|
||||||
<value>Off</value>
|
<value>Išjungta</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="On" xml:space="preserve">
|
<data name="On" xml:space="preserve">
|
||||||
<value>On</value>
|
<value>Įjungta</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OneZone" xml:space="preserve">
|
<data name="OneZone" xml:space="preserve">
|
||||||
<value>One Zone</value>
|
<value>One Zone</value>
|
||||||
@@ -624,10 +624,10 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Optimizuotas</value>
|
<value>Optimizuotas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
<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>
|
||||||
<data name="OptimizedUSBC" xml:space="preserve">
|
<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>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>Kita</value>
|
<value>Kita</value>
|
||||||
@@ -756,7 +756,7 @@ Vis tiek norite tęsti?</value>
|
|||||||
<value>Išjungti naudojant akumuliatorių</value>
|
<value>Išjungti naudojant akumuliatorių</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
<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>
|
||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>Maksimalus</value>
|
<value>Maksimalus</value>
|
||||||
|
|||||||
@@ -741,7 +741,7 @@
|
|||||||
<value>关闭屏幕</value>
|
<value>关闭屏幕</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||||
<value>Toggle Touchscreen</value>
|
<value>切换触摸屏</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Touchscreen" xml:space="preserve">
|
<data name="Touchscreen" xml:space="preserve">
|
||||||
<value/>
|
<value/>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ namespace Ryzen
|
|||||||
//PHEONIX - 9
|
//PHEONIX - 9
|
||||||
//RAPHAEL/DRAGON RANGE - 10
|
//RAPHAEL/DRAGON RANGE - 10
|
||||||
//MENDOCINO - 11
|
//MENDOCINO - 11
|
||||||
//HAWKPOINT - 12
|
//HAWKPOINT/STRIXPOINT - 12
|
||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
@@ -77,7 +77,7 @@ namespace Ryzen
|
|||||||
FAMID = 1; //PICASSO
|
FAMID = 1; //PICASSO
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CPUModel.Contains("Model " + Convert.ToString(32)))
|
if (CPUModel.Contains("Family " + Convert.ToString(23)) && CPUModel.Contains("Model " + Convert.ToString(32)))
|
||||||
{
|
{
|
||||||
FAMID = 2; //DALI
|
FAMID = 2; //DALI
|
||||||
}
|
}
|
||||||
@@ -127,6 +127,11 @@ namespace Ryzen
|
|||||||
FAMID = 12; //HAWKPOINT
|
FAMID = 12; //HAWKPOINT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CPUModel.Contains("Family " + Convert.ToString(26)) && CPUModel.Contains("Model " + Convert.ToString(36)))
|
||||||
|
{
|
||||||
|
FAMID = 12; //STRIXPOINT
|
||||||
|
}
|
||||||
|
|
||||||
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
|
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
|
||||||
|
|
||||||
SetAddresses();
|
SetAddresses();
|
||||||
@@ -141,7 +146,7 @@ namespace Ryzen
|
|||||||
public static bool IsSupportedUV()
|
public static bool IsSupportedUV()
|
||||||
{
|
{
|
||||||
if (CPUName.Length == 0) Init();
|
if (CPUName.Length == 0) Init();
|
||||||
return CPUName.Contains("Ryzen 9") || CPUName.Contains("4900H") || CPUName.Contains("4800H") || CPUName.Contains("4600H");
|
return CPUName.Contains("Ryzen AI 9") || CPUName.Contains("Ryzen 9") || CPUName.Contains("4900H") || CPUName.Contains("4800H") || CPUName.Contains("4600H");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsSupportedUViGPU()
|
public static bool IsSupportedUViGPU()
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Ryzen
|
|||||||
//PHEONIX - 9
|
//PHEONIX - 9
|
||||||
//RAPHAEL/DRAGON RANGE - 10
|
//RAPHAEL/DRAGON RANGE - 10
|
||||||
//MENDOCINO - 11
|
//MENDOCINO - 11
|
||||||
//HAWKPOINT - 12
|
//HAWKPOINT/STRIXPOINT - 12
|
||||||
|
|
||||||
public static Smu RyzenAccess = new Smu(false);
|
public static Smu RyzenAccess = new Smu(false);
|
||||||
public static int FAMID = RyzenControl.FAMID;
|
public static int FAMID = RyzenControl.FAMID;
|
||||||
|
|||||||
@@ -268,6 +268,16 @@ namespace GHelper.USB
|
|||||||
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
|
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
|
||||||
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A },
|
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A },
|
||||||
}, "Init");
|
}, "Init");
|
||||||
|
|
||||||
|
if (AppConfig.IsProArt())
|
||||||
|
{
|
||||||
|
AsusHid.WriteInput([AsusHid.INPUT_ID, 0x05, 0x20, 0x31, 0x00, 0x08], "ProArt Init");
|
||||||
|
//AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x4E], "ProArt Init");
|
||||||
|
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xBA, 0xC5, 0xC4], "ProArt Init");
|
||||||
|
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x8F, 0x01], "ProArt Init");
|
||||||
|
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x85, 0xFF], "ProArt Init");
|
||||||
|
//AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x4E], "ProArt Init");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra load and unnecessary services.
|
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)
|
# [: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**
|
**⭐ 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/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://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/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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
Reference in New Issue
Block a user