mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77f8d34d13 | ||
|
|
02aef7f2f3 | ||
|
|
edc434a890 | ||
|
|
b337a226da | ||
|
|
03e6e69fb4 | ||
|
|
f852fbadb6 | ||
|
|
b95d676285 | ||
|
|
fafa27b2a0 | ||
|
|
e7ceb2feaf | ||
|
|
62f280b0b9 | ||
|
|
d179fe6b86 | ||
|
|
291909749a | ||
|
|
883ec1828b | ||
|
|
55a75f79b0 | ||
|
|
5c6deb902c | ||
|
|
fac634b460 | ||
|
|
41e74084ac | ||
|
|
bc8084f3e0 | ||
|
|
e8d0030444 | ||
|
|
4cf4e2eb66 |
@@ -428,7 +428,7 @@ public static class AppConfig
|
|||||||
|
|
||||||
public static bool IsGPUFixNeeded()
|
public static bool IsGPUFixNeeded()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA402X") || ContainsModel("GV302") || ContainsModel("GV301") || ContainsModel("GZ301") || ContainsModel("FX506") || ContainsModel("GU603") || ContainsModel("GU604") || ContainsModel("G614J");
|
return ContainsModel("GA402X") || ContainsModel("GV302") || ContainsModel("GV301") || ContainsModel("GZ301") || ContainsModel("FX506") || ContainsModel("FA506") || ContainsModel("GU603") || ContainsModel("GU604") || ContainsModel("G614J") || ContainsModel("GA503");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsGPUFix()
|
public static bool IsGPUFix()
|
||||||
|
|||||||
@@ -599,7 +599,7 @@ namespace GHelper
|
|||||||
int Max = FanSensorControl.GetFanMax(device);
|
int Max = FanSensorControl.GetFanMax(device);
|
||||||
|
|
||||||
if (fanRpm)
|
if (fanRpm)
|
||||||
return (200 * Math.Round((float)(Min * 100 + (Max - Min) * percentage) / 200)).ToString() + unit;
|
return (200 * Math.Floor((float)(Min * 100 + (Max - Min) * percentage) / 200)).ToString() + unit;
|
||||||
else
|
else
|
||||||
return percentage + "%";
|
return percentage + "%";
|
||||||
}
|
}
|
||||||
@@ -790,6 +790,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
|
|
||||||
bool modeA0 = (Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0 || RyzenControl.IsAMD());
|
bool modeA0 = (Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0 || RyzenControl.IsAMD());
|
||||||
|
bool modeA3 = Program.acpi.DeviceGet(AsusACPI.PPT_APUA3) >= 0;
|
||||||
bool modeB0 = Program.acpi.IsAllAmdPPT();
|
bool modeB0 = Program.acpi.IsAllAmdPPT();
|
||||||
bool modeC1 = Program.acpi.DeviceGet(AsusACPI.PPT_APUC1) >= 0;
|
bool modeC1 = Program.acpi.DeviceGet(AsusACPI.PPT_APUC1) >= 0;
|
||||||
|
|
||||||
@@ -809,12 +810,15 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
panelA3.Visible = modeA3;
|
||||||
|
|
||||||
if (RyzenControl.IsAMD())
|
if (RyzenControl.IsAMD())
|
||||||
{
|
{
|
||||||
labelLeftA0.Text = "CPU Sustained (SPL)";
|
labelLeftA0.Text = "CPU Sustained (SPL)";
|
||||||
labelLeftA3.Text = "CPU Slow (sPPT)";
|
labelLeftA3.Text = "CPU Slow (sPPT)";
|
||||||
labelLeftC1.Text = "CPU Fast (fPPT)";
|
labelLeftC1.Text = "CPU Fast (fPPT)";
|
||||||
panelC1.Visible = modeC1;
|
panelC1.Visible = modeC1;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1146,7 +1150,7 @@ namespace GHelper
|
|||||||
tip = true;
|
tip = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
labelTip.Text = Math.Round(curPoint.XValue) + "C, " + ChartYLabel((int)curPoint.YValues[0], device, " " + Properties.Strings.RPM);
|
labelTip.Text = Math.Floor(curPoint.XValue) + "C, " + ChartYLabel((int)curPoint.YValues[0], device, " " + Properties.Strings.RPM);
|
||||||
labelTip.Top = e.Y + ((Control)sender).Top;
|
labelTip.Top = e.Y + ((Control)sender).Top;
|
||||||
labelTip.Left = e.X - 50;
|
labelTip.Left = e.X - 50;
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.138</AssemblyVersion>
|
<AssemblyVersion>0.140</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -634,13 +634,19 @@ namespace GHelper.Input
|
|||||||
{
|
{
|
||||||
case 16: // FN+F7
|
case 16: // FN+F7
|
||||||
if (Control.ModifierKeys == Keys.Shift)
|
if (Control.ModifierKeys == Keys.Shift)
|
||||||
SetScreenpad(-10);
|
{
|
||||||
|
if (AppConfig.IsDUO()) SetScreenpad(-10);
|
||||||
|
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, -1);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
|
||||||
break;
|
break;
|
||||||
case 32: // FN+F8
|
case 32: // FN+F8
|
||||||
if (Control.ModifierKeys == Keys.Shift)
|
if (Control.ModifierKeys == Keys.Shift)
|
||||||
SetScreenpad(10);
|
{
|
||||||
|
if (AppConfig.IsDUO()) SetScreenpad(10);
|
||||||
|
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, 1);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -7,6 +7,10 @@
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TUFM3(ushort productId, string path) : base(0x0B05, productId, path, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public override int DPIProfileCount()
|
public override int DPIProfileCount()
|
||||||
{
|
{
|
||||||
return 4;
|
return 4;
|
||||||
@@ -109,4 +113,16 @@
|
|||||||
|| lightingMode == LightingMode.React;
|
|| lightingMode == LightingMode.React;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class TUFM3GenII : TUFM3
|
||||||
|
{
|
||||||
|
public TUFM3GenII() : base(0x1A9B, "mi_02")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string GetDisplayName()
|
||||||
|
{
|
||||||
|
return "TUF GAMING M3 (Gen II)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ namespace GHelper.Peripherals
|
|||||||
DetectMouse(new HarpeAceAimLabEditionWired());
|
DetectMouse(new HarpeAceAimLabEditionWired());
|
||||||
DetectMouse(new HarpeAceAimLabEditionOmni());
|
DetectMouse(new HarpeAceAimLabEditionOmni());
|
||||||
DetectMouse(new TUFM3());
|
DetectMouse(new TUFM3());
|
||||||
|
DetectMouse(new TUFM3GenII());
|
||||||
DetectMouse(new TUFM5());
|
DetectMouse(new TUFM5());
|
||||||
DetectMouse(new KerisWirelssAimpoint());
|
DetectMouse(new KerisWirelssAimpoint());
|
||||||
DetectMouse(new KerisWirelssAimpointWired());
|
DetectMouse(new KerisWirelssAimpointWired());
|
||||||
|
|||||||
@@ -124,10 +124,10 @@
|
|||||||
<value>Connexion impossible avec ASUS ACPI. L'application ne peut fonctionner sans. Veuillez installer Asus System Control Interface</value>
|
<value>Connexion impossible avec ASUS ACPI. L'application ne peut fonctionner sans. Veuillez installer Asus System Control Interface</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
<data name="AlertAPUMemoryRestart" xml:space="preserve">
|
||||||
<value>Restart your device to apply changes</value>
|
<value>Redémarrez votre appareil pour appliquer les modifications</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||||
<value>Restart now?</value>
|
<value>Redémarrer maintenant ?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPU" xml:space="preserve">
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
<value>Le GPU semble être surchargé, voulez vous le désactiver ?</value>
|
<value>Le GPU semble être surchargé, voulez vous le désactiver ?</value>
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<value>Ajustement auto des modes de gestion alim. Windows</value>
|
<value>Ajustement auto des modes de gestion alim. Windows</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="APUMemory" xml:space="preserve">
|
<data name="APUMemory" xml:space="preserve">
|
||||||
<value>Memory Assigned to GPU</value>
|
<value>Mémoire attribuée au GPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AsusServicesRunning" xml:space="preserve">
|
<data name="AsusServicesRunning" xml:space="preserve">
|
||||||
<value>Services Asus actifs</value>
|
<value>Services Asus actifs</value>
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
<value>Allumé</value>
|
<value>Allumé</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeout" xml:space="preserve">
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
<value>Délai d'activation de la batterie (0 - ON)</value>
|
<value>Délai branché / sur batterie (0 - ON)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Équilibré</value>
|
<value>Équilibré</value>
|
||||||
@@ -354,7 +354,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Profil du ventilateur central</value>
|
<value>Profil du ventilateur central</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfiles" xml:space="preserve">
|
<data name="FanProfiles" xml:space="preserve">
|
||||||
<value>Profil</value>
|
<value>Profil des ventilateurs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansAndPower" xml:space="preserve">
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
<value>Ventilateurs + Puissance</value>
|
<value>Ventilateurs + Puissance</value>
|
||||||
@@ -399,7 +399,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Température cible</value>
|
<value>Température cible</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="HibernateAfter" xml:space="preserve">
|
<data name="HibernateAfter" xml:space="preserve">
|
||||||
<value>Minutes jusqu'à la mise en veille prolongée sur la batterie (0 - OFF)</value>
|
<value>Minutes avant mise en veille prolongée sur batterie (0 - OFF)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="High" xml:space="preserve">
|
<data name="High" xml:space="preserve">
|
||||||
<value>Élevé</value>
|
<value>Élevé</value>
|
||||||
|
|||||||
@@ -604,16 +604,7 @@ namespace GHelper
|
|||||||
|
|
||||||
private void PictureColor2_Click(object? sender, EventArgs e)
|
private void PictureColor2_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
SetColorPicker("aura_color2");
|
||||||
ColorDialog colorDlg = new ColorDialog();
|
|
||||||
colorDlg.AllowFullOpen = true;
|
|
||||||
colorDlg.Color = pictureColor2.BackColor;
|
|
||||||
|
|
||||||
if (colorDlg.ShowDialog() == DialogResult.OK)
|
|
||||||
{
|
|
||||||
AppConfig.Set("aura_color2", colorDlg.Color.ToArgb());
|
|
||||||
SetAura();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PictureColor_Click(object? sender, EventArgs e)
|
private void PictureColor_Click(object? sender, EventArgs e)
|
||||||
@@ -681,20 +672,31 @@ namespace GHelper
|
|||||||
FansToggle();
|
FansToggle();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ButtonKeyboardColor_Click(object? sender, EventArgs e)
|
private void SetColorPicker(string colorField = "aura_color")
|
||||||
{
|
{
|
||||||
|
|
||||||
ColorDialog colorDlg = new ColorDialog();
|
ColorDialog colorDlg = new ColorDialog();
|
||||||
colorDlg.AllowFullOpen = true;
|
colorDlg.AllowFullOpen = true;
|
||||||
colorDlg.Color = pictureColor.BackColor;
|
colorDlg.Color = pictureColor.BackColor;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
colorDlg.CustomColors = AppConfig.GetString("aura_color_custom", "").Split('-').Select(int.Parse).ToArray();
|
||||||
|
}
|
||||||
|
catch (Exception ex) { }
|
||||||
|
|
||||||
if (colorDlg.ShowDialog() == DialogResult.OK)
|
if (colorDlg.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
AppConfig.Set("aura_color", colorDlg.Color.ToArgb());
|
AppConfig.Set("aura_color_custom", string.Join("-", colorDlg.CustomColors));
|
||||||
|
AppConfig.Set(colorField, colorDlg.Color.ToArgb());
|
||||||
SetAura();
|
SetAura();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ButtonKeyboardColor_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetColorPicker("aura_color");
|
||||||
|
}
|
||||||
|
|
||||||
public void InitAura()
|
public void InitAura()
|
||||||
{
|
{
|
||||||
Aura.Mode = (AuraMode)AppConfig.Get("aura_mode");
|
Aura.Mode = (AuraMode)AppConfig.Get("aura_mode");
|
||||||
@@ -761,6 +763,15 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void CycleMatrix(int delta)
|
||||||
|
{
|
||||||
|
comboMatrix.SelectedIndex = Math.Min(Math.Max(0, comboMatrix.SelectedIndex + delta), comboMatrix.Items.Count - 1);
|
||||||
|
AppConfig.Set("matrix_brightness", comboMatrix.SelectedIndex);
|
||||||
|
matrixControl.SetMatrix();
|
||||||
|
Program.toast.RunToast(comboMatrix.GetItemText(comboMatrix.SelectedItem), delta > 0 ? ToastIcon.BacklightUp : ToastIcon.BacklightDown);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void CycleAuraMode()
|
public void CycleAuraMode()
|
||||||
{
|
{
|
||||||
if (comboKeyboard.SelectedIndex < comboKeyboard.Items.Count - 1)
|
if (comboKeyboard.SelectedIndex < comboKeyboard.Items.Count - 1)
|
||||||
|
|||||||
@@ -532,7 +532,7 @@ namespace GHelper.USB
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isStrix && !isOldHeatmap)
|
if (isStrix)
|
||||||
{
|
{
|
||||||
ApplyDirect(Enumerable.Repeat(color, AURA_ZONES).ToArray(), init);
|
ApplyDirect(Enumerable.Repeat(color, AURA_ZONES).ToArray(), init);
|
||||||
return;
|
return;
|
||||||
@@ -540,8 +540,18 @@ namespace GHelper.USB
|
|||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AsusHid.WriteAura(AuraMessage(0, color, color, 0));
|
if (init) AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xbc });
|
||||||
AsusHid.WriteAura(MESSAGE_SET);
|
|
||||||
|
byte[] buffer = new byte[64];
|
||||||
|
buffer[0] = AsusHid.AURA_ID;
|
||||||
|
buffer[1] = 0xbc;
|
||||||
|
buffer[2] = 1;
|
||||||
|
buffer[3] = 1;
|
||||||
|
buffer[9] = color.R;
|
||||||
|
buffer[10] = color.G;
|
||||||
|
buffer[11] = color.B;
|
||||||
|
|
||||||
|
AsusHid.WriteAura(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Small and lightweight Armoury Crate alternative for Asus laptops offering almost
|
|||||||
|
|
||||||
- Don't forget to [**Check Requirements**](#requirements-mandatory) and [**Read FAQ**](#question-faq)
|
- Don't forget to [**Check Requirements**](#requirements-mandatory) and [**Read FAQ**](#question-faq)
|
||||||
- If you like this app, please give it a star :star: and spread the word about it!
|
- If you like this app, please give it a star :star: and spread the word about it!
|
||||||
|
- If you have general problems, you may check [**Troubleshooting section**](https://github.com/seerge/g-helper?tab=readme-ov-file#wrench-troubleshooting)
|
||||||
|
|
||||||
#### Support project in [:euro: EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [💵 USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY)
|
#### Support project in [:euro: EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [💵 USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY)
|
||||||
|
|
||||||
@@ -180,6 +181,23 @@ Turn OFF laptop. Press and hold the "power" button for 30-40 seconds. Then boot
|
|||||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services. Works on ROG G14, G15, G16, M16, X13, Z13, X16, TUF, Scar, Vivobook, ProArt and all other popular models.
|
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services. Works on ROG G14, G15, G16, M16, X13, Z13, X16, TUF, Scar, Vivobook, ProArt and all other popular models.
|
||||||
|
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
## :wrench: Troubleshooting
|
||||||
|
|
||||||
|
_NOTE: This section is not related to G-Helper anyhow, but since people often come to this repository asking about general problems with their laptops I have listed the most frequent troubleshooting advice that I can give._
|
||||||
|
|
||||||
|
### Hardware reset / CMOS reset
|
||||||
|
All Asus laptops have an option to do a hardware reset that can be handy sometimes. It doesn't touch your data, but resets all main hardware-related things (enables your dGPU, wakes up wifi/bt adapter if it hangs for some reason, etc.).
|
||||||
|
Turn OFF laptop. Press and hold the "power" button for 30-40 seconds. Then boot normally (it will take a bit longer to boot)
|
||||||
|
|
||||||
|
### Resetting windows power plan to defaults
|
||||||
|
Copy and paste the command below into Windows Terminal, and press Enter.
|
||||||
|
```
|
||||||
|
powercfg -restoredefaultschemes
|
||||||
|
```
|
||||||
|
### Reinstalling GPU drivers
|
||||||
|
- For AMD devices (including ones who use integrated graphics) you can use [AMD official cleanup utility](https://www.amd.com/en/support/kb/faq/gpu-601) to completely uninstall existing drivers from safe mode. After that you can download and install latest official drivers from [AMD website](https://www.amd.com/en/support)
|
||||||
|
|
||||||
|
- For NVidia / Intel devices you can use the [Display Driver Uninstaller](https://www.guru3d.com/download/display-driver-uninstaller-download/) app to completely uninstall existing drivers. After that you can download and install latest official drivers from [Nvidia website](https://www.nvidia.com/download/index.aspx)
|
||||||
|
|
||||||
## :euro: [Support Project](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
|
## :euro: [Support Project](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
|
||||||
#### If you like the app you can make a Donation
|
#### If you like the app you can make a Donation
|
||||||
|
|||||||
Reference in New Issue
Block a user