Compare commits

...

82 Commits

Author SHA1 Message Date
Serge
a8fd049090 Matrix Clock position tweak 2024-08-04 11:06:50 +02:00
Serge
9817769d62 Merge branch 'main' of https://github.com/seerge/g-helper 2024-08-04 11:03:02 +02:00
Serge
39f919213f ProArt GPU mode support https://github.com/seerge/g-helper/issues/2912 2024-08-04 11:02:59 +02:00
Serge
709f2b89ca Cleanup 2024-08-03 17:58:32 +02:00
Serge
950d082fc3 Media hotkeys for G712LU https://github.com/seerge/g-helper/issues/2897 2024-08-03 12:18:09 +02:00
Serge
ceaa8c4110 Hotkeys with 4-key combos https://github.com/seerge/g-helper/issues/2916 2024-08-03 12:08:16 +02:00
Serge
fefbe94a8c Custom Matrix clock formats https://github.com/seerge/g-helper/issues/2903 2024-08-03 12:02:46 +02:00
Serge
c96a7749be Exception handling https://github.com/seerge/g-helper/issues/2917 2024-08-03 11:40:59 +02:00
Serge
bc9917b69a Slash Lighting support for GA605 2024-08-03 11:29:32 +02:00
Serge
f5964b60c7 Added GA605 to config https://github.com/seerge/g-helper/issues/2892 2024-07-29 12:12:22 +02:00
Serge
b3133ede7a Slash Lighting support for GA605 https://github.com/seerge/g-helper/issues/2892 2024-07-29 11:32:49 +02:00
Serge
c245a929f3 Version bump 2024-07-26 13:38:56 +02:00
Serge
4c4e6c8291 Dynamic Lighting models list 2024-07-25 16:45:30 +02:00
Serge
887e769bc6 Vivobook Mux code cleanup 2024-07-25 16:43:26 +02:00
Serge
5858a9d45b Vivobook Eco mode #2847 2024-07-25 16:39:56 +02:00
Serge
69f6be8941 Vivobook Eco mode https://github.com/seerge/g-helper/issues/2847 2024-07-25 00:06:19 +02:00
Serge
258bf3048a Max refresh rate config storage for backup https://github.com/seerge/g-helper/issues/2871 2024-07-24 21:12:43 +02:00
Serge
c35cbe51fe UI Tweaks 2024-07-24 13:54:14 +02:00
Serge
42da641f60 Version Bump 2024-07-24 13:50:56 +02:00
Serge
1c8260ce28 Init 2024-07-24 13:44:22 +02:00
Serge
37f4022366 AnimeMatrix Startup, Shutdown and Sleep animations setting https://github.com/seerge/g-helper/issues/2864 2024-07-19 11:53:12 +02:00
Serge
10163db7ea LaunchProcess tweak https://github.com/seerge/g-helper/issues/2860 2024-07-18 10:00:59 +02:00
Serge
1a7b7b3761 Added Vivobook N650 to OLED list https://github.com/seerge/g-helper/issues/2847 2024-07-16 11:14:49 +02:00
Serge
45f46aab4e Merge branch 'main' of https://github.com/seerge/g-helper 2024-07-16 11:14:02 +02:00
Serge
90f74948cb Rog Strix Evolve https://github.com/seerge/g-helper/issues/2842 2024-07-16 11:13:59 +02:00
Serge
28d9a15f0c Update README.md 2024-07-12 22:24:59 +02:00
Serge
01630dc195 Merge branch 'main' of https://github.com/seerge/g-helper 2024-07-12 11:33:47 +02:00
Serge
8ff9d1203b Version bump 2024-07-12 11:33:45 +02:00
Serge
0eb31b75a1 Update README.md 2024-07-12 11:28:31 +02:00
Serge
675317dcc1 Added new device ID for XGM 4090 https://github.com/seerge/g-helper/issues/299#issuecomment-2224819539 2024-07-12 10:37:54 +02:00
Serge
2ed6f1fefb Ultimate mode tweak for GU603VV https://github.com/seerge/g-helper/issues/2825 2024-07-10 17:50:38 +02:00
Serge
b80a069220 Merge branch 'main' of https://github.com/seerge/g-helper 2024-07-10 17:49:33 +02:00
Serge
652ed23bed Tweak for Slash lighting lid-close event https://github.com/seerge/g-helper/issues/2815 2024-07-10 17:49:31 +02:00
Serge
6a71fe5665 Update README.md 2024-07-08 21:40:47 +02:00
Serge
3129741fcd Update README.md 2024-07-08 21:35:31 +02:00
Serge
c2db0fc36d Update README.md 2024-07-08 12:11:19 +02:00
Serge
810d2e5f75 Update README.md 2024-07-07 18:40:37 +02:00
Serge
977ced629d Update bug_report.yml 2024-07-07 18:35:16 +02:00
Serge
ce76537687 Random color support for some strix RGB modes #2807 2024-07-07 00:22:03 +02:00
Serge
ce3ccf965b Merge branch 'main' of https://github.com/seerge/g-helper 2024-07-07 00:12:48 +02:00
Serge
7b1e088f0b Random color support for some strix RGB modes https://github.com/seerge/g-helper/discussions/2807 2024-07-07 00:12:46 +02:00
Serge
7e79da221e Update README.md 2024-07-06 13:15:51 +02:00
IceStormNG
35c7f4283e Support for the TX Gaming Mini (P519) (#2813) 2024-07-06 09:47:55 +02:00
Serge
d0d409b37f Model name tweak https://github.com/seerge/g-helper/issues/2802 2024-07-05 23:27:38 +02:00
Serge
1c1cdf1bec Force miniled status on start / display toggle for G843JYR https://github.com/seerge/g-helper/issues/2802 2024-07-05 21:48:22 +02:00
Serge
d177fac656 Merge branch 'main' of https://github.com/seerge/g-helper 2024-07-05 20:39:08 +02:00
Serge
7591eb1043 ROG Keris II Ace #2810 2024-07-05 20:39:05 +02:00
IceStormNG
fd66254130 Remove unnecessary overrides from M4 Air (#2812) 2024-07-05 20:18:25 +02:00
IceStormNG
f8efcb047a Support for ROG Pugio (P503) (#2811) 2024-07-05 20:16:54 +02:00
Serge
aaf2fb15f4 ROG Keris II Ace https://github.com/seerge/g-helper/issues/2810 2024-07-05 20:01:29 +02:00
Serge
e68c29fc6f Cleanup 2024-07-05 18:48:47 +02:00
Serge
5ddc93d275 Merge branch 'main' of https://github.com/seerge/g-helper 2024-07-05 15:33:03 +02:00
Serge
fe6f3bc3bf Updated to .NET8 2024-07-05 15:33:01 +02:00
Serge
9bf31c3235 Update README.md 2024-07-05 12:30:33 +02:00
Serge
0f333e90c3 Added M7400 to OLED list https://github.com/seerge/g-helper/issues/2806 2024-07-04 23:31:38 +02:00
Serge
33c4406f95 Merge branch 'main' of https://github.com/seerge/g-helper 2024-07-04 23:28:31 +02:00
Serge
2abae6ac86 Added N7400 to OLED list https://github.com/seerge/g-helper/issues/2806 2024-07-04 23:06:46 +02:00
Serge
c795807c75 Update README.md 2024-07-04 20:28:44 +02:00
Serge
16bdb5d32a Update README.md 2024-07-02 12:05:22 +02:00
Serge
773c50579c Version bump 2024-07-02 11:40:02 +02:00
IceStormNG
59bfe845c6 Fixed DPI support for TuF M3 Gen II (#2795)
* Support for Strix Carry (P508)

* Fixes polling rate, angle snapping and debounce for Gladius II Origin.

* The Gen2 version of the TuF M3 uses 0-100 for brightness.

* Adds support for ROG Strix Impact III (P518)

* Import/Export feature for mice.

* Suppor for Strix Impact (P303)

* Support for Strix Impact II Electro Punk

* Strix Carry has 50 DPI minimum and increments of 50.

* Respect top-most setting of GHelper

* Fixes to the buttons to be wider to fit longer translations.

* Basic support for the Galdius III EVA02

* Gladius wireless and wired PIDs were switched

* Add support for the chinese variant of the M4 Wireless, the P310

* Apparently there is another Gladius III that is not wireless at all. Renaming the wireless to make it a little less confusing.

* Adds Support for Galdius III (wired) P514

* Support for P504 Glaidus II PKN

* Support for the ROG Keris wired mouse P509

* Fixed support for TUF M3 Gen II
2024-06-30 11:11:53 +02:00
Serge
95909bd951 Re-apply charge limit on every wake-up https://github.com/seerge/g-helper/issues/2785 2024-06-28 11:15:28 +02:00
Serge
ac89645476 UI Fixes https://github.com/seerge/g-helper/issues/2775 2024-06-25 11:03:26 +02:00
Serge
a33089921e Tuf M4 Air profiles number https://github.com/seerge/g-helper/issues/2729 2024-06-24 14:41:22 +02:00
Serge
23647e268e Improved ICM profile reading https://github.com/seerge/g-helper/issues/2763 2024-06-22 19:39:05 +02:00
Serge
2df256ca66 Merge branch 'main' of https://github.com/seerge/g-helper 2024-06-22 12:55:44 +02:00
Serge
c5b9fda3de Version Bump 2024-06-22 12:55:42 +02:00
Serge
7bfc9e0bda Cleanup 2024-06-22 12:50:29 +02:00
Serge
b8fa771f36 New Crowdin updates (#2708)
* New translations strings.resx (Turkish)

* New translations strings.resx (Turkish)

* New translations strings.resx (Hungarian)

* New translations strings.resx (Hungarian)

* New translations strings.resx (Hungarian)

* New translations strings.resx (Hungarian)

* New translations strings.resx (Polish)
2024-06-22 12:50:17 +02:00
Serge
c0bb6015a0 Backlitht zones for on-battery state https://github.com/seerge/g-helper/issues/2739 2024-06-22 12:48:16 +02:00
Serge
181f8e4a0f GladiusIIWireless DPI colors https://github.com/seerge/g-helper/issues/2762 2024-06-21 15:12:29 +02:00
Serge
ab76e524cd Asus Gladius II WIRELESS Battery reading tweak https://github.com/seerge/g-helper/issues/2762 2024-06-21 13:21:36 +02:00
Serge
9686f4ed38 Gladius II Wireless https://github.com/seerge/g-helper/issues/2762 2024-06-21 12:43:22 +02:00
Serge
f21b1e2045 Separate lighting zone controls for battery/AC mode https://github.com/seerge/g-helper/issues/2739 2024-06-20 13:07:52 +02:00
Serge
ff92229ecb TUFM4Air https://github.com/seerge/g-helper/issues/2729 2024-06-14 17:38:59 +02:00
Serge
ea5964d8bb RGB Tweaks for GX650 https://github.com/seerge/g-helper/discussions/2691#discussioncomment-9765907 2024-06-14 17:26:40 +02:00
Serge
c7c147882d Update README.md 2024-06-11 11:16:07 +02:00
Serge
26423c9d16 Add files via upload 2024-06-11 11:14:59 +02:00
Serge
0ff362a75e Add files via upload 2024-06-10 16:12:03 +02:00
Serge
d76dcf9830 Update README.zh-CN.md 2024-06-10 12:30:05 +02:00
Serge
9469cc06de Update README.md 2024-06-10 11:39:51 +02:00
Serge
67677adad6 Add files via upload 2024-06-10 11:20:50 +02:00
45 changed files with 1476 additions and 284 deletions

View File

@@ -16,10 +16,6 @@ body:
required: true
validations:
required: true
- type: markdown
attributes:
value: |
<b>NOTICE:</b> Issues like "my fans are not working properly" will be closed without answer. Neither G-Helper nor Armoury don't control fans in realtime anyhow. Fans are <b>always</b> controlled by BIOS, even when you set a custom fan curve.
- type: textarea
id: description
attributes:

View File

@@ -19,7 +19,7 @@ jobs:
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
7.0.x
8.0.x
- name: Build
run: |
dotnet build app/GHelper.sln

View File

@@ -18,13 +18,13 @@ jobs:
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
7.0.x
8.0.x
- name: Publish
run: |
dotnet publish app/GHelper.sln --configuration Release --runtime win-x64 -p:PublishSingleFile=true --no-self-contained
powershell Compress-Archive app/bin/x64/Release/net7.0-windows/win-x64/publish/GHelper.exe GHelper.zip
powershell Compress-Archive app/bin/x64/Release/net8.0-windows/win-x64/publish/GHelper.exe GHelper.zip
- name: Upload
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release upload ${{ github.ref_name }} app/bin/x64/Release/net7.0-windows/win-x64/publish/GHelper.exe GHelper.zip
gh release upload ${{ github.ref_name }} app/bin/x64/Release/net8.0-windows/win-x64/publish/GHelper.exe GHelper.zip

View File

@@ -40,9 +40,16 @@ namespace GHelper.AnimeMatrix
try
{
if (AppConfig.IsSlash())
deviceSlash = new SlashDevice();
{
if (AppConfig.IsSlashAura())
deviceSlash = new SlashDeviceAura();
else
deviceSlash = new SlashDevice();
}
else
{
deviceMatrix = new AnimeMatrixDevice();
}
matrixTimer = new System.Timers.Timer(100);
matrixTimer.Elapsed += MatrixTimer_Elapsed;
@@ -103,7 +110,7 @@ namespace GHelper.AnimeMatrix
deviceSlash.SetEnabled(true);
deviceSlash.Init();
switch ((SlashMode)running)
{
case SlashMode.Static:
@@ -111,7 +118,8 @@ namespace GHelper.AnimeMatrix
if (custom is not null && custom.Length > 0)
{
deviceSlash.SetCustom(AppConfig.StringToBytes(custom));
} else
}
else
{
deviceSlash.SetStatic(brightness);
}
@@ -137,10 +145,10 @@ namespace GHelper.AnimeMatrix
public void SetLidMode(bool force = false)
{
bool matrixLid = AppConfig.Is("matrix_lid");
if (deviceSlash is not null)
{
deviceSlash.SetLidMode(matrixLid);
deviceSlash.SetLidMode(true);
}
if (matrixLid || force)
@@ -226,9 +234,9 @@ namespace GHelper.AnimeMatrix
{
BuiltInAnimation animation = new BuiltInAnimation(
(BuiltInAnimation.Running)running,
BuiltInAnimation.Sleeping.Starfield,
BuiltInAnimation.Shutdown.SeeYa,
BuiltInAnimation.Startup.StaticEmergence
(BuiltInAnimation.Sleeping)AppConfig.Get("matrix_sleep", (int)BuiltInAnimation.Sleeping.Starfield),
(BuiltInAnimation.Shutdown)AppConfig.Get("matrix_shutdown", (int)BuiltInAnimation.Shutdown.SeeYa),
(BuiltInAnimation.Startup)AppConfig.Get("matrix_startup", (int)BuiltInAnimation.Startup.StaticEmergence)
);
deviceMatrix.SetBuiltInAnimation(true, animation);
Logger.WriteLine("Matrix builtin: " + animation.AsByte);
@@ -268,8 +276,8 @@ namespace GHelper.AnimeMatrix
StartMatrixTimer(1000);
Logger.WriteLine("Matrix Clock");
}
private void SlashTimer_start(int interval = 60000)
{
// 100% to 0% in 1hr = 1% every 36 seconds
@@ -279,18 +287,18 @@ namespace GHelper.AnimeMatrix
// create the timer if first call
// this way, the timer only spawns if user tries to use battery pattern
if(slashTimer == default(System.Timers.Timer))
if (slashTimer == default(System.Timers.Timer))
{
slashTimer = new System.Timers.Timer(interval);
slashTimer.Elapsed += SlashTimer_elapsed;
slashTimer.AutoReset = true;
}
// only write if interval changed
if(slashTimer.Interval != interval)
if (slashTimer.Interval != interval)
{
slashTimer.Interval = interval;
}
slashTimer.Start();
}
@@ -304,7 +312,7 @@ namespace GHelper.AnimeMatrix
if (deviceSlash is null) return;
//kill timer if called but not in battery pattern mode
if((SlashMode)AppConfig.Get("matrix_running", 0) != SlashMode.BatteryLevel)
if ((SlashMode)AppConfig.Get("matrix_running", 0) != SlashMode.BatteryLevel)
{
slashTimer.Stop();
slashTimer.Dispose();

View File

@@ -404,12 +404,14 @@ namespace GHelper.AnimeMatrix
public void PresentClock()
{
string second = (DateTime.Now.Second % 2 == 0) ? ":" : " ";
string time = DateTime.Now.ToString("HH" + second + "mm");
string timeFormat = AppConfig.GetString("matrix_time", "HH:mm");
string dateFormat = AppConfig.GetString("matrix_date", "yy.MM.dd");
if (DateTime.Now.Second % 2 != 0) timeFormat = timeFormat.Replace(":", " ");
Clear();
Text(time, 15, 0, 25);
Text(DateTime.Now.ToString("yy'. 'MM'. 'dd"), 11.5F, 0, 14);
Text(DateTime.Now.ToString(timeFormat), 15, 2, 25);
Text(DateTime.Now.ToString(dateFormat), 11.5F, 0, 14);
Present();
}

View File

@@ -1,7 +1,6 @@
using GHelper.AnimeMatrix.Communication;
using System.Management;
using System.Text;
using System.Timers;
namespace GHelper.AnimeMatrix
{
@@ -26,16 +25,16 @@ namespace GHelper.AnimeMatrix
BatteryLevel,
}
internal class SlashPacket : Packet
{
public SlashPacket(byte[] command) : base(0x5E, 128, command)
{
}
}
public class SlashDevice : Device
{
internal class SlashPacket : Packet
{
public SlashPacket(byte[] command) : base(0x5E, 128, command)
{
}
}
public static Dictionary<SlashMode, string> Modes = new Dictionary<SlashMode, string>
{
{ SlashMode.Bounce, "Bounce"},
@@ -85,7 +84,7 @@ namespace GHelper.AnimeMatrix
{ SlashMode.Buzzer, 0x44},
};
public SlashDevice() : base(0x0B05, 0x193B, 128)
public SlashDevice(ushort productId = 0x193B) : base(0x0B05, productId, 128)
{
}
@@ -135,23 +134,23 @@ namespace GHelper.AnimeMatrix
}
public static double GetBatteryChargePercentage()
{
double batteryCharge = 0;
try
{
double batteryCharge = 0;
try
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Battery");
foreach (ManagementObject battery in searcher.Get())
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Battery");
foreach (ManagementObject battery in searcher.Get())
{
batteryCharge = Convert.ToDouble(battery["EstimatedChargeRemaining"]);
break; // Assuming only one battery
}
batteryCharge = Convert.ToDouble(battery["EstimatedChargeRemaining"]);
break; // Assuming only one battery
}
catch (ManagementException e)
{
Console.WriteLine("An error occurred while querying for WMI data: " + e.Message);
}
return batteryCharge;
}
catch (ManagementException e)
{
Console.WriteLine("An error occurred while querying for WMI data: " + e.Message);
}
return batteryCharge;
}
private byte[] GetBatteryPattern(int brightness, double percentage)
{
@@ -159,23 +158,23 @@ namespace GHelper.AnimeMatrix
// set brightness to reflect battery's percentage within that range
int bracket = (int)Math.Floor(percentage / 14.2857);
if(bracket >= 7) return Enumerable.Repeat((byte)(brightness * 85.333), 7).ToArray();
if (bracket >= 7) return Enumerable.Repeat((byte)(brightness * 85.333), 7).ToArray();
byte[] batteryPattern = Enumerable.Repeat((byte)(0x00), 7).ToArray();
for (int i = 6; i > 6-bracket; i--)
for (int i = 6; i > 6 - bracket; i--)
{
batteryPattern[i] = (byte)(brightness * 85.333);
}
//set the "selected" bracket to the percentage of that bracket filled from 0 to 255 as a hex
batteryPattern[6-bracket] = (byte)(((percentage % 14.2857) * brightness * 85.333) / 14.2857);
batteryPattern[6 - bracket] = (byte)(((percentage % 14.2857) * brightness * 85.333) / 14.2857);
return batteryPattern;
}
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))));
}
public void SetCustom(byte[] data)
@@ -214,9 +213,22 @@ namespace GHelper.AnimeMatrix
public void Set(Packet packet, string? log = null)
{
_usbProvider?.Set(packet.Data);
if (log is not null) Logger.WriteLine($"{log}:" + BitConverter.ToString(packet.Data).Substring(0,48));
if (log is not null) Logger.WriteLine($"{log}:" + BitConverter.ToString(packet.Data).Substring(0, 48));
}
}
public class SlashDeviceAura : SlashDevice
{
public SlashDeviceAura(): base(0x193B)
{
}
internal new class SlashPacket : Packet
{
public SlashPacket(byte[] command) : base(0x5D, 128, command)
{
}
}
}
}

View File

@@ -196,6 +196,11 @@ public static class AppConfig
return Get(name) != 0;
}
public static bool IsOnBattery(string zone)
{
return Get(zone + "_bat", Get(zone)) != 0;
}
public static string GetString(string name, string empty = null)
{
if (config.ContainsKey(name))
@@ -390,6 +395,11 @@ public static class AppConfig
return ContainsModel("GA401I") && !ContainsModel("GA401IHR");
}
public static bool MediaKeys()
{
return NoAura() || ContainsModel("G712L");
}
public static bool IsSingleColor()
{
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
@@ -397,7 +407,12 @@ public static class AppConfig
public static bool IsSlash()
{
return ContainsModel("GA403") || ContainsModel("GU605");
return ContainsModel("GA403") || ContainsModel("GU605") || ContainsModel("GA605");
}
public static bool IsSlashAura()
{
return ContainsModel("GA605");
}
public static bool IsInputBacklight()
@@ -412,7 +427,7 @@ public static class AppConfig
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");
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");
}
public static bool IsNoOverdrive()
@@ -430,6 +445,16 @@ public static class AppConfig
return ContainsModel("Strix") || ContainsModel("Scar") || ContainsModel("G703G");
}
public static bool IsAdvancedRGB()
{
return IsStrix() || ContainsModel("GX650");
}
public static bool IsBacklightZones()
{
return IsStrix() || IsZ13();
}
public static bool IsStrixLimitedRGB()
{
return ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G");
@@ -502,7 +527,7 @@ public static class AppConfig
public static bool DynamicBoost20()
{
return ContainsModel("GU605");
return ContainsModel("GU605") || ContainsModel("GA605");
}
public static bool IsAdvantageEdition()
@@ -512,7 +537,7 @@ public static class AppConfig
public static bool NoAutoUltimate()
{
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834") || ContainsModel("GA403") || ContainsModel("GU605");
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834") || ContainsModel("GA403") || ContainsModel("GU605") || ContainsModel("GA605") || ContainsModel("GU603VV");
}
@@ -632,14 +657,19 @@ public static class AppConfig
public static bool IsChargeLimit6080()
{
return ContainsModel("GA403U") || ContainsModel("GU605") || ContainsModel("GA503R") || (IsTUF() && !(ContainsModel("FX507Z") || ContainsModel("FA617")));
return ContainsModel("GA403U") || ContainsModel("GU605") || ContainsModel("GA605") || ContainsModel("GA503R") || (IsTUF() && !(ContainsModel("FX507Z") || ContainsModel("FA617")));
}
// 2024 Models support Dynamic Lighting
public static bool IsDynamicLighting()
{
return IsSlash() || ContainsModel("JIR") || ContainsModel("JZR") || ContainsModel("JVR") || ContainsModel("JYR") || ContainsModel("FA607P") || ContainsModel("FX607J") || ContainsModel("FA507U");
return IsSlash() || IsIntelHX() || ContainsModel("FA607P") || ContainsModel("FX607J") || ContainsModel("FA507U");
}
public static bool IsForceMiniled()
{
return ContainsModel("G834JYR") || Is("force_miniled");
}
}

View File

@@ -66,12 +66,13 @@ public class AsusACPI
public const uint PerformanceMode = 0x00120075; // Performance modes
public const uint VivoBookMode = 0x00110019; // Vivobook performance modes
public const uint GPUEco = 0x00090020;
public const uint GPUEcoROG = 0x00090020;
public const uint GPUEcoVivo = 0x00090120;
public const uint GPUXGConnected = 0x00090018;
public const uint GPUXG = 0x00090019;
public const uint GPUMux = 0x00090016;
public const uint GPUMuxROG = 0x00090016;
public const uint GPUMuxVivo = 0x00090026;
public const uint BatteryLimit = 0x00120057;
@@ -170,6 +171,8 @@ public class AsusACPI
private bool? _allAMD = null;
private bool? _overdrive = null;
public static uint GPUEco => (AppConfig.IsVivoZenbook() || AppConfig.IsProArt()) ? GPUEcoVivo : GPUEcoROG;
public static uint GPUMux => AppConfig.IsVivoZenbook() ? GPUMuxVivo : GPUMuxROG;
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
private static extern IntPtr CreateFile(
@@ -445,14 +448,16 @@ public class AsusACPI
public int SetGPUEco(int eco)
{
int ecoFlag = DeviceGet(GPUEco);
uint ecoEndpoint = GPUEco;
int ecoFlag = DeviceGet(ecoEndpoint);
if (ecoFlag < 0) return -1;
if (ecoFlag == 1 && eco == 0)
return DeviceSet(GPUEco, eco, "GPUEco");
return DeviceSet(ecoEndpoint, eco, "GPUEco");
if (ecoFlag == 0 && eco == 1)
return DeviceSet(GPUEco, eco, "GPUEco");
return DeviceSet(ecoEndpoint, eco, "GPUEco");
return -1;
}

View File

@@ -36,7 +36,13 @@ namespace GHelper.AutoUpdate
public void LoadReleases()
{
Process.Start(new ProcessStartInfo(versionUrl) { UseShellExecute = true });
try
{
Process.Start(new ProcessStartInfo(versionUrl) { UseShellExecute = true });
} catch (Exception ex)
{
Logger.WriteLine("Failed to open releases page:" + ex.Message);
}
}
async void CheckForUpdatesAsync()

View File

@@ -60,6 +60,13 @@ namespace GHelper.Display
}
}
SetMiniled(miniled);
InitScreen();
}
public void SetMiniled(int miniled = -1)
{
if (miniled >= 0)
{
if (Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1) >= 0)
@@ -70,8 +77,12 @@ namespace GHelper.Display
Thread.Sleep(100);
}
}
}
InitScreen();
public void InitMiniled()
{
if (AppConfig.IsForceMiniled())
SetMiniled(AppConfig.Get("miniled"));
}
public void ToogleFHD()
@@ -142,6 +153,9 @@ namespace GHelper.Display
int frequency = ScreenNative.GetRefreshRate(laptopScreen);
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
if (maxFrequency > 0) AppConfig.Set("max_frequency", maxFrequency);
else maxFrequency = AppConfig.Get("max_frequency");
bool screenAuto = AppConfig.Is("screen_auto");
bool overdriveSetting = Program.acpi.IsOverdriveSupported() && !AppConfig.IsNoOverdrive();

View File

@@ -98,14 +98,49 @@ namespace GHelper.Display
foreach (FileInfo icm in icms)
{
//Logger.WriteLine(icm.FullName);
if (icm.Name.Contains("sRGB")) _modes.Add(isVivo ? SplendidGamut.VivoSRGB : SplendidGamut.sRGB, "Gamut: sRGB");
if (icm.Name.Contains("DCIP3")) _modes.Add(isVivo ? SplendidGamut.VivoDCIP3 : SplendidGamut.DCIP3, "Gamut: DCIP3");
if (icm.Name.Contains("DisplayP3")) _modes.Add(isVivo ? SplendidGamut.ViviDisplayP3 : SplendidGamut.DisplayP3, "Gamut: DisplayP3");
if (icm.Name.Contains("sRGB"))
{
try
{
_modes.Add(isVivo ? SplendidGamut.VivoSRGB : SplendidGamut.sRGB, "Gamut: sRGB");
Logger.WriteLine(icm.FullName + " sRGB");
}
catch
{
}
}
if (icm.Name.Contains("DCIP3"))
{
try
{
_modes.Add(isVivo ? SplendidGamut.VivoDCIP3 : SplendidGamut.DCIP3, "Gamut: DCIP3");
Logger.WriteLine(icm.FullName + " DCIP3");
}
catch
{
}
}
if (icm.Name.Contains("DisplayP3"))
{
try
{
_modes.Add(isVivo ? SplendidGamut.ViviDisplayP3 : SplendidGamut.DisplayP3, "Gamut: DisplayP3");
Logger.WriteLine(icm.FullName + " DisplayP3");
}
catch
{
}
}
}
return _modes;
}
catch
catch (Exception ex)
{
//Logger.WriteLine(ex.Message);
Logger.WriteLine(ex.ToString());
return _modes;
}

116
app/Extra.Designer.cs generated
View File

@@ -117,6 +117,7 @@ namespace GHelper
checkGpuApps = new CheckBox();
checkGPUFix = new CheckBox();
checkStatusLed = new CheckBox();
checkPerKeyRGB = new CheckBox();
panelPower = new Panel();
numericHibernateAfter = new NumericUpDown();
labelHibernateAfter = new Label();
@@ -138,7 +139,10 @@ namespace GHelper
buttonACPISend = new RButton();
pictureDebug = new PictureBox();
labelACPITitle = new Label();
checkPerKeyRGB = new CheckBox();
checkBatteryBar = new CheckBox();
checkBatteryLid = new CheckBox();
checkBattery = new CheckBox();
checkBatteryLogo = new CheckBox();
panelServices.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureService).BeginInit();
panelBindingsHeader.SuspendLayout();
@@ -177,7 +181,7 @@ namespace GHelper
panelServices.Controls.Add(labelServices);
panelServices.Controls.Add(buttonServices);
panelServices.Dock = DockStyle.Top;
panelServices.Location = new Point(15, 1680);
panelServices.Location = new Point(15, 1723);
panelServices.Name = "panelServices";
panelServices.Size = new Size(949, 75);
panelServices.TabIndex = 5;
@@ -682,7 +686,7 @@ namespace GHelper
panelBacklight.Location = new Point(15, 514);
panelBacklight.Name = "panelBacklight";
panelBacklight.Padding = new Padding(0, 5, 0, 5);
panelBacklight.Size = new Size(949, 402);
panelBacklight.Size = new Size(949, 445);
panelBacklight.TabIndex = 2;
//
// panelBacklightExtra
@@ -695,7 +699,7 @@ namespace GHelper
panelBacklightExtra.Controls.Add(labelSpeed);
panelBacklightExtra.Controls.Add(comboKeyboardSpeed);
panelBacklightExtra.Dock = DockStyle.Top;
panelBacklightExtra.Location = new Point(0, 282);
panelBacklightExtra.Location = new Point(0, 325);
panelBacklightExtra.Margin = new Padding(4, 3, 4, 3);
panelBacklightExtra.Name = "panelBacklightExtra";
panelBacklightExtra.Padding = new Padding(0, 0, 0, 5);
@@ -761,7 +765,7 @@ namespace GHelper
//
panelXMG.Controls.Add(checkXMG);
panelXMG.Dock = DockStyle.Top;
panelXMG.Location = new Point(0, 222);
panelXMG.Location = new Point(0, 265);
panelXMG.Margin = new Padding(4, 3, 4, 3);
panelXMG.Name = "panelXMG";
panelXMG.Size = new Size(949, 60);
@@ -787,37 +791,47 @@ namespace GHelper
tableBacklight.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableBacklight.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableBacklight.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableBacklight.Controls.Add(labelBacklightKeyboard, 0, 0);
tableBacklight.Controls.Add(checkAwake, 0, 1);
tableBacklight.Controls.Add(checkBoot, 0, 2);
tableBacklight.Controls.Add(checkSleep, 0, 3);
tableBacklight.Controls.Add(checkShutdown, 0, 4);
tableBacklight.Controls.Add(checkBattery, 0, 5);
tableBacklight.Controls.Add(labelBacklightLogo, 1, 0);
tableBacklight.Controls.Add(checkAwakeLogo, 1, 1);
tableBacklight.Controls.Add(checkBootLogo, 1, 2);
tableBacklight.Controls.Add(checkSleepLogo, 1, 3);
tableBacklight.Controls.Add(checkShutdownLogo, 1, 4);
tableBacklight.Controls.Add(checkBatteryLogo, 1, 5);
tableBacklight.Controls.Add(labelBacklightBar, 2, 0);
tableBacklight.Controls.Add(checkAwakeBar, 2, 1);
tableBacklight.Controls.Add(checkBootBar, 2, 2);
tableBacklight.Controls.Add(checkSleepBar, 2, 3);
tableBacklight.Controls.Add(checkShutdownBar, 2, 4);
tableBacklight.Controls.Add(checkBatteryBar, 2, 5);
tableBacklight.Controls.Add(labelBacklightLid, 3, 0);
tableBacklight.Controls.Add(checkAwakeLid, 3, 1);
tableBacklight.Controls.Add(checkBootLid, 3, 2);
tableBacklight.Controls.Add(checkSleepLid, 3, 3);
tableBacklight.Controls.Add(checkShutdownLid, 3, 4);
tableBacklight.Controls.Add(checkBatteryLid, 3, 5);
tableBacklight.Dock = DockStyle.Top;
tableBacklight.Location = new Point(0, 5);
tableBacklight.Margin = new Padding(0);
tableBacklight.Name = "tableBacklight";
tableBacklight.RowCount = 5;
tableBacklight.RowCount = 6;
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.Size = new Size(949, 217);
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.Size = new Size(949, 260);
tableBacklight.TabIndex = 44;
//
// labelBacklightKeyboard
@@ -1069,7 +1083,7 @@ namespace GHelper
panelSettingsHeader.Controls.Add(pictureSettings);
panelSettingsHeader.Controls.Add(labelSettings);
panelSettingsHeader.Dock = DockStyle.Top;
panelSettingsHeader.Location = new Point(15, 916);
panelSettingsHeader.Location = new Point(15, 959);
panelSettingsHeader.Name = "panelSettingsHeader";
panelSettingsHeader.Padding = new Padding(11, 5, 11, 5);
panelSettingsHeader.Size = new Size(949, 51);
@@ -1139,7 +1153,7 @@ namespace GHelper
panelSettings.Controls.Add(checkStatusLed);
panelSettings.Controls.Add(checkPerKeyRGB);
panelSettings.Dock = DockStyle.Top;
panelSettings.Location = new Point(15, 1154);
panelSettings.Location = new Point(15, 1197);
panelSettings.Name = "panelSettings";
panelSettings.Padding = new Padding(20, 5, 11, 5);
panelSettings.Size = new Size(949, 472);
@@ -1275,13 +1289,27 @@ namespace GHelper
checkStatusLed.UseVisualStyleBackColor = true;
checkStatusLed.Visible = false;
//
// checkPerKeyRGB
//
checkPerKeyRGB.AutoSize = true;
checkPerKeyRGB.Dock = DockStyle.Top;
checkPerKeyRGB.Location = new Point(20, 5);
checkPerKeyRGB.Margin = new Padding(4, 3, 4, 3);
checkPerKeyRGB.Name = "checkPerKeyRGB";
checkPerKeyRGB.Padding = new Padding(3);
checkPerKeyRGB.Size = new Size(918, 42);
checkPerKeyRGB.TabIndex = 13;
checkPerKeyRGB.Text = "Per-Key RGB Keyboard";
checkPerKeyRGB.UseVisualStyleBackColor = true;
checkPerKeyRGB.Visible = false;
//
// panelPower
//
panelPower.Controls.Add(numericHibernateAfter);
panelPower.Controls.Add(labelHibernateAfter);
panelPower.Controls.Add(pictureHibernate);
panelPower.Dock = DockStyle.Top;
panelPower.Location = new Point(15, 1626);
panelPower.Location = new Point(15, 1669);
panelPower.Name = "panelPower";
panelPower.Size = new Size(949, 54);
panelPower.TabIndex = 4;
@@ -1324,7 +1352,7 @@ namespace GHelper
panelAPU.Controls.Add(pictureAPUMem);
panelAPU.Controls.Add(labelAPUMem);
panelAPU.Dock = DockStyle.Top;
panelAPU.Location = new Point(15, 1097);
panelAPU.Location = new Point(15, 1140);
panelAPU.Name = "panelAPU";
panelAPU.Padding = new Padding(11, 5, 11, 0);
panelAPU.Size = new Size(949, 57);
@@ -1378,7 +1406,7 @@ namespace GHelper
panelCores.Controls.Add(pictureCores);
panelCores.Controls.Add(label1);
panelCores.Dock = DockStyle.Top;
panelCores.Location = new Point(15, 1036);
panelCores.Location = new Point(15, 1079);
panelCores.Name = "panelCores";
panelCores.Padding = new Padding(11, 5, 11, 0);
panelCores.Size = new Size(949, 61);
@@ -1463,7 +1491,7 @@ namespace GHelper
panelACPI.Controls.Add(pictureDebug);
panelACPI.Controls.Add(labelACPITitle);
panelACPI.Dock = DockStyle.Top;
panelACPI.Location = new Point(15, 967);
panelACPI.Location = new Point(15, 1010);
panelACPI.Name = "panelACPI";
panelACPI.Padding = new Padding(11, 5, 11, 0);
panelACPI.Size = new Size(949, 69);
@@ -1527,19 +1555,53 @@ namespace GHelper
labelACPITitle.TabIndex = 0;
labelACPITitle.Text = "ACPI DEVS Test";
//
// checkPerKeyRGB
// checkBatteryBar
//
checkPerKeyRGB.AutoSize = true;
checkPerKeyRGB.Dock = DockStyle.Top;
checkPerKeyRGB.Location = new Point(20, 5);
checkPerKeyRGB.Margin = new Padding(4, 3, 4, 3);
checkPerKeyRGB.Name = "checkPerKeyRGB";
checkPerKeyRGB.Padding = new Padding(3);
checkPerKeyRGB.Size = new Size(918, 42);
checkPerKeyRGB.TabIndex = 13;
checkPerKeyRGB.Text = "Per-Key RGB Keyboard";
checkPerKeyRGB.UseVisualStyleBackColor = true;
checkPerKeyRGB.Visible = false;
checkBatteryBar.Dock = DockStyle.Fill;
checkBatteryBar.Location = new Point(478, 217);
checkBatteryBar.Margin = new Padding(4, 0, 4, 0);
checkBatteryBar.Name = "checkBatteryBar";
checkBatteryBar.Padding = new Padding(16, 3, 7, 3);
checkBatteryBar.Size = new Size(229, 43);
checkBatteryBar.TabIndex = 22;
checkBatteryBar.Text = "Battery";
checkBatteryBar.UseVisualStyleBackColor = true;
//
// checkBatteryLid
//
checkBatteryLid.Dock = DockStyle.Fill;
checkBatteryLid.Location = new Point(715, 217);
checkBatteryLid.Margin = new Padding(4, 0, 4, 0);
checkBatteryLid.Name = "checkBatteryLid";
checkBatteryLid.Padding = new Padding(16, 3, 7, 3);
checkBatteryLid.Size = new Size(230, 43);
checkBatteryLid.TabIndex = 23;
checkBatteryLid.Text = "Battery";
checkBatteryLid.UseVisualStyleBackColor = true;
//
// checkBattery
//
checkBattery.Dock = DockStyle.Fill;
checkBattery.Location = new Point(4, 217);
checkBattery.Margin = new Padding(4, 0, 4, 0);
checkBattery.Name = "checkBattery";
checkBattery.Padding = new Padding(16, 3, 7, 3);
checkBattery.Size = new Size(229, 43);
checkBattery.TabIndex = 24;
checkBattery.Text = "Battery";
checkBattery.UseVisualStyleBackColor = true;
//
// checkBatteryLogo
//
checkBatteryLogo.Dock = DockStyle.Fill;
checkBatteryLogo.Location = new Point(241, 217);
checkBatteryLogo.Margin = new Padding(4, 0, 4, 0);
checkBatteryLogo.Name = "checkBatteryLogo";
checkBatteryLogo.Padding = new Padding(16, 3, 7, 3);
checkBatteryLogo.Size = new Size(229, 43);
checkBatteryLogo.TabIndex = 25;
checkBatteryLogo.Text = "Battery";
checkBatteryLogo.UseVisualStyleBackColor = true;
//
// Extra
//
@@ -1726,5 +1788,9 @@ namespace GHelper
private CheckBox checkBWIcon;
private CheckBox checkStatusLed;
private CheckBox checkPerKeyRGB;
private CheckBox checkBatteryLogo;
private CheckBox checkBattery;
private CheckBox checkBatteryLid;
private CheckBox checkBatteryBar;
}
}

View File

@@ -203,7 +203,7 @@ namespace GHelper
labelFNF4.Visible = comboFNF4.Visible = textFNF4.Visible = false;
}
if (AppConfig.NoAura())
if (AppConfig.MediaKeys())
{
labelFNF4.Visible = comboFNF4.Visible = textFNF4.Visible = false;
}
@@ -298,55 +298,64 @@ namespace GHelper
// Keyboard
checkAwake.Checked = AppConfig.IsNotFalse("keyboard_awake");
checkBattery.Checked = AppConfig.IsOnBattery("keyboard_awake");
checkBoot.Checked = AppConfig.IsNotFalse("keyboard_boot");
checkSleep.Checked = AppConfig.IsNotFalse("keyboard_sleep");
checkShutdown.Checked = AppConfig.IsNotFalse("keyboard_shutdown");
// Lightbar
checkAwakeBar.Checked = AppConfig.IsNotFalse("keyboard_awake_bar");
checkBatteryBar.Checked = AppConfig.IsOnBattery("keyboard_awake_bar");
checkBootBar.Checked = AppConfig.IsNotFalse("keyboard_boot_bar");
checkSleepBar.Checked = AppConfig.IsNotFalse("keyboard_sleep_bar");
checkShutdownBar.Checked = AppConfig.IsNotFalse("keyboard_shutdown_bar");
// Lid
checkAwakeLid.Checked = AppConfig.IsNotFalse("keyboard_awake_lid");
checkBatteryLid.Checked = AppConfig.IsOnBattery("keyboard_awake_lid");
checkBootLid.Checked = AppConfig.IsNotFalse("keyboard_boot_lid");
checkSleepLid.Checked = AppConfig.IsNotFalse("keyboard_sleep_lid");
checkShutdownLid.Checked = AppConfig.IsNotFalse("keyboard_shutdown_lid");
// Logo
checkAwakeLogo.Checked = AppConfig.IsNotFalse("keyboard_awake_logo");
checkBatteryLogo.Checked = AppConfig.IsOnBattery("keyboard_awake_logo");
checkBootLogo.Checked = AppConfig.IsNotFalse("keyboard_boot_logo");
checkSleepLogo.Checked = AppConfig.IsNotFalse("keyboard_sleep_logo");
checkShutdownLogo.Checked = AppConfig.IsNotFalse("keyboard_shutdown_logo");
checkAwake.CheckedChanged += CheckPower_CheckedChanged;
checkBattery.CheckedChanged += CheckPower_CheckedChanged;
checkBoot.CheckedChanged += CheckPower_CheckedChanged;
checkSleep.CheckedChanged += CheckPower_CheckedChanged;
checkShutdown.CheckedChanged += CheckPower_CheckedChanged;
checkAwakeBar.CheckedChanged += CheckPower_CheckedChanged;
checkBatteryBar.CheckedChanged += CheckPower_CheckedChanged;
checkBootBar.CheckedChanged += CheckPower_CheckedChanged;
checkSleepBar.CheckedChanged += CheckPower_CheckedChanged;
checkShutdownBar.CheckedChanged += CheckPower_CheckedChanged;
checkAwakeLid.CheckedChanged += CheckPower_CheckedChanged;
checkBatteryLid.CheckedChanged += CheckPower_CheckedChanged;
checkBootLid.CheckedChanged += CheckPower_CheckedChanged;
checkSleepLid.CheckedChanged += CheckPower_CheckedChanged;
checkShutdownLid.CheckedChanged += CheckPower_CheckedChanged;
checkAwakeLogo.CheckedChanged += CheckPower_CheckedChanged;
checkBatteryLogo.CheckedChanged += CheckPower_CheckedChanged;
checkBootLogo.CheckedChanged += CheckPower_CheckedChanged;
checkSleepLogo.CheckedChanged += CheckPower_CheckedChanged;
checkShutdownLogo.CheckedChanged += CheckPower_CheckedChanged;
if ((!AppConfig.IsStrix() && !AppConfig.IsZ13()) || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
if (!AppConfig.IsBacklightZones() || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
{
if (!AppConfig.IsStrixLimitedRGB())
{
labelBacklightBar.Visible = false;
checkAwakeBar.Visible = false;
checkBatteryBar.Visible = false;
checkBootBar.Visible = false;
checkSleepBar.Visible = false;
checkShutdownBar.Visible = false;
@@ -354,20 +363,23 @@ namespace GHelper
labelBacklightLid.Visible = false;
checkAwakeLid.Visible = false;
checkBatteryLid.Visible = false;
checkBootLid.Visible = false;
checkSleepLid.Visible = false;
checkShutdownLid.Visible = false;
labelBacklightLogo.Visible = false;
checkAwakeLogo.Visible = false;
checkBatteryLogo.Visible = false;
checkBootLogo.Visible = false;
checkSleepLogo.Visible = false;
checkShutdownLogo.Visible = false;
}
if (!AppConfig.IsStrix() && !AppConfig.IsZ13())
if (!AppConfig.IsBacklightZones())
{
labelBacklightKeyboard.Visible = false;
checkBattery.Visible = false;
}
//checkAutoToggleClamshellMode.Visible = clamshellControl.IsExternalDisplayConnected();
@@ -765,6 +777,14 @@ namespace GHelper
AppConfig.Set("keyboard_sleep_logo", (checkSleepLogo.Checked ? 1 : 0));
AppConfig.Set("keyboard_shutdown_logo", (checkShutdownLogo.Checked ? 1 : 0));
if (AppConfig.IsBacklightZones())
{
AppConfig.Set("keyboard_awake_bat", (checkBattery.Checked ? 1 : 0));
AppConfig.Set("keyboard_awake_bar_bat", (checkBatteryBar.Checked ? 1 : 0));
AppConfig.Set("keyboard_awake_lid_bat", (checkBatteryLid.Checked ? 1 : 0));
AppConfig.Set("keyboard_awake_logo_bat", (checkBatteryLogo.Checked ? 1 : 0));
}
Aura.ApplyPower();
}

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0-windows</TargetFramework>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>True</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.176</AssemblyVersion>
<AssemblyVersion>0.182</AssemblyVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -62,7 +62,7 @@
<PackageReference Include="HidSharpCore" Version="1.2.1.1" />
<PackageReference Include="NAudio" Version="2.1.0" />
<PackageReference Include="NvAPIWrapper.Net" Version="0.8.1.101" />
<PackageReference Include="System.Management" Version="7.0.1" />
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="TaskScheduler" Version="2.10.1" />
<PackageReference Include="WinForms.DataVisualization" Version="1.8.0" />
</ItemGroup>
@@ -71,18 +71,6 @@
<Content Include="Resources\eco.ico">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Include="Resources\icons8-charging-battery-48.png">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Include="Resources\icons8-laptop-48.png">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Include="Resources\icons8-speed-48.png">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Include="Resources\icons8-video-card-48.png">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Include="Resources\ultimate.ico">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>

View File

@@ -25,8 +25,6 @@ namespace GHelper.Gpu
int eco = Program.acpi.DeviceGet(AsusACPI.GPUEco);
int mux = Program.acpi.DeviceGet(AsusACPI.GPUMux);
if (mux < 0) mux = Program.acpi.DeviceGet(AsusACPI.GPUMuxVivo);
Logger.WriteLine("Eco flag : " + eco);
Logger.WriteLine("Mux flag : " + mux);
@@ -83,7 +81,6 @@ namespace GHelper.Gpu
if (dialogResult == DialogResult.Yes)
{
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 1, "GPUMux");
if (status != 1) Program.acpi.DeviceSet(AsusACPI.GPUMuxVivo, 1, "GPUMuxVivo");
restart = true;
changed = true;
}
@@ -99,7 +96,6 @@ namespace GHelper.Gpu
Thread.Sleep(100);
}
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
if (status != 1) Program.acpi.DeviceSet(AsusACPI.GPUMuxVivo, 0, "GPUMuxVivo");
restart = true;
changed = true;
}

View File

@@ -108,6 +108,9 @@ namespace GHelper.Helpers
if (Program.settingsForm.Visible)
Program.screenControl.InitScreen();
if (AppConfig.IsForceMiniled())
Program.screenControl.InitMiniled();
}
private static int CheckAndSaveLidAction()

View File

@@ -218,6 +218,9 @@ namespace GHelper.Input
case 3:
KeyboardHook.KeyKeyKeyPress((Keys)hexKeys[0], (Keys)hexKeys[1], (Keys)hexKeys[2]);
break;
case 4:
KeyboardHook.KeyKeyKeyKeyPress((Keys)hexKeys[0], (Keys)hexKeys[1], (Keys)hexKeys[2], (Keys)hexKeys[3]);
break;
default:
LaunchProcess(command);
break;
@@ -288,7 +291,7 @@ namespace GHelper.Input
}
}
if (AppConfig.NoAura())
if (AppConfig.MediaKeys())
{
switch (e.Key)
{
@@ -949,7 +952,10 @@ namespace GHelper.Input
if (string.IsNullOrEmpty(command)) return;
try
{
RestrictedProcessHelper.RunAsRestrictedUser(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe"), "/C " + command);
if (command.StartsWith("shutdown"))
ProcessHelper.RunCMD("cmd", "/C " + command);
else
RestrictedProcessHelper.RunAsRestrictedUser(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe"), "/C " + command);
}
catch (Exception ex)
{

View File

@@ -77,6 +77,21 @@ public sealed class KeyboardHook : IDisposable
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
}
public static void KeyKeyKeyKeyPress(Keys key, Keys key2, Keys key3, Keys key4, int sleep = 1)
{
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
keybd_event((byte)key4, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
Thread.Sleep(sleep);
keybd_event((byte)key4, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
}
/// <summary>
/// Represents the window that is used internally to get the messages.
/// </summary>

View File

@@ -0,0 +1,294 @@
namespace GHelper.Peripherals.Mouse.Models
{
public class GladiusIIWireless : AsusMouse
{
public GladiusIIWireless() : base(0x0B05, 0x18A0, "mi_02", true)
{
}
public override int DPIProfileCount()
{
return 2;
}
public override string GetDisplayName()
{
return "Gladius II Wireless";
}
public override PollingRate[] SupportedPollingrates()
{
return new PollingRate[] {
PollingRate.PR125Hz,
PollingRate.PR250Hz,
PollingRate.PR500Hz,
PollingRate.PR1000Hz
};
}
public override int ProfileCount()
{
return 1;
}
public override int MaxDPI()
{
return 16_000;
}
public override bool HasRGB()
{
return true;
}
public override bool HasAutoPowerOff()
{
return true;
}
public override bool HasAngleSnapping()
{
return true;
}
public override bool HasAngleTuning()
{
return true;
}
public override bool HasDebounceSetting()
{
return true;
}
public override bool HasLiftOffSetting()
{
return false;
}
public override bool HasLowBatteryWarning()
{
return true;
}
public override int LowBatteryWarningStep()
{
return 25;
}
public override bool HasBattery()
{
return true;
}
public override bool HasDPIColors()
{
return false;
}
public override bool IsLightingModeSupported(LightingMode lightingMode)
{
return lightingMode == LightingMode.Static
|| lightingMode == LightingMode.Breathing
|| lightingMode == LightingMode.ColorCycle
|| lightingMode == LightingMode.React
|| lightingMode == LightingMode.BatteryState;
}
public override LightingZone[] SupportedLightingZones()
{
return new LightingZone[] { LightingZone.Logo, LightingZone.Scrollwheel };
}
public override int DPIIncrements()
{
return 100;
}
public override bool CanChangeDPIProfile()
{
return true;
}
public override int MaxBrightness()
{
return 4;
}
//Has 25% increments
protected override int ParseBattery(byte[] packet)
{
if (packet[1] == 0x12 && packet[2] == 0x07)
{
return packet[5] * 25;
}
return -1;
}
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
{
/*
* This mouse uses different speed values for rainbow mode compared to others.
* 51 28 03 00 03 04 FF 00 00 00 00 [8C] 00 00 00 00
* 51 28 03 00 03 04 FF 00 00 00 00 [64] 00 00 00 00
* 51 28 03 00 03 04 FF 00 00 00 00 [3F] 00 00 00 00
*/
if (lightingSetting.LightingMode == LightingMode.Rainbow)
{
byte speed = 0x3F;
switch (lightingSetting.AnimationSpeed)
{
case AnimationSpeed.Slow:
speed = 0x3F;
break;
case AnimationSpeed.Medium:
speed = 0x64;
break;
case AnimationSpeed.Fast:
speed = 0x8C;
break;
}
return new byte[] { reportId, 0x51, 0x28, (byte)zone, 0x00,
IndexForLightingMode(lightingSetting.LightingMode),
(byte)lightingSetting.Brightness,
0xFF, 0x00, 0x00,
(byte)(SupportsAnimationDirection(lightingSetting.LightingMode) ? lightingSetting.AnimationDirection : 0x00),
(byte)((lightingSetting.RandomColor && SupportsRandomColor(lightingSetting.LightingMode)) ? 0x01: 0x00),
(byte)(SupportsAnimationSpeed(lightingSetting.LightingMode) ? speed : 0x00)
};
}
return base.GetUpdateLightingModePacket(lightingSetting, zone);
}
protected override byte[] GetReadLightingModePacket(LightingZone zone)
{
return new byte[] { 0x00, 0x12, 0x03, 0x00 };
}
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
{
if (packet[1] != 0x12 || packet[2] != 0x03)
{
return null;
}
int offset = 5 + (((int)zone) * 5);
LightingSetting setting = new LightingSetting();
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
setting.Brightness = packet[offset + 1];
setting.RGBColor = Color.FromArgb(packet[offset + 2], packet[offset + 3], packet[offset + 4]);
return setting;
}
public override void ReadLightingSetting()
{
if (!HasRGB())
{
return;
}
//Mouse sends all lighting zones in one response Direction, Random col, Speed
//00 12 03 00 00 [00 04 ff 00 80] [00 04 00 ff ff] [00 04 ff ff ff] 00 [00] [00] [00] 00 00
//00 12 03 00 00 [03 04 00 00 00] [03 04 00 00 00] [03 04 00 00 00] 00 [00] [00] [07] 00 00
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
if (response is null) return;
LightingZone[] lz = SupportedLightingZones();
for (int i = 0; i < lz.Length; ++i)
{
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
if (ls is null)
{
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
continue;
}
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
? (AnimationDirection)response[21]
: AnimationDirection.Clockwise;
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[22] == 0x01;
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
? (AnimationSpeed)response[23]
: AnimationSpeed.Medium;
if (ls.AnimationSpeed != AnimationSpeed.Fast
&& ls.AnimationSpeed != AnimationSpeed.Medium
&& ls.AnimationSpeed != AnimationSpeed.Slow)
{
ls.AnimationSpeed = AnimationSpeed.Medium;
}
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
LightingSetting[i] = ls;
}
}
protected override PollingRate ParsePollingRate(byte[] packet)
{
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
{
return (PollingRate)packet[9];
}
return PollingRate.PR125Hz;
}
protected override byte[] GetUpdatePollingRatePacket(PollingRate pollingRate)
{
return new byte[] { reportId, 0x51, 0x31, 0x02, 0x00, (byte)pollingRate };
}
protected override bool ParseAngleSnapping(byte[] packet)
{
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
{
return packet[13] == 0x01;
}
return false;
}
protected override byte[] GetUpdateAngleSnappingPacket(bool angleSnapping)
{
return new byte[] { reportId, 0x51, 0x31, 0x04, 0x00, (byte)(angleSnapping ? 0x01 : 0x00) };
}
protected override DebounceTime ParseDebounce(byte[] packet)
{
if (packet[1] != 0x12 || packet[2] != 0x04 || packet[3] != 0x00)
{
return DebounceTime.MS12;
}
if (packet[11] < 0x02)
{
return DebounceTime.MS12;
}
if (packet[11] > 0x07)
{
return DebounceTime.MS32;
}
return (DebounceTime)packet[11];
}
protected override byte[] GetUpdateDebouncePacket(DebounceTime debounce)
{
return new byte[] { reportId, 0x51, 0x31, 0x03, 0x00, ((byte)debounce) };
}
}
}

View File

@@ -0,0 +1,124 @@
namespace GHelper.Peripherals.Mouse.Models
{
public class KerisIIAceWired : AsusMouse
{
public KerisIIAceWired() : base(0x0B05, 0x1B16, "mi_00", true)
{
}
protected KerisIIAceWired(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
{
}
public override int DPIProfileCount()
{
return 4;
}
public override string GetDisplayName()
{
return "ROG Keris II Ace";
}
public override PollingRate[] SupportedPollingrates()
{
return new PollingRate[] {
PollingRate.PR125Hz,
PollingRate.PR250Hz,
PollingRate.PR500Hz,
PollingRate.PR1000Hz
};
}
public override int ProfileCount()
{
return 5;
}
public override int MaxDPI()
{
return 42_000;
}
public override bool HasLiftOffSetting()
{
return true;
}
public override bool HasRGB()
{
return true;
}
public override bool HasXYDPI()
{
return true;
}
public override bool IsLightingModeSupported(LightingMode lightingMode)
{
return lightingMode == LightingMode.Static
|| lightingMode == LightingMode.Breathing
|| lightingMode == LightingMode.ColorCycle
|| lightingMode == LightingMode.BatteryState
|| lightingMode == LightingMode.React;
}
public override bool HasAutoPowerOff()
{
return true;
}
public override bool HasAngleSnapping()
{
return true;
}
public override bool HasAngleTuning()
{
return true;
}
public override bool HasLowBatteryWarning()
{
return true;
}
public override bool HasDPIColors()
{
return true;
}
protected override PollingRate ParsePollingRate(byte[] packet)
{
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
{
if ((int)packet[13] > 7)
return (PollingRate)packet[13] - 96;
return (PollingRate)packet[13];
}
return PollingRate.PR125Hz;
}
}
/*
*
Mouse uses Omni Reciever
public class KerisIIAce : KerisIIAce
{
public KerisIIAce() : base(0xAAAA, false)
{
}
public override string GetDisplayName()
{
return "ROG Keris II Ace (Wired)";
}
}
*/
}

View File

@@ -0,0 +1,218 @@
namespace GHelper.Peripherals.Mouse.Models
{
//P503
public class Pugio : AsusMouse
{
public Pugio() : base(0x0B05, 0x1846, "mi_02", false)
{
}
public override int DPIProfileCount()
{
return 2;
}
public override string GetDisplayName()
{
return "ROG Pugio";
}
public override PollingRate[] SupportedPollingrates()
{
return new PollingRate[] {
PollingRate.PR125Hz,
PollingRate.PR250Hz,
PollingRate.PR500Hz,
PollingRate.PR1000Hz
};
}
public override int ProfileCount()
{
return 3;
}
public override int MaxDPI()
{
return 7_200;
}
public override int DPIIncrements()
{
return 50;
}
public override int MinDPI()
{
return 50;
}
public override bool HasLiftOffSetting()
{
return true;
}
public override bool HasRGB()
{
return true;
}
public override bool HasAngleSnapping()
{
return true;
}
public override bool CanChangeDPIProfile()
{
return true;
}
public override bool HasBattery()
{
return false;
}
public override bool HasAutoPowerOff()
{
return false;
}
//00 12 04 00 00 1f 00 07 00 [03] 00 02 00 00 00
protected override PollingRate ParsePollingRate(byte[] packet)
{
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
{
return (PollingRate)packet[9];
}
return PollingRate.PR125Hz;
}
public override int MaxBrightness()
{
return 4;
}
public override LightingZone[] SupportedLightingZones()
{
return new LightingZone[] { LightingZone.Logo, LightingZone.Scrollwheel, LightingZone.Underglow };
}
public override bool IsLightingModeSupported(LightingMode lightingMode)
{
return lightingMode == LightingMode.Static
|| lightingMode == LightingMode.Breathing
|| lightingMode == LightingMode.ColorCycle
|| lightingMode == LightingMode.Rainbow
|| lightingMode == LightingMode.React
|| lightingMode == LightingMode.Comet;
}
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
{
// 00 51 28 03 00 00 04 00 ff 40 00 00 00 00 00 00 00 00 00 00
/*
* This mouse uses different speed values for rainbow mode compared to others.
* 00 51 28 03 00 03 04 FF 00 00 00 00 [8C] 00 00 00 00
* 00 51 28 03 00 03 04 FF 00 00 00 00 [64] 00 00 00 00
* 00 51 28 03 00 03 04 FF 00 00 00 00 [3F] 00 00 00 00
*/
if (lightingSetting.LightingMode == LightingMode.Rainbow)
{
byte speed = 0x3F;
switch (lightingSetting.AnimationSpeed)
{
case AnimationSpeed.Slow:
speed = 0x3F;
break;
case AnimationSpeed.Medium:
speed = 0x64;
break;
case AnimationSpeed.Fast:
speed = 0x8C;
break;
}
return new byte[] { reportId, 0x51, 0x28, (byte)zone, 0x00,
IndexForLightingMode(lightingSetting.LightingMode),
(byte)lightingSetting.Brightness,
0xFF, 0x00, 0x00,
(byte)(SupportsAnimationDirection(lightingSetting.LightingMode) ? lightingSetting.AnimationDirection : 0x00),
(byte)((lightingSetting.RandomColor && SupportsRandomColor(lightingSetting.LightingMode)) ? 0x01: 0x00),
(byte)(SupportsAnimationSpeed(lightingSetting.LightingMode) ? speed : 0x00)
};
}
return base.GetUpdateLightingModePacket(lightingSetting, zone);
}
protected override byte[] GetReadLightingModePacket(LightingZone zone)
{
return new byte[] { 0x00, 0x12, 0x03, 0x00 };
}
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
{
if (packet[1] != 0x12 || packet[2] != 0x03)
{
return null;
}
int offset = 5 + (((int)zone) * 5);
LightingSetting setting = new LightingSetting();
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
setting.Brightness = packet[offset + 1];
setting.RGBColor = Color.FromArgb(packet[offset + 2], packet[offset + 3], packet[offset + 4]);
return setting;
}
public override void ReadLightingSetting()
{
if (!HasRGB())
{
return;
}
//Mouse sends all lighting zones in one response (0x19) Direction, Random col, Speed
//00 12 03 00 00 [03 04 00 00 00] [03 04 00 00 00] [03 04 00 00 00] 01 [00] [00] [8c] 00
//00 12 03 00 00 [00 04 00 00 00] [00 04 00 00 00] [00 04 00 00 00] 01 [00] [00] [00] 00
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
if (response is null) return;
LightingZone[] lz = SupportedLightingZones();
for (int i = 0; i < lz.Length; ++i)
{
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
if (ls is null)
{
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
continue;
}
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
? (AnimationDirection)response[21]
: AnimationDirection.Clockwise;
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[22] == 0x01;
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
? (AnimationSpeed)response[23]
: AnimationSpeed.Medium;
if (ls.AnimationSpeed != AnimationSpeed.Fast
&& ls.AnimationSpeed != AnimationSpeed.Medium
&& ls.AnimationSpeed != AnimationSpeed.Slow)
{
ls.AnimationSpeed = AnimationSpeed.Medium;
}
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
LightingSetting[i] = ls;
}
}
}
}

View File

@@ -0,0 +1,116 @@
namespace GHelper.Peripherals.Mouse.Models
{
public class StrixEvolve : AsusMouse
{
public StrixEvolve() : base(0x0B05, 0x185B, "mi_00", false)
{
}
public override int DPIProfileCount()
{
return 2;
}
public override string GetDisplayName()
{
return "Strix Evolve";
}
public override PollingRate[] SupportedPollingrates()
{
return new PollingRate[] {
PollingRate.PR125Hz,
PollingRate.PR250Hz,
PollingRate.PR500Hz,
PollingRate.PR1000Hz
};
}
public override int ProfileCount()
{
return 2;
}
public override int MaxDPI()
{
return 7_200;
}
public override bool HasRGB()
{
return true;
}
public override bool HasAutoPowerOff()
{
return false;
}
public override bool HasDebounceSetting()
{
return true;
}
public override bool HasLowBatteryWarning()
{
return false;
}
public override bool HasBattery()
{
return false;
}
public override bool HasDPIColors()
{
return false;
}
public override bool IsLightingModeSupported(LightingMode lightingMode)
{
return lightingMode == LightingMode.Static
|| lightingMode == LightingMode.Breathing
|| lightingMode == LightingMode.ColorCycle
|| lightingMode == LightingMode.React;
}
public override LightingZone[] SupportedLightingZones()
{
return new LightingZone[] { LightingZone.Logo };
}
public override int DPIIncrements()
{
return 100;
}
public override int MinDPI()
{
return 50;
}
public override bool CanChangeDPIProfile()
{
return true;
}
public override int MaxBrightness()
{
return 4;
}
public override bool HasLiftOffSetting()
{
return true;
}
public override bool HasAngleSnapping()
{
return true;
}
}
}

View File

@@ -130,5 +130,40 @@
return 100;
}
public override int MaxDPI()
{
return 8_000;
}
public override int MinDPI()
{
return 100;
}
public override int DPIIncrements()
{
return 50;
}
public override bool HasDPIColors()
{
return true;
}
protected override int ParseDPIProfile(byte[] packet)
{
return base.ParseDPIProfile(packet) + 1;
}
protected override byte[] GetChangeDPIProfilePacket(int profile)
{
return new byte[] { reportId, 0x51, 0x31, 0x0A, 0x00, 0x04 };
}
protected override byte[] GetChangeDPIProfilePacket2(int profile)
{
return new byte[] { reportId, 0x51, 0x31, 0x09, 0x00, (byte)(profile - 1) };
}
}
}

View File

@@ -0,0 +1,66 @@
namespace GHelper.Peripherals.Mouse.Models
{
//P307
public class TUFM4Air : AsusMouse
{
public TUFM4Air() : base(0x0B05, 0x1A03, "mi_00", false)
{
}
public override int DPIProfileCount()
{
return 4;
}
public override string GetDisplayName()
{
return "TUF GAMING M4 Air";
}
public override PollingRate[] SupportedPollingrates()
{
return new PollingRate[] {
PollingRate.PR125Hz,
PollingRate.PR250Hz,
PollingRate.PR500Hz,
PollingRate.PR1000Hz
};
}
public override int ProfileCount()
{
return 3;
}
public override int MaxDPI()
{
return 16_000;
}
public override bool HasLiftOffSetting()
{
return true;
}
public override bool HasAngleSnapping()
{
return true;
}
public override bool HasAngleTuning()
{
return false;
}
public override bool HasBattery()
{
return false;
}
public override int DPIIncrements()
{
return 100;
}
}
}

View File

@@ -7,7 +7,7 @@
{
}
public TUFM4Wirelss(ushort productId) : base(0x0B05, productId, "mi_00", true)
public TUFM4Wirelss(ushort productId, bool wireless) : base(0x0B05, productId, "mi_00", wireless)
{
}
@@ -90,7 +90,7 @@
//P310
public class TUFM4WirelssCN : TUFM4Wirelss
{
public TUFM4WirelssCN() : base(0x1A8D)
public TUFM4WirelssCN() : base(0x1A8D, true)
{
}
@@ -101,4 +101,41 @@
return "TX GAMING MOUSE (Wireless)";
}
}
//P519_Wireless
public class TXGamingMini : TUFM4Wirelss
{
public TXGamingMini() : base(0x1AF5, true)
{
}
public TXGamingMini(ushort productId, bool wireless) : base(productId, wireless)
{
}
public override string GetDisplayName()
{
return "TX GAMING MOUSE Mini (Wireless)";
}
public override bool HasXYDPI()
{
return true;
}
}
//P519_Wired
public class TXGamingMiniWired : TXGamingMini
{
public TXGamingMiniWired() : base(0x1AF3, false)
{
}
public override string GetDisplayName()
{
return "TX GAMING MOUSE Mini (Wired)";
}
}
}

View File

@@ -190,11 +190,13 @@ namespace GHelper.Peripherals
DetectMouse(new GladiusIIOrigin());
DetectMouse(new GladiusIIOriginPink());
DetectMouse(new GladiusII());
DetectMouse(new GladiusIIWireless());
DetectMouse(new ROGKerisWireless());
DetectMouse(new ROGKerisWirelessWired());
DetectMouse(new ROGKeris());
DetectMouse(new ROGKerisWirelessEvaEdition());
DetectMouse(new ROGKerisWirelessEvaEditionWired());
DetectMouse(new TUFM4Air());
DetectMouse(new TUFM4Wirelss());
DetectMouse(new TUFM4WirelssCN());
DetectMouse(new StrixImpactIIWireless());
@@ -212,6 +214,7 @@ namespace GHelper.Peripherals
DetectMouse(new TUFM5());
DetectMouse(new KerisWirelssAimpoint());
DetectMouse(new KerisWirelssAimpointWired());
DetectMouse(new KerisIIAceWired());
DetectMouse(new PugioII());
DetectMouse(new PugioIIWired());
DetectMouse(new StrixImpactII());
@@ -223,6 +226,9 @@ namespace GHelper.Peripherals
DetectMouse(new StrixCarry());
DetectMouse(new StrixImpactIII());
DetectMouse(new StrixImpact());
DetectMouse(new TXGamingMini());
DetectMouse(new TXGamingMiniWired());
DetectMouse(new Pugio());
}
public static void DetectMouse(AsusMouse am)

View File

@@ -208,16 +208,17 @@ namespace GHelper
public static void SetAutoModes(bool powerChanged = false, bool init = false)
public static bool SetAutoModes(bool powerChanged = false, bool init = false)
{
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAuto) < 3000) return;
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAuto) < 3000) return false;
lastAuto = DateTimeOffset.Now.ToUnixTimeMilliseconds();
isPlugged = SystemInformation.PowerStatus.PowerLineStatus;
Logger.WriteLine("AutoSetting for " + isPlugged.ToString());
BatteryControl.AutoBattery(init);
if (init) screenControl.InitMiniled();
inputDispatcher.Init();
@@ -240,6 +241,8 @@ namespace GHelper
{
settingsForm.AutoKeyboard();
}
return true;
}
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)

View File

@@ -310,6 +310,16 @@ namespace GHelper.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap icons8_dollar_32 {
get {
object obj = ResourceManager.GetObject("icons8-dollar-32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@@ -118,6 +118,9 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="lighting_dot_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -139,14 +142,20 @@
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_mute_unmute_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-mute-unmute-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_batterie_voll_geladen_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-batterie-voll-geladen-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="icons8-spa-flower-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-spa-flower-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-quit-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-quit-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -163,17 +172,17 @@
<data name="icons8-automation-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-automation-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="light_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\light-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="brightness_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\brightness-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_processor_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-processor-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MFont" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Font.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_touchpad_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-touchpad-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -184,12 +193,18 @@
<data name="icons8-help-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-help-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="light_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\light-eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-matrix-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-matrix-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-laptop-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-laptop-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ally" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ally.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -211,8 +226,8 @@
<data name="backlight" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\backlight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-brightness-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-brightness-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="icons8-color-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-color-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-refresh-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-refresh-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -220,6 +235,9 @@
<data name="icons8-hibernate-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-hibernate-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-keyboard-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-keyboard-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -250,8 +268,8 @@
<data name="icons8-heartbeat-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-heartbeat-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ally" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ally.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="backlight_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\backlight-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -259,8 +277,8 @@
<data name="backlight_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\backlight-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-spa-flower-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-spa-flower-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="icons8-brightness-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-brightness-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dot_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dot-standard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -268,8 +286,11 @@
<data name="icons8_rocket_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-rocket-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="dark_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dark-eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_mauszeiger_50" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -280,9 +301,15 @@
<data name="icons8_ladende_batterie_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-ladende-batterie-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dark_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dark-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MFont" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Font.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="dot_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dot-eco.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -298,9 +325,6 @@
<data name="icons8_voltage_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-voltage-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-software-32-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-software-32-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -331,28 +355,7 @@
<data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-color-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-color-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dark_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dark-eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dark_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dark-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="light_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\light-eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="light_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\light-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="icons8-dollar-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-dollar-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -127,7 +127,7 @@
<value>Restart your device to apply changes</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Restart now?</value>
<value>Újraindítás most?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Úgy tűnik használatban van a GPU. Biztosan letiltod?</value>
@@ -235,7 +235,7 @@
<value>Görgetés</value>
</data>
<data name="AuraZoneUnderglow" xml:space="preserve">
<value>Underglow</value>
<value>Alsó világítás</value>
</data>
<data name="AutoApply" xml:space="preserve">
<value>Automatikus alkalmazás</value>
@@ -283,7 +283,7 @@
<value>Akku állapot</value>
</data>
<data name="BatteryLimitFull" xml:space="preserve">
<value>One time charge to 100%</value>
<value>Egyszeri 100%-os feltöltés</value>
</data>
<data name="Binding" xml:space="preserve">
<value>Binding</value>
@@ -313,7 +313,7 @@
<value>Fényerő növelése</value>
</data>
<data name="BWTrayIcon" xml:space="preserve">
<value>Black and white tray icon</value>
<value>Fekete-fehér tálca ikon</value>
</data>
<data name="Calibrate" xml:space="preserve">
<value>Kalibrálás</value>
@@ -325,10 +325,10 @@
<value>Szín</value>
</data>
<data name="Contrast" xml:space="preserve">
<value>Contrast</value>
<value>Kontraszt</value>
</data>
<data name="Controller" xml:space="preserve">
<value>Controller</value>
<value>Kontroller</value>
</data>
<data name="CPUBoost" xml:space="preserve">
<value>CPU gyorsítás</value>
@@ -343,10 +343,10 @@
<value>Alapért.</value>
</data>
<data name="DisableController" xml:space="preserve">
<value>Disable Controller</value>
<value>Kontoller letiltása</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
<value>Letiltása képernyő lehajtásakor</value>
</data>
<data name="DisableOverdrive" xml:space="preserve">
<value>Képernyőtúlhajtás letiltása</value>
@@ -355,7 +355,7 @@
<value>Merülés</value>
</data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>Download Color Profiles</value>
<value>Színprofilok letöltése</value>
</data>
<data name="DownloadUpdate" xml:space="preserve">
<value>Letöltés</value>
@@ -384,7 +384,7 @@ Do you still want to continue?</value>
<value>Energia beállítások</value>
</data>
<data name="Export" xml:space="preserve">
<value>Export Profile</value>
<value>Profil exportálása</value>
</data>
<data name="Extra" xml:space="preserve">
<value>Extra</value>
@@ -420,16 +420,16 @@ Do you still want to continue?</value>
<value>Venti + energia</value>
</data>
<data name="FlickerFreeDimming" xml:space="preserve">
<value>Flicker-free Dimming</value>
<value>Villogásmentes halványítás</value>
</data>
<data name="FnLock" xml:space="preserve">
<value>Fn + F gyorsgombok feldolgozása Fn nélkül</value>
</data>
<data name="FnLockOff" xml:space="preserve">
<value>FN-Lock Off</value>
<value>Fn-Lock Ki</value>
</data>
<data name="FnLockOn" xml:space="preserve">
<value>FN-Lock On</value>
<value>Fn-Lock Be</value>
</data>
<data name="GPUBoost" xml:space="preserve">
<value>Dinamikus gyorsítás</value>
@@ -474,7 +474,7 @@ Do you still want to continue?</value>
<value>Image Rotation</value>
</data>
<data name="Import" xml:space="preserve">
<value>Import Profile</value>
<value>Profil importálása</value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>Gyorsbillentyűk</value>
@@ -495,7 +495,7 @@ Do you still want to continue?</value>
<value>Laptop kijelző</value>
</data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
<value>LED Állapotjelzők</value>
</data>
<data name="Lid" xml:space="preserve">
<value>Fedél</value>
@@ -507,7 +507,7 @@ Do you still want to continue?</value>
<value>Világítás</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
<value>Képernyő zarolása</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logó</value>
@@ -591,7 +591,7 @@ Do you still want to continue?</value>
<value>Multi Zone Strong</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Muted</value>
<value>Mikrofon Ki</value>
</data>
<data name="MuteMic" xml:space="preserve">
<value>Mikrofon némítása</value>
@@ -609,10 +609,10 @@ Do you still want to continue?</value>
<value>Nincs csatlakoztatva</value>
</data>
<data name="Off" xml:space="preserve">
<value>Off</value>
<value>Ki</value>
</data>
<data name="On" xml:space="preserve">
<value>On</value>
<value>Be</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>One Zone</value>
@@ -687,10 +687,10 @@ Do you still want to continue?</value>
<value>Scaling Quality</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Screenpad Brightness Down</value>
<value>Screenpad fényerő csökkentése</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>Screenpad Brightness Up</value>
<value>Screenpad fényerő növelése</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>Leállítás</value>
@@ -741,7 +741,7 @@ Do you still want to continue?</value>
<value>Képernyő ki-/bekapcsolása</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
<value>Érintőképernyő ki-/bekapcsolása</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
@@ -765,7 +765,7 @@ Do you still want to continue?</value>
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
</data>
<data name="Unmuted" xml:space="preserve">
<value>Unmuted</value>
<value>Mikrofon Be</value>
</data>
<data name="Updates" xml:space="preserve">
<value>Frissítések</value>
@@ -777,7 +777,7 @@ Do you still want to continue?</value>
<value>Vibration Strength</value>
</data>
<data name="VisualMode" xml:space="preserve">
<value>Visual Mode</value>
<value>Képernyőszín Mód</value>
</data>
<data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value>

View File

@@ -741,7 +741,7 @@ Nadal chcesz kontynuować?</value>
<value>Przełącz ekran</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
<value>Włącz/wyłącz ekran dotykowy</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>

View File

@@ -585,10 +585,10 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Fare ile eşitle</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>Çok Bölgeli</value>
<value>Çoklu Bölge</value>
</data>
<data name="MultizoneStrong" xml:space="preserve">
<value>Çok Bölgeli (Güçlü)</value>
<value>Çoklu Bölge Güçlü</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Susturuldu</value>
@@ -615,7 +615,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Açık</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>Tek Bölgeli</value>
<value>Tek Bölge</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>G-Helper penceresini aç</value>
@@ -624,7 +624,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>İyileştirilmiş</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Pilde çalışırken Eco moda, fişe takılıyken Standart moda geçin</value>
<value>Pil ile çalışırken Eco moda, Elektrik ile Standart moda geçilir</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>İyileştirilmiş modda USB-C şarj cihazı bağlıyken, GPU devre dışı kalsın</value>
@@ -726,16 +726,16 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Hizmetler Durduruluyor</value>
</data>
<data name="ToggleAura" xml:space="preserve">
<value>Aura'yı Kullan</value>
<value>Aura Değiştir</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Otomatik Clamshell Modunu Aç</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Fn-Lock'u Aç</value>
<value>Fn-Lock Değiştir</value>
</data>
<data name="ToggleMiniled" xml:space="preserve">
<value>Miniled'i Aç (destekliyorsa)</value>
<value>Miniled Değiştir (destekleniyorsa)</value>
</data>
<data name="ToggleScreen" xml:space="preserve">
<value>Ekranı Değiştir</value>
@@ -756,7 +756,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Pille çalışırken kapat</value>
</data>
<data name="UltimateGPUTooltip" xml:space="preserve">
<value>Dizüstü ekranını dGPU üstüne yönlendirerek FPS en üst düzeye çıkar</value>
<value>Dizüstü ekranı doğrudan dGPU üstünden çalışır FPS artar</value>
</data>
<data name="UltimateMode" xml:space="preserve">
<value>Ultimate</value>

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

172
app/Settings.Designer.cs generated
View File

@@ -51,7 +51,7 @@ namespace GHelper
labelBatteryTitle = new Label();
panelFooter = new Panel();
tableButtons = new TableLayoutPanel();
labelVersion = new Label();
buttonDonate = new RButton();
buttonQuit = new RButton();
buttonUpdates = new RButton();
checkStartup = new CheckBox();
@@ -107,7 +107,7 @@ namespace GHelper
buttonFnLock = new RButton();
pictureKeyboard = new PictureBox();
labelKeyboard = new Label();
panelVersion = new Panel();
panelStartup = new Panel();
labelCharge = new Label();
panelPeripherals = new Panel();
tableLayoutPeripherals = new TableLayoutPanel();
@@ -137,6 +137,8 @@ namespace GHelper
labelGamma = new Label();
pictureGamma = new PictureBox();
labelGammaTitle = new Label();
panelVersion = new Panel();
labelVersion = new Label();
panelMatrix.SuspendLayout();
panelMatrixAuto.SuspendLayout();
tableLayoutMatrix.SuspendLayout();
@@ -167,7 +169,7 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)pictureColor).BeginInit();
panelKeyboardTitle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureKeyboard).BeginInit();
panelVersion.SuspendLayout();
panelStartup.SuspendLayout();
panelPeripherals.SuspendLayout();
tableLayoutPeripherals.SuspendLayout();
panelPeripheralsTile.SuspendLayout();
@@ -180,6 +182,7 @@ namespace GHelper
tableVisual.SuspendLayout();
panelGammaTitle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureGamma).BeginInit();
panelVersion.SuspendLayout();
SuspendLayout();
//
// panelMatrix
@@ -268,7 +271,7 @@ namespace GHelper
comboMatrix.BorderColor = Color.White;
comboMatrix.ButtonColor = Color.FromArgb(255, 255, 255);
comboMatrix.Dock = DockStyle.Top;
comboMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboMatrix.Font = new Font("Segoe UI", 9F);
comboMatrix.FormattingEnabled = true;
comboMatrix.ItemHeight = 32;
comboMatrix.Items.AddRange(new object[] { Properties.Strings.MatrixOff, Properties.Strings.MatrixDim, Properties.Strings.MatrixMedium, Properties.Strings.MatrixBright });
@@ -283,7 +286,7 @@ namespace GHelper
comboMatrixRunning.BorderColor = Color.White;
comboMatrixRunning.ButtonColor = Color.FromArgb(255, 255, 255);
comboMatrixRunning.Dock = DockStyle.Top;
comboMatrixRunning.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboMatrixRunning.Font = new Font("Segoe UI", 9F);
comboMatrixRunning.FormattingEnabled = true;
comboMatrixRunning.ItemHeight = 32;
comboMatrixRunning.Items.AddRange(new object[] { Properties.Strings.MatrixBanner, Properties.Strings.MatrixLogo, Properties.Strings.MatrixPicture, Properties.Strings.MatrixClock, Properties.Strings.MatrixAudio });
@@ -298,7 +301,7 @@ namespace GHelper
comboInterval.BorderColor = Color.White;
comboInterval.ButtonColor = Color.FromArgb(255, 255, 255);
comboInterval.Dock = DockStyle.Top;
comboInterval.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboInterval.Font = new Font("Segoe UI", 9F);
comboInterval.FormattingEnabled = true;
comboInterval.ItemHeight = 32;
comboInterval.Location = new Point(10, 60);
@@ -355,7 +358,7 @@ namespace GHelper
// labelMatrix
//
labelMatrix.AutoSize = true;
labelMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelMatrix.Location = new Point(44, 0);
labelMatrix.Margin = new Padding(4, 0, 4, 0);
labelMatrix.Name = "labelMatrix";
@@ -374,8 +377,8 @@ namespace GHelper
panelBattery.Location = new Point(11, 1765);
panelBattery.Margin = new Padding(0);
panelBattery.Name = "panelBattery";
panelBattery.Padding = new Padding(20, 20, 20, 11);
panelBattery.Size = new Size(827, 120);
panelBattery.Padding = new Padding(20, 20, 20, 0);
panelBattery.Size = new Size(827, 109);
panelBattery.TabIndex = 5;
//
// buttonBatteryFull
@@ -387,7 +390,7 @@ namespace GHelper
buttonBatteryFull.BorderRadius = 2;
buttonBatteryFull.FlatAppearance.BorderSize = 0;
buttonBatteryFull.FlatStyle = FlatStyle.Flat;
buttonBatteryFull.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold, GraphicsUnit.Point);
buttonBatteryFull.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold);
buttonBatteryFull.ForeColor = SystemColors.ControlDark;
buttonBatteryFull.Location = new Point(728, 67);
buttonBatteryFull.Margin = new Padding(0);
@@ -449,7 +452,7 @@ namespace GHelper
//
// labelBatteryTitle
//
labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelBatteryTitle.Location = new Point(43, 0);
labelBatteryTitle.Margin = new Padding(8, 0, 8, 0);
labelBatteryTitle.Name = "labelBatteryTitle";
@@ -463,11 +466,11 @@ namespace GHelper
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelFooter.Controls.Add(tableButtons);
panelFooter.Dock = DockStyle.Top;
panelFooter.Location = new Point(11, 1941);
panelFooter.Location = new Point(11, 1974);
panelFooter.Margin = new Padding(0);
panelFooter.Name = "panelFooter";
panelFooter.Padding = new Padding(20);
panelFooter.Size = new Size(827, 100);
panelFooter.Padding = new Padding(20, 10, 20, 20);
panelFooter.Size = new Size(827, 88);
panelFooter.TabIndex = 7;
//
// tableButtons
@@ -478,32 +481,37 @@ namespace GHelper
tableButtons.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
tableButtons.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
tableButtons.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 27F));
tableButtons.Controls.Add(labelVersion, 0, 0);
tableButtons.Controls.Add(buttonDonate, 0, 0);
tableButtons.Controls.Add(buttonQuit, 2, 0);
tableButtons.Controls.Add(buttonUpdates, 1, 0);
tableButtons.Dock = DockStyle.Top;
tableButtons.Location = new Point(20, 20);
tableButtons.Location = new Point(20, 10);
tableButtons.Margin = new Padding(8, 4, 8, 4);
tableButtons.Name = "tableButtons";
tableButtons.RowCount = 1;
tableButtons.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableButtons.Size = new Size(787, 60);
tableButtons.Size = new Size(787, 58);
tableButtons.TabIndex = 25;
//
// labelVersion
// buttonDonate
//
labelVersion.Cursor = Cursors.Hand;
labelVersion.Dock = DockStyle.Fill;
labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point);
labelVersion.ForeColor = SystemColors.ControlDark;
labelVersion.Location = new Point(0, 0);
labelVersion.Margin = new Padding(0);
labelVersion.Name = "labelVersion";
labelVersion.Padding = new Padding(5);
labelVersion.Size = new Size(262, 60);
labelVersion.TabIndex = 37;
labelVersion.Text = "v.0";
labelVersion.TextAlign = ContentAlignment.MiddleLeft;
buttonDonate.Activated = false;
buttonDonate.BackColor = SystemColors.ControlLight;
buttonDonate.BorderColor = Color.Transparent;
buttonDonate.BorderRadius = 2;
buttonDonate.Dock = DockStyle.Top;
buttonDonate.FlatStyle = FlatStyle.Flat;
buttonDonate.Image = Properties.Resources.icons8_dollar_32;
buttonDonate.ImageAlign = ContentAlignment.MiddleRight;
buttonDonate.Location = new Point(4, 5);
buttonDonate.Margin = new Padding(4, 5, 4, 5);
buttonDonate.Name = "buttonDonate";
buttonDonate.Secondary = true;
buttonDonate.Size = new Size(254, 48);
buttonDonate.TabIndex = 3;
buttonDonate.Text = "&Donate";
buttonDonate.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonDonate.UseVisualStyleBackColor = false;
//
// buttonQuit
//
@@ -548,10 +556,12 @@ namespace GHelper
// checkStartup
//
checkStartup.AutoSize = true;
checkStartup.Location = new Point(28, 11);
checkStartup.Dock = DockStyle.Left;
checkStartup.Location = new Point(20, 0);
checkStartup.Margin = new Padding(11, 5, 11, 5);
checkStartup.Name = "checkStartup";
checkStartup.Size = new Size(206, 36);
checkStartup.Padding = new Padding(10, 0, 0, 0);
checkStartup.Size = new Size(216, 50);
checkStartup.TabIndex = 21;
checkStartup.Text = Properties.Strings.RunOnStartup;
checkStartup.UseVisualStyleBackColor = true;
@@ -710,7 +720,7 @@ namespace GHelper
//
labelPerf.AccessibleRole = AccessibleRole.Caret;
labelPerf.AutoSize = true;
labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelPerf.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Polite;
labelPerf.Location = new Point(40, 0);
labelPerf.Margin = new Padding(8, 0, 8, 0);
@@ -1034,7 +1044,7 @@ namespace GHelper
// labelGPU
//
labelGPU.AutoSize = true;
labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelGPU.Location = new Point(40, 0);
labelGPU.Margin = new Padding(8, 0, 8, 0);
labelGPU.Name = "labelGPU";
@@ -1240,7 +1250,7 @@ namespace GHelper
// labelSreen
//
labelSreen.AutoSize = true;
labelSreen.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelSreen.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelSreen.Location = new Point(40, 0);
labelSreen.Margin = new Padding(4, 0, 4, 0);
labelSreen.Name = "labelSreen";
@@ -1269,7 +1279,7 @@ namespace GHelper
//
labelDynamicLighting.Cursor = Cursors.Hand;
labelDynamicLighting.Dock = DockStyle.Top;
labelDynamicLighting.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
labelDynamicLighting.Font = new Font("Segoe UI", 9F);
labelDynamicLighting.ForeColor = SystemColors.GrayText;
labelDynamicLighting.Location = new Point(20, 112);
labelDynamicLighting.Margin = new Padding(4, 0, 4, 0);
@@ -1386,7 +1396,7 @@ namespace GHelper
comboKeyboard.ButtonColor = Color.FromArgb(255, 255, 255);
comboKeyboard.Dock = DockStyle.Top;
comboKeyboard.FlatStyle = FlatStyle.Flat;
comboKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboKeyboard.Font = new Font("Segoe UI", 9F);
comboKeyboard.FormattingEnabled = true;
comboKeyboard.ItemHeight = 32;
comboKeyboard.Items.AddRange(new object[] { "Static", "Breathe", "Rainbow", "Strobe" });
@@ -1418,7 +1428,7 @@ namespace GHelper
buttonFnLock.Dock = DockStyle.Right;
buttonFnLock.FlatAppearance.BorderSize = 0;
buttonFnLock.FlatStyle = FlatStyle.Flat;
buttonFnLock.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold, GraphicsUnit.Point);
buttonFnLock.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold);
buttonFnLock.ForeColor = SystemColors.ControlDark;
buttonFnLock.Location = new Point(675, 0);
buttonFnLock.Margin = new Padding(0);
@@ -1443,7 +1453,7 @@ namespace GHelper
// labelKeyboard
//
labelKeyboard.AutoSize = true;
labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelKeyboard.Location = new Point(43, 0);
labelKeyboard.Margin = new Padding(4, 0, 4, 0);
labelKeyboard.Name = "labelKeyboard";
@@ -1451,27 +1461,27 @@ namespace GHelper
labelKeyboard.TabIndex = 34;
labelKeyboard.Text = "Laptop Keyboard";
//
// panelVersion
// panelStartup
//
panelVersion.Controls.Add(labelCharge);
panelVersion.Controls.Add(checkStartup);
panelVersion.Dock = DockStyle.Top;
panelVersion.Location = new Point(11, 1885);
panelVersion.Margin = new Padding(4);
panelVersion.Name = "panelVersion";
panelVersion.Size = new Size(827, 56);
panelVersion.TabIndex = 6;
panelStartup.Controls.Add(labelCharge);
panelStartup.Controls.Add(checkStartup);
panelStartup.Dock = DockStyle.Top;
panelStartup.Location = new Point(11, 1874);
panelStartup.Margin = new Padding(0);
panelStartup.Name = "panelStartup";
panelStartup.Padding = new Padding(20, 0, 20, 0);
panelStartup.Size = new Size(827, 50);
panelStartup.TabIndex = 6;
//
// labelCharge
//
labelCharge.Cursor = Cursors.Hand;
labelCharge.Dock = DockStyle.Right;
labelCharge.ForeColor = SystemColors.ControlDark;
labelCharge.Location = new Point(366, 0);
labelCharge.Location = new Point(442, 0);
labelCharge.Margin = new Padding(0);
labelCharge.Name = "labelCharge";
labelCharge.Padding = new Padding(0, 0, 20, 0);
labelCharge.Size = new Size(461, 56);
labelCharge.Size = new Size(365, 50);
labelCharge.TabIndex = 40;
labelCharge.TextAlign = ContentAlignment.MiddleRight;
//
@@ -1521,7 +1531,7 @@ namespace GHelper
buttonPeripheral3.Dock = DockStyle.Top;
buttonPeripheral3.FlatAppearance.BorderSize = 0;
buttonPeripheral3.FlatStyle = FlatStyle.Flat;
buttonPeripheral3.Font = new Font("Segoe UI", 8F, FontStyle.Regular, GraphicsUnit.Point);
buttonPeripheral3.Font = new Font("Segoe UI", 8F);
buttonPeripheral3.ForeColor = SystemColors.ControlText;
buttonPeripheral3.Image = Properties.Resources.icons8_maus_48;
buttonPeripheral3.ImageAlign = ContentAlignment.MiddleLeft;
@@ -1545,7 +1555,7 @@ namespace GHelper
buttonPeripheral2.Dock = DockStyle.Top;
buttonPeripheral2.FlatAppearance.BorderSize = 0;
buttonPeripheral2.FlatStyle = FlatStyle.Flat;
buttonPeripheral2.Font = new Font("Segoe UI", 8F, FontStyle.Regular, GraphicsUnit.Point);
buttonPeripheral2.Font = new Font("Segoe UI", 8F);
buttonPeripheral2.ForeColor = SystemColors.ControlText;
buttonPeripheral2.Image = Properties.Resources.icons8_maus_48;
buttonPeripheral2.ImageAlign = ContentAlignment.MiddleLeft;
@@ -1569,7 +1579,7 @@ namespace GHelper
buttonPeripheral1.Dock = DockStyle.Top;
buttonPeripheral1.FlatAppearance.BorderSize = 0;
buttonPeripheral1.FlatStyle = FlatStyle.Flat;
buttonPeripheral1.Font = new Font("Segoe UI", 8F, FontStyle.Regular, GraphicsUnit.Point);
buttonPeripheral1.Font = new Font("Segoe UI", 8F);
buttonPeripheral1.ForeColor = SystemColors.ControlText;
buttonPeripheral1.Image = Properties.Resources.icons8_maus_48;
buttonPeripheral1.ImageAlign = ContentAlignment.MiddleLeft;
@@ -1608,7 +1618,7 @@ namespace GHelper
// labelPeripherals
//
labelPeripherals.AutoSize = true;
labelPeripherals.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelPeripherals.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelPeripherals.Location = new Point(44, 0);
labelPeripherals.Margin = new Padding(8, 0, 8, 0);
labelPeripherals.Name = "labelPeripherals";
@@ -1744,7 +1754,7 @@ namespace GHelper
// labelAlly
//
labelAlly.AutoSize = true;
labelAlly.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelAlly.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelAlly.Location = new Point(43, 0);
labelAlly.Margin = new Padding(4, 0, 4, 0);
labelAlly.Name = "labelAlly";
@@ -1834,7 +1844,7 @@ namespace GHelper
comboVisual.ButtonColor = Color.FromArgb(255, 255, 255);
comboVisual.Dock = DockStyle.Top;
comboVisual.FlatStyle = FlatStyle.Flat;
comboVisual.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboVisual.Font = new Font("Segoe UI", 9F);
comboVisual.FormattingEnabled = true;
comboVisual.ItemHeight = 32;
comboVisual.Location = new Point(10, 8);
@@ -1850,7 +1860,7 @@ namespace GHelper
comboColorTemp.ButtonColor = Color.FromArgb(255, 255, 255);
comboColorTemp.Dock = DockStyle.Top;
comboColorTemp.FlatStyle = FlatStyle.Flat;
comboColorTemp.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboColorTemp.Font = new Font("Segoe UI", 9F);
comboColorTemp.FormattingEnabled = true;
comboColorTemp.ItemHeight = 32;
comboColorTemp.Location = new Point(530, 8);
@@ -1866,7 +1876,7 @@ namespace GHelper
comboGamut.ButtonColor = Color.FromArgb(255, 255, 255);
comboGamut.Dock = DockStyle.Top;
comboGamut.FlatStyle = FlatStyle.Flat;
comboGamut.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboGamut.Font = new Font("Segoe UI", 9F);
comboGamut.FormattingEnabled = true;
comboGamut.ItemHeight = 32;
comboGamut.Location = new Point(10, 67);
@@ -1927,7 +1937,7 @@ namespace GHelper
//
// labelGammaTitle
//
labelGammaTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGammaTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelGammaTitle.Location = new Point(43, 0);
labelGammaTitle.Margin = new Padding(4, 0, 4, 0);
labelGammaTitle.Name = "labelGammaTitle";
@@ -1935,15 +1945,44 @@ namespace GHelper
labelGammaTitle.TabIndex = 37;
labelGammaTitle.Text = "Flicker-free Dimming";
//
// panelVersion
//
panelVersion.AutoSize = true;
panelVersion.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelVersion.Controls.Add(labelVersion);
panelVersion.Dock = DockStyle.Top;
panelVersion.Location = new Point(11, 1924);
panelVersion.MinimumSize = new Size(0, 50);
panelVersion.Name = "panelVersion";
panelVersion.Padding = new Padding(20, 5, 20, 5);
panelVersion.Size = new Size(827, 50);
panelVersion.TabIndex = 10;
//
// labelVersion
//
labelVersion.Cursor = Cursors.Hand;
labelVersion.Dock = DockStyle.Left;
labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline);
labelVersion.ForeColor = SystemColors.ControlDark;
labelVersion.Location = new Point(20, 5);
labelVersion.Margin = new Padding(0);
labelVersion.Name = "labelVersion";
labelVersion.Padding = new Padding(5, 0, 5, 0);
labelVersion.Size = new Size(399, 40);
labelVersion.TabIndex = 38;
labelVersion.Text = "v.0";
labelVersion.TextAlign = ContentAlignment.MiddleLeft;
//
// SettingsForm
//
AutoScaleDimensions = new SizeF(192F, 192F);
AutoScaleMode = AutoScaleMode.Dpi;
AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(849, 2045);
ClientSize = new Size(849, 2075);
Controls.Add(panelFooter);
Controls.Add(panelVersion);
Controls.Add(panelStartup);
Controls.Add(panelBattery);
Controls.Add(panelPeripherals);
Controls.Add(panelKeyboard);
@@ -2008,8 +2047,8 @@ namespace GHelper
panelKeyboardTitle.ResumeLayout(false);
panelKeyboardTitle.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureKeyboard).EndInit();
panelVersion.ResumeLayout(false);
panelVersion.PerformLayout();
panelStartup.ResumeLayout(false);
panelStartup.PerformLayout();
panelPeripherals.ResumeLayout(false);
panelPeripherals.PerformLayout();
tableLayoutPeripherals.ResumeLayout(false);
@@ -2027,6 +2066,7 @@ namespace GHelper
tableVisual.ResumeLayout(false);
panelGammaTitle.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)pictureGamma).EndInit();
panelVersion.ResumeLayout(false);
ResumeLayout(false);
PerformLayout();
}
@@ -2093,8 +2133,7 @@ namespace GHelper
private Label labelBattery;
private PictureBox pictureBattery;
private Label labelBatteryTitle;
private Panel panelVersion;
private Label labelVersion;
private Panel panelStartup;
private RButton buttonStopGPU;
private TableLayoutPanel tableButtons;
private Panel panelPeripherals;
@@ -2139,5 +2178,8 @@ namespace GHelper
private RButton buttonFHD;
private RButton buttonAutoTDP;
private Label labelDynamicLighting;
private Panel panelVersion;
private Label labelVersion;
private RButton buttonDonate;
}
}

View File

@@ -269,12 +269,19 @@ namespace GHelper
labelVisual.Click += LabelVisual_Click;
labelCharge.Click += LabelCharge_Click;
buttonDonate.Click += ButtonDonate_Click;
labelDynamicLighting.Click += LabelDynamicLighting_Click;
panelPerformance.Focus();
InitVisual();
}
private void ButtonDonate_Click(object? sender, EventArgs e)
{
Process.Start(new ProcessStartInfo("https://github.com/seerge/g-helper/wiki/Support-Project") { UseShellExecute = true });
}
private void LabelDynamicLighting_Click(object? sender, EventArgs e)
{
DynamicLightingHelper.OpenSettings();
@@ -674,7 +681,7 @@ namespace GHelper
break;
case 1:
Logger.WriteLine("Monitor Power On");
Program.SetAutoModes();
if (!Program.SetAutoModes()) BatteryControl.AutoBattery();
break;
case 2:
Logger.WriteLine("Monitor Dimmed");

View File

@@ -80,7 +80,7 @@ namespace GHelper.USB
public static Color Color2 = Color.Black;
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenbook() || AppConfig.IsProArt();
static bool isStrix = AppConfig.IsStrix() && !AppConfig.IsNoDirectRGB();
static bool isStrix = AppConfig.IsAdvancedRGB() && !AppConfig.IsNoDirectRGB();
static bool isStrix4Zone = AppConfig.Is4ZoneRGB();
static bool isStrixNumpad = AppConfig.IsStrixNumpad();
@@ -183,7 +183,7 @@ namespace GHelper.USB
return _modes;
}
if (AppConfig.IsStrix() && !AppConfig.Is4ZoneRGB())
if (AppConfig.IsAdvancedRGB() && !AppConfig.Is4ZoneRGB())
{
return _modesStrix;
}
@@ -241,20 +241,20 @@ namespace GHelper.USB
}
public static byte[] AuraMessage(AuraMode mode, Color color, Color color2, int speed, bool mono = false, byte zoneByte = 0x00)
public static byte[] AuraMessage(AuraMode mode, Color color, Color color2, int speed, bool mono = false)
{
byte[] msg = new byte[17];
msg[0] = AsusHid.AURA_ID;
msg[1] = 0xB3;
msg[2] = zoneByte; // Zone
msg[2] = 0x00; // Zone
msg[3] = (byte)mode; // Aura Mode
msg[4] = color.R; // R
msg[5] = mono ? (byte)0 : color.G; // G
msg[6] = mono ? (byte)0 : color.B; // B
msg[7] = (byte)speed; // aura.speed as u8;
msg[8] = 0x00; // aura.direction as u8;
msg[9] = mode == AuraMode.AuraBreathe ? (byte)1 : (byte)0;
msg[9] = (color.R == 0 && color.G == 0 && color.B == 0) ? (byte)0xFF : (byte)0x00; // random color flag
msg[10] = color2.R; // R
msg[11] = mono ? (byte)0 : color2.G; // G
msg[12] = mono ? (byte)0 : color2.B; // B
@@ -354,34 +354,36 @@ namespace GHelper.USB
public static void ApplyPower()
{
bool backlightBattery = AppConfig.IsBacklightZones() && (SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online);
AuraPower flags = new();
// Keyboard
flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake");
flags.AwakeKeyb = backlightBattery ? AppConfig.IsOnBattery("keyboard_awake") : AppConfig.IsNotFalse("keyboard_awake");
flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot");
flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep");
flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown");
// Logo
flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo");
flags.AwakeLogo = backlightBattery ? AppConfig.IsOnBattery("keyboard_awake_logo") : AppConfig.IsNotFalse("keyboard_awake_logo");
flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo");
flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo");
flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo");
// Lightbar
flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar");
flags.AwakeBar = backlightBattery ? AppConfig.IsOnBattery("keyboard_awake_bar") : AppConfig.IsNotFalse("keyboard_awake_bar");
flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar");
flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar");
flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar");
// Lid
flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid");
flags.AwakeLid = backlightBattery ? AppConfig.IsOnBattery("keyboard_awake_lid") : AppConfig.IsNotFalse("keyboard_awake_lid");
flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid");
flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid");
flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid");
// Rear Bar
flags.AwakeRear = AppConfig.IsNotFalse("keyboard_awake_lid");
flags.AwakeRear = backlightBattery ? AppConfig.IsOnBattery("keyboard_awake_lid") : AppConfig.IsNotFalse("keyboard_awake_lid");
flags.BootRear = AppConfig.IsNotFalse("keyboard_boot_lid");
flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid");
flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid");

View File

@@ -7,15 +7,16 @@ namespace GHelper.USB
{
public static class XGM
{
const int XGM_ID = 0x1970;
const int ASUS_ID = 0x0b05;
static int[] deviceIds = { 0x1970, 0x1a9a};
public static void Write(byte[] data)
{
HidDeviceLoader loader = new HidDeviceLoader();
try
{
HidDevice device = loader.GetDevices(ASUS_ID, XGM_ID).Where(device => device.CanOpen && device.GetMaxFeatureReportLength() >= 300).FirstOrDefault();
HidDevice device = loader.GetDevices(ASUS_ID).Where(device => deviceIds.Contains(device.ProductID) && device.CanOpen && device.GetMaxFeatureReportLength() >= 300).FirstOrDefault();
if (device is null)
{

View File

@@ -1,5 +1,2 @@
{
"sdk": {
"version": "7.0.406"
}
}

View File

@@ -4,10 +4,23 @@
[![Github all releases](https://img.shields.io/github/downloads/seerge/g-helper/total)](https://GitHub.com/seerge/g-helper/releases/) [![GitHub stars](https://img.shields.io/github/stars/seerge/g-helper.svg?style=social)](https://GitHub.com/seerge/g-helper/stargazers/) <sup>[中文版点这里](https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md)</sup>
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 / Scar Series, ProArt, Vivobook, Zenbook, ROG Ally and many more!
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
### Support project : [:euro: Paypal EUR](https://bit.ly/4c0ZWs9) | [💵 Paypal USD](https://bit.ly/4aGTyW8) | [💳 Stripe](https://buy.stripe.com/bIY4hl8HbalH3G8bIJ) | [🪙 支付宝 / 微信支付](https://buy.stripe.com/bIY4hl8HbalH3G8bIJ)
**⭐ If you like the app - please spread the word about it online**
<table>
<tr>
<td><b>Support Project</b></td>
<td >
<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>&nbsp;
<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>&nbsp;
<a href="https://buy.stripe.com/bIY4hl8HbalH3G8bIJ"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/stripe.png" height="36" alt="Stripe"></a>&nbsp;
<a href="https://buy.stripe.com/bIY4hl8HbalH3G8bIJ"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/alipay.png" height="36" alt="Alipay"></a>
</td>
</tr>
</table>
- [FAQ](https://github.com/seerge/g-helper/wiki/FAQ)
- [Setup and Requirements](https://github.com/seerge/g-helper/wiki/Requirements)
@@ -92,19 +105,25 @@ Each BIOS mode is paired with matching Windows Power Mode. You can adjust this s
- ROG Chakram X (P708)
- ROG Chakram Core (P511)
- ROG Gladius II and Gladius II Origin (P502 and P504)
- ROG Gladius II Wireless
- ROG Gladius III
- ROG Gladius III Wireless
- ROG Harpe Ace Aim Lab Edition
- ROG Keris (P509)
- ROG Keris Wireless
- ROG Keris II Ace
- ROG Strix Carry (P508)
- ROG Strix III Gladius III Aimpoint Wireless (P711)
- ROG Strix Impact III (P518)
- ROG Spatha
- ROG Spatha X
- ROG Strix Impact II Wireless
- ROG Pugio
- ROG Pugio II
- TUF Gaming M4 Wireless (P306)
- TUF Gaming M3
- TUF Gaming M3 Gen II
- TUF Gaming M4 AIR
- TUF Gaming M5
- TX Gaming Mini
Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contribution and research (!).
@@ -158,6 +177,6 @@ The role of G-Helper for your laptop is similar to the role of a remote control
- [AsusCtl](https://gitlab.com/asus-linux/asusctl) for inspiration and some reverse engineering
### Disclaimers
"ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
"Asus", "ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
THE SOFTWARE IS PROVIDED “AS IS” AND WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. MISUSE OF THIS SOFTWARE COULD CAUSE SYSTEM INSTABILITY OR MALFUNCTION.

View File

@@ -11,7 +11,17 @@ G-helper兼容所有主流型号例如 ROG 幻14、幻15、幻16、幻13、
# [:floppy_disk:下载应用](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
## 支持此项目:[💳 信用卡 / 支付宝 / 微信支付](https://buy.stripe.com/bIY4hl8HbalH3G8bIJ)
<table>
<tr>
<td><b>支持此项目</b></td>
<td >
<a href="https://bit.ly/4c0ZWs9"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/paypal.png" height="36" alt="PayPal"></a>&nbsp;
<a href="https://buy.stripe.com/bIY4hl8HbalH3G8bIJ"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/stripe.png" height="36" alt="Stripe"></a>&nbsp;
<a href="https://buy.stripe.com/bIY4hl8HbalH3G8bIJ"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/alipay.png" height="36" alt="Alipay"></a>
</td>
</tr>
</table>
如果你喜欢这个应用,请[给这个项目⭐️](https://github.com/seerge/g-helper) 或者向别人推荐它!

BIN
docs/alipay.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
docs/paypal-eur.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
docs/paypal-usd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
docs/paypal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
docs/stripe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB