Compare commits

..

14 Commits

Author SHA1 Message Date
Serge
d10702d2a2 Main merge 2024-04-26 19:39:32 +02:00
Serge
cb165093ac Merge branch 'main' into AllyTDP 2024-04-22 17:52:55 +02:00
Serge
fa125e3346 Merge branch 'main' into AllyTDP 2024-04-19 11:56:26 +02:00
Serge
32c007ada7 TDP tweaks 2024-04-17 12:55:15 +02:00
Serge
b83fa41772 Merge branch 'main' into AllyTDP 2024-04-16 23:39:44 +02:00
Serge
966dd01f1d Power based AutoTDP 2024-04-16 20:56:24 +02:00
Serge
4f571e276c Cleanup 2024-04-16 20:03:33 +02:00
Serge
54ece1f621 TDP tweaks 2024-04-16 14:47:22 +02:00
Serge
a3474d38a5 AutoTDP tweaks 2024-04-15 21:23:52 +02:00
Serge
d952d8859c AutoTDP tweaks 2024-04-15 16:06:57 +02:00
Serge
c43bab3a33 AutoTDP toggle 2024-04-15 15:27:15 +02:00
Serge
fa8bce17c6 TDP tweaks 2024-04-14 22:32:46 +02:00
Serge
6978689f3d TDP fixes 2024-04-14 18:35:25 +02:00
Serge
ad8858b836 Init 2024-04-14 17:32:39 +02:00
99 changed files with 976 additions and 4834 deletions

13
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA

View File

@@ -16,6 +16,10 @@ 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:

4
.github/SECURITY.md vendored
View File

@@ -4,8 +4,8 @@
| Version | Supported |
| ------- | ------------------ |
| 0.170+ | :white_check_mark: |
| < 0.170 | :x: |
| 0.151+ | :white_check_mark: |
| < 0.151 | :x: |
## Reporting a Vulnerability

View File

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

View File

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

View File

@@ -347,17 +347,16 @@ namespace GHelper.Ally
if (!autoTDP && _mode != ControllerMode.Auto) return;
float fps = amdControl.GetFPS();
int? usage = 0;
if (autoTDP && fpsLimit > 0 && fpsLimit <= 120)
{
int power = (int)amdControl.GetGpuPower();
//Debug.WriteLine($"{power}: {fps}");
if (fps <= Math.Min(fpsLimit * 0.9, fpsLimit - 4)) _upCount++;
if (fps <= fpsLimit * 0.8) _upCount++;
else _upCount = 0;
if (fps >= Math.Min(fpsLimit * 0.95, fpsLimit - 2)) _downCount++;
if (fps >= fpsLimit * 0.90) _downCount++;
else _downCount = 0;
var tdp = GetTDP();
@@ -378,8 +377,7 @@ namespace GHelper.Ally
if (_mode == ControllerMode.Auto)
{
if (fps > 0) usage = amdControl.GetiGpuUse();
ControllerMode newMode = (fps > 0 && usage > 15) ? ControllerMode.Gamepad : ControllerMode.Mouse;
ControllerMode newMode = (fps > 0) ? ControllerMode.Gamepad : ControllerMode.Mouse;
if (_applyMode != newMode) _autoCount++;
else _autoCount = 0;
@@ -388,7 +386,7 @@ namespace GHelper.Ally
{
_autoCount = 0;
ApplyMode(newMode);
Logger.WriteLine($"Controller Mode (FPS={fps}, USAGE={usage}%): {newMode}");
Logger.WriteLine($"Controller Mode {fps}: {newMode}");
}
}
@@ -426,15 +424,9 @@ namespace GHelper.Ally
switch (fpsLimit)
{
case 30:
fpsLimit = 40;
break;
case 40:
fpsLimit = 45;
break;
case 45:
fpsLimit = 50;
break;
case 50:
fpsLimit = 60;
break;
case 60:
@@ -616,9 +608,9 @@ namespace GHelper.Ally
}
public static void DisableXBoxController(bool disabled)
public static void ApplyXBoxStatus()
{
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD1, 0x0B, 0x01, disabled ? (byte)0x02 : (byte)0x01], $"ControllerDisabled: {disabled}");
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x0B, 0x01, AppConfig.Is("controller_disabled") ? (byte)0x02 : (byte)0x01 }, "Status");
}
public static void ApplyMode(ControllerMode applyMode = ControllerMode.Auto, bool init = false)
@@ -651,7 +643,7 @@ namespace GHelper.Ally
InputDispatcher.SetBacklightAuto(true);
}
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD1, 0x01, 0x01, (byte)_applyMode], "Controller");
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x01, 0x01, (byte)_applyMode }, "Controller");
//AsusHid.WriteInput(CommandSave, null);
BindZone(BindingZone.M1M2);
@@ -668,13 +660,6 @@ namespace GHelper.Ally
SetDeadzones();
if (init && AppConfig.Is("controller_disabled"))
{
Thread.Sleep(500);
DisableXBoxController(false);
DisableXBoxController(true);
}
});
}

View File

@@ -14,7 +14,6 @@ namespace GHelper.AnimeMatrix
SettingsForm settings;
System.Timers.Timer matrixTimer = default!;
System.Timers.Timer slashTimer = default!;
public AnimeMatrixDevice? deviceMatrix;
public SlashDevice? deviceSlash;
@@ -40,20 +39,12 @@ namespace GHelper.AnimeMatrix
try
{
if (AppConfig.IsSlash())
{
if (AppConfig.IsSlashAura())
deviceSlash = new SlashDeviceAura();
else
deviceSlash = new SlashDevice();
}
deviceSlash = new SlashDevice();
else
{
deviceMatrix = new AnimeMatrixDevice();
}
matrixTimer = new System.Timers.Timer(100);
matrixTimer.Elapsed += MatrixTimer_Elapsed;
}
catch (Exception ex)
{
@@ -95,9 +86,8 @@ namespace GHelper.AnimeMatrix
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || (lid && lidClose))
{
deviceSlash.SetEnabled(false);
//deviceSlash.Init();
//deviceSlash.SetOptions(false, 0, 0);
deviceSlash.Init();
deviceSlash.SetOptions(false, 0, 0);
deviceSlash.SetSleepActive(false);
}
else
@@ -108,36 +98,26 @@ namespace GHelper.AnimeMatrix
_wakeUp = false;
}
deviceSlash.SetEnabled(true);
deviceSlash.Init();
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;
default:
deviceSlash.SetMode((SlashMode)running);
deviceSlash.SetOptions(true, brightness, inteval);
deviceSlash.Save();
break;
}
// kill the timer if we are not displaying battery pattern
deviceSlash.SetSleepActive(true);
}
@@ -147,10 +127,10 @@ namespace GHelper.AnimeMatrix
public void SetLidMode(bool force = false)
{
bool matrixLid = AppConfig.Is("matrix_lid");
if (deviceSlash is not null)
{
deviceSlash.SetLidMode(!matrixLid && AppConfig.Is("slash_sleep"));
deviceSlash.SetLidMode(matrixLid);
}
if (matrixLid || force)
@@ -236,9 +216,9 @@ namespace GHelper.AnimeMatrix
{
BuiltInAnimation animation = new BuiltInAnimation(
(BuiltInAnimation.Running)running,
(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)
BuiltInAnimation.Sleeping.Starfield,
BuiltInAnimation.Shutdown.SeeYa,
BuiltInAnimation.Startup.StaticEmergence
);
deviceMatrix.SetBuiltInAnimation(true, animation);
Logger.WriteLine("Matrix builtin: " + animation.AsByte);
@@ -255,6 +235,7 @@ namespace GHelper.AnimeMatrix
matrixTimer.Stop();
}
private void MatrixTimer_Elapsed(object? sender, ElapsedEventArgs e)
{
@@ -272,6 +253,7 @@ namespace GHelper.AnimeMatrix
}
public void SetMatrixClock()
{
deviceMatrix.SetBuiltInAnimation(false);
@@ -279,52 +261,6 @@ namespace GHelper.AnimeMatrix
Logger.WriteLine("Matrix Clock");
}
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
// only ~5 actually distinguishable levels, so refresh every <= 514/5 ~ 100s
// default is 60s
// 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))
{
slashTimer = new System.Timers.Timer(interval);
slashTimer.Elapsed += SlashTimer_elapsed;
slashTimer.AutoReset = true;
}
// only write if interval changed
if (slashTimer.Interval != interval)
{
slashTimer.Interval = interval;
}
slashTimer.Start();
}
private void SlashTimer_elapsed(object? sender, ElapsedEventArgs e)
{
SlashTimer_tick();
}
private void SlashTimer_tick()
{
if (deviceSlash is null) return;
//kill timer if called but not in battery pattern mode
if ((SlashMode)AppConfig.Get("matrix_running", 0) != SlashMode.BatteryLevel)
{
slashTimer.Stop();
slashTimer.Dispose();
return;
}
deviceSlash.SetBatteryPattern(AppConfig.Get("matrix_brightness", 0));
}
public void Dispose()
{
StopMatrixAudio();
@@ -459,6 +395,7 @@ namespace GHelper.AnimeMatrix
deviceMatrix.Present();
}
public void OpenMatrixPicture()
{
string fileName = null;

View File

@@ -404,14 +404,12 @@ namespace GHelper.AnimeMatrix
public void PresentClock()
{
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(":", " ");
string second = (DateTime.Now.Second % 2 == 0) ? ":" : " ";
string time = DateTime.Now.ToString("HH" + second + "mm");
Clear();
Text(DateTime.Now.ToString(timeFormat), 15, 2, 25);
Text(DateTime.Now.ToString(dateFormat), 11.5F, 0, 14);
Text(time, 15, 0, 25);
Text(DateTime.Now.ToString("yy'. 'MM'. 'dd"), 11.5F, 0, 14);
Present();
}

View File

@@ -1,5 +1,4 @@
using GHelper.AnimeMatrix.Communication;
using System.Management;
using System.Text;
namespace GHelper.AnimeMatrix
@@ -21,28 +20,19 @@ namespace GHelper.AnimeMatrix
GameOver,
Start,
Buzzer,
Static,
BatteryLevel,
Static
}
public class SlashPacket : Packet
internal class SlashPacket : Packet
{
public SlashPacket(byte[] command, byte reportID = 0x5E) : base(reportID, 128, command)
public SlashPacket(byte[] command) : base(0x5E, 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"},
@@ -64,9 +54,7 @@ namespace GHelper.AnimeMatrix
{ SlashMode.GameOver, "Game Over"},
{ SlashMode.Start, "Start"},
{ SlashMode.Buzzer, "Buzzer"},
{ SlashMode.Static, "Static"},
{ SlashMode.BatteryLevel, "Battery Level"}
};
private static Dictionary<SlashMode, byte> modeCodes = new Dictionary<SlashMode, byte>
@@ -92,31 +80,24 @@ namespace GHelper.AnimeMatrix
{ SlashMode.Buzzer, 0x44},
};
public SlashDevice(ushort productId = 0x193B) : base(0x0B05, productId, 128)
public SlashDevice() : base(0x0B05, 0x193B, 128)
{
}
public void WakeUp()
{
Set(CreatePacket(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
Set(CreatePacket([0xC2]), "SlashWakeUp");
Set(CreatePacket([0xD1, 0x01, 0x00, 0x01 ]), "SlashWakeUp");
Set(Packet<SlashPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
}
public void Init()
{
Set(CreatePacket([0xD7, 0x00, 0x00, 0x01, 0xAC]), "SlashInit");
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAB]), "SlashInit");
}
public void SetEnabled(bool status = true)
{
Set(CreatePacket([0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80]), $"SlashEnable {status}");
Set(Packet<SlashPacket>(0xD7, 0x00, 0x00, 0x01, 0xAC), "SlashInit");
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAB), "SlashInit");
}
public void Save()
{
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAB]), "SlashSave");
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAB), "SlashSave");
}
public void SetMode(SlashMode mode)
@@ -132,111 +113,55 @@ namespace GHelper.AnimeMatrix
modeByte = 0x00;
}
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");
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");
}
public void SetStatic(int brightness = 0)
{
SetCustom(Enumerable.Repeat((byte)(brightness * 85.333), 7).ToArray());
}
public static double GetBatteryChargePercentage()
public void SetCustom(byte[] data)
{
double batteryCharge = 0;
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Battery");
foreach (ManagementObject battery in searcher.Get())
{
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;
}
private byte[] GetBatteryPattern(int brightness, double percentage)
{
// because 7 segments, within each led segment represents a percentage bracket of (100/7 = 14.2857%)
// 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();
byte[] batteryPattern = Enumerable.Repeat((byte)(0x00), 7).ToArray();
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);
return batteryPattern;
}
public void SetBatteryPattern(int brightness)
{
SetCustom(GetBatteryPattern(brightness, 100 * (GetBatteryChargePercentage() / AppConfig.Get("charge_limit", 100))), null);
}
public void SetCustom(byte[] data, string? log = "Static Data")
{
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);
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");
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
Set(CreatePacket(payload.Concat(data.Take(7)).ToArray()), log);
Set(Packet<SlashPacket>(payload.Concat(data.Take(7)).ToArray()), "Static Data");
}
public void SetOptions(bool status, int brightness = 0, int interval = 0)
{
byte brightnessByte = (byte)(brightness * 85.333);
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval]), "SlashOptions");
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval), "SlashOptions");
}
public void SetBatterySaver(bool status)
{
Set(CreatePacket([0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00]), $"SlashBatterySaver {status}");
Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00), $"SlashBatterySaver {status}");
}
public void SetLidMode(bool status)
{
Set(CreatePacket([0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00]), $"SlashLidCloseAnimation {status}");
Set(Packet<SlashPacket>(0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00), $"DisableLidClose {status}");
}
public void SetSleepActive(bool 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}");
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}");
}
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));
}
}
public class SlashDeviceAura : SlashDevice
{
protected override byte reportID => 0x5D;
public SlashDeviceAura() : base(0x19B6)
{
if (log is not null) Logger.WriteLine($"{log}:" + BitConverter.ToString(packet.Data).Substring(0,48));
}
protected override SlashPacket CreatePacket(byte[] command)
{
return new SlashPacket(command, reportID);
}
}
}

View File

@@ -12,7 +12,7 @@ public static class AppConfig
private static string? _bios;
private static Dictionary<string, object> config = new Dictionary<string, object>();
private static System.Timers.Timer timer = new System.Timers.Timer(2000);
private static System.Timers.Timer timer = new System.Timers.Timer(1000);
static AppConfig()
{
@@ -41,19 +41,10 @@ public static class AppConfig
{
config = JsonSerializer.Deserialize<Dictionary<string, object>>(text);
}
catch (Exception ex)
catch
{
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();
}
Logger.WriteLine("Broken config: " + text);
Init();
}
}
else
@@ -92,9 +83,7 @@ public static class AppConfig
Thread.Sleep(500);
var backupText = File.ReadAllText(backup);
if (backupText.Contains("{") && backupText.Contains("}"))
if (File.ReadAllText(backup).Contains("}"))
{
File.Copy(backup, configFile, true);
}
@@ -120,8 +109,7 @@ public static class AppConfig
break;
}
}
}
catch (Exception ex)
} catch (Exception ex)
{
Logger.WriteLine(ex.Message);
}
@@ -207,11 +195,6 @@ public static class AppConfig
return Get(name) != 0;
}
public static bool IsOnBattery(string zone)
{
return Get(zone + "_bat", Get(zone)) != 0;
}
public static string GetString(string name, string empty = null)
{
if (config.ContainsKey(name))
@@ -221,7 +204,6 @@ public static class AppConfig
private static void Write()
{
timer.Stop();
timer.Start();
}
@@ -305,32 +287,27 @@ public static class AppConfig
switch (mode)
{
case AsusACPI.PerformanceTurbo:
switch (device)
{
case AsusFan.GPU:
return StringToBytes("14-3F-44-48-4C-50-54-62-16-1F-26-2D-39-47-55-5F");
default:
return StringToBytes("14-3F-44-48-4C-50-54-62-11-1A-22-29-34-43-51-5A");
}
case AsusACPI.PerformanceSilent:
switch (device)
{
case AsusFan.GPU:
return StringToBytes("3C-41-42-46-47-4B-4C-62-08-11-11-1D-1D-26-26-2D");
default:
return StringToBytes("3C-41-42-46-47-4B-4C-62-03-0C-0C-16-16-22-22-29");
}
case 1:
if (device == AsusFan.GPU)
curve = StringToBytes("14-3F-44-48-4C-50-54-62-16-1F-26-2D-39-47-55-5F");
else
curve = StringToBytes("14-3F-44-48-4C-50-54-62-11-1A-22-29-34-43-51-5A");
break;
case 2:
if (device == AsusFan.GPU)
curve = StringToBytes("3C-41-42-46-47-4B-4C-62-08-11-11-1D-1D-26-26-2D");
else
curve = StringToBytes("3C-41-42-46-47-4B-4C-62-03-0C-0C-16-16-22-22-29");
break;
default:
switch (device)
{
case AsusFan.GPU:
return StringToBytes("3A-3D-40-44-48-4D-51-62-0C-16-1D-1F-26-2D-34-4A");
default:
return StringToBytes("3A-3D-40-44-48-4D-51-62-08-11-16-1A-22-29-30-45");
}
if (device == AsusFan.GPU)
curve = StringToBytes("3A-3D-40-44-48-4D-51-62-0C-16-1D-1F-26-2D-34-4A");
else
curve = StringToBytes("3A-3D-40-44-48-4D-51-62-08-11-16-1A-22-29-30-45");
break;
}
return curve;
}
public static string GetModeString(string name)
@@ -360,7 +337,7 @@ public static class AppConfig
public static bool IsAlly()
{
return ContainsModel("RC71") || ContainsModel("RC72");
return ContainsModel("RC71");
}
public static bool NoMKeys()
@@ -394,20 +371,10 @@ 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") || ContainsModel("FA706IH");
return ContainsModel("FA506IH") || ContainsModel("FA506IC") || ContainsModel("FX506LU") || ContainsModel("FX506IC") || ContainsModel("FX506LH") || ContainsModel("FA506IV") || ContainsModel("FA706IC");
}
@@ -419,32 +386,22 @@ public static class AppConfig
// G14 2020 has no aura, but media keys instead
public static bool NoAura()
{
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("GA502IU") || ContainsModel("HN7306");
}
public static bool MediaKeys()
{
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("G712L");
return ContainsModel("GA401I") && !ContainsModel("GA401IHR");
}
public static bool IsSingleColor()
{
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("FA617N") || ContainsModel("FA617X") || NoAura();
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
}
public static bool IsSlash()
{
return ContainsModel("GA403") || ContainsModel("GU605") || ContainsModel("GA605");
}
public static bool IsSlashAura()
{
return ContainsModel("GA605");
return ContainsModel("GA403") || ContainsModel("GU605");
}
public static bool IsInputBacklight()
{
return ContainsModel("GA503") || IsSlash() || IsVivoZenPro();
return ContainsModel("GA503") || IsSlash();
}
public static bool IsInvertedFNLock()
@@ -454,12 +411,12 @@ 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("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606") || ContainsModel("UX5406") || ContainsModel("UM5606");
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");
}
public static bool IsNoOverdrive()
{
return Is("no_overdrive");
return Is("no_overdrive") || IsOLED();
}
public static bool IsNoSleepEvent()
@@ -472,30 +429,11 @@ public static class AppConfig
return ContainsModel("Strix") || ContainsModel("Scar") || ContainsModel("G703G");
}
public static bool IsAdvancedRGB()
{
return IsStrix() || ContainsModel("GX650");
}
public static bool IsBacklightZones()
{
return IsStrix() || IsZ13();
}
public static bool IsStrixLimitedRGB()
{
return ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G");
return (ContainsModel("G614JV_") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb");
}
public static bool IsPossible4ZoneRGB()
{
return ContainsModel("G614JI_") || ContainsModel("G614JV_") || ContainsModel("G614JZ") || IsStrixLimitedRGB();
}
public static bool Is4ZoneRGB()
{
return IsPossible4ZoneRGB() && !Is("per_key_rgb");
}
public static bool IsNoAirplaneMode()
{
@@ -509,7 +447,7 @@ public static class AppConfig
public static bool IsNoDirectRGB()
{
return ContainsModel("GA503") || ContainsModel("G533Q") || ContainsModel("GU502") || ContainsModel("GU603") || IsSlash();
return ContainsModel("GA503") || ContainsModel("G533Q") || ContainsModel("GU502") || IsSlash();
}
public static bool IsStrixNumpad()
@@ -554,7 +492,7 @@ public static class AppConfig
public static bool DynamicBoost20()
{
return ContainsModel("GU605") || ContainsModel("GA605");
return ContainsModel("GU605");
}
public static bool IsAdvantageEdition()
@@ -564,7 +502,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") || ContainsModel("GA605") || ContainsModel("GU603VV");
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834") || ContainsModel("GA403") || ContainsModel("GU605");
}
@@ -620,12 +558,12 @@ public static class AppConfig
public static bool IsFanRequired()
{
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");
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J") || ContainsModel("G614J") || ContainsModel("G814J") || ContainsModel("FX507V");
}
public static bool IsAMDLight()
{
return ContainsModel("GA402X") || ContainsModel("GA605") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
return ContainsModel("GA402X") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
}
public static bool IsPowerRequired()
@@ -640,7 +578,7 @@ public static class AppConfig
public static bool IsForceSetGPUMode()
{
return Is("gpu_mode_force_set") || (ContainsModel("503") && IsNotFalse("gpu_mode_force_set"));
return Is("gpu_mode_force_set") || ContainsModel("503");
}
public static bool IsNoGPUModes()
@@ -677,31 +615,6 @@ public static class AppConfig
return Is("bw_icon");
}
public static bool IsStopAC()
{
return IsAlly() || Is("stop_ac");
}
public static bool IsChargeLimit6080()
{
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() || IsIntelHX() || ContainsModel("FA607P") || ContainsModel("FX607J") || ContainsModel("FA507U");
}
public static bool IsForceMiniled()
{
return ContainsModel("G834JYR") || ContainsModel("G834JZR") || Is("force_miniled");
}
public static bool SaveDimming()
{
return Is("save_dimming");
}
}

View File

@@ -46,7 +46,6 @@ 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;
@@ -67,13 +66,12 @@ public class AsusACPI
public const uint PerformanceMode = 0x00120075; // Performance modes
public const uint VivoBookMode = 0x00110019; // Vivobook performance modes
public const uint GPUEcoROG = 0x00090020;
public const uint GPUEcoVivo = 0x00090120;
public const uint GPUEco = 0x00090020;
public const uint GPUXGConnected = 0x00090018;
public const uint GPUXG = 0x00090019;
public const uint GPUMuxROG = 0x00090016;
public const uint GPUMux = 0x00090016;
public const uint GPUMuxVivo = 0x00090026;
public const uint BatteryLimit = 0x00120057;
@@ -114,11 +112,8 @@ public class AsusACPI
public const int APU_MEM = 0x000600C1;
public const int TUF_KB_BRIGHTNESS = 0x00050021;
public const int KBD_BACKLIGHT_OOBE = 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;
@@ -172,11 +167,6 @@ public class AsusACPI
public const int PCoreMax = 16;
public const int ECoreMax = 16;
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(
@@ -452,16 +442,14 @@ public class AsusACPI
public int SetGPUEco(int eco)
{
uint ecoEndpoint = GPUEco;
int ecoFlag = DeviceGet(ecoEndpoint);
int ecoFlag = DeviceGet(GPUEco);
if (ecoFlag < 0) return -1;
if (ecoFlag == 1 && eco == 0)
return DeviceSet(ecoEndpoint, eco, "GPUEco");
return DeviceSet(GPUEco, eco, "GPUEco");
if (ecoFlag == 0 && eco == 1)
return DeviceSet(ecoEndpoint, eco, "GPUEco");
return DeviceSet(GPUEco, eco, "GPUEco");
return -1;
}
@@ -648,14 +636,8 @@ public class AsusACPI
public bool IsAllAmdPPT()
{
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0 && !AppConfig.IsAlly();
return (bool)_allAMD;
}
public bool IsOverdriveSupported()
{
if (_overdrive is null) _overdrive = DeviceGet(ScreenOverdrive) >= 0;
return (bool)_overdrive;
//return false;
return DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
}
public bool IsNVidiaGPU()
@@ -788,7 +770,6 @@ public class AsusACPI
{
int param = 0x80 | (brightness & 0x7F);
DeviceSet(TUF_KB_BRIGHTNESS, param, "TUF Brightness");
}
public void TUFKeyboardRGB(AuraMode mode, Color color, int speed, string? log = "TUF RGB")
@@ -804,13 +785,7 @@ public class AsusACPI
setting[5] = (byte)speed;
int result = DeviceSet(TUF_KB, setting, log);
if (result != 1)
{
setting[0] = (byte)0xb3;
DeviceSet(TUF_KB2, setting, log);
setting[0] = (byte)0xb4;
DeviceSet(TUF_KB2, setting, log);
}
if (result != 1) DeviceSet(TUF_KB2, setting, log);
}
@@ -830,7 +805,6 @@ public class AsusACPI
state = state | 0x01 << 8;
DeviceSet(TUF_KB_STATE, state, "TUF_KB");
if (AppConfig.IsVivoZenPro() && DeviceGet(KBD_BACKLIGHT_OOBE) >= 0) DeviceSet(KBD_BACKLIGHT_OOBE, 1, "VIVO OOBE");
}
public void SubscribeToEvents(Action<object, EventArrivedEventArgs> EventHandler)

View File

@@ -326,8 +326,7 @@ namespace GHelper
return;
}
var index = comboBoxLightingMode.SelectedIndex;
LightingMode lm = supportedLightingModes[index < supportedLightingModes.Count ? index : 0 ];
LightingMode lm = supportedLightingModes[comboBoxLightingMode.SelectedIndex];
LightingSetting? ls = mouse.LightingSettingForZone(visibleZone);
if (ls.LightingMode == lm)

View File

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

View File

@@ -1,4 +1,5 @@
using System.Diagnostics;
using GHelper.Helpers;
using System.Diagnostics;
namespace GHelper.Battery
{
@@ -36,13 +37,6 @@ namespace GHelper.Battery
if (limit < 0) limit = AppConfig.Get("charge_limit");
if (limit < 40 || limit > 100) return;
if (AppConfig.IsChargeLimit6080())
{
if (limit > 85) limit = 100;
else if (limit >= 80) limit = 80;
else if (limit < 60) limit = 60;
}
Program.acpi.DeviceSet(AsusACPI.BatteryLimit, limit, "BatteryLimit");
AppConfig.Set("charge_limit", limit);

View File

@@ -13,28 +13,19 @@ namespace GHelper.Display
var profiles = new Dictionary<string, string>()
{
{"FA_Series", "2177-APOR41-de476ec68578c865e886ef6872aa56ee.zip"},
{"FA401UI", "19767-N39QWK-05990dae2bf601e9db8b998bfad49f57.zip"},
{"FA401UU", "19768-K9LFCV-5224d6f68051d884a3adaa588e6300c3.zip"},
{"FA401UV", "19769-8MSQD6-d06ff0a176407b4eaeed468a3bff2bc1.zip"},
{"FA401WI", "19937-J3GRCD-e37d8c1557b9f11d8fb493a78b50fe2d.zip"},
{"FA401WU", "19938-5PIL7F-a3c8522c89e03fc25e2f7290ee5c5f22.zip"},
{"FA401WV", "19939-KIX4CK-3462e49f2c6388228b427b85332538b7.zip"},
{"FA506IC", "7822-ZGQ1KC-bc80be3be7ca585bef60f526b6461c86.zip"},
{"FA506ICB", "13914-2HYCD7-95fabfe5669a204620517f0158c0cea1.zip"},
{"FA506IE", "7828-57N8GH-9fe07a7e4ebde12a8d4682d3ffa66fe4.zip"},
{"FA506IEB", "14661-ZYWH5T-3b45ebeb7fca81d98796d5960e11226c.zip"},
{"FA506IH", "3407-VZBOUN-8a12385fa46e077010677d330e9320d5.zip"},
{"FA506IHR", "7823-15HGA0-44d621a3c0f0dd2c407f67d262871be0.zip"},
{"FA506IHRB", "19343-MBMUPH-190cdb28402ba8efd3e11561c9b2eeb9.zip"},
{"FA506II", "3410-9ZXQO2-aa08794537699c5dbfcca49b63fb7f8d.zip"},
{"FA506IM", "7824-EKKW9A-21c7e073a81fc868b78e605b17290839.zip"},
{"FA506IR", "7825-G6XND9-c16ea7e98b58e878c61d1071b100ee60.zip"},
{"FA506IU", "3413-AMCR39-2a8b889a8810da4e8692f87e1ae3ea2c.zip"},
{"FA506IV", "3415-VA0CJ6-266febe84bcecc5ed89fdc286f444ce2.zip"},
{"FA506NC", "18359-BM2XCN-3ca9de427310b05afa92dcbe1babf947.zip"},
{"FA506NCR", "19230-KJ866Z-1980e6f6a843b6b31111e38973fa1cda.zip"},
{"FA506NF", "18361-CU7H6I-55beba8445b9aa0fe9cbeb8ec9a47ccf.zip"},
{"FA506NFR", "19231-GARR16-f7052f6be62ddce2048ebcd6ba808563.zip"},
{"FA506QC", "7829-LBYY5U-b14343c260b738563b69ad0e4f4b88d1.zip"},
{"FA506QE", "7827-75P3DP-b664f4da04e77ed1faa722bf0c781d82.zip"},
{"FA506QM", "9440-87VQKP-48357026f1f3099cfed1161a320587f0.zip"},
@@ -42,9 +33,9 @@ namespace GHelper.Display
{"FA507NI", "14451-N6AX9R-0bc8e15be5cf889c755aaa7052f6fee8.zip"},
{"FA507NJ", "14454-QXKHOE-d28f2eb001f9b7ce0582cbe33961a6ad.zip"},
{"FA507NU", "14452-EZXLVF-c64dd3d7efede78df653b029888d9d04.zip"},
{"FA507NUR", "19358-JYO79G-f8bc53beeadfdfef80dc6a4eb85c69e2.zip"},
{"FA507NUR", "18871-WR3YMP-6cbcd0502eb9bf200465e36c4de8c9fd.zip"},
{"FA507NV", "14453-VC333P-41549f64788d59c9711eccec892fa8c1.zip"},
{"FA507NVR", "19359-YWEAES-37feeb146db89c3549bac528d67ae209.zip"},
{"FA507NVR", "18872-HVR4UY-220dc7f3f73cf12b2af2505db6ce67ab.zip"},
{"FA507RC", "11448-0TRT8V-7712eb9302300dd82815027efbbe4787.zip"},
{"FA507RE", "11449-ONC7VG-a7ac70468292336f63532c21204d69d4.zip"},
{"FA507RF", "14311-X72FIU-66bf16069a82bdf2cc09f8b92cb25c67.zip"},
@@ -59,24 +50,17 @@ namespace GHelper.Display
{"FA507XJ", "14820-8RT0TF-9d341fae2a290494206deb5fcf1fd427.zip"},
{"FA507XU", "14818-3PA2GD-2d1e2d035309ec7282a1c47e27f7c7fd.zip"},
{"FA507XV", "14819-ET4L73-daf905274776ae9c92a7b74e687dc63d.zip"},
{"FA607NU", "20567-VB45RR-ceeec88490fec992f2f8948ece38952e.zip"},
{"FA607NUR", "20570-XEDISK-5e1220f6a19492a3e6319697497deaa3.zip"},
{"FA607PI", "19157-PL5PW6-2fde4880a46a6b7357d96eaa7a4ec946.zip"},
{"FA607PU", "19158-AWQ1FA-f1ed2d008bef71741a9b09b35730b9e7.zip"},
{"FA607PV", "19159-V6UKPP-92f56a3aa89b834d1ab12f229a8ae1a7.zip"},
{"FA607PI", "17579-FL63B4-df08bf92fe3c156ce738e43de7824d65.zip"},
{"FA607PU", "17580-WM413K-eff7721ca9ec5b633ef196dbfcd58ff2.zip"},
{"FA607PV", "17581-JNXO2Q-15d026a4ae630d44b28c18aee0a99e51.zip"},
{"FA607RC", "10190-XHDRTQ-0e6c248e3dab6bb07e052edd963c5218.zip"},
{"FA607RE", "10194-AF495K-23a4d74be5132e4babc64bb13237a12b.zip"},
{"FA607RH", "10191-9BS333-c6deb5f9fd5a37d446d2722da54c0ec3.zip"},
{"FA607RM", "10195-4U5EEF-cf98d168cacdd5a60782e881a9c143be.zip"},
{"FA607RR", "10193-FYX2N7-730c76e49ef71a6164804eafd2621dab.zip"},
{"FA607RW", "10192-UFOOP3-f52a50dac189ffa96560f73e04c53a6c.zip"},
{"FA608WI", "20103-UE0O65-d6707b2a2f666d671d728661c981883a.zip"},
{"FA608WU", "20102-IQVJL2-edc900ffe25635856729d26dbeac272f.zip"},
{"FA608WV", "20104-EE3Q5U-a7695b4d1668b1a8dda2576f64bffad2.zip"},
{"FA617NS", "20225-0J8FEF-cb6ef3732560ed38542d5047e78596f0.zip"},
{"FA617NSR", "20226-B5TAVP-f153443e85ccad055fa12d58eec69c5c.zip"},
{"FA617NT", "20224-YN6NKP-1d0e927ae5c1bb7d15e36b63176460e2.zip"},
{"FA617NTR", "20227-KL8UNI-2b4063b7a52b142fb75e9136570afbf9.zip"},
{"FA617NS", "15967-YKHJ0B-89095e43578e64c160d2952bb14513f2.zip"},
{"FA617NT", "15970-C1BW39-2ef1c5d5d9a967cf2fc1f511d3db3a43.zip"},
{"FA617XS", "15968-Y9NFXN-cb420fe6e177fc1cf675e9d42a6fd0ea.zip"},
{"FA617XT", "15969-UKYP5L-ad54051ebbad4b17693b65f5bceda799.zip"},
{"FA706IC", "5215-5J3H5Y-d2cdc2f5e03d68e5e5e562581a77c8e6.zip"},
@@ -88,7 +72,6 @@ namespace GHelper.Display
{"FA706IR", "8825-63J2NY-2496ecf21b5fa71e65671531b670cdac.zip"},
{"FA706IU", "2608-EI64MF-64c35bda7789e6e71298e22d793b78d4.zip"},
{"FA706NF", "18362-1V7Z1Z-0bc79f01bdfadc5b39342fba622a5b8d.zip"},
{"FA706NFR", "19232-FE6TXN-d062445db610ce901453145ebc518efe.zip"},
{"FA706QC", "8826-032S4E-868933565b1a7d762bda8cafc1e77458.zip"},
{"FA706QE", "8824-KZNJL9-9d827f4973d4c9787ff050dc1bf35eef.zip"},
{"FA706QM", "8830-6NX7U4-b7bbfe663aa954534d33d2f822181728.zip"},
@@ -96,9 +79,7 @@ namespace GHelper.Display
{"FA707NI", "14455-19J6WZ-10282c6083ee018a614e75bc809ecf1f.zip"},
{"FA707NJ", "14457-BGJD0K-d963ff94009c9a2a5b99606eac711a95.zip"},
{"FA707NU", "14456-VAZ4LS-1d798d3873c55e9d10b43a3f2b12cd15.zip"},
{"FA707NUR", "20568-IPF4CY-f7bd11b80ffa20b77b75e6a89213db48.zip"},
{"FA707NV", "14458-7G8B40-08117ddb45ed3c6978aa4ad60e3d2c96.zip"},
{"FA707NVR", "20569-1MFNC4-e41979f29c26628eacf1e9067dd3544d.zip"},
{"FA707RC", "10196-81D3O0-94ccf4d908c9bcb44f8f9092ef9fa2e2.zip"},
{"FA707RE", "10200-AUS9AW-7f366055be2ae2b4c659aa9590bb4d5e.zip"},
{"FA707RF", "14312-6KGU80-09ba6d3e3b490c3d1dce3d16df62cd8a.zip"},
@@ -111,9 +92,6 @@ namespace GHelper.Display
{"FA707XJ", "14823-MX6CGK-0d0862cd441f96a72b1c8baeaa8aa3b4.zip"},
{"FA707XU", "14824-O2LZZA-f0ea2bf54bbc4fd4e7391048f4a083e4.zip"},
{"FA707XV", "14825-DUSKD1-7d0a055d869a7366105380c44788724b.zip"},
{"FA808WI", "19512-TZ3G4D-60c6849ce49cca1d2177f31ead77df5a.zip"},
{"FA808WU", "19510-ASGCD8-0558641c1b976b901c52d1d72f0bddd7.zip"},
{"FA808WV", "19511-QDVPAJ-f3990996e7a9c0d472b46af286d529f1.zip"},
{"FX_Series", "2174-J1XJKV-bd932ade5eebb0b2f1a36eac85bc5c7d.zip"},
{"FX505DD", "3439-CJLCNE-3df3a90619c571de2917a35a402fe6cb.zip"},
{"FX505DT", "3427-H77L9I-2f3f50fbbb1dc4ac6e703b2820acb491.zip"},
@@ -165,18 +143,15 @@ namespace GHelper.Display
{"FX517ZM", "13759-694BOG-7b8f61a1d8a387715721fd2b8e0bd766.zip"},
{"FX517ZR", "11463-MCHEWS-7a732705aea49eb663fe1e8930c463de.zip"},
{"FX517ZW", "11464-S41ORA-d99633ecf421ba4ab73800bc9ebf2e5b.zip"},
{"FX607JI", "19085-6NMHTY-9137eab4a853f284c0ac1f8890735c7b.zip"},
{"FX607JIR", "19088-H9SUHL-c75a1547f17e7c69e0a870425d3592b8.zip"},
{"FX607JU", "19086-N1S5J4-c4fc8458bcbefa107fc1c2e1dbe44255.zip"},
{"FX607JUR", "19087-ZBS95F-bc3055487fdc07870c12341042a37222.zip"},
{"FX607JV", "19089-LLP8ZE-c52cc4765390eba2eae3c798a367df25.zip"},
{"FX607JVR", "19090-XQYJEH-a5aaa078def637077c4d1d3a619ae198.zip"},
{"FX607VB", "20704-FGKI8R-ac8a18cb35a009bcdb6d18ec7537879a.zip"},
{"FX607VF", "20706-OMC7L2-e66289430eb7decd16fe4c6353edb8c4.zip"},
{"FX607JI", "17739-YJBJMA-59c984b28eeb6c02498190f768b12b52.zip"},
{"FX607JIR", "17740-78V0QP-43bf1ea30f94d3d3a286f42dd90a1816.zip"},
{"FX607JU", "17744-JEFX0I-f1ee2104c17a5cc511efefa3dc7b9601.zip"},
{"FX607JUR", "17743-A2JS5H-224a1f32f7dbfecb0d6b91fdb6ffac8e.zip"},
{"FX607JV", "17741-OWALZC-eb293a03c7b4595270939bccfe891656.zip"},
{"FX607JVR", "17742-3OOC7N-f28635b55ce56f9e32672b2e409a075c.zip"},
{"FX607VI", "14072-0Z0LX5-c3145816b5c9b045a3e829e194425624.zip"},
{"FX607VJ", "14073-H1KA78-95472184994955393ebf635af4a55c71.zip"},
{"FX607VU", "20707-N1HJ0V-31f1da0a565763c625714c39b7bb5bae.zip"},
{"FX607VUR", "20705-ON83H2-dd9e78d43fb57f06d0e8ef0d9d1e849e.zip"},
{"FX607VU", "14074-RCMD10-b606bf5fd03bdf6a8aef412202de86ff.zip"},
{"FX607VV", "14075-BX4NJX-a9e24be091f08e6cc3885397f143bdc5.zip"},
{"FX607ZC", "9267-SQXQMT-edf1ee77d7f276d9b2f14fbe80e86459.zip"},
{"FX607ZE", "9268-MI06A0-5f60b76f497adb2c80dc5d34e7ca00ef.zip"},
@@ -262,14 +237,14 @@ namespace GHelper.Display
{"G533ZX", "11729-XNFMPR-e0aad4e4d4956dba8629f419b1f86026.zip"},
{"G614JF", "14496-NAATJZ-a3847e890e57aa749645b854b28ead79.zip"},
{"G614JI", "14168-4VTU0U-37decb2df809672eccf1156769eda929.zip"},
{"G614JIR", "19126-IMXGO5-4cce9f45ad28fa60d016f8d212c50b10.zip"},
{"G614JIR", "18120-52TT5M-28a5c8e138ed1660e9eadc81121f789a.zip"},
{"G614JJ", "14497-P0D5PL-abe178509e0316da9ee56b24e15d0384.zip"},
{"G614JU", "14498-5D71EB-2300be03087494ee34356470ca022b7c.zip"},
{"G614JV", "14500-SPJCAL-a8e2e223857c334ba4c20c8122151bb7.zip"},
{"G614JVR", "19129-EA1WB4-4666564ee013c4df53be44bcdd20bec0.zip"},
{"G614JVR", "18121-2WOF0H-4e7045c7a210693fef2b99b8e032316b.zip"},
{"G614JZ", "18199-P9WWOH-093d361358629a2bddd5bff7b5fb7a5f.zip"},
{"G634JY", "14163-JLRBOO-8ea519425efe56cc144e38d22cebd3f0.zip"},
{"G634JYR", "19130-MUAT65-0eced7ca55a61cc41341faa3a48d34f3.zip"},
{"G634JYR", "18087-6Z1W8Q-cd92004b6b9392e2cf07317db8ca9c6d.zip"},
{"G634JZ", "15827-MSW5I1-0f39e92313e54afe3e35f5636dc37fd5.zip"},
{"G634JZR", "17891-O7PAGL-5c6e6d059ff7bc1b9245fdf8a8066263.zip"},
{"G703GX", "105-NMT9XG-76a0810ddf16ee376fa049bd179377fc.zip"},
@@ -322,15 +297,15 @@ namespace GHelper.Display
{"G733ZW", "10080-HY42QH-aa285046069cfe113953b91f1a28d101.zip"},
{"G733ZX", "10082-JS5F1Y-41bccc831aec7bf1c0a59a309bc607c7.zip"},
{"G814JI", "18243-BAU912-671afb033d3b1c44f9852ff608910f42.zip"},
{"G814JIR", "19802-1CGBPH-f1d31bab157b36d109e1e10591d49f4b.zip"},
{"G814JIR", "17315-02XE3O-7a00ed5b91bc305aade5a1830691d0d6.zip"},
{"G814JU", "18193-Y5GMF0-843cee9ed982a3d5aba21e99efbc396c.zip"},
{"G814JV", "18194-9Q537I-c5c2ca782d26dcd5346c110767347903.zip"},
{"G814JVR", "19801-JK7M4V-617e0c975bf6e2a6f67802d825fa6aa4.zip"},
{"G814JVR", "17313-P6P61Y-5960dc1d0bd8ba2057bc22aaa8bf89e5.zip"},
{"G814JZ", "18195-V98WBX-19d4c2e52916bf9c96fcaed6f1d9bdda.zip"},
{"G834JY", "15954-HAV3KR-d219c43750d485279e12cf76f5b2569b.zip"},
{"G834JYR", "19121-GX7FZU-7c449cf7db0033db75da0f4a464ee4d9.zip"},
{"G834JYR", "17314-YYBQF3-a65b1bc3fd1e8de145dc9d606e8c45c8.zip"},
{"G834JZ", "15953-C7XC62-a987058c0a26fa3c929b300d099296a5.zip"},
{"G834JZR", "19122-CAYURL-f71108b839d923ae92f3f83451ddfa69.zip"},
{"G834JZR", "17316-AFT379-743360d9b36031d91a72fe03e3fafca0.zip"},
{"GA401IC", "5864-KC8TTP-082f9a62dda322ccaed82ff3e3466bf8.zip"},
{"GA401IE", "5866-JO8504-dde5402bdecafc1cef55a7dc3d6167ec.zip"},
{"GA401IHR", "5865-7DV6TB-9833a54c7334dc3aef1b9e99f56b9e95.zip"},
@@ -358,9 +333,9 @@ namespace GHelper.Display
{"GA402XV", "14902-EL34M9-731ba1cc0d27d2db9a79d872673e7958.zip"},
{"GA402XY", "14903-ICC56W-0456739d8ba5ee543dfba99eb6ad217a.zip"},
{"GA402XZ", "14904-B3K2NR-928b7272790e7da0079c549cd4885d5d.zip"},
{"GA403UI", "19112-NB8TJ1-e1de0121e30431cc5520ea6eccb6e46f.zip"},
{"GA403UU", "19113-C86SAH-4338dac48ad593c4079515b7599b8943.zip"},
{"GA403UV", "19114-6KR0FP-4740ed98a2ca06bc26c363de380a037d.zip"},
{"GA403UI", "18084-XTMSW5-6cad333378f3b1059688a419a8422fc1.zip"},
{"GA403UU", "18086-WXV037-ad90bc3f20ff056c45dbbb848fa72a67.zip"},
{"GA403UV", "18085-G56QVI-3f24b5bd1eaa8dd9086b86092cb62ffb.zip"},
{"GA502II", "3554-REAPZQ-5f94c7ecd52ae2cad50aaac4341bec7b.zip"},
{"GA502IU", "3555-15UWZ4-d1cd040265773efd61bdfd146140a990.zip"},
{"GA502IV", "3556-ULLH3K-1f56134e43e1ffa353256fbeb9840d3f.zip"},
@@ -381,9 +356,6 @@ namespace GHelper.Display
{"GA503RS", "11745-689QTC-6c441a7161a34b871918fce5997c4e2e.zip"},
{"GA503RW", "12055-SG6VTH-91cc5782da63cf3dcc16804a47db25a2.zip"},
{"GA503RX", "12056-MR9J0D-b7dad63f751d2e53aeee479524986bdd.zip"},
{"GA605WI", "20014-K4K912-2a2e5a66fac3cc97fb13394a189bd75e.zip"},
{"GA605WU", "20015-HJM11B-a724c1fe216b73c0b3b24475047f4615.zip"},
{"GA605WV", "20016-BWVQPK-01624c1cdd5a3c05252bad472fab1240.zip"},
{"GL_Series", "2167-P7ELNB-44d357ee720a0c48c2eb37eee785316c.zip"},
{"GL503GE", "57-YI7HPS-9ed36ba45ff6398f3648a44ced4e5e61.zip"},
{"GL504GM", "58-JOZ3S5-998677afd41375cb8fd60ace8d11a788.zip"},
@@ -423,11 +395,11 @@ namespace GHelper.Display
{"GU604VI", "14284-R38BM3-e2591bfa2582ce68b2c8aba63beac5e3.zip"},
{"GU604VY", "14282-78N7V4-25e76896744c53317fa41a80788a2241.zip"},
{"GU604VZ", "14283-U4JX5C-f31dff75d52f48ceca0102fd1bc76e31.zip"},
{"GU605MI", "19271-93QRMU-eab4115ee09fb9bbd86facec08a822a1.zip"},
{"GU605MU", "19272-RDZDEJ-4380e52eab6a3742613c2f694a19da1e.zip"},
{"GU605MV", "19274-1T9PKS-d05273f430d255ad1779cf6a7eb57db3.zip"},
{"GU605MY", "19273-F4A493-2bc9083d99e7827b4580311d34f8998b.zip"},
{"GU605MZ", "19275-52DG5X-1072d6f4fdc5b9cbb304da7146f05a79.zip"},
{"GU605MI", "17935-R3OAJH-55a4fbb2be67a37226accd279357268b.zip"},
{"GU605MU", "17936-VBZ5PL-ad3a380f62bc87ee738c09c8e5255f91.zip"},
{"GU605MV", "17938-7DGM0T-caed792b162e94846167888f36fc632e.zip"},
{"GU605MY", "17937-HZWNQ4-72d9c4fed1b31f188874cd6461ffba83.zip"},
{"GU605MZ", "17939-IEJ2X5-fe077100dc4eafbae46d7eb831a791a8.zip"},
{"GV301QC", "5128-RN42GR-9a6049e7adabd1ff2aeed24293fe03a8.zip"},
{"GV301QCZ", "6778-152PHS-7a9ad124aef1059471542dfc8912ed7b.zip"},
{"GV301QE", "5125-PD15GR-9a7f72cbf5bd97d283464d8e407f0231.zip"},
@@ -514,7 +486,6 @@ namespace GHelper.Display
{"NR2301L", "14736-3DM4T5-41c1b0b5c2d726da7c66e0c39ea08017.zip"},
{"RC71L", "17126-IIDPFS-718c077a118724bb0045b35e30d5ac4e.zip"},
{"RC71X", "15182-KWVC62-c754d9ea39f9160df7e21e4538ce60df.zip"},
{"RC72LA", "19770-DOSUSI-85f700513af330af6e20fcfdabaeb87f.zip"},
};
if (profiles.ContainsKey(model))

View File

@@ -16,10 +16,7 @@ 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)
{
Logger.WriteLine("HDR Detection Error: " + new Win32Exception(err).Message);
return false;
}
throw new Win32Exception(err);
string internalName = AppConfig.GetString("internal_display");

View File

@@ -51,38 +51,24 @@ namespace GHelper.Display
ScreenNative.SetRefreshRate(laptopScreen, frequency);
}
if (Program.acpi.IsOverdriveSupported() && overdrive >= 0)
if (overdrive >= 0)
{
if (AppConfig.IsNoOverdrive()) overdrive = 0;
if (overdrive != Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive))
if (!AppConfig.IsOLED() && overdrive != Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive))
{
Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive");
}
}
SetMiniled(miniled);
InitScreen();
}
public void SetMiniled(int miniled = -1)
{
if (miniled >= 0)
{
if (Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1) >= 0)
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled1, miniled, "Miniled1");
else
{
Program.acpi.DeviceSet(AsusACPI.ScreenMiniled2, miniled, "Miniled2");
Thread.Sleep(100);
}
}
}
public void InitMiniled()
{
if (AppConfig.IsForceMiniled())
SetMiniled(AppConfig.Get("miniled"));
InitScreen();
}
public void ToogleFHD()
@@ -98,7 +84,7 @@ namespace GHelper.Display
}
}
public string ToogleMiniled()
public int ToogleMiniled()
{
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
@@ -106,45 +92,24 @@ namespace GHelper.Display
Logger.WriteLine($"MiniledToggle: {miniled1} {miniled2}");
int miniled;
string name;
if (miniled1 >= 0)
{
switch (miniled1)
{
case 1:
miniled = 0;
name = Properties.Strings.OneZone;
break;
default:
miniled = 1;
name = Properties.Strings.Multizone;
break;
}
miniled = (miniled1 == 1) ? 0 : 1;
}
else
{
switch (miniled2)
{
case 1:
miniled = 2;
name = Properties.Strings.OneZone;
break;
case 2:
miniled = 0;
name = Properties.Strings.Multizone;
break;
default:
miniled = 1;
name = Properties.Strings.MultizoneStrong;
break;
case 1: miniled = 2; break;
case 2: miniled = 0; break;
default: miniled = 1; break;
}
}
AppConfig.Set("miniled", miniled);
SetScreen(miniled: miniled);
return name;
return miniled;
}
public void InitScreen()
@@ -153,11 +118,8 @@ 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();
bool overdriveSetting = !AppConfig.IsNoOverdrive();
int overdrive = AppConfig.IsNoOverdrive() ? 0 : Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
@@ -173,13 +135,7 @@ namespace GHelper.Display
AppConfig.Set("miniled", miniled);
}
try
{
hdr = ScreenCCD.GetHDRStatus();
} catch (Exception ex)
{
Logger.WriteLine(ex.Message);
}
hdr = ScreenCCD.GetHDRStatus();
bool screenEnabled = (frequency >= 0);

View File

@@ -166,8 +166,7 @@ namespace GHelper.Display
{
try
{
var devicesList = GetAllDevices();
var devices = devicesList.ToArray();
var devices = GetAllDevices().ToArray();
string internalName = AppConfig.GetString("internal_display");
foreach (var device in devices)

View File

@@ -1,5 +1,4 @@
using GHelper.Helpers;
using Microsoft.Win32;
using System.Management;
namespace GHelper.Display
@@ -38,7 +37,6 @@ namespace GHelper.Display
Cinema = 25,
Vivid = 13,
Eyecare = 17,
Disabled = 18,
}
public static class VisualControl
{
@@ -46,7 +44,6 @@ namespace GHelper.Display
private static int _brightness = 100;
private static bool _init = true;
private static bool _download = true;
private static string? _splendidPath = null;
private static System.Timers.Timer brightnessTimer = new System.Timers.Timer(200);
@@ -54,8 +51,6 @@ namespace GHelper.Display
public const int DefaultColorTemp = 50;
public static bool forceVisual = false;
public static bool skipGamut = false;
static VisualControl()
{
brightnessTimer.Elapsed += BrightnessTimerTimer_Elapsed;
@@ -73,13 +68,13 @@ namespace GHelper.Display
public static SplendidGamut GetDefaultGamut()
{
return AppConfig.IsVivoZenPro() ? SplendidGamut.VivoNative : SplendidGamut.Native;
return AppConfig.IsVivoZenbook() ? SplendidGamut.VivoNative : SplendidGamut.Native;
}
public static Dictionary<SplendidGamut, string> GetGamutModes()
{
bool isVivo = AppConfig.IsVivoZenPro();
bool isVivo = AppConfig.IsVivoZenbook();
Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>();
@@ -101,49 +96,14 @@ namespace GHelper.Display
foreach (FileInfo icm in icms)
{
//Logger.WriteLine(icm.FullName);
if (icm.Name.Contains("sRGB"))
{
try
{
_modes.Add(isVivo ? SplendidGamut.VivoSRGB : SplendidGamut.sRGB, "Gamut: sRGB");
Logger.WriteLine(icm.FullName + " sRGB");
}
catch
{
}
}
if (icm.Name.Contains("DCIP3"))
{
try
{
_modes.Add(isVivo ? SplendidGamut.VivoDCIP3 : SplendidGamut.DCIP3, "Gamut: DCIP3");
Logger.WriteLine(icm.FullName + " DCIP3");
}
catch
{
}
}
if (icm.Name.Contains("DisplayP3"))
{
try
{
_modes.Add(isVivo ? SplendidGamut.ViviDisplayP3 : SplendidGamut.DisplayP3, "Gamut: DisplayP3");
Logger.WriteLine(icm.FullName + " DisplayP3");
}
catch
{
}
}
if (icm.Name.Contains("sRGB")) _modes.Add(isVivo ? SplendidGamut.VivoSRGB : SplendidGamut.sRGB, "Gamut: sRGB");
if (icm.Name.Contains("DCIP3")) _modes.Add(isVivo ? SplendidGamut.VivoDCIP3 : SplendidGamut.DCIP3, "Gamut: DCIP3");
if (icm.Name.Contains("DisplayP3")) _modes.Add(isVivo ? SplendidGamut.ViviDisplayP3 : SplendidGamut.DisplayP3, "Gamut: DisplayP3");
}
return _modes;
}
catch (Exception ex)
catch
{
//Logger.WriteLine(ex.Message);
Logger.WriteLine(ex.ToString());
return _modes;
}
@@ -151,13 +111,13 @@ namespace GHelper.Display
public static SplendidCommand GetDefaultVisualMode()
{
return AppConfig.IsVivoZenPro() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
return AppConfig.IsVivoZenbook() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
}
public static Dictionary<SplendidCommand, string> GetVisualModes()
{
if (AppConfig.IsVivoZenPro())
if (AppConfig.IsVivoZenbook())
{
return new Dictionary<SplendidCommand, string>
{
@@ -177,8 +137,7 @@ namespace GHelper.Display
{ SplendidCommand.FPS, "FPS"},
{ SplendidCommand.Cinema, "Cinema"},
{ SplendidCommand.Vivid, "Vivid" },
{ SplendidCommand.Eyecare, "Eyecare"},
{ SplendidCommand.Disabled, "Disabled"}
{ SplendidCommand.Eyecare, "Eyecare"}
};
}
@@ -208,40 +167,11 @@ namespace GHelper.Display
};
}
const string GameVisualKey = @"HKEY_CURRENT_USER\Software\ASUS\ARMOURY CRATE Service\GameVisual";
const string GameVisualValue = "ActiveGVStatus";
public static bool IsEnabled()
public static void SetGamut(int mode = 50)
{
var status = (int?)Registry.GetValue(GameVisualKey, GameVisualValue, 1);
return status > 0;
}
if (RunSplendid(SplendidCommand.GamutMode, 0, mode)) return;
public static void SetRegStatus(int status = 1)
{
Registry.SetValue(GameVisualKey, GameVisualValue, status, RegistryValueKind.DWord);
}
public static void SetGamut(int mode = -1)
{
if (skipGamut) return;
if (mode < 0) mode = (int)GetDefaultGamut();
AppConfig.Set("gamut", mode);
var result = RunSplendid(SplendidCommand.GamutMode, 0, mode);
if (result == 0) return;
if (result == -1)
{
Logger.WriteLine("Gamut setting refused, reverting.");
RunSplendid(SplendidCommand.GamutMode, 0, (int)GetDefaultGamut());
if (ProcessHelper.IsUserAdministrator() && _download)
{
_download = false;
ColorProfileHelper.InstallProfile();
}
}
if (result == 1 && _init)
if (_init)
{
_init = false;
RunSplendid(SplendidCommand.Init);
@@ -252,26 +182,18 @@ 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.Disabled || mode == SplendidCommand.Default || mode == SplendidCommand.VivoNormal) && init) return; // Skip default setting on init
if (mode == SplendidCommand.Default && init) return; // Skip default setting on init
if (!forceVisual && ScreenCCD.GetHDRStatus(true)) return;
if (!forceVisual && ScreenNative.GetRefreshRate(ScreenNative.FindLaptopScreen(true)) < 0) return;
AppConfig.Set("visual", (int)mode);
AppConfig.Set("color_temp", whiteBalance);
if (whiteBalance != DefaultColorTemp && !init) ProcessHelper.RunAsAdmin();
int? balance = null;
int command = 0;
switch (mode)
{
case SplendidCommand.Disabled:
command = 2;
break;
int? balance;
switch (mode) {
case SplendidCommand.Eyecare:
balance = 4;
balance = 2;
break;
case SplendidCommand.VivoNormal:
case SplendidCommand.VivoVivid:
@@ -285,19 +207,9 @@ namespace GHelper.Display
break;
}
int result = RunSplendid(mode, command, balance);
if (result == 0) return;
if (result == -1)
{
Logger.WriteLine("Visual mode setting refused, reverting.");
RunSplendid(SplendidCommand.Default, 0, DefaultColorTemp);
if (ProcessHelper.IsUserAdministrator() && _download)
{
_download = false;
ColorProfileHelper.InstallProfile();
}
}
if (result == 1 && _init)
if (RunSplendid(mode, 0, balance)) return;
if (_init)
{
_init = false;
RunSplendid(SplendidCommand.Init);
@@ -330,26 +242,20 @@ namespace GHelper.Display
return _splendidPath;
}
private static int RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
{
var splendid = GetSplendidPath();
bool isVivo = AppConfig.IsVivoZenPro();
bool isVivo = AppConfig.IsVivoZenbook();
bool isSplenddid = File.Exists(splendid);
if (isSplenddid)
{
if (command == SplendidCommand.DimmingVisual && isVivo) command = SplendidCommand.DimmingVivo;
var result = ProcessHelper.RunCMD(splendid, (int)command + " " + param1 + " " + param2);
if (result.Contains("file not exist") || (result.Length == 0 && !isVivo)) return 1;
if (result.Contains("return code: -1")) return -1;
if (result.Contains("Visual is disabled"))
{
SetRegStatus(1);
return 1;
}
if (result.Contains("file not exist") || (result.Length == 0 && !isVivo)) return false;
}
return 0;
return true;
}
private static void BrightnessTimerTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
@@ -357,67 +263,36 @@ namespace GHelper.Display
brightnessTimer.Stop();
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6)) == 0) return;
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
if (_init)
{
_init = false;
RunSplendid(SplendidCommand.Init);
RunSplendid(SplendidCommand.Init, 4);
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6)) == 0) return;
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
}
// GammaRamp Fallback
SetGamma(_brightness);
}
public static void InitBrightness()
{
if (!AppConfig.IsOLED()) return;
if (!AppConfig.SaveDimming()) return;
int brightness = GetBrightness();
if (brightness >= 0) SetBrightness(brightness);
}
private static bool IsOnBattery()
{
return AppConfig.SaveDimming() && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online;
}
public static int GetBrightness()
{
return AppConfig.Get(IsOnBattery() ? "brightness_battery" : "brightness", 100);
}
public static int SetBrightness(int brightness = -1, int delta = 0)
{
if (!AppConfig.IsOLED()) return -1;
if (brightness < 0) brightness = GetBrightness();
if (brightness < 0) brightness = AppConfig.Get("brightness", 100);
_brightness = Math.Max(0, Math.Min(100, brightness + delta));
AppConfig.Set(IsOnBattery() ? "brightness_battery" : "brightness", _brightness);
AppConfig.Set("brightness", _brightness);
brightnessTimer.Start();
Program.settingsForm.VisualiseBrightness();
//if (brightness < 100) ResetGamut();
return _brightness;
}
public static void ResetGamut()
{
int defaultGamut = (int)GetDefaultGamut();
if (AppConfig.Get("gamut") != defaultGamut)
{
skipGamut = true;
AppConfig.Set("gamut", defaultGamut);
Program.settingsForm.VisualiseGamut();
skipGamut = false;
}
}
public static void SetGamma(int brightness = 100)

144
app/Extra.Designer.cs generated
View File

@@ -73,8 +73,8 @@ namespace GHelper
labelBacklightTitle = new Label();
panelBacklight = new Panel();
panelBacklightExtra = new Panel();
numericBacklightPluggedTime = new NumericUpDownWithUnit();
numericBacklightTime = new NumericUpDownWithUnit();
numericBacklightPluggedTime = new NumericUpDown();
numericBacklightTime = new NumericUpDown();
labelBacklightTimeout = new Label();
labelSpeed = new Label();
comboKeyboardSpeed = new RComboBox();
@@ -117,9 +117,8 @@ namespace GHelper
checkGpuApps = new CheckBox();
checkGPUFix = new CheckBox();
checkStatusLed = new CheckBox();
checkPerKeyRGB = new CheckBox();
panelPower = new Panel();
numericHibernateAfter = new NumericUpDownWithUnit();
numericHibernateAfter = new NumericUpDown();
labelHibernateAfter = new Label();
pictureHibernate = new PictureBox();
toolTip = new ToolTip(components);
@@ -139,10 +138,6 @@ namespace GHelper
buttonACPISend = new RButton();
pictureDebug = new PictureBox();
labelACPITitle = new Label();
checkBatteryBar = new CheckBox();
checkBatteryLid = new CheckBox();
checkBattery = new CheckBox();
checkBatteryLogo = new CheckBox();
panelServices.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureService).BeginInit();
panelBindingsHeader.SuspendLayout();
@@ -181,7 +176,7 @@ namespace GHelper
panelServices.Controls.Add(labelServices);
panelServices.Controls.Add(buttonServices);
panelServices.Dock = DockStyle.Top;
panelServices.Location = new Point(15, 1723);
panelServices.Location = new Point(15, 1638);
panelServices.Name = "panelServices";
panelServices.Size = new Size(949, 75);
panelServices.TabIndex = 5;
@@ -686,7 +681,7 @@ namespace GHelper
panelBacklight.Location = new Point(15, 514);
panelBacklight.Name = "panelBacklight";
panelBacklight.Padding = new Padding(0, 5, 0, 5);
panelBacklight.Size = new Size(949, 445);
panelBacklight.Size = new Size(949, 402);
panelBacklight.TabIndex = 2;
//
// panelBacklightExtra
@@ -699,7 +694,7 @@ namespace GHelper
panelBacklightExtra.Controls.Add(labelSpeed);
panelBacklightExtra.Controls.Add(comboKeyboardSpeed);
panelBacklightExtra.Dock = DockStyle.Top;
panelBacklightExtra.Location = new Point(0, 325);
panelBacklightExtra.Location = new Point(0, 282);
panelBacklightExtra.Margin = new Padding(4, 3, 4, 3);
panelBacklightExtra.Name = "panelBacklightExtra";
panelBacklightExtra.Padding = new Padding(0, 0, 0, 5);
@@ -715,7 +710,6 @@ namespace GHelper
numericBacklightPluggedTime.Name = "numericBacklightPluggedTime";
numericBacklightPluggedTime.Size = new Size(140, 39);
numericBacklightPluggedTime.TabIndex = 1;
numericBacklightPluggedTime.Unit = "sec";
//
// numericBacklightTime
//
@@ -726,7 +720,6 @@ namespace GHelper
numericBacklightTime.Name = "numericBacklightTime";
numericBacklightTime.Size = new Size(140, 39);
numericBacklightTime.TabIndex = 2;
numericBacklightTime.Unit = "sec";
//
// labelBacklightTimeout
//
@@ -767,7 +760,7 @@ namespace GHelper
//
panelXMG.Controls.Add(checkXMG);
panelXMG.Dock = DockStyle.Top;
panelXMG.Location = new Point(0, 265);
panelXMG.Location = new Point(0, 222);
panelXMG.Margin = new Padding(4, 3, 4, 3);
panelXMG.Name = "panelXMG";
panelXMG.Size = new Size(949, 60);
@@ -793,47 +786,37 @@ namespace GHelper
tableBacklight.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableBacklight.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableBacklight.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableBacklight.Controls.Add(labelBacklightKeyboard, 0, 0);
tableBacklight.Controls.Add(checkAwake, 0, 1);
tableBacklight.Controls.Add(checkBoot, 0, 2);
tableBacklight.Controls.Add(checkSleep, 0, 3);
tableBacklight.Controls.Add(checkShutdown, 0, 4);
tableBacklight.Controls.Add(checkBattery, 0, 5);
tableBacklight.Controls.Add(labelBacklightLogo, 1, 0);
tableBacklight.Controls.Add(checkAwakeLogo, 1, 1);
tableBacklight.Controls.Add(checkBootLogo, 1, 2);
tableBacklight.Controls.Add(checkSleepLogo, 1, 3);
tableBacklight.Controls.Add(checkShutdownLogo, 1, 4);
tableBacklight.Controls.Add(checkBatteryLogo, 1, 5);
tableBacklight.Controls.Add(labelBacklightBar, 2, 0);
tableBacklight.Controls.Add(checkAwakeBar, 2, 1);
tableBacklight.Controls.Add(checkBootBar, 2, 2);
tableBacklight.Controls.Add(checkSleepBar, 2, 3);
tableBacklight.Controls.Add(checkShutdownBar, 2, 4);
tableBacklight.Controls.Add(checkBatteryBar, 2, 5);
tableBacklight.Controls.Add(labelBacklightLid, 3, 0);
tableBacklight.Controls.Add(checkAwakeLid, 3, 1);
tableBacklight.Controls.Add(checkBootLid, 3, 2);
tableBacklight.Controls.Add(checkSleepLid, 3, 3);
tableBacklight.Controls.Add(checkShutdownLid, 3, 4);
tableBacklight.Controls.Add(checkBatteryLid, 3, 5);
tableBacklight.Dock = DockStyle.Top;
tableBacklight.Location = new Point(0, 5);
tableBacklight.Margin = new Padding(0);
tableBacklight.Name = "tableBacklight";
tableBacklight.RowCount = 6;
tableBacklight.RowCount = 5;
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.RowStyles.Add(new RowStyle());
tableBacklight.Size = new Size(949, 260);
tableBacklight.Size = new Size(949, 217);
tableBacklight.TabIndex = 44;
//
// labelBacklightKeyboard
@@ -1085,7 +1068,7 @@ namespace GHelper
panelSettingsHeader.Controls.Add(pictureSettings);
panelSettingsHeader.Controls.Add(labelSettings);
panelSettingsHeader.Dock = DockStyle.Top;
panelSettingsHeader.Location = new Point(15, 959);
panelSettingsHeader.Location = new Point(15, 916);
panelSettingsHeader.Name = "panelSettingsHeader";
panelSettingsHeader.Padding = new Padding(11, 5, 11, 5);
panelSettingsHeader.Size = new Size(949, 51);
@@ -1153,19 +1136,18 @@ namespace GHelper
panelSettings.Controls.Add(checkGpuApps);
panelSettings.Controls.Add(checkGPUFix);
panelSettings.Controls.Add(checkStatusLed);
panelSettings.Controls.Add(checkPerKeyRGB);
panelSettings.Dock = DockStyle.Top;
panelSettings.Location = new Point(15, 1197);
panelSettings.Location = new Point(15, 1154);
panelSettings.Name = "panelSettings";
panelSettings.Padding = new Padding(20, 5, 11, 5);
panelSettings.Size = new Size(949, 472);
panelSettings.Size = new Size(949, 430);
panelSettings.TabIndex = 3;
//
// checkAutoToggleClamshellMode
//
checkAutoToggleClamshellMode.AutoSize = true;
checkAutoToggleClamshellMode.Dock = DockStyle.Top;
checkAutoToggleClamshellMode.Location = new Point(20, 425);
checkAutoToggleClamshellMode.Location = new Point(20, 383);
checkAutoToggleClamshellMode.Name = "checkAutoToggleClamshellMode";
checkAutoToggleClamshellMode.Padding = new Padding(3);
checkAutoToggleClamshellMode.Size = new Size(918, 42);
@@ -1177,7 +1159,7 @@ namespace GHelper
//
checkBWIcon.AutoSize = true;
checkBWIcon.Dock = DockStyle.Top;
checkBWIcon.Location = new Point(20, 383);
checkBWIcon.Location = new Point(20, 341);
checkBWIcon.Margin = new Padding(4, 3, 4, 3);
checkBWIcon.Name = "checkBWIcon";
checkBWIcon.Padding = new Padding(3);
@@ -1190,7 +1172,7 @@ namespace GHelper
//
checkTopmost.AutoSize = true;
checkTopmost.Dock = DockStyle.Top;
checkTopmost.Location = new Point(20, 341);
checkTopmost.Location = new Point(20, 299);
checkTopmost.Margin = new Padding(4, 3, 4, 3);
checkTopmost.Name = "checkTopmost";
checkTopmost.Padding = new Padding(3);
@@ -1203,7 +1185,7 @@ namespace GHelper
//
checkNoOverdrive.AutoSize = true;
checkNoOverdrive.Dock = DockStyle.Top;
checkNoOverdrive.Location = new Point(20, 299);
checkNoOverdrive.Location = new Point(20, 257);
checkNoOverdrive.Margin = new Padding(4, 3, 4, 3);
checkNoOverdrive.Name = "checkNoOverdrive";
checkNoOverdrive.Padding = new Padding(3);
@@ -1216,7 +1198,7 @@ namespace GHelper
//
checkBootSound.AutoSize = true;
checkBootSound.Dock = DockStyle.Top;
checkBootSound.Location = new Point(20, 257);
checkBootSound.Location = new Point(20, 215);
checkBootSound.Margin = new Padding(4, 3, 4, 3);
checkBootSound.Name = "checkBootSound";
checkBootSound.Padding = new Padding(3);
@@ -1229,7 +1211,7 @@ namespace GHelper
//
checkUSBC.AutoSize = true;
checkUSBC.Dock = DockStyle.Top;
checkUSBC.Location = new Point(20, 215);
checkUSBC.Location = new Point(20, 173);
checkUSBC.Margin = new Padding(4, 3, 4, 3);
checkUSBC.Name = "checkUSBC";
checkUSBC.Padding = new Padding(3);
@@ -1242,7 +1224,7 @@ namespace GHelper
//
checkVariBright.AutoSize = true;
checkVariBright.Dock = DockStyle.Top;
checkVariBright.Location = new Point(20, 173);
checkVariBright.Location = new Point(20, 131);
checkVariBright.Margin = new Padding(4, 3, 4, 3);
checkVariBright.Name = "checkVariBright";
checkVariBright.Padding = new Padding(3);
@@ -1255,7 +1237,7 @@ namespace GHelper
//
checkGpuApps.AutoSize = true;
checkGpuApps.Dock = DockStyle.Top;
checkGpuApps.Location = new Point(20, 131);
checkGpuApps.Location = new Point(20, 89);
checkGpuApps.Margin = new Padding(4, 3, 4, 3);
checkGpuApps.Name = "checkGpuApps";
checkGpuApps.Padding = new Padding(3);
@@ -1268,7 +1250,7 @@ namespace GHelper
//
checkGPUFix.AutoSize = true;
checkGPUFix.Dock = DockStyle.Top;
checkGPUFix.Location = new Point(20, 89);
checkGPUFix.Location = new Point(20, 47);
checkGPUFix.Margin = new Padding(4, 3, 4, 3);
checkGPUFix.Name = "checkGPUFix";
checkGPUFix.Padding = new Padding(3);
@@ -1281,7 +1263,7 @@ namespace GHelper
//
checkStatusLed.AutoSize = true;
checkStatusLed.Dock = DockStyle.Top;
checkStatusLed.Location = new Point(20, 47);
checkStatusLed.Location = new Point(20, 5);
checkStatusLed.Margin = new Padding(4, 3, 4, 3);
checkStatusLed.Name = "checkStatusLed";
checkStatusLed.Padding = new Padding(3);
@@ -1291,27 +1273,13 @@ namespace GHelper
checkStatusLed.UseVisualStyleBackColor = true;
checkStatusLed.Visible = false;
//
// checkPerKeyRGB
//
checkPerKeyRGB.AutoSize = true;
checkPerKeyRGB.Dock = DockStyle.Top;
checkPerKeyRGB.Location = new Point(20, 5);
checkPerKeyRGB.Margin = new Padding(4, 3, 4, 3);
checkPerKeyRGB.Name = "checkPerKeyRGB";
checkPerKeyRGB.Padding = new Padding(3);
checkPerKeyRGB.Size = new Size(918, 42);
checkPerKeyRGB.TabIndex = 13;
checkPerKeyRGB.Text = "Per-Key RGB Keyboard";
checkPerKeyRGB.UseVisualStyleBackColor = true;
checkPerKeyRGB.Visible = false;
//
// panelPower
//
panelPower.Controls.Add(numericHibernateAfter);
panelPower.Controls.Add(labelHibernateAfter);
panelPower.Controls.Add(pictureHibernate);
panelPower.Dock = DockStyle.Top;
panelPower.Location = new Point(15, 1669);
panelPower.Location = new Point(15, 1584);
panelPower.Name = "panelPower";
panelPower.Size = new Size(949, 54);
panelPower.TabIndex = 4;
@@ -1325,7 +1293,6 @@ 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
@@ -1355,7 +1322,7 @@ namespace GHelper
panelAPU.Controls.Add(pictureAPUMem);
panelAPU.Controls.Add(labelAPUMem);
panelAPU.Dock = DockStyle.Top;
panelAPU.Location = new Point(15, 1140);
panelAPU.Location = new Point(15, 1097);
panelAPU.Name = "panelAPU";
panelAPU.Padding = new Padding(11, 5, 11, 0);
panelAPU.Size = new Size(949, 57);
@@ -1409,7 +1376,7 @@ namespace GHelper
panelCores.Controls.Add(pictureCores);
panelCores.Controls.Add(label1);
panelCores.Dock = DockStyle.Top;
panelCores.Location = new Point(15, 1079);
panelCores.Location = new Point(15, 1036);
panelCores.Name = "panelCores";
panelCores.Padding = new Padding(11, 5, 11, 0);
panelCores.Size = new Size(949, 61);
@@ -1494,7 +1461,7 @@ namespace GHelper
panelACPI.Controls.Add(pictureDebug);
panelACPI.Controls.Add(labelACPITitle);
panelACPI.Dock = DockStyle.Top;
panelACPI.Location = new Point(15, 1010);
panelACPI.Location = new Point(15, 967);
panelACPI.Name = "panelACPI";
panelACPI.Padding = new Padding(11, 5, 11, 0);
panelACPI.Size = new Size(949, 69);
@@ -1558,54 +1525,6 @@ namespace GHelper
labelACPITitle.TabIndex = 0;
labelACPITitle.Text = "ACPI DEVS Test";
//
// checkBatteryBar
//
checkBatteryBar.Dock = DockStyle.Fill;
checkBatteryBar.Location = new Point(478, 217);
checkBatteryBar.Margin = new Padding(4, 0, 4, 0);
checkBatteryBar.Name = "checkBatteryBar";
checkBatteryBar.Padding = new Padding(16, 3, 7, 3);
checkBatteryBar.Size = new Size(229, 43);
checkBatteryBar.TabIndex = 22;
checkBatteryBar.Text = "Battery";
checkBatteryBar.UseVisualStyleBackColor = true;
//
// checkBatteryLid
//
checkBatteryLid.Dock = DockStyle.Fill;
checkBatteryLid.Location = new Point(715, 217);
checkBatteryLid.Margin = new Padding(4, 0, 4, 0);
checkBatteryLid.Name = "checkBatteryLid";
checkBatteryLid.Padding = new Padding(16, 3, 7, 3);
checkBatteryLid.Size = new Size(230, 43);
checkBatteryLid.TabIndex = 23;
checkBatteryLid.Text = "Battery";
checkBatteryLid.UseVisualStyleBackColor = true;
//
// checkBattery
//
checkBattery.Dock = DockStyle.Fill;
checkBattery.Location = new Point(4, 217);
checkBattery.Margin = new Padding(4, 0, 4, 0);
checkBattery.Name = "checkBattery";
checkBattery.Padding = new Padding(16, 3, 7, 3);
checkBattery.Size = new Size(229, 43);
checkBattery.TabIndex = 24;
checkBattery.Text = "Battery";
checkBattery.UseVisualStyleBackColor = true;
//
// checkBatteryLogo
//
checkBatteryLogo.Dock = DockStyle.Fill;
checkBatteryLogo.Location = new Point(241, 217);
checkBatteryLogo.Margin = new Padding(4, 0, 4, 0);
checkBatteryLogo.Name = "checkBatteryLogo";
checkBatteryLogo.Padding = new Padding(16, 3, 7, 3);
checkBatteryLogo.Size = new Size(229, 43);
checkBatteryLogo.TabIndex = 25;
checkBatteryLogo.Text = "Battery";
checkBatteryLogo.UseVisualStyleBackColor = true;
//
// Extra
//
AutoScaleDimensions = new SizeF(192F, 192F);
@@ -1717,8 +1636,8 @@ namespace GHelper
private Panel panelBacklightHeader;
private Panel panelBacklight;
private Panel panelBacklightExtra;
private NumericUpDownWithUnit numericBacklightPluggedTime;
private NumericUpDownWithUnit numericBacklightTime;
private NumericUpDown numericBacklightPluggedTime;
private NumericUpDown numericBacklightTime;
private Label labelBacklightTimeout;
private Label labelSpeed;
private RComboBox comboKeyboardSpeed;
@@ -1767,7 +1686,7 @@ namespace GHelper
private Panel panelPower;
private PictureBox pictureHibernate;
private Label labelHibernateAfter;
private NumericUpDownWithUnit numericHibernateAfter;
private NumericUpDown numericHibernateAfter;
private CheckBox checkGPUFix;
private ToolTip toolTip;
private CheckBox checkBootSound;
@@ -1790,10 +1709,5 @@ namespace GHelper
private Label labelACPITitle;
private CheckBox checkBWIcon;
private CheckBox checkStatusLed;
private CheckBox checkPerKeyRGB;
private CheckBox checkBatteryLogo;
private CheckBox checkBattery;
private CheckBox checkBatteryLid;
private CheckBox checkBatteryBar;
}
}

View File

@@ -36,7 +36,6 @@ namespace GHelper
{"brightness_down", Properties.Strings.BrightnessDown},
{"brightness_up", Properties.Strings.BrightnessUp},
{"visual", Properties.Strings.VisualMode},
{"touchscreen", Properties.Strings.ToggleTouchscreen },
{"ghelper", Properties.Strings.OpenGHelper},
{"custom", Properties.Strings.Custom}
};
@@ -76,8 +75,7 @@ namespace GHelper
customActions.Remove("fnlock");
break;
case "fnv":
customActions[""] = Properties.Strings.VisualMode;
customActions.Remove("visual");
customActions[""] = EMPTY;
break;
case "fne":
customActions[""] = "Calculator";
@@ -204,7 +202,7 @@ namespace GHelper
labelFNF4.Visible = comboFNF4.Visible = textFNF4.Visible = false;
}
if (AppConfig.MediaKeys())
if (AppConfig.NoAura())
{
labelFNF4.Visible = comboFNF4.Visible = textFNF4.Visible = false;
}
@@ -225,7 +223,10 @@ namespace GHelper
checkUSBC.Visible = false;
}
checkNoOverdrive.Visible = Program.acpi.IsOverdriveSupported();
if (AppConfig.IsOLED())
{
checkNoOverdrive.Visible = false;
}
// Change text and hide irrelevant options on the ROG Ally,
// which is a bit of a special case piece of hardware.
@@ -255,6 +256,7 @@ namespace GHelper
checkGpuApps.Visible = false;
checkUSBC.Visible = false;
checkAutoToggleClamshellMode.Visible = false;
checkNoOverdrive.Visible = false;
int apuMem = Program.acpi.GetAPUMem();
if (apuMem >= 0)
@@ -299,64 +301,55 @@ namespace GHelper
// Keyboard
checkAwake.Checked = AppConfig.IsNotFalse("keyboard_awake");
checkBattery.Checked = AppConfig.IsOnBattery("keyboard_awake");
checkBoot.Checked = AppConfig.IsNotFalse("keyboard_boot");
checkSleep.Checked = AppConfig.IsNotFalse("keyboard_sleep");
checkShutdown.Checked = AppConfig.IsNotFalse("keyboard_shutdown");
// Lightbar
checkAwakeBar.Checked = AppConfig.IsNotFalse("keyboard_awake_bar");
checkBatteryBar.Checked = AppConfig.IsOnBattery("keyboard_awake_bar");
checkBootBar.Checked = AppConfig.IsNotFalse("keyboard_boot_bar");
checkSleepBar.Checked = AppConfig.IsNotFalse("keyboard_sleep_bar");
checkShutdownBar.Checked = AppConfig.IsNotFalse("keyboard_shutdown_bar");
// Lid
checkAwakeLid.Checked = AppConfig.IsNotFalse("keyboard_awake_lid");
checkBatteryLid.Checked = AppConfig.IsOnBattery("keyboard_awake_lid");
checkBootLid.Checked = AppConfig.IsNotFalse("keyboard_boot_lid");
checkSleepLid.Checked = AppConfig.IsNotFalse("keyboard_sleep_lid");
checkShutdownLid.Checked = AppConfig.IsNotFalse("keyboard_shutdown_lid");
// Logo
checkAwakeLogo.Checked = AppConfig.IsNotFalse("keyboard_awake_logo");
checkBatteryLogo.Checked = AppConfig.IsOnBattery("keyboard_awake_logo");
checkBootLogo.Checked = AppConfig.IsNotFalse("keyboard_boot_logo");
checkSleepLogo.Checked = AppConfig.IsNotFalse("keyboard_sleep_logo");
checkShutdownLogo.Checked = AppConfig.IsNotFalse("keyboard_shutdown_logo");
checkAwake.CheckedChanged += CheckPower_CheckedChanged;
checkBattery.CheckedChanged += CheckPower_CheckedChanged;
checkBoot.CheckedChanged += CheckPower_CheckedChanged;
checkSleep.CheckedChanged += CheckPower_CheckedChanged;
checkShutdown.CheckedChanged += CheckPower_CheckedChanged;
checkAwakeBar.CheckedChanged += CheckPower_CheckedChanged;
checkBatteryBar.CheckedChanged += CheckPower_CheckedChanged;
checkBootBar.CheckedChanged += CheckPower_CheckedChanged;
checkSleepBar.CheckedChanged += CheckPower_CheckedChanged;
checkShutdownBar.CheckedChanged += CheckPower_CheckedChanged;
checkAwakeLid.CheckedChanged += CheckPower_CheckedChanged;
checkBatteryLid.CheckedChanged += CheckPower_CheckedChanged;
checkBootLid.CheckedChanged += CheckPower_CheckedChanged;
checkSleepLid.CheckedChanged += CheckPower_CheckedChanged;
checkShutdownLid.CheckedChanged += CheckPower_CheckedChanged;
checkAwakeLogo.CheckedChanged += CheckPower_CheckedChanged;
checkBatteryLogo.CheckedChanged += CheckPower_CheckedChanged;
checkBootLogo.CheckedChanged += CheckPower_CheckedChanged;
checkSleepLogo.CheckedChanged += CheckPower_CheckedChanged;
checkShutdownLogo.CheckedChanged += CheckPower_CheckedChanged;
if (!AppConfig.IsBacklightZones() || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
if ((!AppConfig.IsStrix() && !AppConfig.IsZ13()) || AppConfig.IsStrixLimitedRGB() || AppConfig.IsARCNM())
{
if (!AppConfig.IsStrixLimitedRGB())
{
labelBacklightBar.Visible = false;
checkAwakeBar.Visible = false;
checkBatteryBar.Visible = false;
checkBootBar.Visible = false;
checkSleepBar.Visible = false;
checkShutdownBar.Visible = false;
@@ -364,23 +357,20 @@ namespace GHelper
labelBacklightLid.Visible = false;
checkAwakeLid.Visible = false;
checkBatteryLid.Visible = false;
checkBootLid.Visible = false;
checkSleepLid.Visible = false;
checkShutdownLid.Visible = false;
labelBacklightLogo.Visible = false;
checkAwakeLogo.Visible = false;
checkBatteryLogo.Visible = false;
checkBootLogo.Visible = false;
checkSleepLogo.Visible = false;
checkShutdownLogo.Visible = false;
}
if (!AppConfig.IsBacklightZones())
if (!AppConfig.IsStrix() && !AppConfig.IsZ13())
{
labelBacklightKeyboard.Visible = false;
checkBattery.Visible = false;
}
//checkAutoToggleClamshellMode.Visible = clamshellControl.IsExternalDisplayConnected();
@@ -412,10 +402,7 @@ namespace GHelper
checkGpuApps.Checked = AppConfig.Is("kill_gpu_apps");
checkGpuApps.CheckedChanged += CheckGpuApps_CheckedChanged;
int bootSound = Program.acpi.DeviceGet(AsusACPI.BootSound);
if (bootSound < 0 || bootSound > UInt16.MaxValue) bootSound = AppConfig.Get("boot_sound", 0);
checkBootSound.Checked = (bootSound == 1);
checkBootSound.Checked = (Program.acpi.DeviceGet(AsusACPI.BootSound) == 1);
checkBootSound.CheckedChanged += CheckBootSound_CheckedChanged;
var statusLed = Program.acpi.DeviceGet(AsusACPI.StatusLed);
@@ -436,10 +423,6 @@ namespace GHelper
checkGPUFix.Checked = AppConfig.IsGPUFix();
checkGPUFix.CheckedChanged += CheckGPUFix_CheckedChanged;
checkPerKeyRGB.Visible = AppConfig.IsPossible4ZoneRGB();
checkPerKeyRGB.Checked = AppConfig.Is("per_key_rgb");
checkPerKeyRGB.CheckedChanged += CheckPerKeyRGB_CheckedChanged;
toolTip.SetToolTip(checkAutoToggleClamshellMode, "Disable sleep on lid close when plugged in and external monitor is connected");
InitCores();
@@ -451,11 +434,6 @@ namespace GHelper
}
private void CheckPerKeyRGB_CheckedChanged(object? sender, EventArgs e)
{
AppConfig.Set("per_key_rgb", (checkPerKeyRGB.Checked ? 1 : 0));
}
private void CheckLEDStatus_CheckedChanged(object? sender, EventArgs e)
{
Program.acpi.DeviceSet(AsusACPI.StatusLed, (checkStatusLed.Checked ? 7 : 0), "StatusLED");
@@ -505,10 +483,7 @@ namespace GHelper
return;
}
if (eCoresMax == 0) eCoresMax = 8;
if (pCoresMax == 0) pCoresMax = 6;
eCoresMax = Math.Max(4, eCoresMax);
eCoresMax = Math.Max(8, eCoresMax);
pCoresMax = Math.Max(6, pCoresMax);
panelCores.Visible = true;
@@ -565,9 +540,7 @@ namespace GHelper
private void CheckBootSound_CheckedChanged(object? sender, EventArgs e)
{
int bootSound = checkBootSound.Checked ? 1 : 0;
Program.acpi.DeviceSet(AsusACPI.BootSound, bootSound, "BootSound");
AppConfig.Set("boot_sound", bootSound);
Program.acpi.DeviceSet(AsusACPI.BootSound, (checkBootSound.Checked ? 1 : 0), "BootSound");
}
private void CheckGPUFix_CheckedChanged(object? sender, EventArgs e)
@@ -713,10 +686,7 @@ namespace GHelper
{
using (var amdControl = new AmdGpuControl())
{
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}");
amdControl.SetVariBright(checkVariBright.Checked ? 1 : 0);
ProcessHelper.KillByName("RadeonSoftware");
}
}
@@ -784,14 +754,6 @@ namespace GHelper
AppConfig.Set("keyboard_sleep_logo", (checkSleepLogo.Checked ? 1 : 0));
AppConfig.Set("keyboard_shutdown_logo", (checkShutdownLogo.Checked ? 1 : 0));
if (AppConfig.IsBacklightZones())
{
AppConfig.Set("keyboard_awake_bat", (checkBattery.Checked ? 1 : 0));
AppConfig.Set("keyboard_awake_bar_bat", (checkBatteryBar.Checked ? 1 : 0));
AppConfig.Set("keyboard_awake_lid_bat", (checkBatteryLid.Checked ? 1 : 0));
AppConfig.Set("keyboard_awake_logo_bat", (checkBatteryLogo.Checked ? 1 : 0));
}
Aura.ApplyPower();
}

144
app/Fans.Designer.cs generated
View File

@@ -119,6 +119,10 @@ namespace GHelper
picturePowerMode = new PictureBox();
labelPowerModeTitle = new Label();
panelGPU = new Panel();
panelGPUPower = new Panel();
labelGPUPower = new Label();
labelGPUPowerTitle = new Label();
trackGPUPower = new TrackBar();
panelGPUTemp = new Panel();
labelGPUTemp = new Label();
labelGPUTempTitle = new Label();
@@ -127,10 +131,6 @@ namespace GHelper
labelGPUBoost = new Label();
labelGPUBoostTitle = new Label();
trackGPUBoost = new TrackBar();
panelGPUPower = new Panel();
labelGPUPower = new Label();
labelGPUPowerTitle = new Label();
trackGPUPower = new TrackBar();
panelGPUMemory = new Panel();
labelGPUMemory = new Label();
labelGPUMemoryTitle = new Label();
@@ -194,12 +194,12 @@ namespace GHelper
panelPowerModeTItle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit();
panelGPU.SuspendLayout();
panelGPUPower.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).BeginInit();
panelGPUTemp.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
panelGPUBoost.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUBoost).BeginInit();
panelGPUPower.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).BeginInit();
panelGPUMemory.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUMemory).BeginInit();
panelGPUCore.SuspendLayout();
@@ -223,10 +223,11 @@ namespace GHelper
panelFans.Dock = DockStyle.Fill;
panelFans.Location = new Point(530, 0);
panelFans.Margin = new Padding(0);
//panelFans.MaximumSize = new Size(816, 0);
panelFans.MinimumSize = new Size(816, 0);
panelFans.Name = "panelFans";
panelFans.Padding = new Padding(0, 0, 10, 0);
panelFans.Size = new Size(820, 2119);
panelFans.Size = new Size(816, 2119);
panelFans.TabIndex = 12;
//
// labelTip
@@ -260,7 +261,7 @@ namespace GHelper
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
tableFanCharts.Size = new Size(810, 1937);
tableFanCharts.Size = new Size(806, 1937);
tableFanCharts.TabIndex = 36;
//
// chartGPU
@@ -271,7 +272,7 @@ namespace GHelper
chartGPU.Location = new Point(12, 493);
chartGPU.Margin = new Padding(2, 10, 2, 10);
chartGPU.Name = "chartGPU";
chartGPU.Size = new Size(786, 463);
chartGPU.Size = new Size(782, 463);
chartGPU.TabIndex = 17;
chartGPU.Text = "chartGPU";
title1.Name = "Title1";
@@ -285,7 +286,7 @@ namespace GHelper
chartCPU.Location = new Point(12, 10);
chartCPU.Margin = new Padding(2, 10, 2, 10);
chartCPU.Name = "chartCPU";
chartCPU.Size = new Size(786, 463);
chartCPU.Size = new Size(782, 463);
chartCPU.TabIndex = 14;
chartCPU.Text = "chartCPU";
title2.Name = "Title1";
@@ -299,7 +300,7 @@ namespace GHelper
chartXGM.Location = new Point(12, 1459);
chartXGM.Margin = new Padding(2, 10, 2, 10);
chartXGM.Name = "chartXGM";
chartXGM.Size = new Size(786, 463);
chartXGM.Size = new Size(782, 463);
chartXGM.TabIndex = 14;
chartXGM.Text = "chartXGM";
title3.Name = "Title4";
@@ -314,7 +315,7 @@ namespace GHelper
chartMid.Location = new Point(12, 976);
chartMid.Margin = new Padding(2, 10, 2, 10);
chartMid.Name = "chartMid";
chartMid.Size = new Size(786, 463);
chartMid.Size = new Size(782, 463);
chartMid.TabIndex = 14;
chartMid.Text = "chartMid";
title4.Name = "Title3";
@@ -333,7 +334,7 @@ namespace GHelper
panelTitleFans.Location = new Point(0, 0);
panelTitleFans.Margin = new Padding(4);
panelTitleFans.Name = "panelTitleFans";
panelTitleFans.Size = new Size(810, 66);
panelTitleFans.Size = new Size(806, 66);
panelTitleFans.TabIndex = 42;
//
// buttonRename
@@ -345,7 +346,7 @@ namespace GHelper
buttonRename.BorderRadius = 2;
buttonRename.FlatStyle = FlatStyle.Flat;
buttonRename.Image = Properties.Resources.icons8_edit_32;
buttonRename.Location = new Point(380, 10);
buttonRename.Location = new Point(376, 10);
buttonRename.Margin = new Padding(4, 2, 4, 2);
buttonRename.Name = "buttonRename";
buttonRename.Secondary = true;
@@ -362,7 +363,7 @@ namespace GHelper
buttonRemove.BorderRadius = 2;
buttonRemove.FlatStyle = FlatStyle.Flat;
buttonRemove.Image = Properties.Resources.icons8_remove_64;
buttonRemove.Location = new Point(326, 10);
buttonRemove.Location = new Point(322, 10);
buttonRemove.Margin = new Padding(4, 2, 4, 2);
buttonRemove.Name = "buttonRemove";
buttonRemove.Secondary = true;
@@ -379,7 +380,7 @@ namespace GHelper
buttonAdd.BorderRadius = 2;
buttonAdd.FlatStyle = FlatStyle.Flat;
buttonAdd.Image = Properties.Resources.icons8_add_64;
buttonAdd.Location = new Point(748, 10);
buttonAdd.Location = new Point(744, 10);
buttonAdd.Margin = new Padding(4, 2, 4, 2);
buttonAdd.Name = "buttonAdd";
buttonAdd.Secondary = true;
@@ -394,7 +395,7 @@ namespace GHelper
comboModes.ButtonColor = Color.FromArgb(255, 255, 255);
comboModes.FlatStyle = FlatStyle.Flat;
comboModes.FormattingEnabled = true;
comboModes.Location = new Point(440, 14);
comboModes.Location = new Point(436, 14);
comboModes.Margin = new Padding(0);
comboModes.Name = "comboModes";
comboModes.Size = new Size(302, 40);
@@ -433,7 +434,7 @@ namespace GHelper
panelApplyFans.Location = new Point(0, 2003);
panelApplyFans.Margin = new Padding(4);
panelApplyFans.Name = "panelApplyFans";
panelApplyFans.Size = new Size(810, 116);
panelApplyFans.Size = new Size(806, 116);
panelApplyFans.TabIndex = 43;
//
// buttonCalibrate
@@ -469,7 +470,7 @@ namespace GHelper
checkApplyFans.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
checkApplyFans.AutoSize = true;
checkApplyFans.BackColor = SystemColors.ControlLight;
checkApplyFans.Location = new Point(454, 42);
checkApplyFans.Location = new Point(450, 42);
checkApplyFans.Margin = new Padding(0);
checkApplyFans.Name = "checkApplyFans";
checkApplyFans.Padding = new Padding(16, 6, 16, 6);
@@ -1256,6 +1257,55 @@ namespace GHelper
panelGPU.TabIndex = 44;
panelGPU.Visible = false;
//
// panelGPUPower
//
panelGPUPower.AutoSize = true;
panelGPUPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelGPUPower.Controls.Add(labelGPUPower);
panelGPUPower.Controls.Add(labelGPUPowerTitle);
panelGPUPower.Controls.Add(trackGPUPower);
panelGPUPower.Dock = DockStyle.Top;
panelGPUPower.Location = new Point(0, 432);
panelGPUPower.Margin = new Padding(4);
panelGPUPower.MaximumSize = new Size(0, 124);
panelGPUPower.Name = "panelGPUPower";
panelGPUPower.Size = new Size(520, 124);
panelGPUPower.TabIndex = 49;
//
// labelGPUPower
//
labelGPUPower.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGPUPower.Location = new Point(374, 14);
labelGPUPower.Margin = new Padding(4, 0, 4, 0);
labelGPUPower.Name = "labelGPUPower";
labelGPUPower.Size = new Size(124, 32);
labelGPUPower.TabIndex = 44;
labelGPUPower.Text = "105W";
labelGPUPower.TextAlign = ContentAlignment.TopRight;
//
// labelGPUPowerTitle
//
labelGPUPowerTitle.AutoSize = true;
labelGPUPowerTitle.Location = new Point(10, 14);
labelGPUPowerTitle.Margin = new Padding(4, 0, 4, 0);
labelGPUPowerTitle.Name = "labelGPUPowerTitle";
labelGPUPowerTitle.Size = new Size(130, 32);
labelGPUPowerTitle.TabIndex = 43;
labelGPUPowerTitle.Text = "GPU Power";
//
// trackGPUPower
//
trackGPUPower.Location = new Point(6, 48);
trackGPUPower.Margin = new Padding(4, 2, 4, 2);
trackGPUPower.Maximum = 25;
trackGPUPower.Minimum = 5;
trackGPUPower.Name = "trackGPUPower";
trackGPUPower.Size = new Size(496, 90);
trackGPUPower.TabIndex = 42;
trackGPUPower.TickFrequency = 5;
trackGPUPower.TickStyle = TickStyle.TopLeft;
trackGPUPower.Value = 25;
//
// panelGPUTemp
//
panelGPUTemp.AutoSize = true;
@@ -1354,55 +1404,6 @@ namespace GHelper
trackGPUBoost.TickStyle = TickStyle.TopLeft;
trackGPUBoost.Value = 25;
//
// panelGPUPower
//
panelGPUPower.AutoSize = true;
panelGPUPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelGPUPower.Controls.Add(labelGPUPower);
panelGPUPower.Controls.Add(labelGPUPowerTitle);
panelGPUPower.Controls.Add(trackGPUPower);
panelGPUPower.Dock = DockStyle.Top;
panelGPUPower.Location = new Point(0, 432);
panelGPUPower.Margin = new Padding(4);
panelGPUPower.MaximumSize = new Size(0, 124);
panelGPUPower.Name = "panelGPUPower";
panelGPUPower.Size = new Size(520, 124);
panelGPUPower.TabIndex = 49;
//
// labelGPUPower
//
labelGPUPower.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGPUPower.Location = new Point(374, 14);
labelGPUPower.Margin = new Padding(4, 0, 4, 0);
labelGPUPower.Name = "labelGPUPower";
labelGPUPower.Size = new Size(124, 32);
labelGPUPower.TabIndex = 44;
labelGPUPower.Text = "105W";
labelGPUPower.TextAlign = ContentAlignment.TopRight;
//
// labelGPUPowerTitle
//
labelGPUPowerTitle.AutoSize = true;
labelGPUPowerTitle.Location = new Point(10, 14);
labelGPUPowerTitle.Margin = new Padding(4, 0, 4, 0);
labelGPUPowerTitle.Name = "labelGPUPowerTitle";
labelGPUPowerTitle.Size = new Size(130, 32);
labelGPUPowerTitle.TabIndex = 43;
labelGPUPowerTitle.Text = "GPU Power";
//
// trackGPUPower
//
trackGPUPower.Location = new Point(6, 48);
trackGPUPower.Margin = new Padding(4, 2, 4, 2);
trackGPUPower.Maximum = 25;
trackGPUPower.Minimum = 5;
trackGPUPower.Name = "trackGPUPower";
trackGPUPower.Size = new Size(496, 90);
trackGPUPower.TabIndex = 42;
trackGPUPower.TickFrequency = 5;
trackGPUPower.TickStyle = TickStyle.TopLeft;
trackGPUPower.Value = 25;
//
// panelGPUMemory
//
panelGPUMemory.AutoSize = true;
@@ -1684,6 +1685,7 @@ namespace GHelper
Controls.Add(panelFans);
Controls.Add(panelSliders);
Margin = new Padding(4, 2, 4, 2);
MaximizeBox = true;
MinimizeBox = false;
MinimumSize = new Size(26, 1100);
Name = "Fans";
@@ -1754,15 +1756,15 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit();
panelGPU.ResumeLayout(false);
panelGPU.PerformLayout();
panelGPUPower.ResumeLayout(false);
panelGPUPower.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).EndInit();
panelGPUTemp.ResumeLayout(false);
panelGPUTemp.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUTemp).EndInit();
panelGPUBoost.ResumeLayout(false);
panelGPUBoost.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUBoost).EndInit();
panelGPUPower.ResumeLayout(false);
panelGPUPower.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).EndInit();
panelGPUMemory.ResumeLayout(false);
panelGPUMemory.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUMemory).EndInit();

View File

@@ -428,7 +428,6 @@ namespace GHelper
labelUV.Text = trackUV.Value.ToString();
labelUViGPU.Text = trackUViGPU.Value.ToString();
labelTemp.Text = (trackTemp.Value < RyzenControl.MaxTemp) ? trackTemp.Value.ToString() + "°C" : "Default";
}
@@ -675,7 +674,7 @@ namespace GHelper
private void trackGPUClockLimit_Scroll(object? sender, EventArgs e)
{
int maxClock = (int)Math.Round((float)trackGPUClockLimit.Value / 5) * 5;
int maxClock = (int)Math.Round((float)trackGPUClockLimit.Value / 50) * 50;
trackGPUClockLimit.Value = maxClock;
AppConfig.SetMode("gpu_clock_limit", maxClock);
@@ -1143,7 +1142,7 @@ namespace GHelper
trackTemp.Value = RyzenControl.MaxTemp;
AdvancedScroll();
AppConfig.RemoveMode("cpu_temp");
AppConfig.SetMode("cpu_temp", -1);
modeControl.ResetPerformanceMode();
@@ -1161,11 +1160,8 @@ namespace GHelper
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
//AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
//AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.RemoveMode("gpu_boost");
AppConfig.RemoveMode("gpu_temp");
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.RemoveMode("gpu_power");
AppConfig.RemoveMode("gpu_clock_limit");

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<TargetFramework>net7.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>True</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.196</AssemblyVersion>
<AssemblyVersion>0.168</AssemblyVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -62,15 +62,27 @@
<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="8.0.0" />
<PackageReference Include="TaskScheduler" Version="2.11.0" />
<PackageReference Include="WinForms.DataVisualization" Version="1.9.2" />
<PackageReference Include="System.Management" Version="7.0.1" />
<PackageReference Include="TaskScheduler" Version="2.10.1" />
<PackageReference Include="WinForms.DataVisualization" Version="1.8.0" />
</ItemGroup>
<ItemGroup>
<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>
@@ -128,4 +140,4 @@
</None>
</ItemGroup>
</Project>
</Project>

View File

@@ -119,18 +119,6 @@ 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,6 +25,8 @@ 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);
@@ -81,6 +83,7 @@ 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;
}
@@ -93,17 +96,10 @@ namespace GHelper.Gpu
if (AppConfig.NoAutoUltimate())
{
Program.acpi.SetGPUEco(0);
Thread.Sleep(500);
int eco = Program.acpi.DeviceGet(AsusACPI.GPUEco);
Logger.WriteLine("Eco flag : " + eco);
if (eco == 1)
{
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;
}
@@ -230,7 +226,6 @@ 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);
@@ -327,6 +322,7 @@ namespace GHelper.Gpu
Program.acpi.DeviceSet(AsusACPI.GPUXG, 1, "GPU XGM");
InitXGM();
XGM.Light(AppConfig.Is("xmg_light"));
await Task.Delay(TimeSpan.FromSeconds(15));

View File

@@ -18,7 +18,7 @@ public class NvidiaGpuControl : IGpuControl
public static int MinCoreOffset = AppConfig.Get("min_gpu_core", -250);
public static int MinMemoryOffset = AppConfig.Get("min_gpu_memory", -500);
public static int MinClockLimit = AppConfig.Get("min_gpu_clock", 400);
public const int MinClockLimit = 400;
public const int MaxClockLimit = 3000;
private static PhysicalGPU? _internalGpu;

View File

@@ -32,7 +32,7 @@ public static class NvidiaSmi
public static int GetDefaultMaxGPUPower()
{
if (AppConfig.ContainsModel("GU605") || AppConfig.ContainsModel("GA605")) return 125;
if (AppConfig.ContainsModel("GU605")) return 125;
if (AppConfig.ContainsModel("GA403")) return 90;
if (AppConfig.ContainsModel("FA607")) return 140;
else return 175;
@@ -41,7 +41,7 @@ public static class NvidiaSmi
public static int GetMaxGPUPower()
{
string output = RunNvidiaSmiCommand("--query-gpu=power.max_limit --format csv,noheader,nounits");
output = output.Trim().Trim('\n', '\r').Replace(".00","").Replace(",00", "");
output = output.Trim().Trim('\n', '\r');
if (float.TryParse(output, out float floatValue))
{

View File

@@ -94,7 +94,7 @@ namespace GHelper
private void CheckController_CheckedChanged(object? sender, EventArgs e)
{
AppConfig.Set("controller_disabled", checkController.Checked ? 1 : 0);
AllyControl.DisableXBoxController(checkController.Checked);
AllyControl.ApplyXBoxStatus();
}
private void ComboBinding(RComboBox combo)

View File

@@ -24,7 +24,7 @@ public static class HardwareControl
public static decimal? fullCapacity;
public static decimal? chargeCapacity;
public static string? batteryCharge;
public static string? cpuFan;
public static string? gpuFan;
@@ -34,20 +34,6 @@ public static class HardwareControl
static long lastUpdate;
static bool _chargeWatt = AppConfig.Is("charge_watt");
public static bool chargeWatt
{
get
{
return _chargeWatt;
}
set
{
AppConfig.Set("charge_watt", value ? 1 : 0);
_chargeWatt = value;
}
}
private static int GetGpuUse()
{
try
@@ -240,16 +226,8 @@ public static class HardwareControl
if (fullCapacity > 0 && chargeCapacity > 0)
{
batteryCapacity = Math.Min(100, (decimal)chargeCapacity / (decimal)fullCapacity * 100);
batteryCapacity = Math.Min(100, ((decimal)chargeCapacity / (decimal)fullCapacity) * 100);
if (batteryCapacity > 99) BatteryControl.UnSetBatteryLimitFull();
if (chargeWatt)
{
batteryCharge = Math.Round((decimal)chargeCapacity / 1000, 1).ToString() + "Wh";
}
else
{
batteryCharge = Math.Round(batteryCapacity, 1) + "%";
}
}

View File

@@ -15,29 +15,22 @@ namespace GHelper.Helpers
public bool IsExternalDisplayConnected()
{
try
var devices = ScreenInterrogatory.GetAllDevices().ToArray();
string internalName = AppConfig.GetString("internal_display");
foreach (var device in devices)
{
var devicesList = ScreenInterrogatory.GetAllDevices();
var devices = devicesList.ToArray();
string internalName = AppConfig.GetString("internal_display");
foreach (var device in devices)
if (device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL &&
device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED
&& device.monitorFriendlyDeviceName != internalName)
{
if (device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL &&
device.outputTechnology != ScreenInterrogatory.DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED
&& device.monitorFriendlyDeviceName != internalName)
{
Logger.WriteLine("Found external screen: " + device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString());
//Already found one, we do not have to check whether there are more
return true;
}
Logger.WriteLine("Found external screen: " + device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString());
//Already found one, we do not have to check whether there are more
return true;
}
} catch (Exception ex)
{
Logger.WriteLine(ex.ToString());
}
return false;
@@ -108,9 +101,6 @@ namespace GHelper.Helpers
if (Program.settingsForm.Visible)
Program.screenControl.InitScreen();
if (AppConfig.IsForceMiniled())
Program.screenControl.InitMiniled();
}
private static int CheckAndSaveLidAction()

View File

@@ -1,26 +0,0 @@
using Microsoft.Win32;
namespace GHelper.Helpers
{
public static class DynamicLightingHelper
{
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");
if (registryValueObject == null) return true;
return (int)registryValueObject > 0;
}
public static void OpenSettings()
{
ProcessHelper.RunCMD("explorer","ms-settings:personalization-lighting");
}
}
}

View File

@@ -13,24 +13,19 @@ namespace GHelper.Helpers
"ASUSLinkNear",
"ASUSLinkRemote",
"ASUSSoftwareManager",
"ASUSLiveUpdateAgent",
"ASUSSwitch",
"ASUSSystemAnalysis",
"ASUSSystemDiagnosis",
"AsusCertService"
};
//"AsusPTPService",
static List<string> processesAC = new() {
"ArmouryCrateSE.Service",
"ArmouryCrate.Service",
"LightingService",
};
static List<string> servicesAC = new() {
"ArmouryCrateSEService",
"ArmouryCrateService",
"LightingService",
};
@@ -53,7 +48,7 @@ namespace GHelper.Helpers
if (Process.GetProcessesByName(service).Count() > 0) count++;
}
if (AppConfig.IsStopAC())
if (AppConfig.IsAlly())
foreach (string service in processesAC)
{
if (Process.GetProcessesByName(service).Count() > 0)
@@ -74,7 +69,7 @@ namespace GHelper.Helpers
ProcessHelper.StopDisableService(service);
}
if (AppConfig.IsStopAC())
if (AppConfig.IsAlly())
{
foreach (string service in servicesAC)
{
@@ -92,7 +87,7 @@ namespace GHelper.Helpers
ProcessHelper.StartEnableService(service);
}
if (AppConfig.IsStopAC())
if (AppConfig.IsAlly())
{
foreach (string service in servicesAC)
{

View File

@@ -1,13 +1,12 @@
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()
{
@@ -31,70 +30,15 @@ public class Startup
var task = taskService.RootFolder.AllTasks.FirstOrDefault(t => t.Name == taskName);
if (task != null)
{
try
string strExeFilePath = Application.ExecutablePath.Trim();
string action = task.Definition.Actions.FirstOrDefault()!.ToString().Trim();
if (!strExeFilePath.Equals(action, StringComparison.OrdinalIgnoreCase) && !File.Exists(action))
{
string action = task.Definition.Actions.FirstOrDefault()!.ToString().Trim();
if (!strExeFilePath.Equals(action, StringComparison.OrdinalIgnoreCase) && !File.Exists(action))
{
Logger.WriteLine("File doesn't exist: " + action);
Logger.WriteLine("Rescheduling to: " + strExeFilePath);
UnSchedule();
Schedule();
}
Logger.WriteLine("File doesn't exist: " + action);
Logger.WriteLine("Rescheduling to: " + strExeFilePath);
UnSchedule();
Schedule();
}
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);
}
}
}
@@ -102,20 +46,29 @@ 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 = WindowsIdentity.GetCurrent().Name, Delay = TimeSpan.FromSeconds(1) });
td.Triggers.Add(new LogonTrigger { UserId = userId, 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);
@@ -127,12 +80,8 @@ public class Startup
else
ProcessHelper.RunAsAdmin();
}
Logger.WriteLine("Startup task scheduled: " + strExeFilePath);
}
ScheduleCharge();
}
public static void UnSchedule()
@@ -151,7 +100,5 @@ public class Startup
ProcessHelper.RunAsAdmin();
}
}
UnscheduleCharge();
}
}

View File

@@ -73,8 +73,6 @@ namespace GHelper.Helpers
protected override void PerformPaint(PaintEventArgs e)
{
Brush brush = new SolidBrush(Color.FromArgb(150, Color.Black));
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.FillRoundedRectangle(brush, Bound, 10);
StringFormat format = new StringFormat();

View File

@@ -1,33 +0,0 @@
using GHelper.Helpers;
public static class TouchscreenHelper
{
public static bool? GetStatus()
{
try
{
ProcessHelper.RunAsAdmin();
return ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK");
}
catch (Exception ex)
{
Logger.WriteLine($"Can't get touchscreen status: {ex.Message}");
return null;
}
}
public static void ToggleTouchscreen(bool status)
{
try
{
ProcessHelper.RunAsAdmin();
ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false");
}
catch (Exception ex)
{
Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}");
}
}
}

View File

@@ -85,7 +85,8 @@ namespace GHelper.Input
InitBacklightTimer();
if (AppConfig.IsHardwareFnLock()) HardwareFnLock(AppConfig.Is("fn_lock"));
if (AppConfig.IsVivoZenbook())
Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
}
@@ -154,7 +155,7 @@ namespace GHelper.Input
// FN-Lock group
if (AppConfig.Is("fn_lock") && !AppConfig.IsHardwareFnLock())
if (AppConfig.Is("fn_lock") && !AppConfig.IsVivoZenbook())
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
// Arrow-lock group
@@ -217,9 +218,6 @@ 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;
@@ -228,31 +226,24 @@ namespace GHelper.Input
}
static void SetBrightness(bool up, bool hotkey = false)
static void SetBrightness(int delta)
{
int brightness = -1;
if (isTUF) brightness = ScreenBrightness.Get();
if (AppConfig.SwappedBrightness() && !hotkey) up = !up;
if (AppConfig.SwappedBrightness()) delta = -delta;
int step = AppConfig.Get("brightness_step", 10);
if (step != 10)
{
Program.toast.RunToast(ScreenBrightness.Adjust(up ? step : -step) + "%", up ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
return;
}
Program.acpi.DeviceSet(AsusACPI.UniversalControl, up ? AsusACPI.Brightness_Up : AsusACPI.Brightness_Down, "Brightness");
Program.acpi.DeviceSet(AsusACPI.UniversalControl, delta > 0 ? AsusACPI.Brightness_Up : AsusACPI.Brightness_Down, "Brightness");
if (isTUF)
{
if (AppConfig.SwappedBrightness()) return;
if (!up && brightness <= 0) return;
if (up && brightness >= 100) return;
if (delta < 0 && brightness <= 0) return;
if (delta > 0 && brightness >= 100) return;
Thread.Sleep(100);
if (brightness == ScreenBrightness.Get())
Program.toast.RunToast(ScreenBrightness.Adjust(up ? step : -step) + "%", up ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
Program.toast.RunToast(ScreenBrightness.Adjust(delta) + "%", (delta < 0) ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
}
}
@@ -282,44 +273,7 @@ namespace GHelper.Input
KeyboardHook.KeyPress(Keys.VolumeUp);
return;
case Keys.F4:
ToggleMic();
return;
}
}
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(false);
return;
case Keys.F6:
SetBrightness(true);
return;
case Keys.F7:
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.P);
return;
case Keys.F8:
HandleEvent(126); // Emojis
return;
case Keys.F9:
ToggleMic(); // MicMute
return;
case Keys.F10:
HandleEvent(133); // Camera Toggle
return;
case Keys.F11:
KeyboardHook.KeyPress(Keys.Snapshot); // PrintScreen
KeyProcess("m3");
return;
}
}
@@ -334,7 +288,7 @@ namespace GHelper.Input
}
}
if (AppConfig.MediaKeys())
if (AppConfig.NoAura())
{
switch (e.Key)
{
@@ -372,10 +326,10 @@ namespace GHelper.Input
KeyboardHook.KeyPress(Keys.Snapshot);
break;
case Keys.F7:
SetBrightness(false);
SetBrightness(-10);
break;
case Keys.F8:
SetBrightness(true);
SetBrightness(+10);
break;
case Keys.F9:
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.P);
@@ -414,7 +368,7 @@ namespace GHelper.Input
{
if (e.Key == keyProfile) modeControl.CyclePerformanceMode();
if (e.Key == keyApp) Program.SettingsToggle();
if (e.Key == Keys.F20) ToggleMic();
if (e.Key == Keys.F20) KeyProcess("m3");
}
if (e.Modifier == (ModifierKeys.Control | ModifierKeys.Shift | ModifierKeys.Alt))
@@ -424,10 +378,10 @@ namespace GHelper.Input
switch (e.Key)
{
case Keys.F1:
SetBrightness(false);
SetBrightness(-10);
break;
case Keys.F2:
SetBrightness(true);
SetBrightness(10);
break;
case Keys.F3:
Program.settingsForm.gpuControl.ToggleXGM(true);
@@ -469,11 +423,11 @@ namespace GHelper.Input
{
case Keys.VolumeDown:
// Screen brightness down on CTRL+VolDown
SetBrightness(false);
SetBrightness(-10);
break;
case Keys.VolumeUp:
// Screen brightness up on CTRL+VolUp
SetBrightness(true);
SetBrightness(+10);
break;
}
}
@@ -511,8 +465,6 @@ namespace GHelper.Input
action = "micmute";
if (name == "fnc")
action = "fnlock";
if (name == "fnv")
action = "visual";
if (name == "fne")
action = "calculator";
}
@@ -538,8 +490,8 @@ namespace GHelper.Input
break;
case "miniled":
if (ScreenCCD.GetHDRStatus()) return;
string miniledName = screenControl.ToogleMiniled();
Program.toast.RunToast(miniledName, miniledName == Properties.Strings.OneZone ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
int miniled = screenControl.ToogleMiniled();
Program.toast.RunToast(miniled == 1 ? "Multi-Zone" : "Single-Zone", miniled == 1 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
break;
case "aura":
Program.settingsForm.BeginInvoke(Program.settingsForm.CycleAuraMode);
@@ -567,13 +519,15 @@ namespace GHelper.Input
ToggleFnLock();
break;
case "micmute":
ToggleMic();
bool muteStatus = Audio.ToggleMute();
Program.toast.RunToast(muteStatus ? Properties.Strings.Muted : Properties.Strings.Unmuted, muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
break;
case "brightness_up":
SetBrightness(true);
SetBrightness(+10);
break;
case "brightness_down":
SetBrightness(false);
SetBrightness(-10);
break;
case "screenpad_up":
SetScreenpad(10);
@@ -590,28 +544,11 @@ namespace GHelper.Input
case "controller":
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
break;
case "touchscreen":
var status = !TouchscreenHelper.GetStatus();
Logger.WriteLine("Touchscreen status: " + status);
if (status is not null)
{
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)status ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad);
TouchscreenHelper.ToggleTouchscreen((bool)status);
}
break;
default:
break;
}
}
static void ToggleMic()
{
bool muteStatus = Audio.ToggleMute();
Program.toast.RunToast(muteStatus ? Properties.Strings.Muted : Properties.Strings.Unmuted, muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
}
static bool GetTouchpadState()
{
using (var key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad\Status", false))
@@ -647,19 +584,13 @@ 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.IsHardwareFnLock())
HardwareFnLock(fnLock);
if (AppConfig.IsVivoZenbook())
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
else
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
@@ -719,7 +650,6 @@ namespace GHelper.Input
switch (EventID)
{
case 134: // FN + F12 ON OLD DEVICES
case 139: // ProArt F12
KeyProcess("m4");
return;
case 124: // M3
@@ -731,6 +661,9 @@ 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;
@@ -747,6 +680,12 @@ 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;
@@ -796,7 +735,7 @@ namespace GHelper.Input
}
else
{
SetBrightness(false, true);
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
}
break;
case 32: // FN+F8
@@ -811,7 +750,7 @@ namespace GHelper.Input
}
else
{
SetBrightness(true, true);
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
}
break;
case 133: // Camera Toggle
@@ -833,18 +772,6 @@ 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;
}
@@ -955,7 +882,7 @@ namespace GHelper.Input
private static System.Threading.Timer screenpadActionTimer;
private static int screenpadBrightnessToSet;
public static void ApplyScreenpadAction(int brightness, bool instant = true)
public static void ApplyScreenpadAction(int brightness, bool doToggle = false)
{
var delay = AppConfig.Get("screenpad_delay", 1500);
@@ -963,12 +890,11 @@ namespace GHelper.Input
Action<int> action = (b) =>
{
if (b >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
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");
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(b * 255 / 100, 0), "Screenpad");
if (b < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
};
if(delay <= 0 || instant) //instant action
if(delay <= 0 || (brightness > 0 && brightness < 100 && doToggle == false)) //instant action
{
action(brightness);
}
@@ -994,19 +920,20 @@ 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), 0);
ApplyScreenpadAction(brightness);
brightness = Math.Max(Math.Min(100, brightness + delta), -10);
}
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);
@@ -1017,10 +944,7 @@ namespace GHelper.Input
if (string.IsNullOrEmpty(command)) return;
try
{
if (command.StartsWith("shutdown"))
ProcessHelper.RunCMD("cmd", "/C " + command);
else
RestrictedProcessHelper.RunAsRestrictedUser(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe"), "/C " + command);
RestrictedProcessHelper.RunAsRestrictedUser(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe"), "/C " + command);
}
catch (Exception ex)
{

View File

@@ -77,21 +77,6 @@ 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,7 +30,6 @@ 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

@@ -270,6 +270,9 @@ namespace GHelper.Mode
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000);
if (init) Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
if (init) Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000);
if (init) Logger.WriteLine($"SLOW: {limit_slow} {slowResult}");
@@ -403,6 +406,9 @@ namespace GHelper.Mode
{
var resultCPU = SendCommand.set_tctl_temp((uint)cpuTemp);
if (init) Logger.WriteLine($"CPU Temp: {cpuTemp} {resultCPU}");
var restultAPU = SendCommand.set_apu_skin_temp_limit((uint)cpuTemp);
if (init) Logger.WriteLine($"APU Temp: {cpuTemp} {restultAPU}");
}
}

View File

@@ -297,166 +297,4 @@
return 3;
}
}
//P504
public class GladiusIIOriginPink : GladiusIIOrigin
{
public GladiusIIOriginPink() : base(0x18CD, "mi_02")
{
}
public override string GetDisplayName()
{
return "Gladius II PNK LTD";
}
public override int ProfileCount()
{
return 3;
}
public override LightingZone[] SupportedLightingZones()
{
return new LightingZone[] { LightingZone.Scrollwheel, LightingZone.Underglow };
}
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
{
/*
* This mouse uses different speed values for rainbow mode compared to others.
* 51 28 03 00 03 04 FF 00 00 00 00 [8C] 00 00 00 00
* 51 28 03 00 03 04 FF 00 00 00 00 [64] 00 00 00 00
* 51 28 03 00 03 04 FF 00 00 00 00 [3F] 00 00 00 00
*/
byte speed = (byte)(SupportsAnimationSpeed(lightingSetting.LightingMode) ? lightingSetting.AnimationSpeed : 0x00);
if (lightingSetting.LightingMode == LightingMode.Rainbow)
{
speed = 0x64;
switch (lightingSetting.AnimationSpeed)
{
case AnimationSpeed.Slow:
speed = 0x8C;
break;
case AnimationSpeed.Medium:
speed = 0x64;
break;
case AnimationSpeed.Fast:
speed = 0x3F;
break;
}
}
return new byte[] { reportId, 0x51, 0x28, (byte)zone, 0x00,
IndexForLightingMode(lightingSetting.LightingMode),
(byte)lightingSetting.Brightness,
0x00, // this mouse has 2 colors per LED capability, but we do not suppor this yet, so we disable it
lightingSetting.RGBColor.R, lightingSetting.RGBColor.G, lightingSetting.RGBColor.B,
0x00, 0x00, 0x00, //this would be the second set of RGB Colors if we ever support this
(byte)(SupportsAnimationDirection(lightingSetting.LightingMode) ? lightingSetting.AnimationDirection : 0x00),
(byte)((lightingSetting.RandomColor && SupportsRandomColor(lightingSetting.LightingMode)) ? 0x01: 0x00),
speed
};
}
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
{
if (packet[1] != 0x12 || packet[2] != 0x03)
{
return null;
}
//skip first block as it seems to be empty. Maybe only filled to certain configurations.
int offset = 5 + 9 + (((int)zone) * 9);
LightingSetting setting = new LightingSetting();
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
setting.Brightness = packet[offset + 1];
//Offset 2 is a bool that says whether dual color RGB is in use. Unsupported for now by GHelper
setting.RGBColor = Color.FromArgb(packet[offset + 3], packet[offset + 4], packet[offset + 5]);
//Offset 7 - 9 are the second RGB colors, unuse as not supported yet
return setting;
}
public override void ReadLightingSetting()
{
if (!HasRGB())
{
return;
}
//Mouse sends all lighting zones in one response Direction, Random col, Speed
//First block seems emtpy?
//00 12 03 00 00 [00 00 00 00 00 00 00 00 00] [03 04 01 00 00 00 00 00 00] [03 04 01 00 00 00 00 00 00] [00 01 8c]
//Length 9, offset 5
//Direction
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[32]
: AnimationDirection.Clockwise;
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[33] == 0x01;
//Rainbow uses different speed values for whatever reason
if (response[12] == 0x03)
{
byte speed = response[34];
switch (speed)
{
case 0x3F:
ls.AnimationSpeed = AnimationSpeed.Fast;
break;
case 0x64:
ls.AnimationSpeed = AnimationSpeed.Medium;
break;
case 0x8C:
ls.AnimationSpeed = AnimationSpeed.Slow;
break;
default:
ls.AnimationSpeed = AnimationSpeed.Medium;
break;
}
}
else
{
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
? (AnimationSpeed)response[34]
: 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

@@ -1,13 +1,13 @@
namespace GHelper.Peripherals.Mouse.Models
{
//P706_Wireless
public class GladiusIIIWireless : AsusMouse
public class GladiusIII : AsusMouse
{
public GladiusIIIWireless() : base(0x0B05, 0x197F, "mi_00", true)
public GladiusIII() : base(0x0B05, 0x197F, "mi_00", true)
{
}
protected GladiusIIIWireless(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
protected GladiusIII(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless)
{
}
@@ -77,7 +77,7 @@
}
}
public class GladiusIIIWired : GladiusIIIWireless
public class GladiusIIIWired : GladiusIII
{
public GladiusIIIWired() : base(0x197d, false)
{
@@ -88,43 +88,4 @@
return "ROG Gladius III (Wired)";
}
}
//P514
public class GladiusIII : GladiusIIIWireless
{
public GladiusIII() : base(0x197B, false)
{
}
public override string GetDisplayName()
{
return "ROG Gladius III";
}
public override bool HasAutoPowerOff()
{
return false;
}
public override bool HasLowBatteryWarning()
{
return false;
}
public override bool HasBattery()
{
return false;
}
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;
}
}
}

View File

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

View File

@@ -1,124 +0,0 @@
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

@@ -99,18 +99,6 @@
{
return true;
}
// 3.00.06 - 4.00.01 or newer firmware
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;
}
}
public class KerisWirelssAimpointWired : KerisWirelssAimpoint

View File

@@ -1,218 +0,0 @@
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

@@ -159,34 +159,6 @@
}
}
//P509
public class ROGKeris : ROGKerisWireless
{
public ROGKeris() : base(0x195C, false)
{
}
public override string GetDisplayName()
{
return "ROG Keris";
}
public override bool HasBattery()
{
return false;
}
public override bool HasLowBatteryWarning()
{
return false;
}
public override bool HasAutoPowerOff()
{
return false;
}
}
public class ROGKerisWirelessWired : ROGKerisWireless
{
public ROGKerisWirelessWired() : base(0x195E, false)

View File

@@ -1,116 +0,0 @@
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

@@ -86,7 +86,7 @@
public override int DPIIncrements()
{
return 50;
return 100;
}

View File

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

View File

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

View File

@@ -7,7 +7,7 @@
{
}
public TUFM4Wirelss(ushort productId, bool wireless) : base(0x0B05, productId, "mi_00", wireless)
public TUFM4Wirelss(ushort productId) : base(0x0B05, productId, "mi_00", true)
{
}
@@ -90,7 +90,7 @@
//P310
public class TUFM4WirelssCN : TUFM4Wirelss
{
public TUFM4WirelssCN() : base(0x1A8D, true)
public TUFM4WirelssCN() : base(0x1A8D)
{
}
@@ -101,41 +101,4 @@
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

@@ -188,22 +188,17 @@ namespace GHelper.Peripherals
DetectMouse(new GladiusIIIAimpoint());
DetectMouse(new GladiusIIIAimpointWired());
DetectMouse(new GladiusIIOrigin());
DetectMouse(new GladiusIIOriginPink());
DetectMouse(new GladiusII());
DetectMouse(new GladiusIIWireless());
DetectMouse(new ROGKerisWireless());
DetectMouse(new ROGKerisWirelessWired());
DetectMouse(new ROGKeris());
DetectMouse(new ROGKerisWirelessEvaEdition());
DetectMouse(new ROGKerisWirelessEvaEditionWired());
DetectMouse(new TUFM4Air());
DetectMouse(new TUFM4Wirelss());
DetectMouse(new TUFM4WirelssCN());
DetectMouse(new StrixImpactIIWireless());
DetectMouse(new StrixImpactIIWirelessWired());
DetectMouse(new GladiusIIIWireless());
DetectMouse(new GladiusIIIWired());
DetectMouse(new GladiusIII());
DetectMouse(new GladiusIIIWired());
DetectMouse(new GladiusIIIAimpointEva2());
DetectMouse(new GladiusIIIAimpointEva2Wired());
DetectMouse(new HarpeAceAimLabEdition());
@@ -214,7 +209,6 @@ namespace GHelper.Peripherals
DetectMouse(new TUFM5());
DetectMouse(new KerisWirelssAimpoint());
DetectMouse(new KerisWirelssAimpointWired());
DetectMouse(new KerisIIAceWired());
DetectMouse(new PugioII());
DetectMouse(new PugioIIWired());
DetectMouse(new StrixImpactII());
@@ -226,9 +220,6 @@ 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,13 +53,6 @@ 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)
@@ -76,10 +69,6 @@ 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())
@@ -94,8 +83,6 @@ namespace GHelper
return;
}
ProcessHelper.KillByName("ASUSSmartDisplayControl");
Application.EnableVisualStyles();
HardwareControl.RecreateGpuControl();
@@ -212,7 +199,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;
@@ -221,17 +208,16 @@ namespace GHelper
public static bool SetAutoModes(bool powerChanged = false, bool init = false)
public static void SetAutoModes(bool powerChanged = false, bool init = false)
{
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAuto) < 3000) return false;
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAuto) < 3000) return;
lastAuto = DateTimeOffset.Now.ToUnixTimeMilliseconds();
isPlugged = SystemInformation.PowerStatus.PowerLineStatus;
Logger.WriteLine("AutoSetting for " + isPlugged.ToString());
BatteryControl.AutoBattery(init);
if (init) screenControl.InitMiniled();
inputDispatcher.Init();
@@ -250,15 +236,10 @@ namespace GHelper
if (AppConfig.IsAlly())
{
allyControl.Init();
}
else
} else
{
settingsForm.AutoKeyboard();
}
VisualControl.InitBrightness();
return true;
}
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
@@ -278,7 +259,6 @@ namespace GHelper
}
if (SystemInformation.PowerStatus.PowerLineStatus == isPlugged) return;
if (AppConfig.Is("disable_power_event")) return;
SetAutoModes(true);
}
@@ -299,22 +279,19 @@ namespace GHelper
}
else
{
var screen = Screen.PrimaryScreen;
if (screen is null) screen = Screen.FromControl(settingsForm);
settingsForm.Location = screen.WorkingArea.Location;
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.Show();
settingsForm.Activate();
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
settingsForm.Left = Screen.FromControl(settingsForm).WorkingArea.Width - 10 - settingsForm.Width;
if (AppConfig.IsAlly())
settingsForm.Top = Math.Max(10, screen.Bounds.Height - 110 - settingsForm.Height);
settingsForm.Top = Math.Max(10, Screen.FromControl(settingsForm).Bounds.Height - 110 - settingsForm.Height);
else
settingsForm.Top = screen.WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.Top = Screen.FromControl(settingsForm).WorkingArea.Height - 10 - settingsForm.Height;
settingsForm.VisualiseGPUMode();
}
@@ -339,23 +316,6 @@ 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,16 +310,6 @@ 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,9 +118,6 @@
<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>
@@ -142,20 +139,14 @@
<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="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="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="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>
@@ -172,17 +163,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="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="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="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>
@@ -193,18 +184,12 @@
<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>
@@ -226,8 +211,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-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 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="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>
@@ -235,9 +220,6 @@
<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>
@@ -268,8 +250,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="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 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="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>
@@ -277,8 +259,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-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-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="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>
@@ -286,11 +268,8 @@
<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="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 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_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>
@@ -301,15 +280,9 @@
<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>
@@ -325,6 +298,9 @@
<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>
@@ -355,7 +331,28 @@
<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-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 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>
</root>

View File

@@ -771,15 +771,6 @@ 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>
@@ -1205,42 +1196,6 @@ 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>
@@ -1620,7 +1575,7 @@ namespace GHelper.Properties {
}
/// <summary>
/// Looks up a localized string similar to Switch to Eco on battery and to Standard when plugged in.
/// Looks up a localized string similar to Switch to Eco on battery and to Standard when plugged.
/// </summary>
internal static string OptimizedGPUTooltip {
get {
@@ -1970,24 +1925,6 @@ namespace GHelper.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Toggle Touchscreen.
/// </summary>
internal static string ToggleTouchscreen {
get {
return ResourceManager.GetString("ToggleTouchscreen", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Touchscreen.
/// </summary>
internal static string Touchscreen {
get {
return ResourceManager.GetString("Touchscreen", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Turbo.
/// </summary>

View File

@@ -154,7 +154,7 @@
<value>Anime Matrix</value>
</data>
<data name="AppAlreadyRunning" xml:space="preserve">
<value>App'en kører allerede</value>
<value>Appen kører allerede</value>
</data>
<data name="AppAlreadyRunningText" xml:space="preserve">
<value>G-Helper kører allerede. Tjek systembakken for et ikon.</value>
@@ -175,7 +175,7 @@
<value>Hukommelse tildelt til GPU</value>
</data>
<data name="AsusServicesRunning" xml:space="preserve">
<value>Kørende ASUS-tjenester</value>
<value>Kørende Asus-tjenester</value>
</data>
<data name="AuraBatteryState" xml:space="preserve">
<value>Batteritilstand</value>
@@ -301,7 +301,7 @@
<value>Boot</value>
</data>
<data name="BootSound" xml:space="preserve">
<value>Opstarts-lyd</value>
<value>Boot-lyd</value>
</data>
<data name="Brightness" xml:space="preserve">
<value>Lysstyrke</value>
@@ -313,7 +313,7 @@
<value>Lysstyrke op</value>
</data>
<data name="BWTrayIcon" xml:space="preserve">
<value>Sort/hvid bakkeikon</value>
<value>Sort og hvid bakkeikon</value>
</data>
<data name="Calibrate" xml:space="preserve">
<value>Kalibrer</value>
@@ -349,7 +349,7 @@
<value>Deaktiver ved lukning af låg</value>
</data>
<data name="DisableOverdrive" xml:space="preserve">
<value>Deaktiver Overdrive på skærmen</value>
<value>Deaktiver overdrive på skærmen</value>
</data>
<data name="Discharging" xml:space="preserve">
<value>Aflader</value>
@@ -393,7 +393,7 @@ Vil du stadig fortsætte?</value>
<value>Ekstra indstillinger</value>
</data>
<data name="FactoryDefaults" xml:space="preserve">
<value>Gendan standarder</value>
<value>Standard fabriksindstillinger</value>
</data>
<data name="FanCurves" xml:space="preserve">
<value>Blæserkurver</value>
@@ -411,13 +411,13 @@ Vil du stadig fortsætte?</value>
<value>Blæserprofiler</value>
</data>
<data name="FansAndPower" xml:space="preserve">
<value>Blæsere og strøm</value>
<value>Blæsere og kraft</value>
</data>
<data name="FanSpeed" xml:space="preserve">
<value>Blæser</value>
</data>
<data name="FansPower" xml:space="preserve">
<value>Blæser + Strøm</value>
<value>Blæser + Kraft</value>
</data>
<data name="FlickerFreeDimming" xml:space="preserve">
<value>Flimmerfri dæmpning</value>
@@ -426,10 +426,10 @@ Vil du stadig fortsætte?</value>
<value>Aktiver Fn + F genvejstaster uden Fn</value>
</data>
<data name="FnLockOff" xml:space="preserve">
<value>Fn-lås fra</value>
<value>FN-lås fra</value>
</data>
<data name="FnLockOn" xml:space="preserve">
<value>Fn-lås til</value>
<value>FN-lås til</value>
</data>
<data name="GPUBoost" xml:space="preserve">
<value>Dynamisk boost</value>
@@ -438,13 +438,13 @@ Vil du stadig fortsætte?</value>
<value>Skifter</value>
</data>
<data name="GPUCoreClockOffset" xml:space="preserve">
<value>Core Clock offset</value>
<value>Core Clock forskydning</value>
</data>
<data name="GPUMemoryClockOffset" xml:space="preserve">
<value>Memory Clock offset</value>
<value>Memory Clock forskydning</value>
</data>
<data name="GPUMode" xml:space="preserve">
<value>GPU-tilstand</value>
<value>GPU- tilstand</value>
</data>
<data name="GPUModeEco" xml:space="preserve">
<value>Kun iGPU</value>
@@ -456,7 +456,7 @@ Vil du stadig fortsætte?</value>
<value>dGPU eksklusivt</value>
</data>
<data name="GPUPower" xml:space="preserve">
<value>GPU-strøm</value>
<value>GPU- strøm</value>
</data>
<data name="GPUSettings" xml:space="preserve">
<value>GPU-indstillinger</value>
@@ -486,13 +486,13 @@ Vil du stadig fortsætte?</value>
<value>Stop alle apps der bruger GPU når du skifter til Øko</value>
</data>
<data name="LaptopBacklight" xml:space="preserve">
<value>Laptop baggrundsbelysning</value>
<value>Bærbar baggrundsbelysning</value>
</data>
<data name="LaptopKeyboard" xml:space="preserve">
<value>Laptop-tastatur</value>
<value>Bærbar tastatur</value>
</data>
<data name="LaptopScreen" xml:space="preserve">
<value>Laptop-skærm</value>
<value>Bærbar skærm</value>
</data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED statusindikatorer</value>
@@ -561,7 +561,7 @@ Vil du stadig fortsætte?</value>
<value>minutter</value>
</data>
<data name="MouseAngleSnapping" xml:space="preserve">
<value>Vinkel-snapping</value>
<value>Vinkel snapping</value>
</data>
<data name="MouseAutoPowerOff" xml:space="preserve">
<value>Automatisk slukning efter</value>
@@ -627,7 +627,7 @@ Vil du stadig fortsætte?</value>
<value>Skift til Øko på batteri og til Standard, når tilsluttet strøm</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>Hold GPU deaktiveret på USB-C oplader i optimeret tilstand</value>
<value>Hold GPU deaktiveret på USB-C-oplader i optimeret tilstand</value>
</data>
<data name="Other" xml:space="preserve">
<value>Andet</value>
@@ -651,10 +651,10 @@ Vil du stadig fortsætte?</value>
<value>Polling Rate</value>
</data>
<data name="PowerLimits" xml:space="preserve">
<value>Strømgrænser</value>
<value>Kraftgrænser</value>
</data>
<data name="PPTExperimental" xml:space="preserve">
<value>Strømgrænser er en eksperimentel funktion. Brug omhyggeligt og på egen risiko!</value>
<value>Kraftgrænser er en eksperimentel funktion. Brug omhyggeligt og på egen risiko!</value>
</data>
<data name="PrintScreen" xml:space="preserve">
<value>PrintScreen</value>
@@ -729,10 +729,10 @@ Vil du stadig fortsætte?</value>
<value>Slå Aura til/fra</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Slå automatisk Clamshell-tilstand til/fra</value>
<value>Automatisk slå Clamshell tilstand til/fra</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Slå Fn-lås til/fra</value>
<value>Slå Fn-Lock til/fra</value>
</data>
<data name="ToggleMiniled" xml:space="preserve">
<value>Slå MiniLED til/fra (hvis understøttet)</value>
@@ -740,12 +740,6 @@ Vil du stadig fortsætte?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Slå skærmen til/fra</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -756,7 +750,7 @@ Vil du stadig fortsætte?</value>
<value>Deaktiver på batteri</value>
</data>
<data name="UltimateGPUTooltip" xml:space="preserve">
<value>Kobler laptop-skærmen direkte til dGPU, hvilket maksimerer FPS</value>
<value>Kobler bærbar skærm direkte til dGPU, hvilket maksimerer FPS</value>
</data>
<data name="UltimateMode" xml:space="preserve">
<value>Ultimativ</value>
@@ -765,7 +759,7 @@ Vil du stadig fortsætte?</value>
<value>Undervolting er en eksperimentel og risikabel funktion. Hvis de anvendte værdier er for lave for din hardware, kan det blive ustabilt, lukke ned eller forårsage datakorruption. Hvis du ønsker at prøve - start fra små værdier først, klik på Anvend og test hvad der virker for dig.</value>
</data>
<data name="Unmuted" xml:space="preserve">
<value>Ikke lydløs</value>
<value>Ikke muted</value>
</data>
<data name="Updates" xml:space="preserve">
<value>Opdateringer</value>
@@ -800,22 +794,4 @@ Vil du stadig fortsætte?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -740,12 +740,6 @@ Trotzdem fortfahren?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Bildschirm umschalten</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Touchscreen umschalten</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -783,7 +777,7 @@ Trotzdem fortfahren?</value>
<value>Darstellungsmodi sind nicht verfügbar, wenn HDR aktiv ist.</value>
</data>
<data name="VisualModesScreen" xml:space="preserve">
<value>Modi nicht verfügbar, wenn Laptop-Bildschirm aus ist.</value>
<value>Darstellungsmodi sind nicht verfügbar, wenn Laptop-Bildschirm aus ist.</value>
</data>
<data name="VolumeDown" xml:space="preserve">
<value>Lautstärke verringern</value>
@@ -800,22 +794,4 @@ Trotzdem fortfahren?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -624,7 +624,7 @@
<value>Optimizado</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Cambiar a Eco con batería y a Estándar cuando está enchufado</value>
<value>Cambia a Eco con batería y a Estándar cuando está enchufado</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>Deshabilitar dGPU con cargador USB-C en modo Optimizado</value>
@@ -740,12 +740,6 @@
<data name="ToggleScreen" xml:space="preserve">
<value>Alternar pantalla</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Alternar pantalla táctil</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Pantalla táctil</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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>Station d'accueil</value>
<value>Dock</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>Indicateurs d'état LED</value>
<value>LED Status Indicators</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>Écran de verrouillage</value>
<value>Lock Screen</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-zones</value>
<value>Multi Zone</value>
</data>
<data name="MultizoneStrong" xml:space="preserve">
<value>Forte zone multiple</value>
<value>Multi Zone Strong</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Son désactivé</value>
@@ -740,12 +740,6 @@ Voulez-vous continuer ?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Allumer l'écran</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Activer/désactiver l'écran tactile</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@ Voulez-vous continuer ?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -127,7 +127,7 @@
<value>Restart your device to apply changes</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Újraindítás most?</value>
<value>Restart now?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Úgy tűnik használatban van a GPU. Biztosan letiltod?</value>
@@ -235,7 +235,7 @@
<value>Görgetés</value>
</data>
<data name="AuraZoneUnderglow" xml:space="preserve">
<value>Alsó világítás</value>
<value>Underglow</value>
</data>
<data name="AutoApply" xml:space="preserve">
<value>Automatikus alkalmazás</value>
@@ -283,7 +283,7 @@
<value>Akku állapot</value>
</data>
<data name="BatteryLimitFull" xml:space="preserve">
<value>Egyszeri 100%-os feltöltés</value>
<value>One time charge to 100%</value>
</data>
<data name="Binding" xml:space="preserve">
<value>Binding</value>
@@ -313,7 +313,7 @@
<value>Fényerő növelése</value>
</data>
<data name="BWTrayIcon" xml:space="preserve">
<value>Fekete-fehér tálca ikon</value>
<value>Black and white tray icon</value>
</data>
<data name="Calibrate" xml:space="preserve">
<value>Kalibrálás</value>
@@ -325,10 +325,10 @@
<value>Szín</value>
</data>
<data name="Contrast" xml:space="preserve">
<value>Kontraszt</value>
<value>Contrast</value>
</data>
<data name="Controller" xml:space="preserve">
<value>Kontroller</value>
<value>Controller</value>
</data>
<data name="CPUBoost" xml:space="preserve">
<value>CPU gyorsítás</value>
@@ -343,10 +343,10 @@
<value>Alapért.</value>
</data>
<data name="DisableController" xml:space="preserve">
<value>Kontoller letiltása</value>
<value>Disable Controller</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Letiltása képernyő lehajtásakor</value>
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve">
<value>Képernyőtúlhajtás letiltása</value>
@@ -355,7 +355,7 @@
<value>Merülés</value>
</data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>Színprofilok letöltése</value>
<value>Download Color Profiles</value>
</data>
<data name="DownloadUpdate" xml:space="preserve">
<value>Letöltés</value>
@@ -384,7 +384,7 @@ Do you still want to continue?</value>
<value>Energia beállítások</value>
</data>
<data name="Export" xml:space="preserve">
<value>Profil exportálása</value>
<value>Export Profile</value>
</data>
<data name="Extra" xml:space="preserve">
<value>Extra</value>
@@ -420,16 +420,16 @@ Do you still want to continue?</value>
<value>Venti + energia</value>
</data>
<data name="FlickerFreeDimming" xml:space="preserve">
<value>Villogásmentes halványítás</value>
<value>Flicker-free Dimming</value>
</data>
<data name="FnLock" xml:space="preserve">
<value>Fn + F gyorsgombok feldolgozása Fn nélkül</value>
</data>
<data name="FnLockOff" xml:space="preserve">
<value>Fn-Lock Ki</value>
<value>FN-Lock Off</value>
</data>
<data name="FnLockOn" xml:space="preserve">
<value>Fn-Lock Be</value>
<value>FN-Lock On</value>
</data>
<data name="GPUBoost" xml:space="preserve">
<value>Dinamikus gyorsítás</value>
@@ -474,7 +474,7 @@ Do you still want to continue?</value>
<value>Image Rotation</value>
</data>
<data name="Import" xml:space="preserve">
<value>Profil importálása</value>
<value>Import Profile</value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>Gyorsbillentyűk</value>
@@ -495,7 +495,7 @@ Do you still want to continue?</value>
<value>Laptop kijelző</value>
</data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Állapotjelzők</value>
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve">
<value>Fedél</value>
@@ -507,7 +507,7 @@ Do you still want to continue?</value>
<value>Világítás</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>Képernyő zarolása</value>
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logó</value>
@@ -591,7 +591,7 @@ Do you still want to continue?</value>
<value>Multi Zone Strong</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Mikrofon Ki</value>
<value>Muted</value>
</data>
<data name="MuteMic" xml:space="preserve">
<value>Mikrofon némítása</value>
@@ -609,10 +609,10 @@ Do you still want to continue?</value>
<value>Nincs csatlakoztatva</value>
</data>
<data name="Off" xml:space="preserve">
<value>Ki</value>
<value>Off</value>
</data>
<data name="On" xml:space="preserve">
<value>Be</value>
<value>On</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>One Zone</value>
@@ -687,10 +687,10 @@ Do you still want to continue?</value>
<value>Scaling Quality</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Screenpad fényerő csökkentése</value>
<value>Screenpad Brightness Down</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>Screenpad fényerő növelése</value>
<value>Screenpad Brightness Up</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>Leállítás</value>
@@ -740,12 +740,6 @@ Do you still want to continue?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Képernyő ki-/bekapcsolása</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Érintőképernyő ki-/bekapcsolása</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbó</value>
</data>
@@ -765,7 +759,7 @@ Do you still want to continue?</value>
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
</data>
<data name="Unmuted" xml:space="preserve">
<value>Mikrofon Be</value>
<value>Unmuted</value>
</data>
<data name="Updates" xml:space="preserve">
<value>Frissítések</value>
@@ -777,7 +771,7 @@ Do you still want to continue?</value>
<value>Vibration Strength</value>
</data>
<data name="VisualMode" xml:space="preserve">
<value>Képernyőszín Mód</value>
<value>Visual Mode</value>
</data>
<data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value>
@@ -800,22 +794,4 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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,10 +124,10 @@
<value>Tidak dapat terhubung ke ASUS ACPI. tanpanya aplikasi tidak dapat berfungsi. Cobalah untuk menginstal Asus System Control Interface</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Muat ulang perangkat anda untuk menerapkan perubahan</value>
<value>Restart your device to apply changes</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Mulai ulang sekarang?</value>
<value>Restart now?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Tampaknya GPU sedang digunakan intensif, nonaktifkan?</value>
@@ -250,16 +250,16 @@
<value>Bangun</value>
</data>
<data name="BacklightLow" xml:space="preserve">
<value>Lemah</value>
<value>Low</value>
</data>
<data name="BacklightMax" xml:space="preserve">
<value>Kuat</value>
<value>Max</value>
</data>
<data name="BacklightMid" xml:space="preserve">
<value>Sedang</value>
<value>Mid</value>
</data>
<data name="BacklightOff" xml:space="preserve">
<value>Mati</value>
<value>Off</value>
</data>
<data name="BacklightTimeout" xml:space="preserve">
<value>Waktu tunggu dicolokan / menggunakan baterai (0 - Hidup)</value>
@@ -289,10 +289,10 @@
<value>Binding</value>
</data>
<data name="BindingPrimary" xml:space="preserve">
<value>Utama</value>
<value>Primary</value>
</data>
<data name="BindingSecondary" xml:space="preserve">
<value>Sekunder</value>
<value>Secondary</value>
</data>
<data name="BiosAndDriverUpdates" xml:space="preserve">
<value>Pembaruan BIOS dan Driver</value>
@@ -325,7 +325,7 @@
<value>Warna</value>
</data>
<data name="Contrast" xml:space="preserve">
<value>Kontras</value>
<value>Contrast</value>
</data>
<data name="Controller" xml:space="preserve">
<value>Controller</value>
@@ -352,7 +352,7 @@
<value>Nonaktifkan screen overdrive</value>
</data>
<data name="Discharging" xml:space="preserve">
<value>Tidak mengisi</value>
<value>Discharging</value>
</data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>Download Color Profiles</value>
@@ -384,7 +384,7 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Pengaturan Energi</value>
</data>
<data name="Export" xml:space="preserve">
<value>Ekspor Profil</value>
<value>Export Profile</value>
</data>
<data name="Extra" xml:space="preserve">
<value>Ekstra</value>
@@ -471,10 +471,10 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Tinggi</value>
</data>
<data name="ImageRotation" xml:space="preserve">
<value>Rotasi Gambar</value>
<value>Image Rotation</value>
</data>
<data name="Import" xml:space="preserve">
<value>Impor Profil</value>
<value>Import Profile</value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>Pintasan Keyboard</value>
@@ -507,7 +507,7 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Lighting</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>Layar Kunci</value>
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logo</value>
@@ -591,7 +591,7 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Multi Zone Strong</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Di Bisukan</value>
<value>Muted</value>
</data>
<data name="MuteMic" xml:space="preserve">
<value>Bisukan Mic</value>
@@ -609,10 +609,10 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Tidak Tersambung</value>
</data>
<data name="Off" xml:space="preserve">
<value>Mati</value>
<value>Off</value>
</data>
<data name="On" xml:space="preserve">
<value>Hidup</value>
<value>On</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>One Zone</value>
@@ -740,12 +740,6 @@ Apakah Anda masih ingin melanjutkan?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Hidupkan/Matikan Layar</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -765,7 +759,7 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Undervolting adalah fitur eksperimental dan berisiko. Jika nilai yang diterapkan terlalu rendah untuk perangkat keras Anda, ini dapat menjadi tidak stabil, mati mendadak, atau menyebabkan kerusakan data. Jika Anda ingin mencobanya, mulailah dengan nilai kecil terlebih dahulu, klik Terapkan, dan uji apa yang cocok untuk Anda.</value>
</data>
<data name="Unmuted" xml:space="preserve">
<value>Bunyikan</value>
<value>Unmuted</value>
</data>
<data name="Updates" xml:space="preserve">
<value>Pembaruan</value>
@@ -774,16 +768,16 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Versi</value>
</data>
<data name="VibrationStrength" xml:space="preserve">
<value>Kekuatan Getaran</value>
<value>Vibration Strength</value>
</data>
<data name="VisualMode" xml:space="preserve">
<value>Mode Visual</value>
<value>Visual Mode</value>
</data>
<data name="VisualModesHDR" xml:space="preserve">
<value>Mode Visual tidak tersedia saat HDR aktif</value>
<value>Visual Modes are not available when HDR is active</value>
</data>
<data name="VisualModesScreen" xml:space="preserve">
<value>Mode Visual tidak tersedia saat layar laptop mati</value>
<value>Visual Modes are not available when laptop screen is off</value>
</data>
<data name="VolumeDown" xml:space="preserve">
<value>Volume Turun</value>
@@ -798,24 +792,6 @@ Apakah Anda masih ingin melanjutkan?</value>
<value>Jaga agar jendela aplikasi selalu di atas</value>
</data>
<data name="Zoom" xml:space="preserve">
<value>Perbesar</value>
</data>
<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>
<value>Zoom</value>
</data>
</root>

View File

@@ -740,12 +740,6 @@ Sei sicuro di voler continuare?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Alterna Schermo</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@ Sei sicuro di voler continuare?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -1,821 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
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
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Acceleration" xml:space="preserve">
<value>Acceleration</value>
</data>
<data name="ACPIError" xml:space="preserve">
<value>Can't connect to ASUS ACPI. Application can't function without it. Try to install Asus System Control Interface</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Restart your device to apply changes</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Restart now?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Looks like GPU is in heavy use, disable it?</value>
</data>
<data name="AlertDGPUTitle" xml:space="preserve">
<value>Eco Mode</value>
</data>
<data name="AlertUltimateOff" xml:space="preserve">
<value>Switching off Ultimate Mode requires restart</value>
</data>
<data name="AlertUltimateOn" xml:space="preserve">
<value>Ultimate Mode requires restart</value>
</data>
<data name="AlertUltimateTitle" xml:space="preserve">
<value>Reboot now?</value>
</data>
<data name="AllyController" xml:space="preserve">
<value>Ally Controller</value>
</data>
<data name="AnimationSpeed" xml:space="preserve">
<value>Animation Speed</value>
</data>
<data name="AnimeMatrix" xml:space="preserve">
<value>Anime Matrix</value>
</data>
<data name="AppAlreadyRunning" xml:space="preserve">
<value>App already running</value>
</data>
<data name="AppAlreadyRunningText" xml:space="preserve">
<value>G-Helper is already running. Check system tray for an icon.</value>
</data>
<data name="Apply" xml:space="preserve">
<value>Apply</value>
</data>
<data name="ApplyFanCurve" xml:space="preserve">
<value>Apply Custom Fan Curve</value>
</data>
<data name="ApplyPowerLimits" xml:space="preserve">
<value>Apply Power Limits</value>
</data>
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
<value>Auto adjust Windows Power Modes</value>
</data>
<data name="APUMemory" xml:space="preserve">
<value>Memory Assigned to GPU</value>
</data>
<data name="AsusServicesRunning" xml:space="preserve">
<value>Asus Services Running</value>
</data>
<data name="AuraBatteryState" xml:space="preserve">
<value>Battery State</value>
</data>
<data name="AuraBreathe" xml:space="preserve">
<value>Breathe</value>
</data>
<data name="AuraClockwise" xml:space="preserve">
<value>Clockwise</value>
</data>
<data name="AuraColorCycle" xml:space="preserve">
<value>Color Cycle</value>
</data>
<data name="AuraComet" xml:space="preserve">
<value>Comet</value>
</data>
<data name="AuraCounterClockwise" xml:space="preserve">
<value>Counterclockwise</value>
</data>
<data name="AuraFast" xml:space="preserve">
<value>Fast</value>
</data>
<data name="AuraLightingMode" xml:space="preserve">
<value>Lighting Mode</value>
</data>
<data name="AuraNormal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="AuraRainbow" xml:space="preserve">
<value>Rainbow</value>
</data>
<data name="AuraRandomColor" xml:space="preserve">
<value>Random</value>
</data>
<data name="AuraReact" xml:space="preserve">
<value>React</value>
</data>
<data name="AuraSlow" xml:space="preserve">
<value>Slow</value>
</data>
<data name="AuraStatic" xml:space="preserve">
<value>Static</value>
</data>
<data name="AuraStrobe" xml:space="preserve">
<value>Strobe</value>
</data>
<data name="AuraZoneAll" xml:space="preserve">
<value>All</value>
</data>
<data name="AuraZoneDock" xml:space="preserve">
<value>Dock</value>
</data>
<data name="AuraZoneLogo" xml:space="preserve">
<value>Logo</value>
</data>
<data name="AuraZoneScroll" xml:space="preserve">
<value>Scrollwheel</value>
</data>
<data name="AuraZoneUnderglow" xml:space="preserve">
<value>Underglow</value>
</data>
<data name="AutoApply" xml:space="preserve">
<value>Auto Apply</value>
</data>
<data name="AutoMode" xml:space="preserve">
<value>Auto</value>
</data>
<data name="AutoRefreshTooltip" xml:space="preserve">
<value>Sets 60Hz to save battery, and back when plugged</value>
</data>
<data name="Awake" xml:space="preserve">
<value>Awake</value>
</data>
<data name="BacklightLow" xml:space="preserve">
<value>Low</value>
</data>
<data name="BacklightMax" xml:space="preserve">
<value>Max</value>
</data>
<data name="BacklightMid" xml:space="preserve">
<value>Mid</value>
</data>
<data name="BacklightOff" xml:space="preserve">
<value>Off</value>
</data>
<data name="BacklightTimeout" xml:space="preserve">
<value>Timeout plugged / on battery (0 - ON)</value>
</data>
<data name="BacklightTimeoutBattery" xml:space="preserve">
<value>Backlight Timeout when on battery</value>
</data>
<data name="BacklightTimeoutPlugged" xml:space="preserve">
<value>Backlight Timeout when plugged</value>
</data>
<data name="Balanced" xml:space="preserve">
<value>Balanced</value>
</data>
<data name="BatteryCharge" xml:space="preserve">
<value>Charge</value>
</data>
<data name="BatteryChargeLimit" xml:space="preserve">
<value>Battery Charge Limit</value>
</data>
<data name="BatteryHealth" xml:space="preserve">
<value>Battery Health</value>
</data>
<data name="BatteryLimitFull" xml:space="preserve">
<value>One time charge to 100%</value>
</data>
<data name="Binding" xml:space="preserve">
<value>Binding</value>
</data>
<data name="BindingPrimary" xml:space="preserve">
<value>Primary</value>
</data>
<data name="BindingSecondary" xml:space="preserve">
<value>Secondary</value>
</data>
<data name="BiosAndDriverUpdates" xml:space="preserve">
<value>BIOS and Driver Updates</value>
</data>
<data name="Boot" xml:space="preserve">
<value>Boot</value>
</data>
<data name="BootSound" xml:space="preserve">
<value>Boot Sound</value>
</data>
<data name="Brightness" xml:space="preserve">
<value>Brightness</value>
</data>
<data name="BrightnessDown" xml:space="preserve">
<value>Brightness Down</value>
</data>
<data name="BrightnessUp" xml:space="preserve">
<value>Brightness Up</value>
</data>
<data name="BWTrayIcon" xml:space="preserve">
<value>Black and white tray icon</value>
</data>
<data name="Calibrate" xml:space="preserve">
<value>Calibrate</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Color</value>
</data>
<data name="Contrast" xml:space="preserve">
<value>Contrast</value>
</data>
<data name="Controller" xml:space="preserve">
<value>Controller</value>
</data>
<data name="CPUBoost" xml:space="preserve">
<value>CPU Boost</value>
</data>
<data name="Custom" xml:space="preserve">
<value>Custom</value>
</data>
<data name="Deceleration" xml:space="preserve">
<value>Deceleration</value>
</data>
<data name="Default" xml:space="preserve">
<value>Default</value>
</data>
<data name="DisableController" xml:space="preserve">
<value>Disable Controller</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve">
<value>Disable screen overdrive</value>
</data>
<data name="Discharging" xml:space="preserve">
<value>Discharging</value>
</data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>Download Color Profiles</value>
</data>
<data name="DownloadUpdate" xml:space="preserve">
<value>Download</value>
</data>
<data name="DriverAndSoftware" xml:space="preserve">
<value>Drivers and Software</value>
</data>
<data name="EcoGPUTooltip" xml:space="preserve">
<value>Disables dGPU to save battery</value>
</data>
<data name="EcoMode" xml:space="preserve">
<value>Eco</value>
</data>
<data name="EnableGPUOnShutdown" xml:space="preserve">
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
</data>
<data name="EnableOptimusText" xml:space="preserve">
<value>Disabling the dGPU by going into Eco mode while Display Mode in NVIDIA Control Panel is not set to Optimus might cause problems with brightness controls until after the next reboot.
Do you still want to continue?</value>
</data>
<data name="EnableOptimusTitle" xml:space="preserve">
<value>NVIDIA Display Mode is not set to Optimus</value>
</data>
<data name="EnergySettings" xml:space="preserve">
<value>Energy Settings</value>
</data>
<data name="Export" xml:space="preserve">
<value>Export Profile</value>
</data>
<data name="Extra" xml:space="preserve">
<value>Extra</value>
</data>
<data name="ExtraSettings" xml:space="preserve">
<value>Extra Settings</value>
</data>
<data name="FactoryDefaults" xml:space="preserve">
<value>Factory Defaults</value>
</data>
<data name="FanCurves" xml:space="preserve">
<value>Fan Curves</value>
</data>
<data name="FanProfileCPU" xml:space="preserve">
<value>CPU Fan Profile</value>
</data>
<data name="FanProfileGPU" xml:space="preserve">
<value>GPU Fan Profile</value>
</data>
<data name="FanProfileMid" xml:space="preserve">
<value>Mid Fan Profile</value>
</data>
<data name="FanProfiles" xml:space="preserve">
<value>Fan Profiles</value>
</data>
<data name="FansAndPower" xml:space="preserve">
<value>Fans and Power</value>
</data>
<data name="FanSpeed" xml:space="preserve">
<value>Fan</value>
</data>
<data name="FansPower" xml:space="preserve">
<value>Fans + Power</value>
</data>
<data name="FlickerFreeDimming" xml:space="preserve">
<value>Flicker-free Dimming</value>
</data>
<data name="FnLock" xml:space="preserve">
<value>Process Fn+F hotkeys without Fn</value>
</data>
<data name="FnLockOff" xml:space="preserve">
<value>FN-Lock Off</value>
</data>
<data name="FnLockOn" xml:space="preserve">
<value>FN-Lock On</value>
</data>
<data name="GPUBoost" xml:space="preserve">
<value>Dynamic Boost</value>
</data>
<data name="GPUChanging" xml:space="preserve">
<value>Changing</value>
</data>
<data name="GPUCoreClockOffset" xml:space="preserve">
<value>Core Clock Offset</value>
</data>
<data name="GPUMemoryClockOffset" xml:space="preserve">
<value>Memory Clock Offset</value>
</data>
<data name="GPUMode" xml:space="preserve">
<value>GPU Mode</value>
</data>
<data name="GPUModeEco" xml:space="preserve">
<value>iGPU only</value>
</data>
<data name="GPUModeStandard" xml:space="preserve">
<value>iGPU + dGPU</value>
</data>
<data name="GPUModeUltimate" xml:space="preserve">
<value>dGPU exclusive</value>
</data>
<data name="GPUPower" xml:space="preserve">
<value>GPU Power</value>
</data>
<data name="GPUSettings" xml:space="preserve">
<value>GPU Settings</value>
</data>
<data name="GPUTempTarget" xml:space="preserve">
<value>Temperature Target</value>
</data>
<data name="HibernateAfter" xml:space="preserve">
<value>Minutes till Hibernation in sleep on battery (0 - OFF)</value>
</data>
<data name="High" xml:space="preserve">
<value>High</value>
</data>
<data name="ImageRotation" xml:space="preserve">
<value>Image Rotation</value>
</data>
<data name="Import" xml:space="preserve">
<value>Import Profile</value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>Key Bindings</value>
</data>
<data name="Keyboard" xml:space="preserve">
<value>Keyboard</value>
</data>
<data name="KillGpuApps" xml:space="preserve">
<value>Stop all apps using GPU when switching to Eco</value>
</data>
<data name="LaptopBacklight" xml:space="preserve">
<value>Laptop Backlight</value>
</data>
<data name="LaptopKeyboard" xml:space="preserve">
<value>Laptop Keyboard</value>
</data>
<data name="LaptopScreen" xml:space="preserve">
<value>Laptop Screen</value>
</data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve">
<value>Lid</value>
</data>
<data name="Lightbar" xml:space="preserve">
<value>Lightbar</value>
</data>
<data name="Lighting" xml:space="preserve">
<value>Lighting</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logo</value>
</data>
<data name="Low" xml:space="preserve">
<value>Low</value>
</data>
<data name="LSDeadzones" xml:space="preserve">
<value>Left Stick Deadzones</value>
</data>
<data name="LTDeadzones" xml:space="preserve">
<value>Left Trigger Deadzones</value>
</data>
<data name="MatrixAudio" xml:space="preserve">
<value>Audio Visualizer</value>
</data>
<data name="MatrixBanner" xml:space="preserve">
<value>Binary Banner</value>
</data>
<data name="MatrixBright" xml:space="preserve">
<value>Bright</value>
</data>
<data name="MatrixClock" xml:space="preserve">
<value>Clock</value>
</data>
<data name="MatrixDim" xml:space="preserve">
<value>Dim</value>
</data>
<data name="MatrixLogo" xml:space="preserve">
<value>Rog Logo</value>
</data>
<data name="MatrixMedium" xml:space="preserve">
<value>Medium</value>
</data>
<data name="MatrixOff" xml:space="preserve">
<value>Off</value>
</data>
<data name="MatrixPicture" xml:space="preserve">
<value>Picture</value>
</data>
<data name="MaxRefreshTooltip" xml:space="preserve">
<value>Max refresh rate for lower latency</value>
</data>
<data name="MinRefreshTooltip" xml:space="preserve">
<value>60Hz refresh rate to save battery</value>
</data>
<data name="Minute" xml:space="preserve">
<value>Minute</value>
</data>
<data name="Minutes" xml:space="preserve">
<value>Minutes</value>
</data>
<data name="MouseAngleSnapping" xml:space="preserve">
<value>Angle Snapping</value>
</data>
<data name="MouseAutoPowerOff" xml:space="preserve">
<value>Auto Power Off After</value>
</data>
<data name="MouseButtonResponse" xml:space="preserve">
<value>Button Response</value>
</data>
<data name="MouseImportFailed" xml:space="preserve">
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
</data>
<data name="MouseLiftOffDistance" xml:space="preserve">
<value>Lift Off Distance</value>
</data>
<data name="MouseLowBatteryWarning" xml:space="preserve">
<value>Low Battery Warning at</value>
</data>
<data name="MousePerformance" xml:space="preserve">
<value>Performance</value>
</data>
<data name="MouseSynchronize" xml:space="preserve">
<value>Synchronize with mouse</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>Multi Zone</value>
</data>
<data name="MultizoneStrong" xml:space="preserve">
<value>Multi Zone Strong</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Muted</value>
</data>
<data name="MuteMic" xml:space="preserve">
<value>Mute Mic</value>
</data>
<data name="Never" xml:space="preserve">
<value>Never</value>
</data>
<data name="NewUpdates" xml:space="preserve">
<value>New updates</value>
</data>
<data name="NoNewUpdates" xml:space="preserve">
<value>No new updates</value>
</data>
<data name="NotConnected" xml:space="preserve">
<value>Not Connected</value>
</data>
<data name="Off" xml:space="preserve">
<value>Off</value>
</data>
<data name="On" xml:space="preserve">
<value>On</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>One Zone</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>Open G-Helper window</value>
</data>
<data name="Optimized" xml:space="preserve">
<value>Optimized</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Switch to Eco on battery and to Standard when plugged in</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>Keep GPU disabled on USB-C charger in Optimized mode</value>
</data>
<data name="Other" xml:space="preserve">
<value>Other</value>
</data>
<data name="Overdrive" xml:space="preserve">
<value>Overdrive</value>
</data>
<data name="PerformanceMode" xml:space="preserve">
<value>Mode</value>
</data>
<data name="Peripherals" xml:space="preserve">
<value>Peripherals</value>
</data>
<data name="PictureGif" xml:space="preserve">
<value>Picture / Gif</value>
</data>
<data name="PlayPause" xml:space="preserve">
<value>Play / Pause</value>
</data>
<data name="PollingRate" xml:space="preserve">
<value>Polling Rate</value>
</data>
<data name="PowerLimits" xml:space="preserve">
<value>Power Limits</value>
</data>
<data name="PPTExperimental" xml:space="preserve">
<value>Power Limits is an experimental feature. Use carefully and at your own risk!</value>
</data>
<data name="PrintScreen" xml:space="preserve">
<value>PrintScreen</value>
</data>
<data name="Profile" xml:space="preserve">
<value>Profile</value>
</data>
<data name="Quit" xml:space="preserve">
<value>Quit</value>
</data>
<data name="Reset" xml:space="preserve">
<value>Reset</value>
</data>
<data name="RestartGPU" xml:space="preserve">
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
</data>
<data name="RPM" xml:space="preserve">
<value>RPM</value>
</data>
<data name="RSDeadzones" xml:space="preserve">
<value>Right Stick Deadzones</value>
</data>
<data name="RTDeadzones" xml:space="preserve">
<value>Right Trigger Deadzones</value>
</data>
<data name="RunOnStartup" xml:space="preserve">
<value>Run on Startup</value>
</data>
<data name="ScalingQuality" xml:space="preserve">
<value>Scaling Quality</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Screenpad Brightness Down</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>Screenpad Brightness Up</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>Shutdown</value>
</data>
<data name="Silent" xml:space="preserve">
<value>Silent</value>
</data>
<data name="Sleep" xml:space="preserve">
<value>Sleep</value>
</data>
<data name="StandardGPUTooltip" xml:space="preserve">
<value>Enables dGPU for standard use</value>
</data>
<data name="StandardMode" xml:space="preserve">
<value>Standard</value>
</data>
<data name="Start" xml:space="preserve">
<value>Start</value>
</data>
<data name="StartingServices" xml:space="preserve">
<value>Starting Services</value>
</data>
<data name="StartupError" xml:space="preserve">
<value>Startup Error</value>
</data>
<data name="Stop" xml:space="preserve">
<value>Stop</value>
</data>
<data name="StopGPUApps" xml:space="preserve">
<value>Stop GPU Applications</value>
</data>
<data name="StoppingServices" xml:space="preserve">
<value>Stopping Services</value>
</data>
<data name="ToggleAura" xml:space="preserve">
<value>Toggle Aura</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Toggle Fn-Lock</value>
</data>
<data name="ToggleMiniled" xml:space="preserve">
<value>Toggle Miniled (if supported)</value>
</data>
<data name="ToggleScreen" xml:space="preserve">
<value>Toggle Screen</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
<data name="TurnedOff" xml:space="preserve">
<value>Turned off</value>
</data>
<data name="TurnOffOnBattery" xml:space="preserve">
<value>Disable on battery</value>
</data>
<data name="UltimateGPUTooltip" xml:space="preserve">
<value>Routes laptop screen to dGPU, maximizing FPS</value>
</data>
<data name="UltimateMode" xml:space="preserve">
<value>Ultimate</value>
</data>
<data name="UndervoltingRisky" xml:space="preserve">
<value>Undervolting is an experimental and risky feature. If applied values are too low for your hardware, it can become unstable, shut down or cause data corruption. If you want to try - start from small values first, click Apply and test what works for you.</value>
</data>
<data name="Unmuted" xml:space="preserve">
<value>Unmuted</value>
</data>
<data name="Updates" xml:space="preserve">
<value>Updates</value>
</data>
<data name="VersionLabel" xml:space="preserve">
<value>Version</value>
</data>
<data name="VibrationStrength" xml:space="preserve">
<value>Vibration Strength</value>
</data>
<data name="VisualMode" xml:space="preserve">
<value>Visual Mode</value>
</data>
<data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value>
</data>
<data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value>
</data>
<data name="VolumeDown" xml:space="preserve">
<value>Volume Down</value>
</data>
<data name="VolumeMute" xml:space="preserve">
<value>Volume Mute</value>
</data>
<data name="VolumeUp" xml:space="preserve">
<value>Volume Up</value>
</data>
<data name="WindowTop" xml:space="preserve">
<value>Keep app window always on top</value>
</data>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -118,16 +118,16 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Acceleration" xml:space="preserve">
<value>가속</value>
<value>Acceleration</value>
</data>
<data name="ACPIError" xml:space="preserve">
<value>ASUS ACPI에 연결할 수 없어 응용 프로그램이 작동하지 않습니다. Asus System Control Interface를 먼저 설치하십시오.</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>변경사항을 적용하려면 기기를 다시 시작하십시오.</value>
<value>Restart your device to apply changes</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>지금 다시 시작하시겠습니까?</value>
<value>Restart now?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>GPU 사용량이 높습니다. 비활성화 하시겠습니까?</value>
@@ -142,10 +142,10 @@
<value>Ultimate 모드를 켜기 위해서는 다시 시작해야 합니다.</value>
</data>
<data name="AlertUltimateTitle" xml:space="preserve">
<value>지금 다시 시작하시겠습니까?</value>
<value>다시 시작하시겠습니까?</value>
</data>
<data name="AllyController" xml:space="preserve">
<value>Ally 컨트롤러</value>
<value>Ally Controller</value>
</data>
<data name="AnimationSpeed" xml:space="preserve">
<value>애니메이션 속도</value>
@@ -247,28 +247,28 @@
<value>배터리 사용 중에만 60Hz 설정</value>
</data>
<data name="Awake" xml:space="preserve">
<value>활성</value>
<value>절전 모드 해제</value>
</data>
<data name="BacklightLow" xml:space="preserve">
<value>낮음</value>
<value>Low</value>
</data>
<data name="BacklightMax" xml:space="preserve">
<value>최대</value>
<value>Max</value>
</data>
<data name="BacklightMid" xml:space="preserve">
<value>중간</value>
<value>Mid</value>
</data>
<data name="BacklightOff" xml:space="preserve">
<value>꺼짐</value>
<value>Off</value>
</data>
<data name="BacklightTimeout" xml:space="preserve">
<value>전원 / 배터리 사용 중 자동 꺼짐 시간 (0 - 항상 켜짐)</value>
</data>
<data name="BacklightTimeoutBattery" xml:space="preserve">
<value>배터리 사용 중 백라이트 자동 꺼짐</value>
<value>Backlight Timeout when on battery</value>
</data>
<data name="BacklightTimeoutPlugged" xml:space="preserve">
<value>전원 사용 중 백라이트 자동 꺼짐</value>
<value>Backlight Timeout when plugged</value>
</data>
<data name="Balanced" xml:space="preserve">
<value>균형</value>
@@ -283,7 +283,7 @@
<value>배터리 수명</value>
</data>
<data name="BatteryLimitFull" xml:space="preserve">
<value>이번만 100%까지 충전</value>
<value>One time charge to 100%</value>
</data>
<data name="Binding" xml:space="preserve">
<value>Binding</value>
@@ -301,7 +301,7 @@
<value>부팅</value>
</data>
<data name="BootSound" xml:space="preserve">
<value>부팅 사운드</value>
<value>Boot Sound</value>
</data>
<data name="Brightness" xml:space="preserve">
<value>밝기</value>
@@ -313,10 +313,10 @@
<value>밝기 증가</value>
</data>
<data name="BWTrayIcon" xml:space="preserve">
<value>흑백 트레이 아이콘</value>
<value>Black and white tray icon</value>
</data>
<data name="Calibrate" xml:space="preserve">
<value>보정</value>
<value>Calibrate</value>
</data>
<data name="Charging" xml:space="preserve">
<value>충전 중</value>
@@ -325,10 +325,10 @@
<value>색상</value>
</data>
<data name="Contrast" xml:space="preserve">
<value>대비</value>
<value>Contrast</value>
</data>
<data name="Controller" xml:space="preserve">
<value>컨트롤러</value>
<value>Controller</value>
</data>
<data name="CPUBoost" xml:space="preserve">
<value>CPU 부스트</value>
@@ -337,16 +337,16 @@
<value>사용자 설정</value>
</data>
<data name="Deceleration" xml:space="preserve">
<value>감속</value>
<value>Deceleration</value>
</data>
<data name="Default" xml:space="preserve">
<value>기본</value>
</data>
<data name="DisableController" xml:space="preserve">
<value>컨트롤러 비활성화</value>
<value>Disable Controller</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>덮개를 닫을 시 비활성화</value>
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve">
<value>화면 OD 끄기</value>
@@ -355,7 +355,7 @@
<value>방전 중</value>
</data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>색 프로필 다운로드</value>
<value>Download Color Profiles</value>
</data>
<data name="DownloadUpdate" xml:space="preserve">
<value>다운로드</value>
@@ -384,7 +384,7 @@
<value>Energy Settings</value>
</data>
<data name="Export" xml:space="preserve">
<value>프로필 내보내기</value>
<value>Export Profile</value>
</data>
<data name="Extra" xml:space="preserve">
<value>추가 설정</value>
@@ -426,16 +426,16 @@
<value>Fn 키를 누르지 않고 Fn+F 핫키 작동</value>
</data>
<data name="FnLockOff" xml:space="preserve">
<value>FN-Lock 꺼짐</value>
<value>FN-Lock Off</value>
</data>
<data name="FnLockOn" xml:space="preserve">
<value>FN-Lock 켜짐</value>
<value>FN-Lock On</value>
</data>
<data name="GPUBoost" xml:space="preserve">
<value>다이나믹 부스트</value>
</data>
<data name="GPUChanging" xml:space="preserve">
<value>바꾸는 중</value>
<value>충전 중</value>
</data>
<data name="GPUCoreClockOffset" xml:space="preserve">
<value>코어 클럭 오프셋</value>
@@ -471,10 +471,10 @@
<value>높게</value>
</data>
<data name="ImageRotation" xml:space="preserve">
<value>이미지 방향</value>
<value>Image Rotation</value>
</data>
<data name="Import" xml:space="preserve">
<value>프로필 가져오기</value>
<value>Import Profile</value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>키 설정</value>
@@ -495,7 +495,7 @@
<value>화면</value>
</data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED 상태 표시등</value>
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve">
<value>덮개</value>
@@ -507,7 +507,7 @@
<value>조명</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>잠금화면</value>
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve">
<value>로고</value>
@@ -516,10 +516,10 @@
<value>낮게</value>
</data>
<data name="LSDeadzones" xml:space="preserve">
<value>왼쪽 스틱 데드존</value>
<value>Left Stick Deadzones</value>
</data>
<data name="LTDeadzones" xml:space="preserve">
<value>왼쪽 트리거 데드존</value>
<value>Left Trigger Deadzones</value>
</data>
<data name="MatrixAudio" xml:space="preserve">
<value>오디오 비주얼라이저</value>
@@ -591,7 +591,7 @@
<value>Multi Zone Strong</value>
</data>
<data name="Muted" xml:space="preserve">
<value>음소거</value>
<value>Muted</value>
</data>
<data name="MuteMic" xml:space="preserve">
<value>마이크 음소거</value>
@@ -609,10 +609,10 @@
<value>연결되지 않음</value>
</data>
<data name="Off" xml:space="preserve">
<value>꺼짐</value>
<value>Off</value>
</data>
<data name="On" xml:space="preserve">
<value>켜짐</value>
<value>On</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>One Zone</value>
@@ -666,7 +666,7 @@
<value>종료</value>
</data>
<data name="Reset" xml:space="preserve">
<value>초기화</value>
<value>Reset</value>
</data>
<data name="RestartGPU" xml:space="preserve">
<value>dGPU가 사용중이기 때문에 Eco 모드로 전환할 수 없습니다. 장치 관리자에서 dGPU를 재시작하시겠습니까?</value>
@@ -675,10 +675,10 @@
<value>RPM</value>
</data>
<data name="RSDeadzones" xml:space="preserve">
<value>오른쪽 스틱 데드존</value>
<value>Right Stick Deadzones</value>
</data>
<data name="RTDeadzones" xml:space="preserve">
<value>오른쪽 트리거 데드존</value>
<value>Right Trigger Deadzones</value>
</data>
<data name="RunOnStartup" xml:space="preserve">
<value>시스템 시작 시 실행</value>
@@ -693,13 +693,13 @@
<value>Screenpad 밝기 증가</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>종료</value>
<value>시스템 종료</value>
</data>
<data name="Silent" xml:space="preserve">
<value>조용</value>
</data>
<data name="Sleep" xml:space="preserve">
<value>절전</value>
<value>절전 모드</value>
</data>
<data name="StandardGPUTooltip" xml:space="preserve">
<value>Standard 모드에서 dGPU 켜기</value>
@@ -740,12 +740,6 @@
<data name="ToggleScreen" xml:space="preserve">
<value>화면 전환 키</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>터보</value>
</data>
@@ -765,7 +759,7 @@
<value>언더볼팅은 실험적이며 위험한 기능입니다. 적용 값이 너무 낮은 경우 시스템이 불안정해지고, 강제 종료되거나 데이터 손상을 유발할 수 있습니다. 낮은 값부터 적용하여 잘 작동하는지 확인해 보십시오.</value>
</data>
<data name="Unmuted" xml:space="preserve">
<value>음소거 해제</value>
<value>Unmuted</value>
</data>
<data name="Updates" xml:space="preserve">
<value>업데이트</value>
@@ -774,16 +768,16 @@
<value>버전</value>
</data>
<data name="VibrationStrength" xml:space="preserve">
<value>진동 세기</value>
<value>Vibration Strength</value>
</data>
<data name="VisualMode" xml:space="preserve">
<value>비주얼 모드</value>
<value>Visual Mode</value>
</data>
<data name="VisualModesHDR" xml:space="preserve">
<value>HDR이 켜져 있을 때에는 비주얼 모드를 사용할 수 없습니다.</value>
<value>Visual Modes are not available when HDR is active</value>
</data>
<data name="VisualModesScreen" xml:space="preserve">
<value>노트북의 화면이 꺼져 있을 때에는 비주얼 모드를 사용할 수 없습니다.</value>
<value>Visual Modes are not available when laptop screen is off</value>
</data>
<data name="VolumeDown" xml:space="preserve">
<value>볼륨 작게</value>
@@ -798,24 +792,6 @@
<value>창을 항상 맨 위로 유지</value>
</data>
<data name="Zoom" xml:space="preserve">
<value>확대/축소</value>
</data>
<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>
<value>Zoom</value>
</data>
</root>

View File

@@ -124,10 +124,10 @@
<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>Norėdami pritaikyti pakeitimus, paleiskite įrenginį iš naujo</value>
<value>Restart your device to apply changes</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Paleisti iš naujo?</value>
<value>Restart now?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Panašu, kad jūsų GPU yra intensyviai naudojamas. Išjungti jį?</value>
@@ -145,7 +145,7 @@
<value>Paleisti iš naujo dabar?</value>
</data>
<data name="AllyController" xml:space="preserve">
<value>Ally“ valdiklis</value>
<value>Ally Controller</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ą kreivę</value>
<value>Taikyti tinkintą aušintuvo 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>Atmintis priskirta vaizdo plokštei</value>
<value>Memory Assigned to GPU</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>Įprastas</value>
<value>Normalus</value>
</data>
<data name="AuraRainbow" xml:space="preserve">
<value>Vaivorykštė</value>
@@ -244,31 +244,31 @@
<value>Automatinis</value>
</data>
<data name="AutoRefreshTooltip" xml:space="preserve">
<value>Nustatomas 60Hz dažn. taupymui, ir atgal, kuomet įkraunama</value>
<value>Nustato 60Hz, kad taupytų energiją, ir atgal, kai įjungtas į lizdą</value>
</data>
<data name="Awake" xml:space="preserve">
<value>Pabudęs</value>
</data>
<data name="BacklightLow" xml:space="preserve">
<value>Žem.</value>
<value>Low</value>
</data>
<data name="BacklightMax" xml:space="preserve">
<value>Maks.</value>
<value>Max</value>
</data>
<data name="BacklightMid" xml:space="preserve">
<value>Vid.</value>
<value>Mid</value>
</data>
<data name="BacklightOff" xml:space="preserve">
<value>Išjungta</value>
<value>Off</value>
</data>
<data name="BacklightTimeout" xml:space="preserve">
<value>Laiko riba su lizdu / akumuliatoriumi (0 ĮJUNGTA)</value>
</data>
<data name="BacklightTimeoutBattery" xml:space="preserve">
<value>Foninio apšvietimo laikas akumuliatoriaus režimu</value>
<value>Backlight Timeout when on battery</value>
</data>
<data name="BacklightTimeoutPlugged" xml:space="preserve">
<value>Foninio apšvietimo laikas įkraunant</value>
<value>Backlight Timeout when plugged</value>
</data>
<data name="Balanced" xml:space="preserve">
<value>Balansuotas</value>
@@ -280,19 +280,19 @@
<value>Įkrovos riba</value>
</data>
<data name="BatteryHealth" xml:space="preserve">
<value>Baterijos būklė</value>
<value>Sveikata</value>
</data>
<data name="BatteryLimitFull" xml:space="preserve">
<value>Vienkartinė įkrova iki 100%</value>
</data>
<data name="Binding" xml:space="preserve">
<value>Saistymas</value>
<value>Binding</value>
</data>
<data name="BindingPrimary" xml:space="preserve">
<value>Pirminis</value>
<value>Primary</value>
</data>
<data name="BindingSecondary" xml:space="preserve">
<value>Antrinis</value>
<value>Secondary</value>
</data>
<data name="BiosAndDriverUpdates" xml:space="preserve">
<value>BIOS ir tvarkyklių naujinimai</value>
@@ -313,7 +313,7 @@
<value>Ryškumo didinimas</value>
</data>
<data name="BWTrayIcon" xml:space="preserve">
<value>Naudoti juodai baltą piktogramą</value>
<value>Black and white tray icon</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>Kontrastas</value>
<value>Contrast</value>
</data>
<data name="Controller" xml:space="preserve">
<value>Valdiklis</value>
<value>Controller</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>Išjungti valdiklį</value>
<value>Disable Controller</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Išjungti uždarius gaubtą</value>
<value>Disable on lid close</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>Atsisiųsti spalvų profilius</value>
<value>Download Color Profiles</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 akumuliatoriaus taupymui</value>
<value>Išjungia dGPU, kad taupytų energiją</value>
</data>
<data name="EcoMode" xml:space="preserve">
<value>Ekonomiškas</value>
</data>
<data name="EnableGPUOnShutdown" xml:space="preserve">
<value>Įgalinti GPU išjungimo metu (apsauga nuo „Eco“ režimo problemos)</value>
<value>Enable GPU on shutdown (prevents issue with Eco mode)</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>Eksportuoti profilį</value>
<value>Export Profile</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>Užtamsinimas be mirgėjimo</value>
<value>Flicker-free Dimming</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 užraktas išjungtas</value>
<value>FN-Lock Off</value>
</data>
<data name="FnLockOn" xml:space="preserve">
<value>FN užraktas įjungtas</value>
<value>FN-Lock On</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 galia</value>
<value>GPU Power</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>Užmigimo laikas akumuliatoriaus režimu (0 IŠJUNGTA)</value>
<value>Minutės iki miego su akumuliatoriumi (0 IŠJUNGTA)</value>
</data>
<data name="High" xml:space="preserve">
<value>Aukštas</value>
</data>
<data name="ImageRotation" xml:space="preserve">
<value>Atvaizdo pasukimas</value>
<value>Image Rotation</value>
</data>
<data name="Import" xml:space="preserve">
<value>Importuoti profilį</value>
<value>Import Profile</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 į ekon. režimą</value>
<value>Sustabdyti visas GPU naudojančias programėles, kai perjungiama į ekonomišką 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 būsenos indikatoriai</value>
<value>LED Status Indicators</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>Užrakinimo ekranas</value>
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logotipas</value>
@@ -516,10 +516,10 @@ Vis tiek norite tęsti?</value>
<value>Žemas</value>
</data>
<data name="LSDeadzones" xml:space="preserve">
<value>Kairiojo jungiklio nejautrumo zonos</value>
<value>Left Stick Deadzones</value>
</data>
<data name="LTDeadzones" xml:space="preserve">
<value>Kairiojo jungiklio nejautrumo zonos</value>
<value>Left Trigger Deadzones</value>
</data>
<data name="MatrixAudio" xml:space="preserve">
<value>Garso vizualizatorius</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žesnei delsai</value>
<value>Maksimalus kadrų dažnis mažesnę delsą</value>
</data>
<data name="MinRefreshTooltip" xml:space="preserve">
<value>60Hz kadrų dažnis energijos taupymui</value>
<value>60Hz kadrų dažnis, kad taupytumėte energiją</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>Kampinis fiksavimas</value>
<value>Angle Snapping</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>Importuoti nepavyko. Pasirinktas failas nėra galiojantis pelės profilis arba yra sugadintas.</value>
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
</data>
<data name="MouseLiftOffDistance" xml:space="preserve">
<value>Pakilimo atstumas</value>
@@ -585,13 +585,13 @@ Vis tiek norite tęsti?</value>
<value>Sinchronizuoti su pele</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>Kelios zonos</value>
<value>Multi Zone</value>
</data>
<data name="MultizoneStrong" xml:space="preserve">
<value>Kelių zonų stiprumas</value>
<value>Multi Zone Strong</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Išjungta</value>
<value>Muted</value>
</data>
<data name="MuteMic" xml:space="preserve">
<value>Mikrofono nutildymas</value>
@@ -609,13 +609,13 @@ Vis tiek norite tęsti?</value>
<value>Neprijungta</value>
</data>
<data name="Off" xml:space="preserve">
<value>Išjungta</value>
<value>Off</value>
</data>
<data name="On" xml:space="preserve">
<value>Įjungta</value>
<value>On</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>Viena zona</value>
<value>One Zone</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>Atidaryti G-Helper langą</value>
@@ -624,10 +624,10 @@ Vis tiek norite tęsti?</value>
<value>Optimizuotas</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Naudojant akumuliatorių įjungiamas ekon. režimas, įkraunant - stand. režimas</value>
<value>Perjungti į ekonomišką, kai naudojamas akumuliatorius, ir į standartinį, kai įjungtas į lizdą</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>jungti GPU optimizuotame režime, kai naudojamas USB-C įkroviklis</value>
<value>Neįjungti GPU, kai naudojamas USB-C įkroviklis optimizuotame režime</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>Atstatyti</value>
<value>Reset</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>
@@ -675,16 +675,16 @@ Vis tiek norite tęsti?</value>
<value>RPM</value>
</data>
<data name="RSDeadzones" xml:space="preserve">
<value>Dešiniojo jungiklio nejautrumo zonos</value>
<value>Right Stick Deadzones</value>
</data>
<data name="RTDeadzones" xml:space="preserve">
<value>Dešiniojo jungiklio nejautrumo zonos</value>
<value>Right Trigger Deadzones</value>
</data>
<data name="RunOnStartup" xml:space="preserve">
<value>Paleisti įjungus sistemą</value>
</data>
<data name="ScalingQuality" xml:space="preserve">
<value>Mastelio kokybė</value>
<value>Scaling Quality</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Ekrano skydelio ryškumo mažinimas</value>
@@ -740,12 +740,6 @@ Vis tiek norite tęsti?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Perjungti ekraną</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Valdyti jutiklinį ekraną</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Jutiklinis ekranas</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -756,7 +750,7 @@ Vis tiek norite tęsti?</value>
<value>Išjungti naudojant akumuliatorių</value>
</data>
<data name="UltimateGPUTooltip" xml:space="preserve">
<value>Maksimaliai padidinamas kadrų kiekis, nukreipiant ekraną į dGPU</value>
<value>Nukreipia ekraną į dGPU, kad maksimizuotų kadrų dažnį</value>
</data>
<data name="UltimateMode" xml:space="preserve">
<value>Maksimalus</value>
@@ -765,7 +759,7 @@ Vis tiek norite tęsti?</value>
<value>Įtampos mažinimas yra eksperimentinė ir pavojinga funkcija. Jei pritaikytos reikšmės yra per mažos jūsų aparatinei įrangai, ji gali tapti nestabili, išsijungti arba pažeisti duomenų vientisumą. Jei norite pabandyti, iš pirmo pradėkite nuo mažų reikšmių, spustelėkite „Taikyti“ ir išbandykite, kas jums tinka.</value>
</data>
<data name="Unmuted" xml:space="preserve">
<value>Įjungta</value>
<value>Unmuted</value>
</data>
<data name="Updates" xml:space="preserve">
<value>Naujinimai</value>
@@ -774,16 +768,16 @@ Vis tiek norite tęsti?</value>
<value>Versija</value>
</data>
<data name="VibrationStrength" xml:space="preserve">
<value>Vibracijos stiprumas</value>
<value>Vibration Strength</value>
</data>
<data name="VisualMode" xml:space="preserve">
<value>Vizualinis režimas</value>
<value>Visual Mode</value>
</data>
<data name="VisualModesHDR" xml:space="preserve">
<value>Vizualiniai režimai nepasiekiami, kuomet įjungtas HDR</value>
<value>Visual Modes are not available when HDR is active</value>
</data>
<data name="VisualModesScreen" xml:space="preserve">
<value>Vizualiniai režimai nepasiekiami, kuomet kompiuterio ekranas išjungtas</value>
<value>Visual Modes are not available when laptop screen is off</value>
</data>
<data name="VolumeDown" xml:space="preserve">
<value>Garsumo mažinimas</value>
@@ -798,24 +792,6 @@ Vis tiek norite tęsti?</value>
<value>Visada rodyti programėlės langą viršuje</value>
</data>
<data name="Zoom" xml:space="preserve">
<value>Mastelis</value>
</data>
<data name="Donate" xml:space="preserve">
<value>Paremti</value>
</data>
<data name="Legend" xml:space="preserve">
<value>Legenda</value>
</data>
<data name="LegendGray" xml:space="preserve">
<value>Nepavyko patikrinti vietinės versijos</value>
<comment>Can't check local version</comment>
</data>
<data name="LegendRed" xml:space="preserve">
<value>Išleista nauja versija</value>
<comment>Update Available</comment>
</data>
<data name="LegendGreen" xml:space="preserve">
<value>Atnaujinta</value>
<comment>Updated</comment>
<value>Zoom</value>
</data>
</root>

View File

@@ -740,12 +740,6 @@ Nadal chcesz kontynuować?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Przełącz ekran</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Włącz/wyłącz ekran dotykowy</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Ekran dotykowy</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@ Nadal chcesz kontynuować?</value>
<data name="Zoom" xml:space="preserve">
<value>Przybliżenie</value>
</data>
<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

@@ -740,12 +740,6 @@ Do you still want to continue?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Alternar Tela</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -740,12 +740,6 @@ Quer prosseguir?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Alternar Ecrã</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@ Quer prosseguir?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -624,7 +624,7 @@ Do you still want to continue?</value>
<value>Optimized</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Switch to Eco on battery and to Standard when plugged in</value>
<value>Switch to Eco on battery and to Standard when plugged</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>Keep GPU disabled on USB-C charger in Optimized mode</value>
@@ -740,12 +740,6 @@ Do you still want to continue?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Toggle Screen</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -740,12 +740,6 @@
<data name="ToggleScreen" xml:space="preserve">
<value>Toggle Ecran</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -585,10 +585,10 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Fare ile eşitle</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>Çoklu Bölge</value>
<value>Çok Bölgeli</value>
</data>
<data name="MultizoneStrong" xml:space="preserve">
<value>Çoklu Bölge Güçlü</value>
<value>Çok Bölgeli (Güçlü)</value>
</data>
<data name="Muted" xml:space="preserve">
<value>Susturuldu</value>
@@ -615,7 +615,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Açık</value>
</data>
<data name="OneZone" xml:space="preserve">
<value>Tek Bölge</value>
<value>Tek Bölgeli</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>G-Helper penceresini aç</value>
@@ -624,7 +624,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>İyileştirilmiş</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Pil ile çalışırken Eco moda, Elektrik ile Standart moda geçilir</value>
<value>Pil ile çalışırken Eko moda, şarjda Standart moda geçiş yap</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>İyileştirilmiş modda USB-C şarj cihazı bağlıyken, GPU devre dışı kalsın</value>
@@ -726,26 +726,20 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Hizmetler Durduruluyor</value>
</data>
<data name="ToggleAura" xml:space="preserve">
<value>Aura Değiştir</value>
<value>Aura'yı Kullan</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Otomatik Clamshell Modunu Aç</value>
<value>Kapaklı modu otmatik değiştir</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Fn-Lock Değiştir</value>
<value>Fn-Lock'u Aç</value>
</data>
<data name="ToggleMiniled" xml:space="preserve">
<value>Miniled Değiştir (destekleniyorsa)</value>
<value>Miniled'i Aç (destekliyorsa)</value>
</data>
<data name="ToggleScreen" xml:space="preserve">
<value>Ekranı Değiştir</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Dokunmatik Ekranı Değiştir</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Dokunmatik ekran</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -756,7 +750,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Pille çalışırken kapat</value>
</data>
<data name="UltimateGPUTooltip" xml:space="preserve">
<value>Dizüstü ekranı doğrudan dGPU üstünden çalışır FPS artar</value>
<value>Dizüstü ekranını dGPU üstüne yönlendirerek FPS en üst düzeye çıkar</value>
</data>
<data name="UltimateMode" xml:space="preserve">
<value>Ultimate</value>
@@ -800,22 +794,4 @@ Yine de devam etmek istiyor musunuz?</value>
<data name="Zoom" xml:space="preserve">
<value>Yakınlaştır</value>
</data>
<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>
@@ -507,7 +507,7 @@
<value>Ілюмінація</value>
</data>
<data name="LockScreen" xml:space="preserve">
<value>Блокування екрану</value>
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Лого</value>
@@ -740,12 +740,6 @@
<data name="ToggleScreen" xml:space="preserve">
<value>Вимкнути екран</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Сенсорний екран</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Сенсорний екран</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Турбо</value>
</data>
@@ -800,22 +794,4 @@
<data name="Zoom" xml:space="preserve">
<value>Зум</value>
</data>
<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

@@ -740,12 +740,6 @@ Do you still want to continue?</value>
<data name="ToggleScreen" xml:space="preserve">
<value>Bật tắt màn hình</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>Turbo</value>
</data>
@@ -800,22 +794,4 @@ Do you still want to continue?</value>
<data name="Zoom" xml:space="preserve">
<value>Zoom</value>
</data>
<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

@@ -740,12 +740,6 @@
<data name="ToggleScreen" xml:space="preserve">
<value>关闭屏幕</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>切换触摸屏</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>触摸屏</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>增强模式</value>
</data>
@@ -800,22 +794,4 @@
<data name="Zoom" xml:space="preserve">
<value>缩放</value>
</data>
<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

@@ -121,7 +121,7 @@
<value>滑鼠加速</value>
</data>
<data name="ACPIError" xml:space="preserve">
<value>無法連結到華碩 ACPI應用程式無法執行。 嘗試安裝 Asus System Control Interface</value>
<value>無法連結到華碩 ACPI。 没有它,應用程式無法執行。 嘗試安裝Asus System Control Interface</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>重新啟動裝置以套用變更</value>
@@ -130,7 +130,7 @@
<value>現在重新啟動?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>看起 GPU 正在被重度使用,是否禁用?</value>
<value>看起 GPU 正在大量使用,是否禁用?</value>
</data>
<data name="AlertDGPUTitle" xml:space="preserve">
<value>節能模式</value>
@@ -139,10 +139,10 @@
<value>關閉獨顯需要重新啟動</value>
</data>
<data name="AlertUltimateOn" xml:space="preserve">
<value>獨顯輸出需要重新啟動</value>
<value>獨顯直連需要重</value>
</data>
<data name="AlertUltimateTitle" xml:space="preserve">
<value>立即重新啟動?</value>
<value>現在重新啟動?</value>
</data>
<data name="AllyController" xml:space="preserve">
<value>Ally控制器</value>
@@ -151,13 +151,13 @@
<value>動畫速度</value>
</data>
<data name="AnimeMatrix" xml:space="preserve">
<value>AniMeMatrix</value>
<value>AniMeMatrix</value>
</data>
<data name="AppAlreadyRunning" xml:space="preserve">
<value>程式正在執行</value>
<value>程式正在執行</value>
</data>
<data name="AppAlreadyRunningText" xml:space="preserve">
<value>G-Helper在執行。 請檢查右下系統匣。</value>
<value>G-Helper已經在執行。 請確認右下工作列中的圖示。</value>
</data>
<data name="Apply" xml:space="preserve">
<value>套用</value>
@@ -169,10 +169,10 @@
<value>套用功率限制</value>
</data>
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
<value>自動調整 Windows 電源模式</value>
<value>自動調整Windows電源模式</value>
</data>
<data name="APUMemory" xml:space="preserve">
<value>分配給 GPU 的記憶體</value>
<value>分配給GPU的記憶體</value>
</data>
<data name="AsusServicesRunning" xml:space="preserve">
<value>執行中的華碩服務</value>
@@ -187,7 +187,7 @@
<value>順時針</value>
</data>
<data name="AuraColorCycle" xml:space="preserve">
<value>彩循環</value>
<value>彩循環</value>
</data>
<data name="AuraComet" xml:space="preserve">
<value>彗星</value>
@@ -244,7 +244,7 @@
<value>自動</value>
</data>
<data name="AutoRefreshTooltip" xml:space="preserve">
<value>使用電池時設定為 60Hz並在插上電源時恢復</value>
<value>電池模式時自動60Hz</value>
</data>
<data name="Awake" xml:space="preserve">
<value>喚醒時</value>
@@ -271,7 +271,7 @@
<value>閒置時關閉燈光(充電模式)</value>
</data>
<data name="Balanced" xml:space="preserve">
<value>效能</value>
<value>平衡模式</value>
</data>
<data name="BatteryCharge" xml:space="preserve">
<value>充電</value>
@@ -295,7 +295,7 @@
<value>次要</value>
</data>
<data name="BiosAndDriverUpdates" xml:space="preserve">
<value>BIOS 與驅動程式更新</value>
<value>BIOS與驅動程式更新</value>
</data>
<data name="Boot" xml:space="preserve">
<value>開機時</value>
@@ -346,13 +346,13 @@
<value>停用控制器</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>蓋上螢幕時取消</value>
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve">
<value>禁用螢幕加速OD</value>
</data>
<data name="Discharging" xml:space="preserve">
<value>使用電池中</value>
<value>正在釋放電力</value>
</data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>下載色彩設定檔</value>
@@ -370,7 +370,7 @@
<value>節能模式</value>
</data>
<data name="EnableGPUOnShutdown" xml:space="preserve">
<value>關機前啟動顯卡(解決切換顯卡節能模式&amp;混合輸出和亮度的某些問題)</value>
<value>關機前啟動顯卡(解決切換顯卡節能模式&amp;標準模式和亮度的某些問題)</value>
</data>
<data name="EnableOptimusText" xml:space="preserve">
<value>「Nvidia控制面板」中的顯示模式未設置為自動切換時透過G-Helper的節能模式禁用獨顯可能導致螢幕亮度控制出現問題直到下次重新開機後。
@@ -405,10 +405,10 @@
<value>GPU 風扇設定檔</value>
</data>
<data name="FanProfileMid" xml:space="preserve">
<value>風扇設定檔</value>
<value>中等風扇設</value>
</data>
<data name="FanProfiles" xml:space="preserve">
<value>風扇設定檔</value>
<value>風扇設</value>
</data>
<data name="FansAndPower" xml:space="preserve">
<value>風扇和電源</value>
@@ -417,13 +417,13 @@
<value>風扇</value>
</data>
<data name="FansPower" xml:space="preserve">
<value>自定義</value>
<value>自定義設置</value>
</data>
<data name="FlickerFreeDimming" xml:space="preserve">
<value>不閃屏調光(Flicker-free Dimming)</value>
</data>
<data name="FnLock" xml:space="preserve">
<value>使用 Fn + F1~F12 功能時無須按下Fn鍵</value>
<value>使用Fn+F1~F12功能時按下Fn鍵</value>
</data>
<data name="FnLockOff" xml:space="preserve">
<value>Fn鎖定解除</value>
@@ -432,7 +432,7 @@
<value>Fn鎖定</value>
</data>
<data name="GPUBoost" xml:space="preserve">
<value>動態加速 (Dynamic Boost)</value>
<value>動態加速</value>
</data>
<data name="GPUChanging" xml:space="preserve">
<value>切換中...</value>
@@ -489,7 +489,7 @@
<value>背光</value>
</data>
<data name="LaptopKeyboard" xml:space="preserve">
<value>鍵盤背光</value>
<value>鍵盤背光:</value>
</data>
<data name="LaptopScreen" xml:space="preserve">
<value>螢幕顯示</value>
@@ -621,13 +621,13 @@
<value>開啟G-Helper視窗</value>
</data>
<data name="Optimized" xml:space="preserve">
<value>自動調節</value>
<value>自動模式</value>
</data>
<data name="OptimizedGPUTooltip" xml:space="preserve">
<value>使用電池切換到,插入電源時切換到標準模式</value>
<value>使用電池切換到節能模式,插入電源時切換到標準模式</value>
</data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>自動調節模式下使用USB-C充電時持續關閉獨顯</value>
<value>自動模式下使用USB-C充電時持續關閉獨顯</value>
</data>
<data name="Other" xml:space="preserve">
<value>其他</value>
@@ -636,7 +636,7 @@
<value>OD</value>
</data>
<data name="PerformanceMode" xml:space="preserve">
<value>性能模式</value>
<value>性能模式:</value>
</data>
<data name="Peripherals" xml:space="preserve">
<value>週邊設備</value>
@@ -648,7 +648,7 @@
<value>播放/暫停</value>
</data>
<data name="PollingRate" xml:space="preserve">
<value>輪率</value>
<value>輪率</value>
</data>
<data name="PowerLimits" xml:space="preserve">
<value>功率限制</value>
@@ -669,10 +669,10 @@
<value>重設</value>
</data>
<data name="RestartGPU" xml:space="preserve">
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓 G-Helper 於裝置管理員重新啟動獨顯? (請自行評估風險)</value>
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓G-Helper重新啟動獨顯? * 請自行評估風險</value>
</data>
<data name="RPM" xml:space="preserve">
<value>RPM</value>
<value>每分鐘轉數</value>
</data>
<data name="RSDeadzones" xml:space="preserve">
<value>右搖桿死區</value>
@@ -681,7 +681,7 @@
<value>右扳機(RT)死區</value>
</data>
<data name="RunOnStartup" xml:space="preserve">
<value>開機自動執行</value>
<value>開機自動開啟</value>
</data>
<data name="ScalingQuality" xml:space="preserve">
<value>縮放品質</value>
@@ -696,19 +696,19 @@
<value>關機時</value>
</data>
<data name="Silent" xml:space="preserve">
<value>靜音</value>
<value>安靜模式</value>
</data>
<data name="Sleep" xml:space="preserve">
<value>睡眠時</value>
</data>
<data name="StandardGPUTooltip" xml:space="preserve">
<value>自動切換獨立顯卡以及整合式顯卡 (MS-Hybrid)</value>
<value>標準模式會啟用獨顯</value>
</data>
<data name="StandardMode" xml:space="preserve">
<value>標準模式</value>
</data>
<data name="Start" xml:space="preserve">
<value>啟動</value>
<value>開始</value>
</data>
<data name="StartingServices" xml:space="preserve">
<value>正在啟動服務</value>
@@ -726,28 +726,22 @@
<value>正在停止服務</value>
</data>
<data name="ToggleAura" xml:space="preserve">
<value>切換 Aura 模式</value>
<value>切換Aura</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>翻蓋模式 (蓋上筆電但有外接螢幕時,系統仍會持續運行)</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>切換 Fn-Lock</value>
<value>免按Fn鍵使用Fn+F1~F12功能</value>
</data>
<data name="ToggleMiniled" xml:space="preserve">
<value>切換 mini-LED (若有支援)</value>
<value>切換Miniled(若有支援)</value>
</data>
<data name="ToggleScreen" xml:space="preserve">
<value>切換螢幕</value>
</data>
<data name="ToggleTouchscreen" xml:space="preserve">
<value>切換螢幕觸控</value>
</data>
<data name="Touchscreen" xml:space="preserve">
<value>觸控螢幕</value>
</data>
<data name="Turbo" xml:space="preserve">
<value>極速</value>
<value>極速模式</value>
</data>
<data name="TurnedOff" xml:space="preserve">
<value>已關閉</value>
@@ -756,10 +750,10 @@
<value>電池模式時關閉</value>
</data>
<data name="UltimateGPUTooltip" xml:space="preserve">
<value>開啟獨顯輸出獲得最佳幀數</value>
<value>開啟獨顯直連獲得最佳幀數</value>
</data>
<data name="UltimateMode" xml:space="preserve">
<value>獨顯輸出</value>
<value>獨顯直連</value>
</data>
<data name="UndervoltingRisky" xml:space="preserve">
<value>降壓是一項實驗性且有風險的功能,若設定的值過低,可能造成系統不穩定甚至無預警關機,建議可先嘗試較小的降壓數值,並點擊"套用"來測試適合你的使用狀況</value>
@@ -800,22 +794,4 @@
<data name="Zoom" xml:space="preserve">
<value>縮放</value>
</data>
<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.

Before

Width:  |  Height:  |  Size: 723 B

View File

@@ -41,7 +41,6 @@ namespace Ryzen
//RAPHAEL/DRAGON RANGE - 10
//MENDOCINO - 11
//HAWKPOINT - 12
//STRIXPOINT - 13
public static void Init()
{
@@ -78,7 +77,7 @@ namespace Ryzen
FAMID = 1; //PICASSO
}
if (CPUModel.Contains("Family " + Convert.ToString(23)) && CPUModel.Contains("Model " + Convert.ToString(32)))
if (CPUModel.Contains("Model " + Convert.ToString(32)))
{
FAMID = 2; //DALI
}
@@ -128,11 +127,6 @@ namespace Ryzen
FAMID = 12; //HAWKPOINT
}
if (CPUModel.Contains("Family " + Convert.ToString(26)) && CPUModel.Contains("Model " + Convert.ToString(36)))
{
FAMID = 13; //STRIXPOINT
}
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
SetAddresses();
@@ -147,7 +141,7 @@ namespace Ryzen
public static bool IsSupportedUV()
{
if (CPUName.Length == 0) Init();
return CPUName.Contains("Ryzen AI 9") || CPUName.Contains("Ryzen 9") || CPUName.Contains("4900H") || CPUName.Contains("4800H") || CPUName.Contains("4600H");
return CPUName.Contains("Ryzen 9") || CPUName.Contains("4900H") || CPUName.Contains("4800H") || CPUName.Contains("4600H");
}
public static bool IsSupportedUViGPU()
@@ -244,16 +238,6 @@ namespace Ryzen
Smu.PSMU_ADDR_RSP = 0x3B10a80;
Smu.PSMU_ADDR_ARG = 0x3B10a88;
}
else if (FAMID == 13)
{
Smu.MP1_ADDR_MSG = 0x3B10928;
Smu.MP1_ADDR_RSP = 0x3B10978;
Smu.MP1_ADDR_ARG = 0x3B10998;
Smu.PSMU_ADDR_MSG = 0x3B10a20;
Smu.PSMU_ADDR_RSP = 0x3B10a80;
Smu.PSMU_ADDR_ARG = 0x3B10a88;
}
else if (FAMID == 4 || FAMID == 6)
{
Smu.MP1_ADDR_MSG = 0x3B10530;

View File

@@ -22,7 +22,6 @@ namespace Ryzen
//RAPHAEL/DRAGON RANGE - 10
//MENDOCINO - 11
//HAWKPOINT - 12
//STRIXPOINT - 13
public static Smu RyzenAccess = new Smu(false);
public static int FAMID = RyzenControl.FAMID;
@@ -50,8 +49,7 @@ namespace Ryzen
case 9:
case 11:
case 12:
case 13:
result = RyzenAccess.SendMp1(0x14, ref Args);
RyzenAccess.SendMp1(0x14, ref Args);
result = RyzenAccess.SendPsmu(0x31, ref Args);
break;
default:
@@ -63,6 +61,32 @@ namespace Ryzen
}
//STAMP2 Limit
public static Smu.Status? set_stapm2_limit(uint value)
{
RyzenAccess.Initialize();
uint[] Args = new uint[6];
Args[0] = value;
Smu.Status? result = null;
switch (FAMID)
{
case 3:
case 5:
case 7:
case 8:
case 9:
case 11:
case 12:
result = RyzenAccess.SendPsmu(0x31, ref Args);
break;
default:
break;
}
RyzenAccess.Deinitialize();
return result;
}
//Fast Limit
public static Smu.Status? set_fast_limit(uint value)
{
@@ -85,9 +109,7 @@ namespace Ryzen
case 9:
case 11:
case 12:
case 13:
result = RyzenAccess.SendMp1(0x15, ref Args);
result = RyzenAccess.SendPsmu(0x32, ref Args);
break;
default:
break;
@@ -118,10 +140,7 @@ namespace Ryzen
case 9:
case 11:
case 12:
case 13:
result = RyzenAccess.SendMp1(0x16, ref Args);
result = RyzenAccess.SendPsmu(0x33, ref Args);
result = RyzenAccess.SendPsmu(0x34, ref Args);
break;
default:
break;
@@ -157,12 +176,11 @@ namespace Ryzen
case 9:
case 11:
case 12:
case 13:
result = RyzenAccess.SendMp1(0x19, ref Args);
break;
case 4:
case 6:
result = RyzenAccess.SendMp1(0x23, ref Args);
RyzenAccess.SendMp1(0x23, ref Args);
result = RyzenAccess.SendPsmu(0x56, ref Args);
break;
case 10:
@@ -176,6 +194,37 @@ namespace Ryzen
return result;
}
//Skin Temp limit
public static Smu.Status? set_apu_skin_temp_limit(uint value)
{
RyzenAccess.Initialize();
uint[] Args = new uint[6];
Args[0] = value;
Smu.Status? result = null;
switch (FAMID)
{
case 5:
case 8:
case 9:
case 11:
case 12:
result = RyzenAccess.SendMp1(0x33, ref Args);
break;
case 3:
case 7:
result = RyzenAccess.SendMp1(0x38, ref Args);
break;
default:
break;
}
RyzenAccess.Deinitialize();
return result;
}
//Set All Core Curve Optimiser
public static Smu.Status? set_coall(int value)
{
@@ -192,12 +241,12 @@ namespace Ryzen
{
case 3:
case 7:
result = RyzenAccess.SendMp1(0x55, ref Args);
RyzenAccess.SendMp1(0x55, ref Args);
result = RyzenAccess.SendPsmu(0xB1, ref Args);
break;
case 4:
case 6:
result = RyzenAccess.SendMp1(0x36, ref Args);
RyzenAccess.SendMp1(0x36, ref Args);
result = RyzenAccess.SendPsmu(0xB, ref Args);
break;
case 5:
@@ -205,7 +254,6 @@ namespace Ryzen
case 9:
case 11:
case 12:
case 13:
result = RyzenAccess.SendPsmu(0x5D, ref Args);
break;
case 10:
@@ -237,7 +285,7 @@ namespace Ryzen
{
case 3:
case 7:
result = RyzenAccess.SendMp1(0x64, ref Args);
RyzenAccess.SendMp1(0x64, ref Args);
result = RyzenAccess.SendPsmu(0x57, ref Args);
break;
case 5:
@@ -245,7 +293,6 @@ namespace Ryzen
case 9:
case 11:
case 12:
case 13:
result = RyzenAccess.SendPsmu(0xb7, ref Args);
break;
default:

237
app/Settings.Designer.cs generated
View File

@@ -51,7 +51,7 @@ namespace GHelper
labelBatteryTitle = new Label();
panelFooter = new Panel();
tableButtons = new TableLayoutPanel();
buttonDonate = new RButton();
labelVersion = new Label();
buttonQuit = new RButton();
buttonUpdates = new RButton();
checkStartup = new CheckBox();
@@ -68,7 +68,6 @@ namespace GHelper
panelGPU = new Panel();
labelTipGPU = new Label();
tableAMD = new TableLayoutPanel();
buttonAutoTDP = new RButton();
buttonOverlay = new RButton();
buttonFPS = new RButton();
tableGPU = new TableLayoutPanel();
@@ -95,7 +94,6 @@ namespace GHelper
pictureScreen = new PictureBox();
labelSreen = new Label();
panelKeyboard = new Panel();
labelDynamicLighting = new Label();
tableLayoutKeyboard = new TableLayoutPanel();
buttonKeyboard = new RButton();
panelColor = new Panel();
@@ -107,7 +105,7 @@ namespace GHelper
buttonFnLock = new RButton();
pictureKeyboard = new PictureBox();
labelKeyboard = new Label();
panelStartup = new Panel();
panelVersion = new Panel();
labelCharge = new Label();
panelPeripherals = new Panel();
tableLayoutPeripherals = new TableLayoutPanel();
@@ -137,8 +135,7 @@ namespace GHelper
labelGamma = new Label();
pictureGamma = new PictureBox();
labelGammaTitle = new Label();
panelVersion = new Panel();
labelVersion = new Label();
buttonAutoTDP = new RButton();
panelMatrix.SuspendLayout();
panelMatrixAuto.SuspendLayout();
tableLayoutMatrix.SuspendLayout();
@@ -169,7 +166,7 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)pictureColor).BeginInit();
panelKeyboardTitle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureKeyboard).BeginInit();
panelStartup.SuspendLayout();
panelVersion.SuspendLayout();
panelPeripherals.SuspendLayout();
tableLayoutPeripherals.SuspendLayout();
panelPeripheralsTile.SuspendLayout();
@@ -182,7 +179,6 @@ namespace GHelper
tableVisual.SuspendLayout();
panelGammaTitle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureGamma).BeginInit();
panelVersion.SuspendLayout();
SuspendLayout();
//
// panelMatrix
@@ -271,7 +267,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);
comboMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboMatrix.FormattingEnabled = true;
comboMatrix.ItemHeight = 32;
comboMatrix.Items.AddRange(new object[] { Properties.Strings.MatrixOff, Properties.Strings.MatrixDim, Properties.Strings.MatrixMedium, Properties.Strings.MatrixBright });
@@ -286,7 +282,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);
comboMatrixRunning.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
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 });
@@ -301,7 +297,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);
comboInterval.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboInterval.FormattingEnabled = true;
comboInterval.ItemHeight = 32;
comboInterval.Location = new Point(10, 60);
@@ -358,7 +354,7 @@ namespace GHelper
// labelMatrix
//
labelMatrix.AutoSize = true;
labelMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelMatrix.Location = new Point(44, 0);
labelMatrix.Margin = new Padding(4, 0, 4, 0);
labelMatrix.Name = "labelMatrix";
@@ -374,11 +370,11 @@ namespace GHelper
panelBattery.Controls.Add(sliderBattery);
panelBattery.Controls.Add(panelBatteryTitle);
panelBattery.Dock = DockStyle.Top;
panelBattery.Location = new Point(11, 1765);
panelBattery.Location = new Point(11, 1725);
panelBattery.Margin = new Padding(0);
panelBattery.Name = "panelBattery";
panelBattery.Padding = new Padding(20, 20, 20, 0);
panelBattery.Size = new Size(827, 109);
panelBattery.Padding = new Padding(20, 20, 20, 11);
panelBattery.Size = new Size(827, 120);
panelBattery.TabIndex = 5;
//
// buttonBatteryFull
@@ -390,7 +386,7 @@ namespace GHelper
buttonBatteryFull.BorderRadius = 2;
buttonBatteryFull.FlatAppearance.BorderSize = 0;
buttonBatteryFull.FlatStyle = FlatStyle.Flat;
buttonBatteryFull.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold);
buttonBatteryFull.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold, GraphicsUnit.Point);
buttonBatteryFull.ForeColor = SystemColors.ControlDark;
buttonBatteryFull.Location = new Point(728, 67);
buttonBatteryFull.Margin = new Padding(0);
@@ -452,7 +448,7 @@ namespace GHelper
//
// labelBatteryTitle
//
labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelBatteryTitle.Location = new Point(43, 0);
labelBatteryTitle.Margin = new Padding(8, 0, 8, 0);
labelBatteryTitle.Name = "labelBatteryTitle";
@@ -466,11 +462,11 @@ namespace GHelper
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelFooter.Controls.Add(tableButtons);
panelFooter.Dock = DockStyle.Top;
panelFooter.Location = new Point(11, 1974);
panelFooter.Location = new Point(11, 1901);
panelFooter.Margin = new Padding(0);
panelFooter.Name = "panelFooter";
panelFooter.Padding = new Padding(20, 10, 20, 20);
panelFooter.Size = new Size(827, 88);
panelFooter.Padding = new Padding(20);
panelFooter.Size = new Size(827, 100);
panelFooter.TabIndex = 7;
//
// tableButtons
@@ -481,37 +477,32 @@ 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(buttonDonate, 0, 0);
tableButtons.Controls.Add(labelVersion, 0, 0);
tableButtons.Controls.Add(buttonQuit, 2, 0);
tableButtons.Controls.Add(buttonUpdates, 1, 0);
tableButtons.Dock = DockStyle.Top;
tableButtons.Location = new Point(20, 10);
tableButtons.Location = new Point(20, 20);
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, 58);
tableButtons.Size = new Size(787, 60);
tableButtons.TabIndex = 25;
//
// buttonDonate
// labelVersion
//
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;
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;
//
// buttonQuit
//
@@ -556,12 +547,10 @@ namespace GHelper
// checkStartup
//
checkStartup.AutoSize = true;
checkStartup.Dock = DockStyle.Left;
checkStartup.Location = new Point(20, 0);
checkStartup.Location = new Point(28, 11);
checkStartup.Margin = new Padding(11, 5, 11, 5);
checkStartup.Name = "checkStartup";
checkStartup.Padding = new Padding(10, 0, 0, 0);
checkStartup.Size = new Size(216, 50);
checkStartup.Size = new Size(206, 36);
checkStartup.TabIndex = 21;
checkStartup.Text = Properties.Strings.RunOnStartup;
checkStartup.UseVisualStyleBackColor = true;
@@ -720,7 +709,7 @@ namespace GHelper
//
labelPerf.AccessibleRole = AccessibleRole.Caret;
labelPerf.AutoSize = true;
labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelPerf.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Polite;
labelPerf.Location = new Point(40, 0);
labelPerf.Margin = new Padding(8, 0, 8, 0);
@@ -791,28 +780,6 @@ namespace GHelper
tableAMD.TabIndex = 24;
tableAMD.Visible = false;
//
// buttonAutoTDP
//
buttonAutoTDP.Activated = false;
buttonAutoTDP.BackColor = SystemColors.ControlLightLight;
buttonAutoTDP.BorderColor = Color.Transparent;
buttonAutoTDP.BorderRadius = 5;
buttonAutoTDP.Dock = DockStyle.Fill;
buttonAutoTDP.FlatAppearance.BorderSize = 0;
buttonAutoTDP.FlatStyle = FlatStyle.Flat;
buttonAutoTDP.ForeColor = SystemColors.ControlText;
buttonAutoTDP.Image = Properties.Resources.icons8_gauge_32;
buttonAutoTDP.ImageAlign = ContentAlignment.MiddleRight;
buttonAutoTDP.Location = new Point(528, 4);
buttonAutoTDP.Margin = new Padding(4);
buttonAutoTDP.Name = "buttonAutoTDP";
buttonAutoTDP.Secondary = false;
buttonAutoTDP.Size = new Size(255, 72);
buttonAutoTDP.TabIndex = 13;
buttonAutoTDP.Text = "AutoTDP";
buttonAutoTDP.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonAutoTDP.UseVisualStyleBackColor = false;
//
// buttonOverlay
//
buttonOverlay.Activated = false;
@@ -1044,7 +1011,7 @@ namespace GHelper
// labelGPU
//
labelGPU.AutoSize = true;
labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGPU.Location = new Point(40, 0);
labelGPU.Margin = new Padding(8, 0, 8, 0);
labelGPU.Name = "labelGPU";
@@ -1110,7 +1077,6 @@ namespace GHelper
tableScreen.Name = "tableScreen";
tableScreen.RowCount = 1;
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 80F));
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
tableScreen.Size = new Size(787, 100);
tableScreen.TabIndex = 23;
//
@@ -1250,7 +1216,7 @@ namespace GHelper
// labelSreen
//
labelSreen.AutoSize = true;
labelSreen.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelSreen.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelSreen.Location = new Point(40, 0);
labelSreen.Margin = new Padding(4, 0, 4, 0);
labelSreen.Name = "labelSreen";
@@ -1263,7 +1229,6 @@ namespace GHelper
panelKeyboard.AccessibleRole = AccessibleRole.Grouping;
panelKeyboard.AutoSize = true;
panelKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelKeyboard.Controls.Add(labelDynamicLighting);
panelKeyboard.Controls.Add(tableLayoutKeyboard);
panelKeyboard.Controls.Add(panelKeyboardTitle);
panelKeyboard.Dock = DockStyle.Top;
@@ -1271,25 +1236,10 @@ namespace GHelper
panelKeyboard.Margin = new Padding(0);
panelKeyboard.Name = "panelKeyboard";
panelKeyboard.Padding = new Padding(20);
panelKeyboard.Size = new Size(827, 172);
panelKeyboard.Size = new Size(827, 132);
panelKeyboard.TabIndex = 4;
panelKeyboard.TabStop = true;
//
// labelDynamicLighting
//
labelDynamicLighting.Cursor = Cursors.Hand;
labelDynamicLighting.Dock = DockStyle.Top;
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);
labelDynamicLighting.Name = "labelDynamicLighting";
labelDynamicLighting.Padding = new Padding(4);
labelDynamicLighting.Size = new Size(787, 40);
labelDynamicLighting.TabIndex = 43;
labelDynamicLighting.Text = "Please disable Windows > Dynamic Lighting";
labelDynamicLighting.Visible = false;
//
// tableLayoutKeyboard
//
tableLayoutKeyboard.AutoSize = true;
@@ -1396,7 +1346,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);
comboKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboKeyboard.FormattingEnabled = true;
comboKeyboard.ItemHeight = 32;
comboKeyboard.Items.AddRange(new object[] { "Static", "Breathe", "Rainbow", "Strobe" });
@@ -1428,7 +1378,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);
buttonFnLock.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold, GraphicsUnit.Point);
buttonFnLock.ForeColor = SystemColors.ControlDark;
buttonFnLock.Location = new Point(675, 0);
buttonFnLock.Margin = new Padding(0);
@@ -1453,7 +1403,7 @@ namespace GHelper
// labelKeyboard
//
labelKeyboard.AutoSize = true;
labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelKeyboard.Location = new Point(43, 0);
labelKeyboard.Margin = new Padding(4, 0, 4, 0);
labelKeyboard.Name = "labelKeyboard";
@@ -1461,27 +1411,27 @@ namespace GHelper
labelKeyboard.TabIndex = 34;
labelKeyboard.Text = "Laptop Keyboard";
//
// panelStartup
// panelVersion
//
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;
panelVersion.Controls.Add(labelCharge);
panelVersion.Controls.Add(checkStartup);
panelVersion.Dock = DockStyle.Top;
panelVersion.Location = new Point(11, 1845);
panelVersion.Margin = new Padding(4);
panelVersion.Name = "panelVersion";
panelVersion.Size = new Size(827, 56);
panelVersion.TabIndex = 6;
//
// labelCharge
//
labelCharge.Cursor = Cursors.Hand;
labelCharge.Dock = DockStyle.Right;
labelCharge.ForeColor = SystemColors.ControlDark;
labelCharge.Location = new Point(442, 0);
labelCharge.Location = new Point(366, 0);
labelCharge.Margin = new Padding(0);
labelCharge.Name = "labelCharge";
labelCharge.Size = new Size(365, 50);
labelCharge.Padding = new Padding(0, 0, 20, 0);
labelCharge.Size = new Size(461, 56);
labelCharge.TabIndex = 40;
labelCharge.TextAlign = ContentAlignment.MiddleRight;
//
@@ -1492,7 +1442,7 @@ namespace GHelper
panelPeripherals.Controls.Add(tableLayoutPeripherals);
panelPeripherals.Controls.Add(panelPeripheralsTile);
panelPeripherals.Dock = DockStyle.Top;
panelPeripherals.Location = new Point(11, 1566);
panelPeripherals.Location = new Point(11, 1526);
panelPeripherals.Margin = new Padding(0);
panelPeripherals.Name = "panelPeripherals";
panelPeripherals.Padding = new Padding(20, 20, 20, 11);
@@ -1531,7 +1481,7 @@ namespace GHelper
buttonPeripheral3.Dock = DockStyle.Top;
buttonPeripheral3.FlatAppearance.BorderSize = 0;
buttonPeripheral3.FlatStyle = FlatStyle.Flat;
buttonPeripheral3.Font = new Font("Segoe UI", 8F);
buttonPeripheral3.Font = new Font("Segoe UI", 8F, FontStyle.Regular, GraphicsUnit.Point);
buttonPeripheral3.ForeColor = SystemColors.ControlText;
buttonPeripheral3.Image = Properties.Resources.icons8_maus_48;
buttonPeripheral3.ImageAlign = ContentAlignment.MiddleLeft;
@@ -1555,7 +1505,7 @@ namespace GHelper
buttonPeripheral2.Dock = DockStyle.Top;
buttonPeripheral2.FlatAppearance.BorderSize = 0;
buttonPeripheral2.FlatStyle = FlatStyle.Flat;
buttonPeripheral2.Font = new Font("Segoe UI", 8F);
buttonPeripheral2.Font = new Font("Segoe UI", 8F, FontStyle.Regular, GraphicsUnit.Point);
buttonPeripheral2.ForeColor = SystemColors.ControlText;
buttonPeripheral2.Image = Properties.Resources.icons8_maus_48;
buttonPeripheral2.ImageAlign = ContentAlignment.MiddleLeft;
@@ -1579,7 +1529,7 @@ namespace GHelper
buttonPeripheral1.Dock = DockStyle.Top;
buttonPeripheral1.FlatAppearance.BorderSize = 0;
buttonPeripheral1.FlatStyle = FlatStyle.Flat;
buttonPeripheral1.Font = new Font("Segoe UI", 8F);
buttonPeripheral1.Font = new Font("Segoe UI", 8F, FontStyle.Regular, GraphicsUnit.Point);
buttonPeripheral1.ForeColor = SystemColors.ControlText;
buttonPeripheral1.Image = Properties.Resources.icons8_maus_48;
buttonPeripheral1.ImageAlign = ContentAlignment.MiddleLeft;
@@ -1618,7 +1568,7 @@ namespace GHelper
// labelPeripherals
//
labelPeripherals.AutoSize = true;
labelPeripherals.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelPeripherals.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelPeripherals.Location = new Point(44, 0);
labelPeripherals.Margin = new Padding(8, 0, 8, 0);
labelPeripherals.Name = "labelPeripherals";
@@ -1754,7 +1704,7 @@ namespace GHelper
// labelAlly
//
labelAlly.AutoSize = true;
labelAlly.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelAlly.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelAlly.Location = new Point(43, 0);
labelAlly.Margin = new Padding(4, 0, 4, 0);
labelAlly.Name = "labelAlly";
@@ -1844,7 +1794,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);
comboVisual.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboVisual.FormattingEnabled = true;
comboVisual.ItemHeight = 32;
comboVisual.Location = new Point(10, 8);
@@ -1860,7 +1810,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);
comboColorTemp.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboColorTemp.FormattingEnabled = true;
comboColorTemp.ItemHeight = 32;
comboColorTemp.Location = new Point(530, 8);
@@ -1876,7 +1826,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);
comboGamut.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboGamut.FormattingEnabled = true;
comboGamut.ItemHeight = 32;
comboGamut.Location = new Point(10, 67);
@@ -1937,7 +1887,7 @@ namespace GHelper
//
// labelGammaTitle
//
labelGammaTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelGammaTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGammaTitle.Location = new Point(43, 0);
labelGammaTitle.Margin = new Padding(4, 0, 4, 0);
labelGammaTitle.Name = "labelGammaTitle";
@@ -1945,33 +1895,27 @@ namespace GHelper
labelGammaTitle.TabIndex = 37;
labelGammaTitle.Text = "Flicker-free Dimming";
//
// panelVersion
// buttonAutoTDP
//
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;
buttonAutoTDP.Activated = false;
buttonAutoTDP.BackColor = SystemColors.ControlLightLight;
buttonAutoTDP.BorderColor = Color.Transparent;
buttonAutoTDP.BorderRadius = 5;
buttonAutoTDP.Dock = DockStyle.Fill;
buttonAutoTDP.FlatAppearance.BorderSize = 0;
buttonAutoTDP.FlatStyle = FlatStyle.Flat;
buttonAutoTDP.ForeColor = SystemColors.ControlText;
buttonAutoTDP.Image = Properties.Resources.icons8_gauge_32;
buttonAutoTDP.ImageAlign = ContentAlignment.MiddleRight;
buttonAutoTDP.Location = new Point(528, 4);
buttonAutoTDP.Margin = new Padding(4);
buttonAutoTDP.Name = "buttonAutoTDP";
buttonAutoTDP.Secondary = false;
buttonAutoTDP.Size = new Size(255, 72);
buttonAutoTDP.TabIndex = 13;
buttonAutoTDP.Text = "AutoTDP";
buttonAutoTDP.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonAutoTDP.UseVisualStyleBackColor = false;
//
// SettingsForm
//
@@ -1979,10 +1923,9 @@ namespace GHelper
AutoScaleMode = AutoScaleMode.Dpi;
AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(849, 2075);
ClientSize = new Size(849, 2045);
Controls.Add(panelFooter);
Controls.Add(panelVersion);
Controls.Add(panelStartup);
Controls.Add(panelBattery);
Controls.Add(panelPeripherals);
Controls.Add(panelKeyboard);
@@ -2047,8 +1990,8 @@ namespace GHelper
panelKeyboardTitle.ResumeLayout(false);
panelKeyboardTitle.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureKeyboard).EndInit();
panelStartup.ResumeLayout(false);
panelStartup.PerformLayout();
panelVersion.ResumeLayout(false);
panelVersion.PerformLayout();
panelPeripherals.ResumeLayout(false);
panelPeripherals.PerformLayout();
tableLayoutPeripherals.ResumeLayout(false);
@@ -2066,7 +2009,6 @@ namespace GHelper
tableVisual.ResumeLayout(false);
panelGammaTitle.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)pictureGamma).EndInit();
panelVersion.ResumeLayout(false);
ResumeLayout(false);
PerformLayout();
}
@@ -2133,7 +2075,8 @@ namespace GHelper
private Label labelBattery;
private PictureBox pictureBattery;
private Label labelBatteryTitle;
private Panel panelStartup;
private Panel panelVersion;
private Label labelVersion;
private RButton buttonStopGPU;
private TableLayoutPanel tableButtons;
private Panel panelPeripherals;
@@ -2177,9 +2120,5 @@ namespace GHelper
private Label labelVisual;
private RButton buttonFHD;
private RButton buttonAutoTDP;
private Label labelDynamicLighting;
private Panel panelVersion;
private Label labelVersion;
private RButton buttonDonate;
}
}

View File

@@ -24,7 +24,7 @@ namespace GHelper
public GPUModeControl gpuControl;
public AllyControl allyControl;
ScreenControl screenControl = new ScreenControl();
ScreenControl screenControl = new ScreenControl();
AutoUpdateControl updateControl;
AsusMouseSettings? mouseSettings;
@@ -93,7 +93,6 @@ 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;
@@ -225,7 +224,6 @@ namespace GHelper
sliderBattery.MouseUp += SliderBattery_MouseUp;
sliderBattery.KeyUp += SliderBattery_KeyUp;
sliderBattery.ValueChanged += SliderBattery_ValueChanged;
Program.trayIcon.MouseMove += TrayIcon_MouseMove;
@@ -235,7 +233,6 @@ namespace GHelper
labelCharge.MouseEnter += PanelBattery_MouseEnter;
labelCharge.MouseLeave += PanelBattery_MouseLeave;
labelBattery.Click += LabelBattery_Click;
buttonPeripheral1.Click += ButtonPeripheral_Click;
buttonPeripheral2.Click += ButtonPeripheral_Click;
@@ -254,7 +251,7 @@ namespace GHelper
buttonFPS.Click += ButtonFPS_Click;
buttonOverlay.Click += ButtonOverlay_Click;
buttonAutoTDP.Click += ButtonAutoTDP_Click;
buttonAutoTDP.BorderColor = colorTurbo;
@@ -271,48 +268,15 @@ 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 LabelBattery_Click(object? sender, EventArgs e)
{
HardwareControl.chargeWatt = !HardwareControl.chargeWatt;
RefreshSensors(true);
}
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();
}
private void ButtonFHD_Click(object? sender, EventArgs e)
{
screenControl.ToogleFHD();
}
private void SliderBattery_ValueChanged(object? sender, EventArgs e)
{
VisualiseBatteryTitle(sliderBattery.Value);
}
private void SliderBattery_KeyUp(object? sender, KeyEventArgs e)
{
BatteryControl.SetBatteryChargeLimit(sliderBattery.Value);
@@ -355,8 +319,7 @@ namespace GHelper
sliderGamma.ValueChanged += SliderGamma_ValueChanged;
sliderGamma.MouseUp += SliderGamma_ValueChanged;
}
else
} else
{
labelGammaTitle.Text = Properties.Strings.VisualMode;
}
@@ -368,8 +331,7 @@ namespace GHelper
{
tableVisual.ColumnCount = 3;
buttonInstallColor.Visible = false;
}
else
} else
{
// If it's possible to retrieve color profiles
if (ColorProfileHelper.ProfileExists())
@@ -429,7 +391,7 @@ namespace GHelper
public void CycleVisualMode()
{
if (comboVisual.Items.Count < 1) return;
if (comboVisual.Items.Count < 1) return ;
if (comboVisual.SelectedIndex < comboVisual.Items.Count - 1)
comboVisual.SelectedIndex += 1;
@@ -447,11 +409,14 @@ namespace GHelper
private void ComboGamut_SelectedValueChanged(object? sender, EventArgs e)
{
AppConfig.Set("gamut", (int)comboGamut.SelectedValue);
VisualControl.SetGamut((int)comboGamut.SelectedValue);
}
private void ComboVisual_SelectedValueChanged(object? sender, EventArgs e)
{
AppConfig.Set("visual", (int)comboVisual.SelectedValue);
AppConfig.Set("color_temp", (int)comboColorTemp.SelectedValue);
VisualControl.SetVisual((SplendidCommand)comboVisual.SelectedValue, (int)comboColorTemp.SelectedValue);
}
@@ -460,20 +425,12 @@ namespace GHelper
Invoke(delegate
{
sliderGammaIgnore = true;
sliderGamma.Value = VisualControl.GetBrightness();
sliderGamma.Value = AppConfig.Get("brightness", 100);
labelGamma.Text = sliderGamma.Value + "%";
sliderGammaIgnore = false;
});
}
public void VisualiseGamut()
{
Invoke(delegate
{
if (comboGamut.Items.Count > 0) comboGamut.SelectedIndex = 0;
});
}
private void SliderGamma_ValueChanged(object? sender, EventArgs e)
{
if (sliderGammaIgnore) return;
@@ -697,7 +654,7 @@ namespace GHelper
break;
case 1:
Logger.WriteLine("Monitor Power On");
if (!Program.SetAutoModes()) BatteryControl.AutoBattery();
Program.SetAutoModes();
break;
case 2:
Logger.WriteLine("Monitor Dimmed");
@@ -840,7 +797,7 @@ namespace GHelper
private void ButtonFHD_MouseHover(object? sender, EventArgs e)
{
labelTipScreen.Text = "Switch to " + ((buttonFHD.Text == "FHD") ? "UHD" : "FHD") + " Mode";
labelTipScreen.Text = "Switch to "+ ((buttonFHD.Text == "FHD") ? "UHD" : "FHD") + " Mode";
}
private void Button120Hz_MouseHover(object? sender, EventArgs e)
@@ -1117,26 +1074,21 @@ namespace GHelper
});
}
private void _VisualiseAura()
{
pictureColor.BackColor = Aura.Color1;
pictureColor2.BackColor = Aura.Color2;
pictureColor2.Visible = Aura.HasSecondColor();
if (AppConfig.IsDynamicLighting())
{
labelDynamicLighting.Visible = DynamicLightingHelper.IsEnabled();
labelDynamicLighting.ForeColor = colorStandard;
this.OnResize(null);
}
}
public void VisualiseAura()
{
if (InvokeRequired)
Invoke(_VisualiseAura);
Invoke(delegate
{
pictureColor.BackColor = Aura.Color1;
pictureColor2.BackColor = Aura.Color2;
pictureColor2.Visible = Aura.HasSecondColor();
});
else
_VisualiseAura();
{
pictureColor.BackColor = Aura.Color1;
pictureColor2.BackColor = Aura.Color2;
pictureColor2.Visible = Aura.HasSecondColor();
}
}
public void InitMatrix()
@@ -1279,7 +1231,6 @@ namespace GHelper
else if (miniled2 >= 0)
{
buttonMiniled.Enabled = !hdr;
if (hdr) miniled2 = 1; // Show HDR as Multizone Strong
switch (miniled2)
{
@@ -1297,9 +1248,9 @@ namespace GHelper
break;
// Multizone Off
case 2:
buttonMiniled.Text = Properties.Strings.OneZone;
buttonMiniled.Text = hdr ? Properties.Strings.Multizone : Properties.Strings.OneZone;
buttonMiniled.BorderColor = colorStandard;
buttonMiniled.Activated = false;
buttonMiniled.Activated = hdr;
break;
}
}
@@ -1317,8 +1268,7 @@ namespace GHelper
labelVisual.Width = tableVisual.Width;
labelVisual.Height = tableVisual.Height;
labelVisual.Visible = true;
}
else
} else
{
labelVisual.Visible = false;
}
@@ -1345,8 +1295,6 @@ namespace GHelper
if (updatesForm != null && updatesForm.Text != "") updatesForm.Close();
if (matrixForm != null && matrixForm.Text != "") matrixForm.Close();
if (handheldForm != null && handheldForm.Text != "") handheldForm.Close();
if (mouseSettings != null && mouseSettings.Text != "") mouseSettings.Close();
}
/// <summary>
@@ -1427,9 +1375,7 @@ namespace GHelper
cpuTemp = ": " + Math.Round((decimal)HardwareControl.cpuTemp).ToString() + "°C";
if (HardwareControl.batteryCapacity > 0)
{
charge = Properties.Strings.BatteryCharge + ": " + HardwareControl.batteryCharge;
}
charge = Properties.Strings.BatteryCharge + ": " + Math.Round(HardwareControl.batteryCapacity, 1) + "% ";
if (HardwareControl.batteryRate < 0)
battery = Properties.Strings.Discharging + ": " + Math.Round(-(decimal)HardwareControl.batteryRate, 1).ToString() + "W";
@@ -1766,14 +1712,9 @@ namespace GHelper
but.BackColor = but.Enabled ? Color.FromArgb(255, but.BackColor) : Color.FromArgb(100, but.BackColor);
}
public void VisualiseBatteryTitle(int limit)
{
labelBatteryTitle.Text = Properties.Strings.BatteryChargeLimit + ": " + limit.ToString() + "%";
}
public void VisualiseBattery(int limit)
{
VisualiseBatteryTitle(limit);
labelBatteryTitle.Text = Properties.Strings.BatteryChargeLimit + ": " + limit.ToString() + "%";
sliderBattery.Value = limit;
sliderBattery.AccessibleName = Properties.Strings.BatteryChargeLimit + ": " + limit.ToString() + "%";

View File

@@ -1,141 +0,0 @@
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,16 +52,6 @@ namespace GHelper.UI
}
}
private bool badge = false;
public bool Badge
{
get { return badge; }
set
{
badge = value;
}
}
public RButton()
{
DoubleBuffered = true;
@@ -109,15 +99,6 @@ 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, 0x1b4c };
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6, 0x1abe };
static HidStream? auraStream;

View File

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

View File

@@ -7,16 +7,15 @@ 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).Where(device => deviceIds.Contains(device.ProductID) && device.CanOpen && device.GetMaxFeatureReportLength() >= 300).FirstOrDefault();
HidDevice device = loader.GetDevices(ASUS_ID, XGM_ID).Where(device => device.CanOpen && device.GetMaxFeatureReportLength() >= 300).FirstOrDefault();
if (device is null)
{

View File

@@ -30,7 +30,6 @@ namespace GHelper
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
tableBios = new TableLayoutPanel();
labelBIOS = new Label();
pictureBios = new PictureBox();
@@ -48,7 +47,6 @@ namespace GHelper
labelLegendGray = new Label();
labelLegendRed = new Label();
labelLegend = new Label();
toolTip = new ToolTip(components);
((System.ComponentModel.ISupportInitialize)pictureBios).BeginInit();
panelBiosTitle.SuspendLayout();
panelBios.SuspendLayout();
@@ -78,7 +76,7 @@ namespace GHelper
// labelBIOS
//
labelBIOS.AutoSize = true;
labelBIOS.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelBIOS.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelBIOS.Location = new Point(68, 23);
labelBIOS.Margin = new Padding(4, 0, 4, 0);
labelBIOS.Name = "labelBIOS";
@@ -113,7 +111,7 @@ namespace GHelper
// labelUpdates
//
labelUpdates.Anchor = AnchorStyles.Top | AnchorStyles.Right;
labelUpdates.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelUpdates.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelUpdates.Location = new Point(864, 19);
labelUpdates.Name = "labelUpdates";
labelUpdates.Size = new Size(302, 32);
@@ -125,7 +123,6 @@ 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;
@@ -193,7 +190,7 @@ namespace GHelper
// labelDrivers
//
labelDrivers.AutoSize = true;
labelDrivers.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelDrivers.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelDrivers.Location = new Point(68, 6);
labelDrivers.Margin = new Padding(4, 0, 4, 0);
labelDrivers.Name = "labelDrivers";
@@ -281,7 +278,7 @@ namespace GHelper
//
labelLegend.AutoSize = true;
labelLegend.Dock = DockStyle.Top;
labelLegend.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
labelLegend.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelLegend.Location = new Point(20, 10);
labelLegend.Margin = new Padding(10);
labelLegend.Name = "labelLegend";
@@ -342,6 +339,5 @@ namespace GHelper
private Label labelLegendRed;
private Label labelLegendGray;
private Label labelLegendGreen;
private ToolTip toolTip;
}
}

View File

@@ -49,11 +49,6 @@ 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;
@@ -65,16 +60,14 @@ namespace GHelper
ClearTable(tableBios);
ClearTable(tableDrivers);
string rogParam = AppConfig.IsROG() ? "&systemCode=rog" : "";
Task.Run(async () =>
{
DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDBIOS?website=global&model={model}&cpu={model}{rogParam}", 1, tableBios);
DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDBIOS?website=global&model={model}&cpu={model}", 1, tableBios);
});
Task.Run(async () =>
{
DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDDrivers?website=global&model={model}&cpu={model}&osid=52{rogParam}", 0, tableDrivers);
DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDDrivers?website=global&model={model}&cpu={model}&osid=52", 0, tableDrivers);
});
}
@@ -160,7 +153,6 @@ namespace GHelper
table.Controls.Add(new Label { Text = driver.date, Anchor = AnchorStyles.Left, Dock = DockStyle.Fill, Padding = new Padding(5, 5, 5, 5) }, 2, table.RowCount);
table.Controls.Add(versionLabel, 3, table.RowCount);
table.RowCount++;
});
}
@@ -174,13 +166,11 @@ namespace GHelper
});
}
private void _VisualiseNewDriver(int position, int newer, string tip, TableLayoutPanel table)
private void _VisualiseNewDriver(int position, int newer, TableLayoutPanel table)
{
var label = table.GetControlFromPosition(3, position) as LinkLabel;
if (label != null)
{
toolTip.SetToolTip(label, tip);
if (newer == DRIVER_NEWER)
{
label.AccessibleName = label.AccessibleName + Properties.Strings.NewUpdates;
@@ -193,44 +183,35 @@ namespace GHelper
}
}
public void VisualiseNewDriver(int position, int newer, string tip, TableLayoutPanel table)
public void VisualiseNewDriver(int position, int newer, TableLayoutPanel table)
{
if (InvokeRequired)
{
Invoke(delegate
{
_VisualiseNewDriver(position, newer, tip, table);
_VisualiseNewDriver(position, newer, table);
});
}
else
{
_VisualiseNewDriver(position, newer, tip, table);
_VisualiseNewDriver(position, newer, table);
}
}
public void VisualiseNewCount(int updatesCount, TableLayoutPanel table)
{
if (InvokeRequired)
Invoke(delegate
{
Invoke(delegate
{
_VisualiseNewCount(updatesCount, table);
});
}
else
{
_VisualiseNewCount(updatesCount, table);
}
labelUpdates.Text = $"{Properties.Strings.NewUpdates}: {updatesCount}";
labelUpdates.ForeColor = colorTurbo;
labelUpdates.Font = new Font(labelUpdates.Font, FontStyle.Bold);
panelBios.AccessibleName = labelUpdates.Text;
});
}
public void _VisualiseNewCount(int updatesCount, TableLayoutPanel table)
{
labelUpdates.Text = $"{Properties.Strings.NewUpdates}: {updatesCount}";
labelUpdates.ForeColor = colorTurbo;
labelUpdates.Font = new Font(labelUpdates.Font, FontStyle.Bold);
panelBios.AccessibleName = labelUpdates.Text;
}
static string CleanupDeviceId(string input)
{
@@ -319,8 +300,6 @@ namespace GHelper
foreach (var driver in drivers)
{
int newer = DRIVER_NOT_FOUND;
string tip = driver.version;
if (type == 0 && driver.hardwares.ToString().Length > 0)
for (int k = 0; k < driver.hardwares.GetArrayLength(); k++)
{
@@ -331,18 +310,14 @@ namespace GHelper
{
newer = Math.Min(newer, new Version(driver.version).CompareTo(new Version(localVersion)));
Logger.WriteLine(driver.title + " " + deviceID + " " + driver.version + " vs " + localVersion + " = " + newer);
tip = "Download: " + driver.version + "\n" + "Installed: " + localVersion;
}
}
if (type == 1)
{
newer = Int32.Parse(driver.version) > Int32.Parse(bios) ? 1 : -1;
tip = "Download: " + driver.version + "\n" + "Installed: " + bios;
}
VisualiseNewDriver(count, newer, tip, table);
VisualiseNewDriver(count, newer, table);
if (newer == DRIVER_NEWER)
{

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
@@ -117,7 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

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

View File

@@ -1,181 +0,0 @@
# 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,32 +1,19 @@
# 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> <sup>[日本語はこちら](https://github.com/seerge/g-helper/blob/main/docs/README.ja-JP.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>
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, DUO, TUF Series, Strix or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally or Ally X 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 / Scar Series, ProArt, Vivobook, Zenbook, ROG Ally 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**
<table>
<tr>
<td><b>Support Project</b></td>
<td >
<a href="https://bit.ly/4c0ZWs9"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/paypal-eur.png" height="36" alt="PayPal EUR"></a>&nbsp;
<a href="https://bit.ly/4aGTyW8"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/paypal-usd.png" height="36" alt="PayPal USD"></a>&nbsp;
<a href="https://buy.stripe.com/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)
- [Setup and Requirements](https://github.com/seerge/g-helper/wiki/Requirements)
- [Troubleshooting](https://github.com/seerge/g-helper/wiki/Troubleshooting)
- [Power User Settings](https://github.com/seerge/g-helper/wiki/Power-user-settings)
### Support project : [:euro: Paypal EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [💵 Paypal USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) | [🪙 Stripe](https://buy.stripe.com/00gaFJ9Lf79v7WobII)
[![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)
@@ -36,8 +23,8 @@ Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13
| [Josh Cravey](https://www.youtube.com/watch?v=hqe-PjuE-K8) | [cbutters Tech](https://www.youtube.com/watch?v=6aVdwJKZSSc) |
## 📰 Articles
1. https://www.digitaltrends.com/computing/g-helper-armoury-crate-alternative/
2. https://binaryfork.com/ghelper-armoury-crate-alternative-10216/
1. https://binaryfork.com/ghelper-armoury-crate-alternative-10216/
2. https://www.digitaltrends.com/computing/g-helper-armoury-crate-alternative/
## :gift: Advantages
@@ -57,7 +44,7 @@ Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13
4. Custom fan curve editor, power limits and turbo boost selection for every performance mode
5. Anime Matrix or Slash Lighting control including animated GIFs, clock and Audio visualizer
6. Backlight animation modes and colors
7. Hotkey handling
7. Custom hotkeys (M-keys, FN+X keys)
8. Monitor CPU and GPU temperature, fan speeds and battery status
9. Battery charge limit to preserve battery health
10. NVidia GPU overclocking and undervolting
@@ -105,25 +92,18 @@ Each BIOS mode is paired with matching Windows Power Mode. You can adjust this s
- ROG Chakram X (P708)
- ROG Chakram Core (P511)
- ROG Gladius II and Gladius II Origin (P502 and P504)
- ROG Gladius II Wireless
- ROG Gladius III
- ROG Gladius III Wireless
- ROG Harpe Ace Aim Lab Edition
- ROG Keris 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 Spatha
- 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 (!).
@@ -135,7 +115,6 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
- ``Ctrl + M1 / M2`` - Screen brightness Down / Up
- ``Shift + M1 / M2`` - Backlight brightness Down / Up
- ``Fn + C`` - Fn-Lock
- ``Fn + Ctrl + F7 / F8`` - Flicker-free dimming Down / Up
- ``Fn + Shift + F7 / F8`` - Matrix / Slash Lighting brightness Down / Up
- ``Fn + Shift + F7 / F8`` - Screenpad brightness Down / Up
- ``Ctrl + Shift + F20`` - Mute Microphone
@@ -157,6 +136,13 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
- ``M + X`` - Screenshot
- ``M + Right Stick Click`` - Controller Mode
------------------
#### If you like the app you can make a Donation
| [Paypal in EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [Paypal in USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) |
| ------------------------------------------ | ----------------------------------------------- |
| [![QR Code](https://user-images.githubusercontent.com/5920850/233658717-0441494d-fede-4a2c-b4f2-4b16a184a69a.png)](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [![QR Code](https://github-production-user-asset-6210df.s3.amazonaws.com/5920850/239492811-b487e89a-3df6-42ea-bdb8-24c455ab2310.png)](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) |
------------------
### 🔖 Important Notice
@@ -177,6 +163,6 @@ The role of G-Helper for your laptop is similar to the role of a remote control
- [AsusCtl](https://gitlab.com/asus-linux/asusctl) for inspiration and some reverse engineering
### Disclaimers
"Asus", "ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
"ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
THE SOFTWARE IS PROVIDED “AS IS” AND WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. MISUSE OF THIS SOFTWARE COULD CAUSE SYSTEM INSTABILITY OR MALFUNCTION.

View File

@@ -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) | 中文 | [日本語](https://github.com/seerge/g-helper/blob/main/docs/README.ja-JP.md)
语言: [English](https://github.com/seerge/g-helper#readme) | 中文
适用于华硕Asus笔记本电脑的轻量级 Armoury Crate (奥创控制中心)替代品,在功能几乎相同的同时减少不必要的服务以减轻负载。
G-helper兼容所有主流型号例如 ROG 幻14、幻15、幻16、幻13、幻X、天选飞行堡垒系列、枪神/魔霸系列、创系列、灵耀系列、无畏系列、ROG Ally 等!
@@ -12,17 +12,6 @@ G-helper兼容所有主流型号例如 ROG 幻14、幻15、幻16、幻13、
# [: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.png" height="36" alt="PayPal"></a>&nbsp;
<a href="https://buy.stripe.com/bIY4hl8HbalH3G8bIJ"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/stripe.png" height="36" alt="Stripe"></a>&nbsp;
<a href="https://buy.stripe.com/bIY4hl8HbalH3G8bIJ"><img src="https://raw.githubusercontent.com/seerge/g-helper/main/docs/alipay.png" height="36" alt="Alipay"></a>
</td>
</tr>
</table>
如果你喜欢这个应用,请[给这个项目⭐️](https://github.com/seerge/g-helper) 或者向别人推荐它!
[常见问题解答(FAQ)](#常见问题解答)
@@ -31,6 +20,8 @@ G-helper兼容所有主流型号例如 ROG 幻14、幻15、幻16、幻13、
[高级用户设置](#高级用户设置)
### 通过paypal支持本项目[:euro: EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)或者[💵 USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY)
[![G-Helper Download](https://github.com/pasical/g-helper/assets/112304778/03f442b9-29e8-4e99-a095-8eaa533c995b)](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
_如果你在别的地方提到这个软件-请记得加上这个项目的网址。十分感谢。_
@@ -266,28 +257,31 @@ G-helper是一个单文件的exe文件, 而且它不会向系统中安装任何
---
### 如何开始
# 安装指南
1.下载[**最新版本**](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
2. 解压到选择的文件夹_不要直接从zip运行exe因为Windows会将其放入临时文件夹并在之后删除_
3.运行**GHelper.exe**
1. 从 [**Releases Page**](https://github.com/seerge/g-helper/releases) 下载最新版本
2. 解压到选择的文件夹
3. 运行 **GHelper.exe**
- 如果您在启动时收到来自 Windows Defender 的警告Windows 保护了您的电脑)。
单击“更多信息”->“仍然运行”。
- 如果出现“在商店中搜索应用程序”对话框,则这是 Windows Defender 的一个错误。
右键单击 GHelper.exe -> 选择“属性” -> 选择“取消阻止复选框”
### 运行要求(必须)
### 要求(强制)
- Microsoft [.NET7](https://dotnet.microsoft.com/en-us/download)。 你可能已经安装了。 如果没有的话你可以从官方网站 [立即下载](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-7.0.202-windows-x64-installer)。
- [Asus System Control Interface](https://dlcdnets.asus.com/pub/ASUS/nb/Image/CustomComponent/ASUSSystemControlInterfaceV3/ASUSSystemControlInterfaceV3.exe)。 如果你安装了或者安装过myASUS, 那么这个"驱动"应当已经安装(即使myASUS已经卸载)。 或者你可以手动下载安装。
- [Microsoft .NET 7](https://download.visualstudio.microsoft.com/download/pr/8091a826-e1c4-424a-b17b-5c10776cd3de/8957f21a279322d8fac9b542c6aba12e/dotnet-sdk-7.0.408-win-x64.exe)
- [华硕系统控制界面](https://dlcdnets.asus.com/pub/ASUS/nb/Image/CustomComponent/ASUSSystemControlInterfaceV3/ASUSSystemControlInterfaceV3.exe)
### 推荐配置(可选)
### 建议(可选)
- 推荐保持 "Asus Optimization Service" 这个windows服务的运行, 它保证基本的键盘快捷键(比如屏幕或键盘亮度)能够使用。
- 可选选项(!) 你可以通过在管理员模式下运行 [这个用于精简的.bat文件](https://raw.githubusercontent.com/seerge/g-helper/main/debloat.bat)来禁用/移除不必要的服务。如果要恢复这些服务,运行 [这个.bat文件](https://raw.githubusercontent.com/seerge/g-helper/main/bloat.bat)。
- **不建议**将该应用程序与 Armoury Crate 服务结合使用,因为它们调整相同的设置。可以[使用AC自带的卸载工具卸载](https://dlcdnets.asus.com/pub/ASUS/mb/14Utilities/Armoury_Crate_Uninstall_Tool.zip?model=armoury%20crate)。 以防万一,可以后再安装
- **不建议**运行“ASUS Smart Display Control”应用程序因为它会尝试更改刷新率并与 g-helper 争夺相同的功能。 您可以安全地卸载它。
- 如果您不打算使用 MyASUS您可以停止/禁用不必要的服务:转到应用程序中的 **Extra**,然后按 Asus 服务部分中的“停止”。 要重新启动/启用服务 - 单击“开始”。
-这个应用不建议与Armoury Crate(及其服务)同时运行, 因为它们调整相同的设置。可以[使用ASUS官方提供的卸载工具卸载](https://dlcdnets.asus.com/pub/ASUS/mb/14Utilities/Armoury_Crate_Uninstall_Tool.zip?model=armoury%20crate)Armoury Crate。以防万一,你总是可以后再安装回来
---
为Asus ROG 幻14 2022 (配置了AMD核显和独显)设计和开发。但应当可能在幻14 2021和2020款, 幻15, X FLOW, 以及其他的ROG机型上使用相关且支持的功能。
我并没有microsoft证书来为这个应用签名所以如果你在启动时看到windows defender的警告(windows 保护了你的电脑),点击“更多详情” -> 继续运行(不推荐)。作为可选选项,你也可以使用 visual studio自行编译然后运行这个项目 :)
设置文件保存在 ``%AppData%\GHelper``
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB