Compare commits

...

132 Commits

Author SHA1 Message Date
Serge
ffd9bf6673 Cleanup 2024-09-09 13:09:30 +02:00
Serge
80f61912f3 Version bump 2024-09-09 13:07:31 +02:00
Serge
2833373f9e System Startup charge limiter 2024-09-09 13:01:34 +02:00
Serge
cf94973419 Merge branch 'main' of https://github.com/seerge/g-helper 2024-09-09 12:33:24 +02:00
Serge
421dc0c05c System Startup charge limiter 2024-09-09 12:33:22 +02:00
Serge
38965bad9f New Crowdin updates (#3081)
* New translations strings.resx (Polish)

* New translations strings.resx (Chinese Traditional)
2024-09-09 09:53:13 +02:00
Serge
d0f1b70c9f Version bump 2024-09-07 17:47:49 +02:00
Serge
2e025edeb5 Screenpad controls cleanup https://github.com/seerge/g-helper/issues/3067 2024-09-07 17:05:57 +02:00
Serge
c69150f4ef Stop SmartDisplayControl on app start 2024-09-07 16:20:12 +02:00
Serge
0a419ac1f6 Merge branch 'main' of https://github.com/seerge/g-helper 2024-09-07 15:04:14 +02:00
Serge
47dcf2a980 Screenpad brightness adjustment values #3067 2024-09-07 15:04:12 +02:00
Serge
1ea3725568 Screenpad brightness tweak https://github.com/seerge/g-helper/issues/3067 2024-09-07 15:03:53 +02:00
Serge
7f44ba0195 Charge limit UI tweaks 2024-09-07 14:00:05 +02:00
Serge
ce01d72db0 Improved Ally Auto Controller mode 2024-09-07 13:56:38 +02:00
Serge
451f290c34 Merge branch 'main' of https://github.com/seerge/g-helper 2024-09-06 13:09:14 +02:00
Serge
2c6d8b86a9 Added GU603 to the list without direct RGB settings 2024-09-06 13:09:12 +02:00
Serge
5c7ba8593f New translations strings.resx (Chinese Simplified) (#3069) 2024-09-05 13:21:01 +02:00
Serge
3cb5f3de0e New Crowdin updates (#3068)
* New translations strings.resx (Spanish)

* New translations strings.resx (German)
2024-09-05 10:07:16 +02:00
Serge
c8a6e79144 New Crowdin updates (#3050)
* New translations strings.resx (Ukrainian)

* New translations strings.resx (Turkish)
2024-09-03 23:46:38 +02:00
Serge
6b97bc1eaf Fixed Slash lighting behavior for lid close https://github.com/seerge/g-helper/issues/3054 2024-09-03 20:52:50 +02:00
Serge
0d2fefb8c4 Added units to backlight timeout inputs https://github.com/seerge/g-helper/pull/3037 2024-09-02 10:47:03 +02:00
Serge
acfce9867e New Crowdin updates (#3041)
* New translations strings.resx (German)

* New translations strings.resx (Chinese Simplified)

* New translations strings.resx (German)

* New translations strings.resx (Romanian)

* New translations strings.resx (French)

* New translations strings.resx (Spanish)

* New translations strings.resx (Danish)

* New translations strings.resx (Hungarian)

* New translations strings.resx (Italian)

* New translations strings.resx (Japanese)

* New translations strings.resx (Korean)

* New translations strings.resx (Lithuanian)

* New translations strings.resx (Polish)

* New translations strings.resx (Portuguese)

* New translations strings.resx (Turkish)

* New translations strings.resx (Ukrainian)

* New translations strings.resx (Chinese Traditional)

* New translations strings.resx (Vietnamese)

* New translations strings.resx (Portuguese, Brazilian)

* New translations strings.resx (Indonesian)

* New translations strings.resx (Ukrainian)
2024-09-02 10:34:31 +02:00
Serge
d1e1b6704d Translation Updates 2024-09-02 10:24:12 +02:00
Serge
5913d4fdd7 Merge branch 'main' of https://github.com/seerge/g-helper 2024-09-02 10:10:24 +02:00
Serge
0fd6693434 Skip Visual Mode init command for Vivobook Default setting https://github.com/seerge/g-helper/issues/3046 2024-09-02 10:10:22 +02:00
Ikko Eltociear Ashimine
e96e37a573 docs: add Japanese README (#3047)
I created Japanese translated README.
2024-09-02 09:46:46 +02:00
Serge
58b5221b3c Version bump 2024-08-31 11:56:57 +02:00
Serge
0192d59524 UI Tweaks 2024-08-31 11:06:42 +02:00
Serge
01cede58b5 UI Tweaks 2024-08-31 10:42:43 +02:00
Serge
3dbbddfa58 Startup counter 2024-08-31 10:03:16 +02:00
Serge
1b898b44d2 Cleanup 2024-08-31 09:52:48 +02:00
Serge
dc7362dab1 Added AsusPTPService to the stop/start list https://github.com/seerge/g-helper/issues/3031 2024-08-30 19:45:47 +02:00
Serge
cbd4a5e27c Exception handling https://github.com/seerge/g-helper/issues/3029 2024-08-29 23:12:34 +02:00
Serge
5e9b002013 Version bump 2024-08-26 10:03:42 +02:00
Serge
5077c30704 Power limits tweak for GA605 https://github.com/seerge/g-helper/issues/3017 2024-08-26 09:51:04 +02:00
Serge
d6363dee85 Shasl Battery timer refresh interval 2024-08-26 09:48:41 +02:00
Serge
359575d00d Log cleanup 2024-08-26 09:44:41 +02:00
Serge
9dc444fd33 Added ProArt P16 and X13 to OLED List 2024-08-24 20:09:28 +02:00
Serge
a5b8885ff6 Removed unsuppored backlight modes for ProArt X13 https://github.com/seerge/g-helper/issues/2912 2024-08-24 20:07:44 +02:00
Serge
56676005a5 Added Vivobook M550 to OLED list https://github.com/seerge/g-helper/issues/3015 2024-08-24 15:53:18 +02:00
Serge
0e59f9318e Invert FN-Lock for ProArt https://github.com/seerge/g-helper/issues/3012 2024-08-23 22:26:37 +02:00
Serge
21a2dca271 Hardware FN-Lock for ProArt https://github.com/seerge/g-helper/issues/2973 https://github.com/seerge/g-helper/issues/3012 2024-08-23 13:20:58 +02:00
Serge
e265a78b4f ProArt backlight init #2973 2024-08-22 23:31:22 +02:00
Serge
18b6dd794f Merge branch 'main' of https://github.com/seerge/g-helper 2024-08-22 14:18:05 +02:00
Serge
9fd9506177 Ryzen AI 9 undervolting https://github.com/seerge/g-helper/issues/3005 2024-08-22 14:18:02 +02:00
Serge
a30b202022 ProArt backlight init https://github.com/seerge/g-helper/issues/2973 2024-08-22 12:20:32 +02:00
Serge
b9534fdfe5 New translations strings.resx (Chinese Simplified) (#2998) 2024-08-22 12:20:11 +02:00
Serge
cb3bf3ea90 Swap brightness hotkeys for FA706IH https://github.com/seerge/g-helper/issues/3009 2024-08-22 11:30:38 +02:00
Serge
5b64f89351 Version bump 2024-08-21 18:43:00 +02:00
Serge
de10360224 Backlight controls for ProArt #2973 2024-08-21 18:38:15 +02:00
Serge
63828e3db7 Cleanup 2024-08-21 18:11:54 +02:00
Serge
8b66e95b8b Backlight modes for old TUFs https://github.com/seerge/g-helper/discussions/2996 2024-08-21 10:38:33 +02:00
Serge
cd930cebf9 Optimus check for varibright toggle https://github.com/seerge/g-helper/issues/2984 2024-08-18 12:35:52 +02:00
Serge
7bdaca93d5 XGM check for Optimized mode https://github.com/seerge/g-helper/issues/2985 2024-08-17 17:24:46 +02:00
Serge
ef6990c528 Backlight controls for new Vivobooks https://github.com/seerge/g-helper/issues/2973 2024-08-17 12:51:41 +02:00
Serge
72f01321ae Main window position tweak #2983 2024-08-16 17:20:05 +02:00
Serge
e6767126c9 Main window position tweak https://github.com/seerge/g-helper/issues/2983 2024-08-16 16:50:41 +02:00
Serge
50f0c82b70 Merge branch 'main' of https://github.com/seerge/g-helper 2024-08-15 11:03:57 +02:00
Serge
12587e222f Backup config reading https://github.com/seerge/g-helper/issues/2978 2024-08-15 11:03:54 +02:00
Serge
dfb51b897e New Crowdin updates (#2975)
* New translations strings.resx (Lithuanian)

* New translations strings.resx (Lithuanian)
2024-08-15 10:20:40 +02:00
Serge
cc36184834 Update README.md 2024-08-15 10:18:03 +02:00
Serge
338a5e85f4 Update README.md 2024-08-14 10:54:34 +02:00
Serge
632ed073a1 New translations strings.resx (French) (#2972) 2024-08-14 09:37:26 +02:00
Serge
07a1ea46c7 Hotkey handling only when Optimization service is not running 2024-08-12 23:22:27 +02:00
Serge
8e0bea59aa GPU setting tweak 2024-08-12 23:19:03 +02:00
Serge
0deccfa47a Limit Dynamic Lighting check only for win 11 https://github.com/seerge/g-helper/issues/2966 2024-08-12 14:22:00 +02:00
Serge
c16dfe207f Version bump 2024-08-11 23:22:02 +02:00
Serge
b362afe451 Cleanup 2024-08-11 11:09:29 +02:00
Serge
6fe8ff65b1 Pro Art Hotkeys and visual modes support (#2962)
* Init

* Update AsusACPI.cs

* Visual modes and gamuts

* Emoji popup

* Emojis Popup

* ProArt F12

* Softwar FN-Lock for ProArt

* Cleanup

* Cleanup
2024-08-11 11:08:32 +02:00
Serge
b8af931248 Cleanup 2024-08-10 16:59:36 +02:00
Serge
3deaefb630 New Crowdin updates (#2949)
* ROG Strix Evolve https://github.com/seerge/g-helper/issues/2842

* New translations strings.resx (Lithuanian)
2024-08-10 16:59:00 +02:00
Serge
0dec01a275 Update README.md 2024-08-09 18:43:36 +02:00
Serge
1efda38ccf Update README.md 2024-08-07 11:34:24 +02:00
Serge
88eb4916b6 Aura Breath bit https://github.com/seerge/g-helper/issues/2937 2024-08-07 11:08:24 +02:00
Serge
741d9cf1e2 Removed unsupported RGB modes for A16 https://github.com/seerge/g-helper/discussions/2922 2024-08-06 23:08:43 +02:00
Serge
45e3d5e75f Version bump 2024-08-06 18:35:14 +02:00
Serge
443f6726c7 Slash Lighting ID for GA605 #2892 2024-08-06 18:33:57 +02:00
Serge
f22f6eb960 Slash Lighting ID for GA605 #2892 2024-08-06 11:48:54 +02:00
Serge
a83b42c263 Improved ROG Ally X detection https://github.com/seerge/g-helper/discussions/2925 2024-08-05 23:27:27 +02:00
Serge
b97bd9af65 Slash Lighting ID for GA605 https://github.com/seerge/g-helper/issues/2892 2024-08-05 23:24:47 +02:00
Serge
a70956eaf8 Added ROG Ally X Controller ID https://github.com/seerge/g-helper/discussions/2925 2024-08-05 13:04:26 +02:00
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
71 changed files with 2009 additions and 415 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

@@ -347,6 +347,7 @@ namespace GHelper.Ally
if (!autoTDP && _mode != ControllerMode.Auto) return;
float fps = amdControl.GetFPS();
int? usage = 0;
if (autoTDP && fpsLimit > 0 && fpsLimit <= 120)
{
@@ -377,7 +378,8 @@ namespace GHelper.Ally
if (_mode == ControllerMode.Auto)
{
ControllerMode newMode = (fps > 0) ? ControllerMode.Gamepad : ControllerMode.Mouse;
if (fps > 0) usage = amdControl.GetiGpuUse();
ControllerMode newMode = (fps > 0 && usage > 15) ? ControllerMode.Gamepad : ControllerMode.Mouse;
if (_applyMode != newMode) _autoCount++;
else _autoCount = 0;
@@ -386,7 +388,7 @@ namespace GHelper.Ally
{
_autoCount = 0;
ApplyMode(newMode);
Logger.WriteLine($"Controller Mode {fps}: {newMode}");
Logger.WriteLine($"Controller Mode (FPS={fps}, USAGE={usage}%): {newMode}");
}
}

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,21 +110,26 @@ namespace GHelper.AnimeMatrix
deviceSlash.SetEnabled(true);
deviceSlash.Init();
deviceSlash.SetLidMode(false);
switch ((SlashMode)running)
{
case SlashMode.Static:
Logger.WriteLine("Slash: Static");
var custom = AppConfig.GetString("slash_custom");
if (custom is not null && custom.Length > 0)
{
deviceSlash.SetCustom(AppConfig.StringToBytes(custom));
} else
}
else
{
deviceSlash.SetStatic(brightness);
}
break;
case SlashMode.BatteryLevel:
// call tick to immediately update the pattern
Logger.WriteLine("Slash: Battery Level");
SlashTimer_start();
SlashTimer_tick();
break;
@@ -137,11 +149,6 @@ namespace GHelper.AnimeMatrix
public void SetLidMode(bool force = false)
{
bool matrixLid = AppConfig.Is("matrix_lid");
if (deviceSlash is not null)
{
deviceSlash.SetLidMode(matrixLid);
}
if (matrixLid || force)
{
@@ -226,9 +233,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,9 +275,9 @@ namespace GHelper.AnimeMatrix
StartMatrixTimer(1000);
Logger.WriteLine("Matrix Clock");
}
private void SlashTimer_start(int interval = 60000)
private void SlashTimer_start(int interval = 180000)
{
// 100% to 0% in 1hr = 1% every 36 seconds
// 1 bracket every 14.2857 * 36s = 514s ~ 8m 30s
@@ -279,18 +286,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 +311,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,24 @@ namespace GHelper.AnimeMatrix
BatteryLevel,
}
internal class SlashPacket : Packet
public class SlashPacket : Packet
{
public SlashPacket(byte[] command) : base(0x5E, 128, command)
public SlashPacket(byte[] command, byte reportID = 0x5E) : base(reportID, 128, command)
{
}
}
public class SlashDevice : Device
{
protected virtual byte reportID => 0x5E;
protected virtual SlashPacket CreatePacket(byte[] command)
{
return new SlashPacket(command, reportID);
}
public static Dictionary<SlashMode, string> Modes = new Dictionary<SlashMode, string>
{
{ SlashMode.Bounce, "Bounce"},
@@ -85,31 +92,31 @@ namespace GHelper.AnimeMatrix
{ SlashMode.Buzzer, 0x44},
};
public SlashDevice() : base(0x0B05, 0x193B, 128)
public SlashDevice(ushort productId = 0x193B) : base(0x0B05, productId, 128)
{
}
public void WakeUp()
{
Set(Packet<SlashPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
Set(Packet<SlashPacket>(0xC2), "SlashWakeUp");
Set(Packet<SlashPacket>(0xD1, 0x01, 0x00, 0x01), "SlashWakeUp");
Set(CreatePacket(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
Set(CreatePacket([0xC2]), "SlashWakeUp");
Set(CreatePacket([0xD1, 0x01, 0x00, 0x01 ]), "SlashWakeUp");
}
public void Init()
{
Set(Packet<SlashPacket>(0xD7, 0x00, 0x00, 0x01, 0xAC), "SlashInit");
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAB), "SlashInit");
Set(CreatePacket([0xD7, 0x00, 0x00, 0x01, 0xAC]), "SlashInit");
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAB]), "SlashInit");
}
public void SetEnabled(bool status = true)
{
Set(Packet<SlashPacket>(0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80), $"SlashEnable {status}");
Set(CreatePacket([0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80]), $"SlashEnable {status}");
}
public void Save()
{
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAB), "SlashSave");
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAB]), "SlashSave");
}
public void SetMode(SlashMode mode)
@@ -125,8 +132,8 @@ namespace GHelper.AnimeMatrix
modeByte = 0x00;
}
Set(Packet<SlashPacket>(0xD2, 0x03, 0x00, 0x0C), "SlashMode");
Set(Packet<SlashPacket>(0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13), "SlashMode");
Set(CreatePacket([0xD2, 0x03, 0x00, 0x0C]), "SlashMode");
Set(CreatePacket([0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13]), "SlashMode");
}
public void SetStatic(int brightness = 0)
@@ -135,23 +142,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,64 +166,77 @@ 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))), null);
}
public void SetCustom(byte[] data)
public void SetCustom(byte[] data, string? log = "Static Data")
{
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAC), "Static");
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF), "StaticSettings");
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAC), "StaticSave");
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAC]), null);
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF]), null);
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAC]), null);
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
Set(Packet<SlashPacket>(payload.Concat(data.Take(7)).ToArray()), "Static Data");
Set(CreatePacket(payload.Concat(data.Take(7)).ToArray()), log);
}
public void SetOptions(bool status, int brightness = 0, int interval = 0)
{
byte brightnessByte = (byte)(brightness * 85.333);
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval), "SlashOptions");
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval]), "SlashOptions");
}
public void SetBatterySaver(bool status)
{
Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00), $"SlashBatterySaver {status}");
Set(CreatePacket([0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00]), $"SlashBatterySaver {status}");
}
public void SetLidMode(bool status)
{
Set(Packet<SlashPacket>(0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00), $"DisableLidClose {status}");
Set(CreatePacket([0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00]), $"DisableLidClose {status}");
}
public void SetSleepActive(bool status)
{
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xA1), "SleepInit");
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xA1, 0x00, 0xFF, status ? (byte)0x01 : (byte)0x00, 0x02, 0xFF, 0xFF), $"Sleep {status}");
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xA1]), "SleepInit");
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xA1, 0x00, 0xFF, status ? (byte)0x01 : (byte)0x00, 0x02, 0xFF, 0xFF]), $"Sleep {status}");
}
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
{
protected override byte reportID => 0x5D;
public SlashDeviceAura() : base(0x19B6)
{
}
protected override SlashPacket CreatePacket(byte[] command)
{
return new SlashPacket(command, reportID);
}
}
}

View File

@@ -41,10 +41,19 @@ public static class AppConfig
{
config = JsonSerializer.Deserialize<Dictionary<string, object>>(text);
}
catch
catch (Exception ex)
{
Logger.WriteLine("Broken config: " + text);
Init();
Logger.WriteLine($"Broken config: {ex.Message} {text}");
try
{
text = File.ReadAllText(configFile + ".bak");
config = JsonSerializer.Deserialize<Dictionary<string, object>>(text);
}
catch (Exception exb)
{
Logger.WriteLine($"Broken backup config: {exb.Message} {text}");
Init();
}
}
}
else
@@ -377,10 +386,20 @@ public static class AppConfig
return ContainsModel("Vivobook") || ContainsModel("Zenbook");
}
public static bool IsVivoZenPro()
{
return ContainsModel("Vivobook") || ContainsModel("Zenbook") || ContainsModel("ProArt");
}
public static bool IsHardwareFnLock()
{
return IsVivoZenPro();
}
// Devices with bugged bios command to change brightness
public static bool SwappedBrightness()
{
return ContainsModel("FA506IH") || ContainsModel("FA506IC") || ContainsModel("FX506LU") || ContainsModel("FX506IC") || ContainsModel("FX506LH") || ContainsModel("FA506IV") || ContainsModel("FA706IC");
return ContainsModel("FA506IH") || ContainsModel("FA506IC") || ContainsModel("FX506LU") || ContainsModel("FX506IC") || ContainsModel("FX506LH") || ContainsModel("FA506IV") || ContainsModel("FA706IC") || ContainsModel("FA706IH");
}
@@ -392,22 +411,32 @@ public static class AppConfig
// G14 2020 has no aura, but media keys instead
public static bool NoAura()
{
return ContainsModel("GA401I") && !ContainsModel("GA401IHR");
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("HN7306");
}
public static bool MediaKeys()
{
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("G712L");
}
public static bool IsSingleColor()
{
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU") || ContainsModel("FA617N") || ContainsModel("FA617X") || NoAura();
}
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()
{
return ContainsModel("GA503") || IsSlash();
return ContainsModel("GA503") || IsSlash() || IsVivoZenPro();
}
public static bool IsInvertedFNLock()
@@ -417,7 +446,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") || ContainsModel("M7400");
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606");
}
public static bool IsNoOverdrive()
@@ -472,7 +501,7 @@ public static class AppConfig
public static bool IsNoDirectRGB()
{
return ContainsModel("GA503") || ContainsModel("G533Q") || ContainsModel("GU502") || IsSlash();
return ContainsModel("GA503") || ContainsModel("G533Q") || ContainsModel("GU502") || ContainsModel("GU603") || IsSlash();
}
public static bool IsStrixNumpad()
@@ -517,7 +546,7 @@ public static class AppConfig
public static bool DynamicBoost20()
{
return ContainsModel("GU605");
return ContainsModel("GU605") || ContainsModel("GA605");
}
public static bool IsAdvantageEdition()
@@ -527,7 +556,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");
}
@@ -583,12 +612,12 @@ public static class AppConfig
public static bool IsFanRequired()
{
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J") || ContainsModel("G614J") || ContainsModel("G814J") || ContainsModel("FX507V");
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J") || ContainsModel("G614J") || ContainsModel("G814J") || ContainsModel("FX507V");
}
public static bool IsAMDLight()
{
return ContainsModel("GA402X") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
return ContainsModel("GA402X") || ContainsModel("GA605") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
}
public static bool IsPowerRequired()
@@ -647,14 +676,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

@@ -46,6 +46,7 @@ public class AsusACPI
public const int KB_TouchpadToggle = 0x6b;
public const int KB_MuteToggle = 0x7c;
public const int KB_FNlockToggle = 0x4e;
public const int KB_DUO_PgUpDn = 0x4B;
public const int KB_DUO_SecondDisplay = 0x6A;
@@ -66,12 +67,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;
@@ -112,8 +114,11 @@ public class AsusACPI
public const int APU_MEM = 0x000600C1;
public const int TUF_KB_BRIGHTNESS = 0x00050021;
public const int VIVO_KB_BRIGHTNESS = 0x0005002F;
public const int TUF_KB = 0x00100056;
public const int TUF_KB2 = 0x0010005a;
public const int TUF_KB_STATE = 0x00100057;
public const int MicMuteLed = 0x00040017;
@@ -170,6 +175,8 @@ public class AsusACPI
private bool? _allAMD = null;
private bool? _overdrive = null;
public static uint GPUEco => AppConfig.IsVivoZenPro() ? GPUEcoVivo : GPUEcoROG;
public static uint GPUMux => AppConfig.IsVivoZenPro() ? GPUMuxVivo : GPUMuxROG;
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
private static extern IntPtr CreateFile(
@@ -445,14 +452,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;
}
@@ -639,7 +648,7 @@ public class AsusACPI
public bool IsAllAmdPPT()
{
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0 && !AppConfig.IsAlly();
return (bool)_allAMD;
}
@@ -779,6 +788,8 @@ public class AsusACPI
{
int param = 0x80 | (brightness & 0x7F);
DeviceSet(TUF_KB_BRIGHTNESS, param, "TUF Brightness");
if (AppConfig.IsVivoZenPro()) DeviceSet(VIVO_KB_BRIGHTNESS, param, "VIVO Brightness");
}
public void TUFKeyboardRGB(AuraMode mode, Color color, int speed, string? log = "TUF RGB")
@@ -794,7 +805,13 @@ public class AsusACPI
setting[5] = (byte)speed;
int result = DeviceSet(TUF_KB, setting, log);
if (result != 1) DeviceSet(TUF_KB2, setting, log);
if (result != 1)
{
setting[0] = (byte)0xb3;
DeviceSet(TUF_KB2, setting, log);
setting[0] = (byte)0xb4;
DeviceSet(TUF_KB2, setting, log);
}
}

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

@@ -38,8 +38,9 @@ namespace GHelper.Battery
if (AppConfig.IsChargeLimit6080())
{
if (limit > 80) limit = 100;
if (limit > 85) limit = 100;
else if (limit < 60) limit = 60;
else limit = 80;
}
Program.acpi.DeviceSet(AsusACPI.BatteryLimit, limit, "BatteryLimit");

View File

@@ -16,7 +16,10 @@ namespace GHelper.Display
var modes = new DISPLAYCONFIG_MODE_INFO[modeCount];
err = QueryDisplayConfig(QDC.QDC_ONLY_ACTIVE_PATHS, ref pathCount, paths, ref modeCount, modes, IntPtr.Zero);
if (err != 0)
throw new Win32Exception(err);
{
Logger.WriteLine("HDR Detection Error: " + new Win32Exception(err).Message);
return false;
}
string internalName = AppConfig.GetString("internal_display");

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

@@ -70,13 +70,13 @@ namespace GHelper.Display
public static SplendidGamut GetDefaultGamut()
{
return AppConfig.IsVivoZenbook() ? SplendidGamut.VivoNative : SplendidGamut.Native;
return AppConfig.IsVivoZenPro() ? SplendidGamut.VivoNative : SplendidGamut.Native;
}
public static Dictionary<SplendidGamut, string> GetGamutModes()
{
bool isVivo = AppConfig.IsVivoZenbook();
bool isVivo = AppConfig.IsVivoZenPro();
Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>();
@@ -148,13 +148,13 @@ namespace GHelper.Display
public static SplendidCommand GetDefaultVisualMode()
{
return AppConfig.IsVivoZenbook() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
return AppConfig.IsVivoZenPro() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
}
public static Dictionary<SplendidCommand, string> GetVisualModes()
{
if (AppConfig.IsVivoZenbook())
if (AppConfig.IsVivoZenPro())
{
return new Dictionary<SplendidCommand, string>
{
@@ -224,7 +224,7 @@ namespace GHelper.Display
public static void SetVisual(SplendidCommand mode = SplendidCommand.Default, int whiteBalance = DefaultColorTemp, bool init = false)
{
if (mode == SplendidCommand.None) return;
if (mode == SplendidCommand.Default && init) return; // Skip default setting on init
if ((mode == SplendidCommand.Default || mode == SplendidCommand.VivoNormal) && init) return; // Skip default setting on init
if (!forceVisual && ScreenCCD.GetHDRStatus(true)) return;
if (!forceVisual && ScreenNative.GetRefreshRate(ScreenNative.FindLaptopScreen(true)) < 0) return;
@@ -291,7 +291,7 @@ namespace GHelper.Display
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
{
var splendid = GetSplendidPath();
bool isVivo = AppConfig.IsVivoZenbook();
bool isVivo = AppConfig.IsVivoZenPro();
bool isSplenddid = File.Exists(splendid);
if (isSplenddid)

15
app/Extra.Designer.cs generated
View File

@@ -73,8 +73,8 @@ namespace GHelper
labelBacklightTitle = new Label();
panelBacklight = new Panel();
panelBacklightExtra = new Panel();
numericBacklightPluggedTime = new NumericUpDown();
numericBacklightTime = new NumericUpDown();
numericBacklightPluggedTime = new NumericUpDownWithUnit();
numericBacklightTime = new NumericUpDownWithUnit();
labelBacklightTimeout = new Label();
labelSpeed = new Label();
comboKeyboardSpeed = new RComboBox();
@@ -119,7 +119,7 @@ namespace GHelper
checkStatusLed = new CheckBox();
checkPerKeyRGB = new CheckBox();
panelPower = new Panel();
numericHibernateAfter = new NumericUpDown();
numericHibernateAfter = new NumericUpDownWithUnit();
labelHibernateAfter = new Label();
pictureHibernate = new PictureBox();
toolTip = new ToolTip(components);
@@ -715,6 +715,7 @@ namespace GHelper
numericBacklightPluggedTime.Name = "numericBacklightPluggedTime";
numericBacklightPluggedTime.Size = new Size(140, 39);
numericBacklightPluggedTime.TabIndex = 1;
numericBacklightPluggedTime.Unit = "sec";
//
// numericBacklightTime
//
@@ -725,6 +726,7 @@ namespace GHelper
numericBacklightTime.Name = "numericBacklightTime";
numericBacklightTime.Size = new Size(140, 39);
numericBacklightTime.TabIndex = 2;
numericBacklightTime.Unit = "sec";
//
// labelBacklightTimeout
//
@@ -1323,6 +1325,7 @@ namespace GHelper
numericHibernateAfter.Maximum = new decimal(new int[] { 3000000, 0, 0, 0 });
numericHibernateAfter.Name = "numericHibernateAfter";
numericHibernateAfter.Size = new Size(152, 39);
numericHibernateAfter.Unit = "min";
numericHibernateAfter.TabIndex = 1;
//
// labelHibernateAfter
@@ -1714,8 +1717,8 @@ namespace GHelper
private Panel panelBacklightHeader;
private Panel panelBacklight;
private Panel panelBacklightExtra;
private NumericUpDown numericBacklightPluggedTime;
private NumericUpDown numericBacklightTime;
private NumericUpDownWithUnit numericBacklightPluggedTime;
private NumericUpDownWithUnit numericBacklightTime;
private Label labelBacklightTimeout;
private Label labelSpeed;
private RComboBox comboKeyboardSpeed;
@@ -1764,7 +1767,7 @@ namespace GHelper
private Panel panelPower;
private PictureBox pictureHibernate;
private Label labelHibernateAfter;
private NumericUpDown numericHibernateAfter;
private NumericUpDownWithUnit numericHibernateAfter;
private CheckBox checkGPUFix;
private ToolTip toolTip;
private CheckBox checkBootSound;

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;
}
@@ -709,7 +709,10 @@ namespace GHelper
{
using (var amdControl = new AmdGpuControl())
{
amdControl.SetVariBright(checkVariBright.Checked ? 1 : 0);
if (NvidiaSmi.GetDisplayActiveStatus()) return; // Skip if Nvidia GPU is active
var status = checkVariBright.Checked ? 1 : 0;
var result = amdControl.SetVariBright(status);
Logger.WriteLine($"VariBright {status}: {result}");
ProcessHelper.KillByName("RadeonSoftware");
}
}

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.179</AssemblyVersion>
<AssemblyVersion>0.189</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

@@ -119,6 +119,18 @@ public class AmdGpuControl : IGpuControl
}
public int? GetiGpuUse()
{
if (_adlContextHandle == nint.Zero || _iGPU == null) return null;
if (ADL2_New_QueryPMLogData_Get(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS) return null;
ADLSingleSensorData gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_INFO_ACTIVITY_GFX];
if (gpuUsage.Supported == 0) return null;
return gpuUsage.Value;
}
public int? GetGpuPower()
{
if (_adlContextHandle == nint.Zero || _iGPU == null) return null;

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;
}
@@ -95,11 +92,15 @@ namespace GHelper.Gpu
{
if (AppConfig.NoAutoUltimate())
{
Program.acpi.SetGPUEco(0);
int standardStatus = Program.acpi.SetGPUEco(0);
if (standardStatus == 0)
{
settings.VisualiseGPUMode();
return;
}
Thread.Sleep(100);
}
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
if (status != 1) Program.acpi.DeviceSet(AsusACPI.GPUMuxVivo, 0, "GPUMuxVivo");
restart = true;
changed = true;
}
@@ -226,6 +227,7 @@ namespace GHelper.Gpu
if ((GpuAuto && !IsPlugged()) || (ForceGPU && GpuMode == AsusACPI.GPUModeEco))
{
if (Program.acpi.IsXGConnected()) return false;
if (HardwareControl.IsUsedGPU())
{
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertDGPU, Properties.Strings.AlertDGPUTitle, MessageBoxButtons.YesNo);

View File

@@ -32,7 +32,7 @@ public static class NvidiaSmi
public static int GetDefaultMaxGPUPower()
{
if (AppConfig.ContainsModel("GU605")) return 125;
if (AppConfig.ContainsModel("GU605") || AppConfig.ContainsModel("GA605")) return 125;
if (AppConfig.ContainsModel("GA403")) return 90;
if (AppConfig.ContainsModel("FA607")) return 140;
else return 175;

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

@@ -7,6 +7,8 @@ namespace GHelper.Helpers
public static bool IsEnabled()
{
if (Environment.OSVersion.Version.Build < 22000) return false;
using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Lighting");
var registryValueObject = key?.GetValue("AmbientLightingEnabled");

View File

@@ -20,6 +20,8 @@ namespace GHelper.Helpers
"AsusCertService"
};
//"AsusPTPService",
static List<string> processesAC = new() {
"ArmouryCrateSE.Service",
"ArmouryCrate.Service",

View File

@@ -1,12 +1,13 @@
using GHelper.Helpers;
using Microsoft.Win32.TaskScheduler;
using System.Diagnostics;
using System.Security.Principal;
public class Startup
{
static string taskName = "GHelper";
static string chargeTaskName = taskName + "Charge";
static string strExeFilePath = Application.ExecutablePath.Trim();
public static bool IsScheduled()
{
@@ -32,7 +33,6 @@ public class Startup
{
try
{
string strExeFilePath = Application.ExecutablePath.Trim();
string action = task.Definition.Actions.FirstOrDefault()!.ToString().Trim();
if (!strExeFilePath.Equals(action, StringComparison.OrdinalIgnoreCase) && !File.Exists(action))
{
@@ -41,11 +41,60 @@ public class Startup
UnSchedule();
Schedule();
}
} catch (Exception ex)
}
catch (Exception ex)
{
Logger.WriteLine($"Can't check startup task: {ex.Message}");
}
if (taskService.RootFolder.AllTasks.FirstOrDefault(t => t.Name == chargeTaskName) == null) ScheduleCharge();
}
}
}
public static void UnscheduleCharge()
{
using (TaskService taskService = new TaskService())
{
try
{
taskService.RootFolder.DeleteTask(chargeTaskName);
}
catch (Exception e)
{
Logger.WriteLine("Can't remove charge limit task: " + e.Message);
}
}
}
public static void ScheduleCharge()
{
if (strExeFilePath is null) return;
using (TaskDefinition td = TaskService.Instance.NewTask())
{
td.RegistrationInfo.Description = "G-Helper Charge Limit";
td.Triggers.Add(new BootTrigger());
td.Actions.Add(strExeFilePath, "charge");
td.Principal.RunLevel = TaskRunLevel.LUA;
td.Principal.LogonType = TaskLogonType.S4U;
td.Principal.UserId = WindowsIdentity.GetCurrent().Name;
td.Settings.StopIfGoingOnBatteries = false;
td.Settings.DisallowStartIfOnBatteries = false;
td.Settings.ExecutionTimeLimit = TimeSpan.Zero;
try
{
TaskService.Instance.RootFolder.RegisterTaskDefinition(chargeTaskName, td);
Logger.WriteLine("Charge limit task scheduled: " + strExeFilePath);
}
catch (Exception e)
{
Logger.WriteLine("Can't create a charge limit task: " + e.Message);
}
}
}
@@ -53,29 +102,20 @@ public class Startup
public static void Schedule()
{
string strExeFilePath = Application.ExecutablePath;
if (strExeFilePath is null) return;
var userId = WindowsIdentity.GetCurrent().Name;
using (TaskDefinition td = TaskService.Instance.NewTask())
{
td.RegistrationInfo.Description = "G-Helper Auto Start";
td.Triggers.Add(new LogonTrigger { UserId = userId, Delay = TimeSpan.FromSeconds(1) });
td.Triggers.Add(new LogonTrigger { UserId = WindowsIdentity.GetCurrent().Name, Delay = TimeSpan.FromSeconds(1) });
td.Actions.Add(strExeFilePath);
if (ProcessHelper.IsUserAdministrator())
if (ProcessHelper.IsUserAdministrator())
td.Principal.RunLevel = TaskRunLevel.Highest;
td.Settings.StopIfGoingOnBatteries = false;
td.Settings.DisallowStartIfOnBatteries = false;
td.Settings.ExecutionTimeLimit = TimeSpan.Zero;
Debug.WriteLine(strExeFilePath);
Debug.WriteLine(userId);
try
{
TaskService.Instance.RootFolder.RegisterTaskDefinition(taskName, td);
@@ -87,8 +127,12 @@ public class Startup
else
ProcessHelper.RunAsAdmin();
}
Logger.WriteLine("Startup task scheduled: " + strExeFilePath);
}
ScheduleCharge();
}
public static void UnSchedule()
@@ -107,5 +151,7 @@ public class Startup
ProcessHelper.RunAsAdmin();
}
}
UnscheduleCharge();
}
}

View File

@@ -85,8 +85,7 @@ namespace GHelper.Input
InitBacklightTimer();
if (AppConfig.IsVivoZenbook())
Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
if (AppConfig.IsHardwareFnLock()) HardwareFnLock(AppConfig.Is("fn_lock"));
}
@@ -155,7 +154,7 @@ namespace GHelper.Input
// FN-Lock group
if (AppConfig.Is("fn_lock") && !AppConfig.IsVivoZenbook())
if (AppConfig.Is("fn_lock") && !AppConfig.IsHardwareFnLock())
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
// Arrow-lock group
@@ -218,6 +217,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;
@@ -278,6 +280,43 @@ namespace GHelper.Input
}
}
if (AppConfig.IsProArt())
{
switch (e.Key)
{
case Keys.F2:
KeyboardHook.KeyPress(Keys.VolumeDown);
return;
case Keys.F3:
KeyboardHook.KeyPress(Keys.VolumeUp);
return;
case Keys.F4:
HandleEvent(199); // Backlight cycle
return;
case Keys.F5:
SetBrightness(-10);
return;
case Keys.F6:
SetBrightness(+10);
return;
case Keys.F7:
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.P);
return;
case Keys.F8:
HandleEvent(126); // Emojis
return;
case Keys.F9:
KeyProcess("m3"); // MicMute
return;
case Keys.F10:
HandleEvent(133); // Camera Toggle
return;
case Keys.F11:
KeyboardHook.KeyPress(Keys.Snapshot); // PrintScreen
return;
}
}
if (AppConfig.IsZ13() || AppConfig.IsDUO())
{
switch (e.Key)
@@ -288,7 +327,7 @@ namespace GHelper.Input
}
}
if (AppConfig.NoAura())
if (AppConfig.MediaKeys())
{
switch (e.Key)
{
@@ -589,13 +628,19 @@ namespace GHelper.Input
Program.toast.RunToast("Arrow-Lock " + (arLock == 1 ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.FnLock);
}
public static void HardwareFnLock(bool fnLock)
{
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x4E, fnLock ? (byte)0x00 : (byte)0x01], "USB FnLock");
}
public static void ToggleFnLock()
{
bool fnLock = !AppConfig.Is("fn_lock");
AppConfig.Set("fn_lock", fnLock ? 1 : 0);
if (AppConfig.IsVivoZenbook())
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
if (AppConfig.IsHardwareFnLock())
HardwareFnLock(fnLock);
else
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
@@ -655,6 +700,7 @@ namespace GHelper.Input
switch (EventID)
{
case 134: // FN + F12 ON OLD DEVICES
case 139: // ProArt F12
KeyProcess("m4");
return;
case 124: // M3
@@ -666,9 +712,6 @@ namespace GHelper.Input
case 55: // Arconym
KeyProcess("m6");
return;
case 136: // FN + F12
if (!AppConfig.IsNoAirplaneMode()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
return;
case 181: // FN + Numpad Enter
KeyProcess("fne");
return;
@@ -685,12 +728,6 @@ namespace GHelper.Input
case 158: // Fn + C
KeyProcess("fnc");
return;
case 78: // Fn + ESC
ToggleFnLock();
return;
case 75: // Fn + ESC
ToggleArrowLock();
return;
case 189: // Tablet mode
TabletMode();
return;
@@ -777,6 +814,18 @@ namespace GHelper.Input
case 53: // Fn+F6 on GA-502DU model
NativeMethods.TurnOffScreen();
return;
case 126: // Fn+F8 emojis popup
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.OemSemicolon);
return;
case 78: // Fn + ESC
ToggleFnLock();
return;
case 75: // Fn + Arrow Lock
ToggleArrowLock();
return;
case 136: // FN + F12
if (!AppConfig.IsNoAirplaneMode()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
return;
}
@@ -887,7 +936,7 @@ namespace GHelper.Input
private static System.Threading.Timer screenpadActionTimer;
private static int screenpadBrightnessToSet;
public static void ApplyScreenpadAction(int brightness, bool doToggle = false)
public static void ApplyScreenpadAction(int brightness, bool instant = true)
{
var delay = AppConfig.Get("screenpad_delay", 1500);
@@ -895,11 +944,12 @@ namespace GHelper.Input
Action<int> action = (b) =>
{
if (b >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(b * 255 / 100, 0), "Screenpad");
int[] brightnessValues = [0, 4, 9, 14, 21, 32, 48, 73, 111, 169, 255];
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, brightnessValues[Math.Min(brightnessValues.Length - 1, Math.Max(0, b / 10))], "Screenpad");
if (b < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
};
if(delay <= 0 || (brightness > 0 && brightness < 100 && doToggle == false)) //instant action
if(delay <= 0 || instant) //instant action
{
action(brightness);
}
@@ -925,20 +975,19 @@ namespace GHelper.Input
if (brightness < 0) brightness = 100;
else if (brightness >= 100) brightness = 0;
else brightness = -10;
ApplyScreenpadAction(brightness, false);
}
else
{
brightness = Math.Max(Math.Min(100, brightness + delta), -10);
brightness = Math.Max(Math.Min(100, brightness + delta), 0);
ApplyScreenpadAction(brightness);
}
AppConfig.Set("screenpad", brightness);
ApplyScreenpadAction(brightness);
string toast;
if (brightness < 0) toast = "Off";
else if (brightness == 0) toast = "Hidden";
else toast = brightness.ToString() + "%";
Program.toast.RunToast($"Screen Pad {toast}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
@@ -949,7 +998,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

@@ -30,6 +30,7 @@ namespace GHelper
labelScaling.Text = Properties.Strings.ScalingQuality;
labelRotation.Text = Properties.Strings.ImageRotation;
labelContrastTitle.Text = Properties.Strings.Contrast;
labelGammaTitle.Text = Properties.Strings.Brightness;
buttonPicture.Text = Properties.Strings.PictureGif;
buttonReset.Text = Properties.Strings.Reset;

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

@@ -42,11 +42,6 @@
return true;
}
public override bool HasDebounceSetting()
{
return true;
}
public override bool HasAngleSnapping()
{
return true;
@@ -62,20 +57,10 @@
return false;
}
public override bool HasDPIColors()
{
return false;
}
public override int DPIIncrements()
{
return 100;
}
public override bool CanChangeDPIProfile()
{
return true;
}
}
}

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

@@ -214,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());
@@ -225,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

@@ -53,6 +53,13 @@ namespace GHelper
string action = "";
if (args.Length > 0) action = args[0];
if (action == "charge")
{
BatteryLimit();
Application.Exit();
return;
}
string language = AppConfig.GetString("language");
if (language != null && language.Length > 0)
@@ -69,6 +76,10 @@ namespace GHelper
Logger.WriteLine("------------");
Logger.WriteLine("App launched: " + AppConfig.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + CultureInfo.CurrentUICulture + (ProcessHelper.IsUserAdministrator() ? "." : ""));
var startCount = AppConfig.Get("start_count") + 1;
AppConfig.Set("start_count", startCount);
Logger.WriteLine("Start Count: " + startCount);
acpi = new AsusACPI();
if (!acpi.IsConnected() && AppConfig.IsASUS())
@@ -83,6 +94,8 @@ namespace GHelper
return;
}
ProcessHelper.KillByName("ASUSSmartDisplayControl");
Application.EnableVisualStyles();
HardwareControl.RecreateGpuControl();
@@ -199,7 +212,7 @@ namespace GHelper
if (settingsForm.matrixForm is not null && settingsForm.matrixForm.Text != "")
settingsForm.matrixForm.InitTheme();
if (settingsForm.handheldForm is not null && settingsForm.handheldForm.Text != "")
if (settingsForm.handheldForm is not null && settingsForm.handheldForm.Text != "")
settingsForm.handheldForm.InitTheme();
break;
@@ -218,6 +231,7 @@ namespace GHelper
Logger.WriteLine("AutoSetting for " + isPlugged.ToString());
BatteryControl.AutoBattery(init);
if (init) screenControl.InitMiniled();
inputDispatcher.Init();
@@ -236,7 +250,8 @@ namespace GHelper
if (AppConfig.IsAlly())
{
allyControl.Init();
} else
}
else
{
settingsForm.AutoKeyboard();
}
@@ -281,19 +296,22 @@ namespace GHelper
}
else
{
var screen = Screen.PrimaryScreen;
if (screen is null) screen = Screen.FromControl(settingsForm);
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.Location = screen.WorkingArea.Location;
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.Show();
settingsForm.Activate();
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
if (AppConfig.IsAlly())
settingsForm.Top = Math.Max(10, Screen.FromControl(settingsForm).Bounds.Height - 110 - settingsForm.Height);
settingsForm.Top = Math.Max(10, screen.Bounds.Height - 110 - settingsForm.Height);
else
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.VisualiseGPUMode();
}
@@ -318,6 +336,23 @@ namespace GHelper
Application.Exit();
}
static void BatteryLimit()
{
try
{
int limit = AppConfig.Get("charge_limit");
if (limit > 0 && limit < 100)
{
Logger.WriteLine($"------- Startup Battery Limit {limit} -------");
acpi = new AsusACPI();
acpi.DeviceSet(AsusACPI.BatteryLimit, limit, "Limit");
}
}
catch (Exception ex)
{
Logger.WriteLine("Startup Battery Limit Error: " + ex.Message);
}
}
}
}

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

@@ -771,6 +771,15 @@ namespace GHelper.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Donate.
/// </summary>
internal static string Donate {
get {
return ResourceManager.GetString("Donate", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Download Color Profiles.
/// </summary>
@@ -1196,6 +1205,42 @@ namespace GHelper.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Legend.
/// </summary>
internal static string Legend {
get {
return ResourceManager.GetString("Legend", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Can&apos;t check local version.
/// </summary>
internal static string LegendGray {
get {
return ResourceManager.GetString("LegendGray", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Updated.
/// </summary>
internal static string LegendGreen {
get {
return ResourceManager.GetString("LegendGreen", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Update Available.
/// </summary>
internal static string LegendRed {
get {
return ResourceManager.GetString("LegendRed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Lid.
/// </summary>
@@ -1575,7 +1620,7 @@ namespace GHelper.Properties {
}
/// <summary>
/// Looks up a localized string similar to Switch to Eco on battery and to Standard when plugged.
/// Looks up a localized string similar to Switch to Eco on battery and to Standard when plugged in.
/// </summary>
internal static string OptimizedGPUTooltip {
get {
@@ -1935,7 +1980,7 @@ namespace GHelper.Properties {
}
/// <summary>
/// Looks up a localized string similar to .
/// Looks up a localized string similar to Touchscreen.
/// </summary>
internal static string Touchscreen {
get {

View File

@@ -744,7 +744,7 @@ Vil du stadig fortsætte?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Vil du stadig fortsætte?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Trotzdem fortfahren?</value>
<value>Touchscreen umschalten</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -783,7 +783,7 @@ Trotzdem fortfahren?</value>
<value>Darstellungsmodi sind nicht verfügbar, wenn HDR aktiv ist.</value>
</data>
<data name="VisualModesScreen" xml:space="preserve">
<value>Darstellungsmodi sind nicht verfügbar, wenn Laptop-Bildschirm aus ist.</value>
<value>Modi nicht verfügbar, wenn Laptop-Bildschirm aus ist.</value>
</data>
<data name="VolumeDown" xml:space="preserve">
<value>Lautstärke verringern</value>
@@ -800,4 +800,22 @@ Trotzdem fortfahren?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Spenden</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legende</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Kann lokale Version nicht überprüfen</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update verfügbar</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Aktuell</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@
<value>Alternar pantalla táctil</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Pantalla táctil</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donar</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Leyenda</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>No se puede comprobar la versión local</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Actualización disponible</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Actualizado</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -226,7 +226,7 @@
<value>Tout</value>
</data>
<data name="AuraZoneDock" xml:space="preserve">
<value>Dock</value>
<value>Station d'accueil</value>
</data>
<data name="AuraZoneLogo" xml:space="preserve">
<value>Logo</value>
@@ -495,7 +495,7 @@ Voulez-vous continuer ?</value>
<value>Écran</value>
</data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
<value>Indicateurs d'état LED</value>
</data>
<data name="Lid" xml:space="preserve">
<value>Capot</value>
@@ -507,7 +507,7 @@ Voulez-vous continuer ?</value>
<value>Éclairage</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
<value>Écran de verrouillage</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logo</value>
@@ -585,10 +585,10 @@ Voulez-vous continuer ?</value>
<value>Synchroniser avec le pointeur</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>Multi Zone</value>
<value>Multi-zones</value>
</data>
<data name="MultizoneStrong" xml:space="preserve">
<value>Multi Zone Strong</value>
<value>Forte zone multiple</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Son désactivé</value>
@@ -741,10 +741,10 @@ Voulez-vous continuer ?</value>
<value>Allumer l'écran</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
<value>Activer/désactiver l'écran tactile</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Voulez-vous continuer ?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Do you still want to continue?</value>
<value>Érintőképernyő ki-/bekapcsolása</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbó</value>
@@ -800,4 +800,22 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Apakah Anda masih ingin melanjutkan?</value>
<data name="Zoom" xml:space="preserve">
<value>Perbesar</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Sei sicuro di voler continuare?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Sei sicuro di voler continuare?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Do you still want to continue?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>터보</value>
@@ -800,4 +800,22 @@
<data name="Zoom" xml:space="preserve">
<value>확대/축소</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -124,7 +124,7 @@
<value>Nepavyko prisijungti prie ASUS ACPI. Programėlė be jo negali veikti. Pabandykite įdiegti Asus System Control Interface</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Restart your device to apply changes</value>
<value>Norėdami pritaikyti pakeitimus, paleiskite įrenginį iš naujo</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Paleisti iš naujo?</value>
@@ -145,7 +145,7 @@
<value>Paleisti iš naujo dabar?</value>
</data>
<data name="AllyController" xml:space="preserve">
<value>Ally Controller</value>
<value>Ally“ valdiklis</value>
</data>
<data name="AnimationSpeed" xml:space="preserve">
<value>Animacijos greitis</value>
@@ -163,7 +163,7 @@
<value>Taikyti</value>
</data>
<data name="ApplyFanCurve" xml:space="preserve">
<value>Taikyti tinkintą aušintuvo kreivę</value>
<value>Taikyti tinkintą kreivę</value>
</data>
<data name="ApplyPowerLimits" xml:space="preserve">
<value>Taikyti galios ribas</value>
@@ -172,7 +172,7 @@
<value>Automatiškai derinti Windows energijos režimus</value>
</data>
<data name="APUMemory" xml:space="preserve">
<value>Memory Assigned to GPU</value>
<value>Atmintis priskirta vaizdo plokštei</value>
</data>
<data name="AsusServicesRunning" xml:space="preserve">
<value>Veikiančios Asus tarnybos</value>
@@ -202,7 +202,7 @@
<value>Apšvietimo režimas</value>
</data>
<data name="AuraNormal" xml:space="preserve">
<value>Normalus</value>
<value>Įprastas</value>
</data>
<data name="AuraRainbow" xml:space="preserve">
<value>Vaivorykštė</value>
@@ -244,7 +244,7 @@
<value>Automatinis</value>
</data>
<data name="AutoRefreshTooltip" xml:space="preserve">
<value>Nustato 60Hz, kad taupytų energiją, ir atgal, kai įjungtas į lizdą</value>
<value>Nustatomas 60Hz dažn. taupymui, ir atgal, kuomet įkraunama</value>
</data>
<data name="Awake" xml:space="preserve">
<value>Pabudęs</value>
@@ -259,7 +259,7 @@
<value>Mid</value>
</data>
<data name="BacklightOff" xml:space="preserve">
<value>Off</value>
<value>Išjungta</value>
</data>
<data name="BacklightTimeout" xml:space="preserve">
<value>Laiko riba su lizdu / akumuliatoriumi (0 ĮJUNGTA)</value>
@@ -280,13 +280,13 @@
<value>Įkrovos riba</value>
</data>
<data name="BatteryHealth" xml:space="preserve">
<value>Sveikata</value>
<value>Baterijos būklė</value>
</data>
<data name="BatteryLimitFull" xml:space="preserve">
<value>Vienkartinė įkrova iki 100%</value>
</data>
<data name="Binding" xml:space="preserve">
<value>Binding</value>
<value>Saistymas</value>
</data>
<data name="BindingPrimary" xml:space="preserve">
<value>Pirminis</value>
@@ -313,7 +313,7 @@
<value>Ryškumo didinimas</value>
</data>
<data name="BWTrayIcon" xml:space="preserve">
<value>Black and white tray icon</value>
<value>Naudoti juodai baltą piktogramą</value>
</data>
<data name="Calibrate" xml:space="preserve">
<value>Kalibruoti</value>
@@ -325,10 +325,10 @@
<value>Spalva</value>
</data>
<data name="Contrast" xml:space="preserve">
<value>Contrast</value>
<value>Kontrastas</value>
</data>
<data name="Controller" xml:space="preserve">
<value>Controller</value>
<value>Valdiklis</value>
</data>
<data name="CPUBoost" xml:space="preserve">
<value>CPU spartinimas</value>
@@ -343,10 +343,10 @@
<value>Numatytas</value>
</data>
<data name="DisableController" xml:space="preserve">
<value>Disable Controller</value>
<value>Išjungti valdiklį</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
<value>Išjungti uždarius gaubtą</value>
</data>
<data name="DisableOverdrive" xml:space="preserve">
<value>Išjungti ekrano pikselių spartinimą</value>
@@ -355,7 +355,7 @@
<value>Iškrovimas</value>
</data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>Download Color Profiles</value>
<value>Atsisiųsti spalvų profilius</value>
</data>
<data name="DownloadUpdate" xml:space="preserve">
<value>Atsisiųsti</value>
@@ -364,13 +364,13 @@
<value>Tvarkyklės ir programinė įranga</value>
</data>
<data name="EcoGPUTooltip" xml:space="preserve">
<value>Išjungia dGPU, kad taupytų energiją</value>
<value>Išjungia dGPU akumuliatoriaus taupymui</value>
</data>
<data name="EcoMode" xml:space="preserve">
<value>Ekonomiškas</value>
</data>
<data name="EnableGPUOnShutdown" xml:space="preserve">
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
<value>Įgalinti GPU išjungimo metu (apsauga nuo „Eco“ režimo problemos)</value>
</data>
<data name="EnableOptimusText" xml:space="preserve">
<value>Jei ekrano režimas NVIDIA valdymo skyde yra nenustatytas į Optimus, kai dGPU yra išjungtas perjungus į ekonominį režimą, gali kilti problemų su ryškumo valdymu iki kito paleidimo iš naujo.
@@ -384,7 +384,7 @@ Vis tiek norite tęsti?</value>
<value>Energijos nustatymai</value>
</data>
<data name="Export" xml:space="preserve">
<value>Export Profile</value>
<value>Eksportuoti profilį</value>
</data>
<data name="Extra" xml:space="preserve">
<value>Išplėstiniai</value>
@@ -420,16 +420,16 @@ Vis tiek norite tęsti?</value>
<value>Aušintuvai + galia</value>
</data>
<data name="FlickerFreeDimming" xml:space="preserve">
<value>Flicker-free Dimming</value>
<value>Užtamsinimas be mirgėjimo</value>
</data>
<data name="FnLock" xml:space="preserve">
<value>Apdoroti Fn+F sparčiuosius klavišus be Fn</value>
</data>
<data name="FnLockOff" xml:space="preserve">
<value>FN-Lock Off</value>
<value>FN užraktas išjungtas</value>
</data>
<data name="FnLockOn" xml:space="preserve">
<value>FN-Lock On</value>
<value>FN užraktas įjungtas</value>
</data>
<data name="GPUBoost" xml:space="preserve">
<value>Dinaminis spartinimas</value>
@@ -456,7 +456,7 @@ Vis tiek norite tęsti?</value>
<value>Tik dGPU</value>
</data>
<data name="GPUPower" xml:space="preserve">
<value>GPU Power</value>
<value>GPU galia</value>
</data>
<data name="GPUSettings" xml:space="preserve">
<value>GPU nustatymai</value>
@@ -465,16 +465,16 @@ Vis tiek norite tęsti?</value>
<value>Temperatūros tikslas</value>
</data>
<data name="HibernateAfter" xml:space="preserve">
<value>Minutės iki miego su akumuliatoriumi (0 IŠJUNGTA)</value>
<value>Užmigimo laikas akumuliatoriaus režimu (0 IŠJUNGTA)</value>
</data>
<data name="High" xml:space="preserve">
<value>Aukštas</value>
</data>
<data name="ImageRotation" xml:space="preserve">
<value>Image Rotation</value>
<value>Atvaizdo pasukimas</value>
</data>
<data name="Import" xml:space="preserve">
<value>Import Profile</value>
<value>Importuoti profilį</value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>Klavišų priskyrimas</value>
@@ -483,7 +483,7 @@ Vis tiek norite tęsti?</value>
<value>Klaviatūra</value>
</data>
<data name="KillGpuApps" xml:space="preserve">
<value>Sustabdyti visas GPU naudojančias programėles, kai perjungiama į ekonomišką režimą</value>
<value>Sustabdyti visas GPU naudojančias programėles, kai perjungiama į ekon. režimą</value>
</data>
<data name="LaptopBacklight" xml:space="preserve">
<value>Apšvietimas</value>
@@ -495,7 +495,7 @@ Vis tiek norite tęsti?</value>
<value>Ekranas</value>
</data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
<value>LED būsenos indikatoriai</value>
</data>
<data name="Lid" xml:space="preserve">
<value>Dangtis</value>
@@ -507,7 +507,7 @@ Vis tiek norite tęsti?</value>
<value>Apšvietimas</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
<value>Užrakinimo ekranas</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logotipas</value>
@@ -516,7 +516,7 @@ Vis tiek norite tęsti?</value>
<value>Žemas</value>
</data>
<data name="LSDeadzones" xml:space="preserve">
<value>Left Stick Deadzones</value>
<value>Kairiojo jungiklio nejautrumo zonos</value>
</data>
<data name="LTDeadzones" xml:space="preserve">
<value>Left Trigger Deadzones</value>
@@ -549,10 +549,10 @@ Vis tiek norite tęsti?</value>
<value>Paveikslėlis</value>
</data>
<data name="MaxRefreshTooltip" xml:space="preserve">
<value>Maksimalus kadrų dažnis mažesnę delsą</value>
<value>Maksimalus kadrų dažnis mažesnei delsai</value>
</data>
<data name="MinRefreshTooltip" xml:space="preserve">
<value>60Hz kadrų dažnis, kad taupytumėte energiją</value>
<value>60Hz kadrų dažnis energijos taupymui</value>
</data>
<data name="Minute" xml:space="preserve">
<value>min.</value>
@@ -561,7 +561,7 @@ Vis tiek norite tęsti?</value>
<value>min.</value>
</data>
<data name="MouseAngleSnapping" xml:space="preserve">
<value>Angle Snapping</value>
<value>Kampinis fiksavimas</value>
</data>
<data name="MouseAutoPowerOff" xml:space="preserve">
<value>Automatiškai išjungti po</value>
@@ -570,7 +570,7 @@ Vis tiek norite tęsti?</value>
<value>Klavišo atsakas</value>
</data>
<data name="MouseImportFailed" xml:space="preserve">
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
<value>Importuoti nepavyko. Pasirinktas failas nėra galiojantis pelės profilis arba yra sugadintas.</value>
</data>
<data name="MouseLiftOffDistance" xml:space="preserve">
<value>Pakilimo atstumas</value>
@@ -609,10 +609,10 @@ Vis tiek norite tęsti?</value>
<value>Neprijungta</value>
</data>
<data name="Off" xml:space="preserve">
<value>Off</value>
<value>Išjungta</value>
</data>
<data name="On" xml:space="preserve">
<value>On</value>
<value>Įjungta</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>One Zone</value>
@@ -624,10 +624,10 @@ Vis tiek norite tęsti?</value>
<value>Optimizuotas</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Perjungti į ekonomišką, kai naudojamas akumuliatorius, ir į standartinį, kai įjungtas į lizdą</value>
<value>Naudojant akumuliatorių įjungiamas ekon. režimas, įkraunant - stand. režimas</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>Neįjungti GPU, kai naudojamas USB-C įkroviklis optimizuotame režime</value>
<value>jungti GPU optimizuotame režime, kai naudojamas USB-C įkroviklis</value>
</data>
<data name="Other" xml:space="preserve">
<value>Kita</value>
@@ -666,7 +666,7 @@ Vis tiek norite tęsti?</value>
<value>Išeiti</value>
</data>
<data name="Reset" xml:space="preserve">
<value>Reset</value>
<value>Atstatyti</value>
</data>
<data name="RestartGPU" xml:space="preserve">
<value>Kažkas naudoja dGPU ir neleidžia įjungti ekonomiško režimo. Norite leisti G-Helper bandyti iš naujo paleisti dGPU įrenginių tvarkytuvėje? (Tęskite savo rizika)</value>
@@ -744,7 +744,7 @@ Vis tiek norite tęsti?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -756,7 +756,7 @@ Vis tiek norite tęsti?</value>
<value>Išjungti naudojant akumuliatorių</value>
</data>
<data name="UltimateGPUTooltip" xml:space="preserve">
<value>Nukreipia ekraną į dGPU, kad maksimizuotų kadrų dažnį</value>
<value>Maksimaliai padidinamas kadrų kiekis, nukreipiant ekraną į dGPU</value>
</data>
<data name="UltimateMode" xml:space="preserve">
<value>Maksimalus</value>
@@ -780,10 +780,10 @@ Vis tiek norite tęsti?</value>
<value>Vizualinis režimas</value>
</data>
<data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value>
<value>Vizualiniai režimai nepasiekiami, kuomet įjungtas HDR</value>
</data>
<data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value>
<value>Vizualiniai režimai nepasiekiami, kuomet kompiuterio ekranas išjungtas</value>
</data>
<data name="VolumeDown" xml:space="preserve">
<value>Garsumo mažinimas</value>
@@ -800,4 +800,22 @@ Vis tiek norite tęsti?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Nadal chcesz kontynuować?</value>
<value>Włącz/wyłącz ekran dotykowy</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Ekran dotykowy</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Nadal chcesz kontynuować?</value>
<data name="Zoom" xml:space="preserve">
<value>Przybliżenie</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Wesprzyj</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legenda</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Brak informacji</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Dostępna aktualizacja</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Wersja aktualna</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Do you still want to continue?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Quer prosseguir?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Quer prosseguir?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Do you still want to continue?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value />
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Dokunmatik Ekranı Değiştir</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Dokunmatik ekran</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Yine de devam etmek istiyor musunuz?</value>
<data name="Zoom" xml:space="preserve">
<value>Yakınlaştır</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Bağış</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Gösterge</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Yerel sürüm denetlenemiyor</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Güncelleme Mevcut</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Güncellendi</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -316,7 +316,7 @@
<value>Чорно-біла іконка трею</value>
</data>
<data name="Calibrate" xml:space="preserve">
<value>Калібрування</value>
<value>Калібр.</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Зарядка</value>
@@ -744,7 +744,7 @@
<value>Сенсорний екран</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Сенсорний екран</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Турбо</value>
@@ -800,4 +800,22 @@
<data name="Zoom" xml:space="preserve">
<value>Зум</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Донат</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Легенда</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Немає даних</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Є оновлення</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Оновлено</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@ Do you still want to continue?</value>
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
@@ -800,4 +800,22 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>Donate</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Update Available</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Updated</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -741,10 +741,10 @@
<value>关闭屏幕</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
<value>切换触摸屏</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>触摸屏</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>增强模式</value>
@@ -800,4 +800,22 @@
<data name="Zoom" xml:space="preserve">
<value>缩放</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>赞助</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>无法检查本地版本</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>有可用更新</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>已更新</value>
<comment>Updated</comment>
</data>
</root>

View File

@@ -744,7 +744,7 @@
<value>切換螢幕觸控</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value/>
<value>觸控螢幕</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>極速</value>
@@ -800,4 +800,22 @@
<data name="Zoom" xml:space="preserve">
<value>縮放</value>
</data>
</root>
<data name="Donate" xml:space="preserve">
<value>捐贈</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legend</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>無法檢查本機版本</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>有可用的更新</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>已更新</value>
<comment>Updated</comment>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

View File

@@ -40,7 +40,7 @@ namespace Ryzen
//PHEONIX - 9
//RAPHAEL/DRAGON RANGE - 10
//MENDOCINO - 11
//HAWKPOINT - 12
//HAWKPOINT/STRIXPOINT - 12
public static void Init()
{
@@ -77,7 +77,7 @@ namespace Ryzen
FAMID = 1; //PICASSO
}
if (CPUModel.Contains("Model " + Convert.ToString(32)))
if (CPUModel.Contains("Family " + Convert.ToString(23)) && CPUModel.Contains("Model " + Convert.ToString(32)))
{
FAMID = 2; //DALI
}
@@ -127,6 +127,11 @@ namespace Ryzen
FAMID = 12; //HAWKPOINT
}
if (CPUModel.Contains("Family " + Convert.ToString(26)) && CPUModel.Contains("Model " + Convert.ToString(36)))
{
FAMID = 12; //STRIXPOINT
}
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
SetAddresses();
@@ -141,7 +146,7 @@ namespace Ryzen
public static bool IsSupportedUV()
{
if (CPUName.Length == 0) Init();
return CPUName.Contains("Ryzen 9") || CPUName.Contains("4900H") || CPUName.Contains("4800H") || CPUName.Contains("4600H");
return CPUName.Contains("Ryzen AI 9") || CPUName.Contains("Ryzen 9") || CPUName.Contains("4900H") || CPUName.Contains("4800H") || CPUName.Contains("4600H");
}
public static bool IsSupportedUViGPU()

View File

@@ -21,7 +21,7 @@ namespace Ryzen
//PHEONIX - 9
//RAPHAEL/DRAGON RANGE - 10
//MENDOCINO - 11
//HAWKPOINT - 12
//HAWKPOINT/STRIXPOINT - 12
public static Smu RyzenAccess = new Smu(false);
public static int FAMID = RyzenControl.FAMID;

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

@@ -93,6 +93,7 @@ namespace GHelper
buttonMatrix.Text = Properties.Strings.PictureGif;
buttonQuit.Text = Properties.Strings.Quit;
buttonUpdates.Text = Properties.Strings.Updates;
buttonDonate.Text = Properties.Strings.Donate;
buttonController.Text = Properties.Strings.Controller;
labelAlly.Text = Properties.Strings.AllyController;
@@ -269,12 +270,27 @@ namespace GHelper
labelVisual.Click += LabelVisual_Click;
labelCharge.Click += LabelCharge_Click;
buttonDonate.Click += ButtonDonate_Click;
if (AppConfig.Get("start_count") > 10 && !AppConfig.Is("donate_click"))
{
buttonDonate.BorderColor = colorTurbo;
buttonDonate.Badge = true;
}
labelDynamicLighting.Click += LabelDynamicLighting_Click;
panelPerformance.Focus();
InitVisual();
}
private void ButtonDonate_Click(object? sender, EventArgs e)
{
AppConfig.Set("donate_click", 1);
buttonDonate.Badge = false;
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();

View File

@@ -0,0 +1,141 @@
using System.Globalization;
using System.Text.RegularExpressions;
public class NumericUpDownWithUnit : NumericUpDown
{
#region| Fields |
private string unit = null;
private bool unitFirst = false;
#endregion
#region| Properties |
public string Unit
{
get => unit;
set
{
unit = value;
UpdateEditText();
}
}
public bool UnitFirst
{
get => unitFirst;
set
{
unitFirst = value;
UpdateEditText();
}
}
#endregion
#region| Methods |
/// <summary>
/// Method called when updating the numeric updown text.
/// </summary>
protected override void UpdateEditText()
{
// If there is a unit we handle it ourselfs, if there is not we leave it to the base class.
if (Unit != null && Unit != string.Empty)
{
if (UnitFirst)
{
Text = $"({Unit}) {Value}";
}
else
{
Text = $"{Value} ({Unit})";
}
}
else
{
base.UpdateEditText();
}
}
/// <summary>
/// Validate method called before actually updating the text.
/// This is exactly the same as the base class but it will use the new ParseEditText from this class instead.
/// </summary>
protected override void ValidateEditText()
{
// See if the edit text parses to a valid decimal considering the label unit
ParseEditText();
UpdateEditText();
}
/// <summary>
/// Converts the text displayed in the up-down control to a numeric value and evaluates it.
/// </summary>
protected new void ParseEditText()
{
try
{
// The only difference of this methods to the base one is that text is replaced directly
// with the property Text instead of using the regex.
// We now that the only characters that may be on the textbox are from the unit we provide.
// because the NumericUpDown handles invalid input from user for us.
// This is where the magic happens. This regex will match all characters from the unit
// (so your unit cannot have numbers). You can change this regex to fill your needs
var regex = new Regex($@"[^(?!{Unit} )]+");
var match = regex.Match(Text);
if (match.Success)
{
var text = match.Value;
// VSWhidbey 173332: Verify that the user is not starting the string with a "-"
// before attempting to set the Value property since a "-" is a valid character with
// which to start a string representing a negative number.
if (!string.IsNullOrEmpty(text) && !(text.Length == 1 && text == "-"))
{
if (Hexadecimal)
{
Value = Constrain(Convert.ToDecimal(Convert.ToInt32(Text, 16)));
}
else
{
Value = Constrain(Decimal.Parse(text, CultureInfo.CurrentCulture));
}
}
}
}
catch
{
// Leave value as it is
}
finally
{
UserEdit = false;
}
}
/// </summary>
/// Returns the provided value constrained to be within the min and max.
/// This is exactly the same as the one in base class (which is private so we can't directly use it).
/// </summary>
private decimal Constrain(decimal value)
{
if (value < Minimum)
{
value = Minimum;
}
if (value > Maximum)
{
value = Maximum;
}
return value;
}
#endregion
}

View File

@@ -52,6 +52,16 @@ namespace GHelper.UI
}
}
private bool badge = false;
public bool Badge
{
get { return badge; }
set
{
badge = value;
}
}
public RButton()
{
DoubleBuffered = true;
@@ -99,6 +109,15 @@ namespace GHelper.UI
pevent.Graphics.DrawPath(penBorder, pathBorder);
}
if (badge)
{
using (Brush brush = new SolidBrush(borderColor))
{
var radius = ratio * 10;
pevent.Graphics.FillEllipse(brush, rectSurface.Width - rectSurface.Height / 2 - radius, rectSurface.Height / 2 - radius, radius + radius, radius + radius);
}
}
if (!Enabled && ForeColor != SystemColors.ControlText)
{
var rect = pevent.ClipRectangle;

View File

@@ -10,7 +10,7 @@ public static class AsusHid
public const byte INPUT_ID = 0x5a;
public const byte AURA_ID = 0x5d;
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6, 0x1abe };
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6, 0x1abe, 0x1b4c };
static HidStream? auraStream;

View File

@@ -79,7 +79,7 @@ namespace GHelper.USB
public static Color Color1 = Color.White;
public static Color Color2 = Color.Black;
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenbook() || AppConfig.IsProArt();
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenPro();
static bool isStrix = AppConfig.IsAdvancedRGB() && !AppConfig.IsNoDirectRGB();
static bool isStrix4Zone = AppConfig.Is4ZoneRGB();
@@ -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 : (mode == AuraMode.AuraBreathe ? (byte)0x01 : (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
@@ -268,6 +268,16 @@ namespace GHelper.USB
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A },
}, "Init");
if (AppConfig.IsProArt())
{
AsusHid.WriteInput([AsusHid.INPUT_ID, 0x05, 0x20, 0x31, 0x00, 0x08], "ProArt Init");
//AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x4E], "ProArt Init");
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xBA, 0xC5, 0xC4], "ProArt Init");
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x8F, 0x01], "ProArt Init");
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x85, 0xFF], "ProArt Init");
//AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD0, 0x4E], "ProArt Init");
}
}

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

@@ -78,7 +78,7 @@ namespace GHelper
// labelBIOS
//
labelBIOS.AutoSize = true;
labelBIOS.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelBIOS.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelBIOS.Location = new Point(68, 23);
labelBIOS.Margin = new Padding(4, 0, 4, 0);
labelBIOS.Name = "labelBIOS";
@@ -113,7 +113,7 @@ namespace GHelper
// labelUpdates
//
labelUpdates.Anchor = AnchorStyles.Top | AnchorStyles.Right;
labelUpdates.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelUpdates.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelUpdates.Location = new Point(864, 19);
labelUpdates.Name = "labelUpdates";
labelUpdates.Size = new Size(302, 32);
@@ -125,6 +125,7 @@ namespace GHelper
buttonRefresh.Activated = false;
buttonRefresh.Anchor = AnchorStyles.Top | AnchorStyles.Right;
buttonRefresh.BackColor = SystemColors.ControlLight;
buttonRefresh.Badge = false;
buttonRefresh.BorderColor = Color.Transparent;
buttonRefresh.BorderRadius = 5;
buttonRefresh.FlatAppearance.BorderSize = 0;
@@ -192,7 +193,7 @@ namespace GHelper
// labelDrivers
//
labelDrivers.AutoSize = true;
labelDrivers.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelDrivers.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelDrivers.Location = new Point(68, 6);
labelDrivers.Margin = new Padding(4, 0, 4, 0);
labelDrivers.Name = "labelDrivers";
@@ -280,7 +281,7 @@ namespace GHelper
//
labelLegend.AutoSize = true;
labelLegend.Dock = DockStyle.Top;
labelLegend.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelLegend.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelLegend.Location = new Point(20, 10);
labelLegend.Margin = new Padding(10);
labelLegend.Name = "labelLegend";

View File

@@ -49,6 +49,11 @@ namespace GHelper
labelBIOS.Text = "BIOS";
labelDrivers.Text = Properties.Strings.DriverAndSoftware;
labelLegend.Text = Properties.Strings.Legend;
labelLegendGray.Text = Properties.Strings.LegendGray;
labelLegendRed.Text = Properties.Strings.LegendRed;
labelLegendGreen.Text = Properties.Strings.LegendGreen;
SuspendLayout();
tableBios.Visible = false;

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Microsoft ResX Schema
Version 2.0
@@ -48,7 +48,7 @@
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter

181
docs/README.ja-JP.md Normal file
View File

@@ -0,0 +1,181 @@
# G-Helper - Asusートパソコン用の軽量コントロールツール
[![United24](https://raw.githubusercontent.com/seerge/g-helper/main/docs/ua.png)](https://u24.gov.ua/)
[![GitHub release](https://img.shields.io/github/release/seerge/g-helper)](https://GitHub.com/seerge/g-helper/releases/)
[![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>
Asusートパソコン用の軽量なArmoury Crate代替ツールで、余分な負荷や不要なサービスなしでほぼ同じ機能を提供します。
ROG Zephyrus G14、G15、G16、M16、Flow X13、Flow X16、Flow Z13、TUFシリーズ、StrixまたはScarシリーズ、ProArt、Vivobook、Zenbook、ROG Ally / Ally Xなど、すべての人気モデルで動作します
# [:floppy_disk:ダウンロード](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
**⭐ アプリが気に入ったら、ぜひオンラインで広めてください**
<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-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/8wM6pt8HbgK50tWbIK"><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/6oE29dg9D3Xj7Wo28b"><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)
- [セットアップと要件](https://github.com/seerge/g-helper/wiki/Requirements)
- [トラブルシューティング](https://github.com/seerge/g-helper/wiki/Troubleshooting)
- [パワーユーザー設定](https://github.com/seerge/g-helper/wiki/Power-user-settings)
[![G-Helper Download](https://github.com/seerge/g-helper/assets/5920850/4d98465a-63a5-4498-ae14-afb3e67e7e82)](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
## :loudspeaker: YouTubeレビューとガイド
| [![Youtube review Josh Cravey](https://i.ytimg.com/vi/hqe-PjuE-K8/hqdefault.jpg)](https://www.youtube.com/watch?v=hqe-PjuE-K8) | [![Youtube review cbutters Tech](https://i.ytimg.com/vi/6aVdwJKZSSc/hqdefault.jpg)](https://www.youtube.com/watch?v=6aVdwJKZSSc) |
| ----------------- | ---------------- |
| [Josh Cravey](https://www.youtube.com/watch?v=hqe-PjuE-K8) | [cbutters Tech](https://www.youtube.com/watch?v=6aVdwJKZSSc) |
## 📰 記事
1. https://www.digitaltrends.com/computing/g-helper-armoury-crate-alternative/
2. https://binaryfork.com/ghelper-armoury-crate-alternative-10216/
## :gift: 利点
1. シームレスで自動的なGPU切り替え
2. すべてのパフォーマンスモードを電力制限とファンカーブで完全にカスタマイズ可能
3. 軽量。システムに何もインストールしません。実行するための単一のexeファイルのみ
4. シンプルでクリーンなネイティブUIで、すべての設定に簡単にアクセス
5. FNロックとカスタムホットキー
![Screenshot 2024-03-11 104354](https://github.com/seerge/g-helper/assets/5920850/626a5a6e-fdae-431c-843e-92886c8420ee)
### :zap: 機能
1. パフォーマンスモード: サイレント - バランス - ターボ (内蔵、デフォルトのファンカーブ付き)
2. GPUモード: エコ - スタンダード - アルティメット - オプティマイズド
3. ディスプレイのリフレッシュレート制御とディスプレイオーバードライブ (OD)
4. カスタムファンカーブエディタ、電力制限、ターボブースト選択
5. アニメマトリックスまたはスラッシュライティングの制御、アニメーションGIF、時計、オーディオビジュアライザー
6. バックライトのアニメーションモードとカラー
7. ホットキーの処理
8. CPUとGPUの温度、ファン速度、バッテリーステータスの監視
9. バッテリーの充電制限
10. NVidia GPUのオーバークロックとアンダーボルティング
11. XG Mobileの制御
12. AMD CPUのアンダーボルティング
13. BIOSとドライバの更新
14. Asusマウスの設定
15. ミニLEDのマルチゾーンスイッチ
16. フリッカーフリーディミングとビジュアルモード
### :gear: 自動化
- バッテリー使用時または電源接続時のパフォーマンスモードの切り替え
- オプティマイズドGPUモード - バッテリー使用時にdGPUを無効化し、電源接続時に有効化
- 自動ディスプレイリフレッシュレート (バッテリー使用時に60Hz、電源接続時に最大Hz)
- バッテリー使用時または電源接続時のキーボードバックライトのタイムアウト
### :rocket: パフォーマンスモード
<img align="right" width="300" src="https://github.com/seerge/g-helper/assets/5920850/3e119674-db8d-486b-aa65-2bf9b61f9aa6">
すべてのモードはBIOSに組み込まれており、デフォルトのファンカーブと電力制限が設定されています。これらはArmoury Crateと同じです。
各BIOSモードは対応するWindowsパワーモードとペアになっています。これを「ファン + 電源」設定で調整できます。
1. BIOSの「サイレント」 + Windowsの「最高の電力効率」パワーモード
2. BIOSの「バランス」 (AC時のパフォーマンス) + Windowsの「バランス」パワーモード
3. BIOSの「ターボ」 + Windowsの「最高のパフォーマンス」パワーモード
### :video_game: GPUモード
1. エコ: 低電力の統合GPUのみが有効、iGPUが内蔵ディスプレイを駆動
2. スタンダード (MS Hybrid): iGPUとdGPUが有効、iGPUが内蔵ディスプレイを駆動
3. アルティメット: iGPUとdGPUが有効、dGPUが内蔵ディスプレイを駆動 (2022年以降のモデルでサポート)
4. オプティマイズド: バッテリー使用時にdGPUを無効化 (エコ)し、電源接続時に有効化 (スタンダード)
![Screenshot 2024-03-11 111818](https://github.com/seerge/g-helper/assets/5920850/fd69a81e-978d-4d5c-a0a8-26da51f90a5b)
![GPU Modes](https://github.com/seerge/g-helper/assets/5920850/65c6bdd5-728c-4965-b544-fcf5a85ed6a2)
### :mouse: Asusマウスとその他の周辺機器のサポート
[現在サポートされているモデル](https://github.com/seerge/g-helper/discussions/900)
- 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 Wireless
- ROG Keris II Ace
- ROG Strix Carry (P508)
- ROG Strix III Gladius III Aimpoint Wireless (P711)
- ROG Strix Impact III (P518)
- 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
[@IceStormNG](https://github.com/IceStormNG) 👑 の貢献と研究に大いに感謝します。
### ⌨️ キーバインディング
- ``Fn + F5 / Fn + Shift + F5`` - パフォーマンスモードを前方/後方に切り替え
- ``Ctrl + Shift + F5 / Ctrl + Shift + Alt + F5`` - パフォーマンスモードを前方/後方に切り替え
- ``Ctrl + Shift + F12`` - G-Helperウィンドウを開く
- ``Ctrl + M1 / M2`` - ディスプレイの明るさを下げる/上げる
- ``Shift + M1 / M2`` - バックライトの明るさを下げる/上げる
- ``Fn + C`` - Fnロック
- ``Fn + Ctrl + F7 / F8`` - フリッカーフリーディミングを下げる/上げる
- ``Fn + Shift + F7 / F8`` - マトリックス/スラッシュライティングの明るさを下げる/上げる
- ``Fn + Shift + F7 / F8`` - スクリーンパッドの明るさを下げる/上げる
- ``Ctrl + Shift + F20`` - マイクをミュート
- ``Ctrl + Shift + Alt + F13`` - ディスプレイのリフレッシュレートを切り替え
- ``Ctrl + Shift + Alt + F14`` - エコGPUモード
- ``Ctrl + Shift + Alt + F15`` - スタンダードGPUモード
- ``Ctrl + Shift + Alt + F16`` - サイレント
- ``Ctrl + Shift + Alt + F17`` - バランス
- ``Ctrl + Shift + Alt + F18`` - ターボ
- ``Ctrl + Shift + Alt + F19`` - カスタム1 (存在する場合)
- ``Ctrl + Shift + Alt + F20`` - カスタム2 (存在する場合)
- [カスタムキーバインディング/ホットキー](https://github.com/seerge/g-helper/wiki/Power-user-settings#custom-hotkey-actions)
### 🎮ROG Allyバインディング
- ``M + DPad Left / Right`` - ディスプレイの明るさ
- ``M + DPad Up`` - タッチキーボード
- ``M + DPad Down`` - デスクトップを表示
- ``M + Y`` - AMDオーバーレイを切り替え
- ``M + X`` - スクリーンショット
- ``M + Right Stick Click`` - コントローラーモード
------------------
### 🔖 重要な注意事項
G-Helperはオペレーティングシステム、ファームウェア、またはドライバではありません。ハードウェアをリアルタイムで「実行」することはありません。
これは、製造元が作成し、BIOSに保存されている事前定義された操作モードの1つを選択し、オプションでいくつかの設定を行うアプリケーションです。Armoury Crateと同じように機能します。Asus System Control Interface「ドライバ」を使用してすべての機能を実現します。
Armoury Crateと同じモード/設定を使用する場合、デバイスのパフォーマンスや動作に違いはありません。
G-Helperの役割は、リモコンがテレビに対して果たす役割に似ています。
### 使用ライブラリとプロジェクト
- [Linux Kernel](https://github.com/torvalds/linux/blob/master/include/linux/platform_data/x86/asus-wmi.h) - ASUS ACPI/WMIインターフェースの基本エンドポイント
- [NvAPIWrapper](https://github.com/falahati/NvAPIWrapper) - Nvidia APIへのアクセス
- [Starlight](https://github.com/vddCore/Starlight) - アニメマトリックス通信プロトコル
- [UXTU](https://github.com/JamesCJ60/Universal-x86-Tuning-Utility) - Ryzen System Management Unitを使用したアンダーボルティング
- [AsusCtl](https://gitlab.com/asus-linux/asusctl) - インスピレーションと逆アセンブル
### 免責事項
"Asus"、"ROG"、"TUF"、および"Armoury Crate"は、AsusTek Computer, Inc.の商標であり、AsusTek Computerに属する資産に対して一切の権利を主張しません。これらの資産は純粋に情報提供の目的で使用されています。
ソフトウェアは「現状のまま」提供され、明示または黙示のいかなる保証もなく、商品性、特定の目的への適合性、および非侵害の保証を含みますが、これに限定されません。このソフトウェアの誤用は、システムの不安定性や誤動作を引き起こす可能性があります。

View File

@@ -1,10 +1,11 @@
# G-Helper - Lightweight control tool for Asus laptops
[![United24](https://raw.githubusercontent.com/seerge/g-helper/main/docs/ua.png)](https://u24.gov.ua/)
[![GitHub release](https://img.shields.io/github/release/seerge/g-helper)](https://GitHub.com/seerge/g-helper/releases/)
[![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>
[![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> <sup>[日本語はこちら](https://github.com/seerge/g-helper/blob/main/docs/README.ja-JP.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!
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally / Ally X and many more!
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
**⭐ If you like the app - please spread the word about it online**
@@ -15,8 +16,8 @@ Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13
<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>
<a href="https://buy.stripe.com/8wM6pt8HbgK50tWbIK"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/stripe.png" height="36" alt="Stripe"></a>&nbsp;
<a href="https://buy.stripe.com/6oE29dg9D3Xj7Wo28b"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/alipay.png" height="36" alt="Alipay"></a>
</td>
</tr>
</table>
@@ -108,17 +109,21 @@ Each BIOS mode is paired with matching Windows Power Mode. You can adjust this s
- 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 (!).

View File

@@ -4,7 +4,7 @@
[![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/)
语言: [English](https://github.com/seerge/g-helper#readme) | 中文
语言: [English](https://github.com/seerge/g-helper#readme) | 中文 | [日本語](https://github.com/seerge/g-helper/blob/main/docs/README.ja-JP.md)
适用于华硕Asus笔记本电脑的轻量级 Armoury Crate (奥创控制中心)替代品,在功能几乎相同的同时减少不必要的服务以减轻负载。
G-helper兼容所有主流型号例如 ROG 幻14、幻15、幻16、幻13、幻X、天选飞行堡垒系列、枪神/魔霸系列、创系列、灵耀系列、无畏系列、ROG Ally 等!