Compare commits

...

78 Commits
v0.98 ... v0.99

Author SHA1 Message Date
Serge
6ca5abe547 Merge pull request #816 from seerge/l10n_main
New Crowdin updates
2023-07-19 13:39:30 +02:00
Serge
cbc618c539 New translations Strings.resx (Vietnamese) 2023-07-19 13:18:58 +02:00
Serge
c8f3c99a08 New translations Strings.resx (Chinese Traditional) 2023-07-19 13:18:57 +02:00
Serge
9716bea53b New translations Strings.resx (Chinese Simplified) 2023-07-19 13:18:56 +02:00
Serge
46fec97a0a New translations Strings.resx (Ukrainian) 2023-07-19 13:18:56 +02:00
Serge
06d0ccc32f New translations Strings.resx (Turkish) 2023-07-19 13:18:55 +02:00
Serge
212598b2bc New translations Strings.resx (Portuguese) 2023-07-19 13:18:54 +02:00
Serge
bde2f7ff42 New translations Strings.resx (Polish) 2023-07-19 13:18:53 +02:00
Serge
d794efa4da New translations Strings.resx (Korean) 2023-07-19 13:18:52 +02:00
Serge
a8b2e5f75b New translations Strings.resx (Italian) 2023-07-19 13:18:51 +02:00
Serge
5b8d7a58b3 New translations Strings.resx (Hungarian) 2023-07-19 13:18:50 +02:00
Serge
fba5ad0819 New translations Strings.resx (German) 2023-07-19 13:18:49 +02:00
Serge
0aa5826cf6 New translations Strings.resx (Spanish) 2023-07-19 13:18:48 +02:00
Serge
c6d4ad32aa New translations Strings.resx (French) 2023-07-19 13:18:48 +02:00
Serge
e225c5fdf0 New translations Strings.resx (Romanian) 2023-07-19 13:18:47 +02:00
Serge
328ffcd3ae New translations Strings.resx (Lithuanian) 2023-07-19 13:18:46 +02:00
Serge
bb8d10986b Merge pull request #817 from IceStormNG/clamshell-detection
Automatic Clamshell Mode Toggle
2023-07-19 12:22:22 +02:00
Carsten Braun
595336288a Added automatic toggle for "Lid Action" when external display and power is connected to keep the laptop awake when lid is closed (known as Clamshell Mode). 2023-07-19 11:54:51 +02:00
Serge
3598f5dec8 Improved stop/disable service command 2023-07-19 11:38:06 +02:00
Serge
12da3288b3 New translations Strings.resx (Lithuanian) 2023-07-19 11:33:35 +02:00
Serge
2b8d82b58f AsusCert service fix 2023-07-19 00:31:32 +02:00
Serge
15ae5179f0 Merge pull request #813 from jadonclegg/brightnessControls
Added hotkeys for brightness control.
2023-07-19 00:19:23 +02:00
Jadon Clegg
a84e7c89e4 Merge branch 'seerge:main' into brightnessControls 2023-07-18 15:46:44 -06:00
jadon
9e91d76c97 Removed extra log call 2023-07-18 15:42:00 -06:00
jadon
97e1cd3372 Added hotkeys for using ctrl / shift + vol up / down to control screen / keyboard brightness. 2023-07-18 15:37:25 -06:00
Serge
97cb08a888 Merge branch 'main' of https://github.com/seerge/g-helper 2023-07-18 22:26:17 +02:00
Serge
21048b6aa1 Auto Init Aura 2023-07-18 22:26:15 +02:00
Serge
7d949786ba Update README.md 2023-07-18 22:25:54 +02:00
Serge
55664a7b95 Update README.md 2023-07-18 19:42:25 +02:00
Serge
74ff754e58 Update README.md 2023-07-18 19:37:56 +02:00
Serge
840c07b366 GA402X power limits 2023-07-18 19:36:49 +02:00
Serge
74e67f7a01 Added GA402XV to the list of devices that require fan curve for PPTs 2023-07-18 16:56:54 +02:00
Serge
9f5521bc52 Merge branch 'main' of https://github.com/seerge/g-helper 2023-07-18 15:47:55 +02:00
Serge
1b8de79667 Re-connect to GPU in fans+power 2023-07-18 15:47:53 +02:00
Serge
93936fb32a Merge pull request #806 from seerge/l10n_main
New Crowdin updates
2023-07-18 14:10:25 +02:00
Serge
7e1aef10d7 New translations Strings.resx (Chinese Traditional) 2023-07-18 13:33:05 +02:00
Serge
48ef9172f1 New translations Strings.resx (Chinese Simplified) 2023-07-18 13:33:04 +02:00
Serge
fdd5c3ccd6 New translations Strings.resx (Ukrainian) 2023-07-18 13:33:03 +02:00
Serge
3da3c163d3 Merge pull request #804 from seerge/l10n_main
New Crowdin updates
2023-07-18 12:59:03 +02:00
Serge
001ffbaa90 New translations Strings.resx (Romanian) 2023-07-18 12:35:32 +02:00
Serge
53a592a033 New translations Strings.resx (Hungarian) 2023-07-18 12:35:31 +02:00
Serge
1b2148da25 New translations Strings.resx (Vietnamese) 2023-07-18 12:35:30 +02:00
Serge
da4c08e09e New translations Strings.resx (Chinese Traditional) 2023-07-18 12:35:29 +02:00
Serge
ed86c588de New translations Strings.resx (Chinese Simplified) 2023-07-18 12:35:28 +02:00
Serge
6f310b01a1 New translations Strings.resx (Ukrainian) 2023-07-18 12:35:27 +02:00
Serge
94bf868271 New translations Strings.resx (Turkish) 2023-07-18 12:35:26 +02:00
Serge
2e7201fb37 New translations Strings.resx (Portuguese) 2023-07-18 12:35:25 +02:00
Serge
7172f5440a New translations Strings.resx (Polish) 2023-07-18 12:35:24 +02:00
Serge
f125493e96 New translations Strings.resx (Korean) 2023-07-18 12:35:23 +02:00
Serge
375a37f7d9 New translations Strings.resx (Italian) 2023-07-18 12:35:22 +02:00
Serge
8be1c62e32 New translations Strings.resx (German) 2023-07-18 12:35:21 +02:00
Serge
3eb0546874 New translations Strings.resx (Spanish) 2023-07-18 12:35:20 +02:00
Serge
78d02b9ed8 New translations Strings.resx (French) 2023-07-18 12:35:19 +02:00
Serge
b46e932a0d Merge branch 'main' of https://github.com/seerge/g-helper 2023-07-18 12:33:32 +02:00
Serge
3ce473f78d Added battery charge readings (next to discharge) 2023-07-18 12:33:29 +02:00
Serge
9459778463 New translations Strings.resx (Korean) 2023-07-18 11:59:38 +02:00
Serge
19603d107f Update README.md 2023-07-17 19:24:08 +02:00
Serge
91a507b98d Merge pull request #797 from seerge/l10n_main
New Crowdin updates
2023-07-17 19:13:54 +02:00
Serge
231b90a295 New translations Strings.resx (Chinese Simplified) 2023-07-17 05:06:33 +02:00
Serge
0bd766302b Merge pull request #793 from seerge/l10n_main
New Crowdin updates
2023-07-16 23:44:22 +02:00
Serge
f9f1089d0e New translations Strings.resx (Chinese Traditional) 2023-07-16 18:52:26 +02:00
Serge
b9d7110935 New translations Strings.resx (Polish) 2023-07-16 18:52:26 +02:00
Serge
61716e7336 Merge pull request #792 from seerge/l10n_main
New Crowdin updates
2023-07-16 17:09:36 +02:00
Serge
fecf1cfece Hide UV warning 2023-07-16 17:08:29 +02:00
Serge
721aeb7e6a New translations Strings.resx (Romanian) 2023-07-16 14:57:41 +02:00
Serge
b0f2f018eb New translations Strings.resx (Hungarian) 2023-07-16 14:57:40 +02:00
Serge
aed3e3fe32 New translations Strings.resx (Vietnamese) 2023-07-16 14:57:39 +02:00
Serge
1e2e1ddcfb New translations Strings.resx (Chinese Traditional) 2023-07-16 14:57:38 +02:00
Serge
fa33c7f514 New translations Strings.resx (Chinese Simplified) 2023-07-16 14:57:38 +02:00
Serge
13248d18bf New translations Strings.resx (Ukrainian) 2023-07-16 14:57:37 +02:00
Serge
545f584d0d New translations Strings.resx (Turkish) 2023-07-16 14:57:36 +02:00
Serge
86af2535d2 New translations Strings.resx (Portuguese) 2023-07-16 14:57:35 +02:00
Serge
c172654044 New translations Strings.resx (Polish) 2023-07-16 14:57:34 +02:00
Serge
6be351aba3 New translations Strings.resx (Korean) 2023-07-16 14:57:33 +02:00
Serge
443a8a34d4 New translations Strings.resx (Italian) 2023-07-16 14:57:32 +02:00
Serge
ebc63e8b5f New translations Strings.resx (German) 2023-07-16 14:57:31 +02:00
Serge
9638b1468a New translations Strings.resx (Spanish) 2023-07-16 14:57:30 +02:00
Serge
51b1f0ced5 New translations Strings.resx (French) 2023-07-16 14:57:29 +02:00
37 changed files with 1069 additions and 111 deletions

View File

@@ -175,12 +175,14 @@ namespace GHelper
public static void SetColor(int colorCode)
{
Color1 = Color.FromArgb(colorCode);
if (colorCode == -1) Color1 = Color.Red;
else Color1 = Color.FromArgb(colorCode);
}
public static void SetColor2(int colorCode)
{
Color2 = Color.FromArgb(colorCode);
if (colorCode == -1) Color2 = Color.White;
else Color2 = Color.FromArgb(colorCode);
}
@@ -367,6 +369,11 @@ namespace GHelper
public static void ApplyAura()
{
Mode = AppConfig.Get("aura_mode");
Speed = AppConfig.Get("aura_speed");
SetColor(AppConfig.Get("aura_color"));
SetColor2(AppConfig.Get("aura_color2"));
int _speed;
switch (Speed)

View File

@@ -236,7 +236,7 @@ namespace GHelper.Display
//Fallback scenario
if (iRet != 0)
{
Thread.Sleep(300);
Thread.Sleep(1000);
iRet = ChangeDisplaySettingsEx(laptopScreen, ref dm, IntPtr.Zero, DisplaySettingsFlags.CDS_UPDATEREGISTRY, IntPtr.Zero);
Logger.WriteLine("Screen = " + frequency.ToString() + "Hz : " + (iRet == 0 ? "OK" : iRet));
}

17
app/Extra.Designer.cs generated
View File

@@ -101,6 +101,7 @@ namespace GHelper
pictureSettings = new PictureBox();
labelSettings = new Label();
panelSettings = new Panel();
checkAutoToggleClamshellMode = new CheckBox();
checkAutoApplyWindowsPowerMode = new CheckBox();
checkTopmost = new CheckBox();
checkNoOverdrive = new CheckBox();
@@ -1003,6 +1004,7 @@ namespace GHelper
//
panelSettings.AutoSize = true;
panelSettings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelSettings.Controls.Add(checkAutoToggleClamshellMode);
panelSettings.Controls.Add(checkAutoApplyWindowsPowerMode);
panelSettings.Controls.Add(checkTopmost);
panelSettings.Controls.Add(checkNoOverdrive);
@@ -1017,6 +1019,20 @@ namespace GHelper
panelSettings.Size = new Size(983, 304);
panelSettings.TabIndex = 46;
//
// checkAutoToggleClamshellMode
//
checkAutoToggleClamshellMode.AutoSize = true;
checkAutoToggleClamshellMode.Dock = DockStyle.Top;
checkAutoToggleClamshellMode.Location = new Point(10, 163);
checkAutoToggleClamshellMode.Margin = new Padding(2);
checkAutoToggleClamshellMode.Name = "checkAutoToggleClamshellMode";
checkAutoToggleClamshellMode.Padding = new Padding(2);
checkAutoToggleClamshellMode.Size = new Size(481, 23);
checkAutoToggleClamshellMode.TabIndex = 58;
checkAutoToggleClamshellMode.Text = "Auto Toggle Clamshell Mode";
checkAutoToggleClamshellMode.UseVisualStyleBackColor = true;
checkAutoToggleClamshellMode.CheckedChanged += checkAutoToggleClamshellMode_CheckedChanged;
//
// checkAutoApplyWindowsPowerMode
//
checkAutoApplyWindowsPowerMode.AutoSize = true;
@@ -1246,5 +1262,6 @@ namespace GHelper
private PictureBox pictureService;
private Slider sliderBrightness;
private PictureBox pictureLog;
private CheckBox checkAutoToggleClamshellMode;
}
}

View File

@@ -106,6 +106,7 @@ namespace GHelper
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
checkAutoApplyWindowsPowerMode.Text = Properties.Strings.ApplyWindowsPowerPlan;
checkFnLock.Text = Properties.Strings.FnLock;
checkAutoToggleClamshellMode.Text = Properties.Strings.ToggleClamshellMode;
labelBacklightKeyboard.Text = Properties.Strings.Keyboard;
labelBacklightBar.Text = Properties.Strings.Lightbar;
@@ -210,6 +211,9 @@ namespace GHelper
}
}
checkAutoToggleClamshellMode.Checked = AppConfig.Is("toggle_clamshell_mode");
checkTopmost.Checked = AppConfig.Is("topmost");
checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ;
@@ -444,7 +448,7 @@ namespace GHelper
private void ComboKeyboardSpeed_SelectedValueChanged(object? sender, EventArgs e)
{
AppConfig.Set("aura_speed", (int)comboKeyboardSpeed.SelectedValue);
Program.settingsForm.SetAura();
AsusUSB.ApplyAura();
}
@@ -466,5 +470,12 @@ namespace GHelper
{
AppConfig.Set("auto_apply_power_plan", checkAutoApplyWindowsPowerMode.Checked ? 1 : 0);
}
private void checkAutoToggleClamshellMode_CheckedChanged(object sender, EventArgs e)
{
AppConfig.Set("toggle_clamshell_mode", checkAutoToggleClamshellMode.Checked ? 1 : 0);
ClamshellModeControl ctrl = new ClamshellModeControl();
ctrl.ToggleLidAction();
}
}
}

View File

@@ -287,7 +287,10 @@ namespace GHelper
{
if (!RyzenControl.IsSupportedUV())
{
panelUV.Visible = panelUViGPU.Visible = false;
panelTitleAdvanced.Visible = false;
labelRisky.Visible = false;
panelUV.Visible = false;
panelUViGPU.Visible = false;
}
if (!RyzenControl.IsSupportedUV())
@@ -408,7 +411,7 @@ namespace GHelper
return;
}
if (HardwareControl.GpuControl is null) HardwareControl.RecreateGpuControl();
if (HardwareControl.GpuControl is null || !HardwareControl.GpuControl.IsValid) HardwareControl.RecreateGpuControl();
if (HardwareControl.GpuControl is not null && HardwareControl.GpuControl.IsNvidia)
{

View File

@@ -16,7 +16,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.98</AssemblyVersion>
<AssemblyVersion>0.99</AssemblyVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -154,7 +154,7 @@ namespace GHelper.Gpu
if (eco == 0)
{
await Task.Delay(TimeSpan.FromMilliseconds(5000));
await Task.Delay(TimeSpan.FromMilliseconds(3000));
HardwareControl.RecreateGpuControl();
Program.modeControl.SetGPUClocks(false);
}

View File

@@ -5,13 +5,14 @@ using GHelper.Gpu.AMD;
using GHelper.Helpers;
using System.Diagnostics;
using System.Management;
public static class HardwareControl
{
public static IGpuControl? GpuControl;
public static float? cpuTemp = -1;
public static float? batteryDischarge = -1;
public static decimal? batteryRate = 0;
public static int? gpuTemp = null;
public static string? cpuFan;
@@ -70,9 +71,39 @@ public static class HardwareControl
}
public static decimal GetBatteryRate()
{
try
{
ManagementScope scope = new ManagementScope("root\\WMI");
ObjectQuery query = new ObjectQuery("SELECT * FROM BatteryStatus");
using ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
foreach (ManagementObject obj in searcher.Get().Cast<ManagementObject>())
{
decimal chargeRate = Convert.ToDecimal(obj["ChargeRate"]);
decimal dischargeRate = Convert.ToDecimal(obj["DischargeRate"]);
if (chargeRate > 0)
return chargeRate;
else
return -dischargeRate;
}
return 0;
}
catch (Exception ex)
{
Logger.WriteLine("Discharge Reading: " + ex.Message);
return 0;
}
}
public static void ReadSensors()
{
batteryDischarge = -1;
batteryRate = 0;
gpuTemp = -1;
gpuUse = -1;
@@ -108,17 +139,8 @@ public static class HardwareControl
if (gpuTemp is null || gpuTemp < 0)
gpuTemp = Program.acpi.DeviceGet(AsusACPI.Temp_GPU);
try
{
using (var cb = new PerformanceCounter("Power Meter", "Power", "Power Meter (0)", true))
{
batteryDischarge = cb.NextValue() / 1000;
}
}
catch
{
Debug.WriteLine("Failed reading Battery discharge");
}
batteryRate = GetBatteryRate() / 1000;
}
public static bool IsUsedGPU(int threshold = 10)
@@ -184,7 +206,7 @@ public static class HardwareControl
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
Debug.WriteLine("Can't connect to GPU " + ex.ToString());
}
}

View File

@@ -0,0 +1,76 @@
using GHelper.Display;
using GHelper.Mode;
using Microsoft.Win32;
namespace GHelper.Helpers
{
internal class ClamshellModeControl
{
public bool IsExternalDisplayConnected()
{
var devices = ScreenInterrogatory.GetAllDevices().ToArray();
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)
{
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;
}
}
return false;
}
public bool IsClamshellEnabled()
{
return AppConfig.Get("toggle_clamshell_mode") != 0;
}
public bool IsChargerConnected()
{
return SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online;
}
public bool IsInClamshellMode()
{
return IsExternalDisplayConnected() && IsChargerConnected();
}
public void ToggleLidAction()
{
if (IsInClamshellMode() && IsClamshellEnabled())
{
PowerNative.SetLidAction(0, true);
Logger.WriteLine("Engaging Clamshell Mode");
}
else
{
PowerNative.SetLidAction(1, true);
Logger.WriteLine("Disengaging Clamshell Mode");
}
}
public void UnregisterDisplayEvents()
{
SystemEvents.DisplaySettingsChanged -= SystemEvents_DisplaySettingsChanged;
}
public void RegisterDisplayEvents()
{
SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
}
private void SystemEvents_DisplaySettingsChanged(object? sender, EventArgs e)
{
Logger.WriteLine("Display configuration changed.");
if (IsClamshellEnabled())
ToggleLidAction();
}
}
}

View File

@@ -9,6 +9,8 @@ namespace GHelper.Helpers
{
static List<string> services = new() {
"ArmouryCrateControlInterface",
"ASUSOptimization",
"AsusAppService",
"ASUSLinkNear",
"ASUSLinkRemote",
@@ -16,9 +18,7 @@ namespace GHelper.Helpers
"ASUSSwitch",
"ASUSSystemAnalysis",
"ASUSSystemDiagnosis",
"ArmouryCrateControlInterface",
"AsusCertService",
"ASUSOptimization"
"AsusCertService"
};
public static void SetChargeLimit(int newValue)

View File

@@ -103,7 +103,7 @@ namespace GHelper.Helpers
{
try
{
string script = $"Set-Service -Name \"{serviceName}\" -Status stopped -StartupType disabled";
string script = $"Get-Service -Name \"{serviceName}\" | Stop-Service -Force -PassThru | Set-Service -StartupType Disabled";
Logger.WriteLine(script);
RunCMD("powershell", script);
}

View File

@@ -132,6 +132,9 @@ namespace GHelper.Helpers
public void RunToast(string text, ToastIcon? icon = null)
{
if (AppConfig.Is("disable_osd")) return;
Program.settingsForm.Invoke(delegate
{
//Hide();

View File

@@ -105,6 +105,11 @@ namespace GHelper.Input
if (keyProfile != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyProfile);
if (keyApp != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyApp);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp);
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown);
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeUp);
if (!AppConfig.ContainsModel("Z13"))
if (actionM1 is not null && actionM1.Length > 0) hook.RegisterHotKey(ModifierKeys.None, Keys.VolumeDown);
if (actionM2 is not null && actionM2.Length > 0) hook.RegisterHotKey(ModifierKeys.None, Keys.VolumeUp);
@@ -250,7 +255,35 @@ namespace GHelper.Input
if (e.Key == keyApp) Program.SettingsToggle();
}
if (e.Modifier == (ModifierKeys.Control))
{
switch (e.Key)
{
case Keys.VolumeDown:
// Screen brightness down on CTRL+VolDown
HandleOptimizationEvent(16);
break;
case Keys.VolumeUp:
// Screen brightness up on CTRL+VolUp
HandleOptimizationEvent(32);
break;
}
}
if (e.Modifier == (ModifierKeys.Shift))
{
switch (e.Key)
{
case Keys.VolumeDown:
// Keyboard backlight down on SHIFT+VolDown
SetBacklight(-1);
break;
case Keys.VolumeUp:
// Keyboard backlight up on SHIFT+VolUp
SetBacklight(1);
break;
}
}
}

View File

@@ -172,7 +172,7 @@ namespace GHelper.Mode
private static bool IsFanRequired()
{
return AppConfig.ContainsModel("GA402XI") || AppConfig.ContainsModel("G513");
return AppConfig.ContainsModel("GA402X") || AppConfig.ContainsModel("G513");
}
public void AutoPower(int delay = 0)

View File

@@ -60,6 +60,9 @@ namespace GHelper.Mode
private static Guid GUID_SLEEP_SUBGROUP = new Guid("238c9fa8-0aad-41ed-83f4-97be242c8f20");
private static Guid GUID_HIBERNATEIDLE = new Guid("9d7815a6-7ee4-497e-8888-515a05f02364");
private static Guid GUID_SYSTEM_BUTTON_SUBGROUP = new Guid("4f971e89-eebd-4455-a8de-9e59040e7347");
private static Guid GUID_LIDACTION = new Guid("5CA83367-6E45-459F-A27B-476B1D01C936");
[DllImportAttribute("powrprof.dll", EntryPoint = "PowerGetActualOverlayScheme")]
public static extern uint PowerGetActualOverlayScheme(out Guid ActualOverlayGuid);
@@ -163,5 +166,40 @@ namespace GHelper.Mode
break;
}
}
public static void SetLidAction(int action, bool acOnly = false)
{
/**
* 1: Do nothing
* 2: Seelp
* 3: Hibernate
* 4: Shutdown
*/
Guid activeSchemeGuid = GetActiveScheme();
var hrAC = PowerWriteACValueIndex(
IntPtr.Zero,
activeSchemeGuid,
GUID_SYSTEM_BUTTON_SUBGROUP,
GUID_LIDACTION,
action);
PowerSetActiveScheme(IntPtr.Zero, activeSchemeGuid);
if (!acOnly)
{
var hrDC = PowerWriteDCValueIndex(
IntPtr.Zero,
activeSchemeGuid,
GUID_SYSTEM_BUTTON_SUBGROUP,
GUID_LIDACTION,
action);
PowerSetActiveScheme(IntPtr.Zero, activeSchemeGuid);
}
Logger.WriteLine("Changed Lid Action to " + action);
}
}
}

View File

@@ -30,6 +30,7 @@ namespace GHelper
public static ModeControl modeControl = new ModeControl();
static GPUModeControl gpuControl = new GPUModeControl(settingsForm);
static ScreenControl screenControl = new ScreenControl();
static ClamshellModeControl clamshellControl = new ClamshellModeControl();
public static ToastForm toast = new ToastForm();
@@ -99,6 +100,8 @@ namespace GHelper
// Subscribing for system power change events
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
SystemEvents.UserPreferenceChanged += SystemEvents_UserPreferenceChanged;
clamshellControl.RegisterDisplayEvents();
clamshellControl.ToggleLidAction();
// Subscribing for monitor power on events
PowerSettingGuid settingGuid = new NativeMethods.PowerSettingGuid();
@@ -238,6 +241,7 @@ namespace GHelper
static void OnExit(object sender, EventArgs e)
{
trayIcon.Visible = false;
clamshellControl.UnregisterDisplayEvents();
NativeMethods.UnregisterPowerSettingNotification(unRegPowerNotify);
Application.Exit();
}

View File

@@ -375,6 +375,15 @@ namespace GHelper.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Charging.
/// </summary>
internal static string Charging {
get {
return ResourceManager.GetString("Charging", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Color.
/// </summary>
@@ -1168,6 +1177,15 @@ namespace GHelper.Properties {
return ResourceManager.GetString("ToggleAura", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Auto Toggle Clamshell Mode.
/// </summary>
internal static string ToggleClamshellMode {
get {
return ResourceManager.GetString("ToggleClamshellMode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Toggle Fn-Lock.

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Helligkeit verringern</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Farbe</value>
</data>
@@ -446,6 +449,12 @@ Trotzdem fortfahren?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Beim Start ausführen</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>Herunterfahren</value>
</data>
@@ -482,6 +491,9 @@ Trotzdem fortfahren?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Aura umschalten</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>FN Sperre umschalten</value>
</data>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Subir brillo</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Color</value>
</data>
@@ -446,6 +449,12 @@
<data name="RunOnStartup" xml:space="preserve">
<value>Ejecutar al inicio</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>Al apagar</value>
</data>
@@ -482,6 +491,9 @@
<data name="ToggleAura" xml:space="preserve">
<value>Alternar Aura</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Alternar Fn-Lock</value>
</data>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Brightness Up</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Couleur</value>
</data>
@@ -446,6 +449,12 @@ Do you still want to continue?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Exécuter au démarrage</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>Arrêter</value>
</data>
@@ -482,6 +491,9 @@ Do you still want to continue?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Activer 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>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Fényerő növelése</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Szín</value>
</data>
@@ -446,6 +449,12 @@ Do you still want to continue?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Futtatás rendszerindításkor</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>Leállítás</value>
</data>
@@ -482,6 +491,9 @@ Do you still want to continue?</value>
<data name="ToggleAura" xml:space="preserve">
<value>AURA ki-/bekapcsolása</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Fn-Lock ki-/bekapcsolása</value>
</data>

View File

@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ACPIError" xml:space="preserve">
<value>Impossibile connettersi ad ASUS ACPI. Senza di essa l'applicazione non può funzionare. Prova ad installare Asus System Control Interface</value>
<value>Impossibile connettersi ad ASUS ACPI. Senza di essa l'applicazione non può funzionare. Prova a installare Asus System Control Interface</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Uso intensivo della GPU, disabilitare?</value>
@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Aumenta Luminosità</value>
</data>
<data name="Charging" xml:space="preserve">
<value>In carica</value>
</data>
<data name="Color" xml:space="preserve">
<value>Colore</value>
</data>
@@ -446,6 +449,12 @@ Sei sicuro di voler continuare?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Esegui all'Avvio</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Riduci luminosità Screenpad</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>Aumenta luminosità Screenpad</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>Spegnimento</value>
</data>
@@ -482,6 +491,9 @@ Sei sicuro di voler continuare?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Alterna Aura</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Alterna Blocco-Fn</value>
</data>

View File

@@ -148,7 +148,7 @@
<value>G-Helper가 이미 실행중입니다. 시스템 트레이에서 아이콘을 확인하십시오.</value>
</data>
<data name="Apply" xml:space="preserve">
<value>Apply</value>
<value>적용</value>
</data>
<data name="ApplyFanCurve" xml:space="preserve">
<value>사용자 설정 팬 커브 적용</value>
@@ -187,7 +187,7 @@
<value>Strobe</value>
</data>
<data name="AutoApply" xml:space="preserve">
<value>Auto Apply</value>
<value>자동 적용</value>
</data>
<data name="AutoMode" xml:space="preserve">
<value>자동</value>
@@ -199,7 +199,7 @@
<value>Awake</value>
</data>
<data name="BacklightTimeout" xml:space="preserve">
<value>배터리 사용 중 백라이트 자동 꺼짐</value>
<value>전원 연결 / 배터리 사용 중 자동 꺼짐 시간 (0 - 항상 켜짐)</value>
</data>
<data name="Balanced" xml:space="preserve">
<value>균형</value>
@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>밝기 증가</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>색상</value>
</data>
@@ -253,12 +256,12 @@
<value>Eco</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.
<value>NVIDIA 디스플레이 모드가 Optimus로 설정되어 있지 않을 때 Eco 모드로 전환하여 dGPU를 비활성화하면 다시 시작하기 전까지 밝기 조절 문제가 생길 수 있습니다.
Do you still want to continue?</value>
계속하시겠습니까?</value>
</data>
<data name="EnableOptimusTitle" xml:space="preserve">
<value>NVIDIA Display Mode is not set to Optimus</value>
<value>NVIDIA 디스플레이 모드가 Optimus로 설정되어 있지 않습니다.</value>
</data>
<data name="Extra" xml:space="preserve">
<value>추가 설정</value>
@@ -393,10 +396,10 @@ Do you still want to continue?</value>
<value>마이크 음소거</value>
</data>
<data name="NewUpdates" xml:space="preserve">
<value>New updates</value>
<value>새 업데이트</value>
</data>
<data name="NoNewUpdates" xml:space="preserve">
<value>No new updates</value>
<value>새 업데이트 없음</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>G-Helper 열기</value>
@@ -429,7 +432,7 @@ Do you still want to continue?</value>
<value>전력 제한</value>
</data>
<data name="PPTExperimental" xml:space="preserve">
<value>전력 제한 은 실험적인 기능입니다. 주의하여 사용하세요!</value>
<value>전력 제한은 실험적인 기능입니다. 주의하여 사용하세요!</value>
</data>
<data name="PrintScreen" xml:space="preserve">
<value>PrintScreen</value>
@@ -446,6 +449,12 @@ Do you still want to continue?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>시스템 시작 시 실행</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Screenpad 밝기 감소</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>Screenpad 밝기 증가</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>꺼짐</value>
</data>
@@ -474,7 +483,7 @@ Do you still want to continue?</value>
<value>중지</value>
</data>
<data name="StopGPUApps" xml:space="preserve">
<value>Stop GPU Applications</value>
<value>GPU를 사용하는 앱 중지</value>
</data>
<data name="StoppingServices" xml:space="preserve">
<value>서비스 중지 중</value>
@@ -482,6 +491,9 @@ Do you still want to continue?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Aura 토글 키</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Fn-Lock 토글 키</value>
</data>
@@ -507,7 +519,7 @@ Do you still want to continue?</value>
<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>
<value>언더볼팅은 실험적이며 위험한 기능입니다. 적용 값이 너무 낮은 경우 시스템이 불안정해지고, 종료되거나 데이터 손상을 유발할 수 있습니다. 작은 값부터 적용하여 잘 작동하는지 확인해 보십시오.</value>
</data>
<data name="Updates" xml:space="preserve">
<value>업데이트</value>

View File

@@ -0,0 +1,542 @@
<?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="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="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="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="AsusServicesRunning" xml:space="preserve">
<value>Asus Services Running</value>
</data>
<data name="AuraBreathe" xml:space="preserve">
<value>Breathe</value>
</data>
<data name="AuraColorCycle" xml:space="preserve">
<value>Color Cycle</value>
</data>
<data name="AuraFast" xml:space="preserve">
<value>Fast</value>
</data>
<data name="AuraNormal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="AuraRainbow" xml:space="preserve">
<value>Rainbow</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="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="BacklightTimeout" xml:space="preserve">
<value>Timeout plugged / on battery (0 - ON)</value>
</data>
<data name="Balanced" xml:space="preserve">
<value>Balanced</value>
</data>
<data name="BatteryChargeLimit" xml:space="preserve">
<value>Battery Charge Limit</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="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="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Color</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="Default" xml:space="preserve">
<value>Default</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="DownloadUpdate" xml:space="preserve">
<value>Download Update</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="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="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="FnLock" xml:space="preserve">
<value>Process Fn+F hotkeys without Fn</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="GPUSettings" xml:space="preserve">
<value>GPU Settings</value>
</data>
<data name="GPUTempTarget" xml:space="preserve">
<value>Temperature Target</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="Lid" xml:space="preserve">
<value>Lid</value>
</data>
<data name="Lightbar" xml:space="preserve">
<value>Lightbar</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logo</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="Multizone" xml:space="preserve">
<value>Multizone</value>
</data>
<data name="MuteMic" xml:space="preserve">
<value>Mute Mic</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="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</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="PictureGif" xml:space="preserve">
<value>Picture / Gif</value>
</data>
<data name="PlayPause" xml:space="preserve">
<value>Play / Pause</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="Quit" xml:space="preserve">
<value>Quit</value>
</data>
<data name="RestartGPU" xml:space="preserve">
<value>Something is using dGPU and preventing Eco mode. 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="RunOnStartup" xml:space="preserve">
<value>Run on Startup</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="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>Turn off 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="Updates" xml:space="preserve">
<value>Updates</value>
</data>
<data name="VersionLabel" xml:space="preserve">
<value>Version</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>
</root>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Zwiększ jasność</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Ładowanie</value>
</data>
<data name="Color" xml:space="preserve">
<value>Kolor</value>
</data>
@@ -446,6 +449,12 @@ Nadal chcesz kontynuować?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Uruchom przy starcie systemu</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Zmniejsz jasność ScreenPad</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>Zwiększ jasność ScreenPad</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>Zamknij</value>
</data>
@@ -482,6 +491,9 @@ Nadal chcesz kontynuować?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Przełącz Aura</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Przełącz Fn-Lock</value>
</data>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Brightness Up</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Cor</value>
</data>
@@ -446,6 +449,12 @@ Do you still want to continue?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Executar ao iniciar</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>Desligar</value>
</data>
@@ -482,6 +491,9 @@ Do you still want to continue?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Alternar 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>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Brightness Up</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Color</value>
</data>
@@ -488,6 +491,9 @@ Do you still want to continue?</value>
<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>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Brightness Up</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Culoare</value>
</data>
@@ -446,6 +449,12 @@ Do you still want to continue?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Run on Startup</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>
@@ -482,6 +491,9 @@ Do you still want to continue?</value>
<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>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Brightness Up</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Renk</value>
</data>
@@ -446,6 +449,12 @@ Do you still want to continue?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Başlangıçta Çalıştır</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>Kapalı</value>
</data>
@@ -482,6 +491,9 @@ Do you still want to continue?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Aura'yı Değiştir</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>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Підвищити яскравість</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Зарядка</value>
</data>
<data name="Color" xml:space="preserve">
<value>Колір</value>
</data>
@@ -446,6 +449,12 @@
<data name="RunOnStartup" xml:space="preserve">
<value>Запускати на старті</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>Вимикання</value>
</data>
@@ -482,6 +491,9 @@
<data name="ToggleAura" xml:space="preserve">
<value>Аура</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Fn-Lock</value>
</data>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>Tăng độ sáng</value>
</data>
<data name="Charging" xml:space="preserve">
<value>Charging</value>
</data>
<data name="Color" xml:space="preserve">
<value>Màu</value>
</data>
@@ -446,6 +449,12 @@ Do you still want to continue?</value>
<data name="RunOnStartup" xml:space="preserve">
<value>Chạy khi khởi động</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>Tắt nguồn</value>
</data>
@@ -482,6 +491,9 @@ Do you still want to continue?</value>
<data name="ToggleAura" xml:space="preserve">
<value>Bật tắt 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>

View File

@@ -124,7 +124,7 @@
<value>看起来 GPU 正在被重度使用,是否禁用?</value>
</data>
<data name="AlertDGPUTitle" xml:space="preserve">
<value>节能模式</value>
<value>集显模式</value>
</data>
<data name="AlertUltimateOff" xml:space="preserve">
<value>关闭独显直连需要重启</value>
@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>提高亮度</value>
</data>
<data name="Charging" xml:space="preserve">
<value>充电中</value>
</data>
<data name="Color" xml:space="preserve">
<value>颜色</value>
</data>
@@ -446,6 +449,12 @@
<data name="RunOnStartup" xml:space="preserve">
<value>开机自启</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>Screenpad亮度降低</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>Screenpad亮度增加</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>关机时</value>
</data>
@@ -482,6 +491,9 @@
<data name="ToggleAura" xml:space="preserve">
<value>切换 Aura 模式</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>切换 Fn 锁定</value>
</data>

View File

@@ -222,6 +222,9 @@
<data name="BrightnessUp" xml:space="preserve">
<value>螢幕亮度提高</value>
</data>
<data name="Charging" xml:space="preserve">
<value>充填時</value>
</data>
<data name="Color" xml:space="preserve">
<value>顏色</value>
</data>
@@ -446,6 +449,12 @@
<data name="RunOnStartup" xml:space="preserve">
<value>開機自動開啟</value>
</data>
<data name="ScreenPadDown" xml:space="preserve">
<value>第二觸控螢幕亮度降低</value>
</data>
<data name="ScreenPadUp" xml:space="preserve">
<value>第二觸控螢幕亮度提高</value>
</data>
<data name="Shutdown" xml:space="preserve">
<value>關機時</value>
</data>
@@ -482,6 +491,9 @@
<data name="ToggleAura" xml:space="preserve">
<value>切換Aura</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Auto Toggle Clamshell Mode</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>免按Fn鍵使用Fn+F1~F12功能</value>
</data>

View File

@@ -140,7 +140,7 @@ namespace GHelper
panelMatrix.Name = "panelMatrix";
panelMatrix.Padding = new Padding(20, 20, 20, 10);
panelMatrix.Size = new Size(810, 171);
panelMatrix.TabIndex = 33;
panelMatrix.TabIndex = 4;
//
// tableLayoutMatrix
//
@@ -176,8 +176,7 @@ namespace GHelper
comboMatrix.Margin = new Padding(4, 10, 4, 8);
comboMatrix.Name = "comboMatrix";
comboMatrix.Size = new Size(248, 40);
comboMatrix.TabIndex = 41;
comboMatrix.TabStop = false;
comboMatrix.TabIndex = 16;
//
// comboMatrixRunning
//
@@ -192,8 +191,7 @@ namespace GHelper
comboMatrixRunning.Margin = new Padding(4, 10, 4, 8);
comboMatrixRunning.Name = "comboMatrixRunning";
comboMatrixRunning.Size = new Size(248, 40);
comboMatrixRunning.TabIndex = 42;
comboMatrixRunning.TabStop = false;
comboMatrixRunning.TabIndex = 17;
//
// buttonMatrix
//
@@ -209,7 +207,7 @@ namespace GHelper
buttonMatrix.Name = "buttonMatrix";
buttonMatrix.Secondary = true;
buttonMatrix.Size = new Size(250, 45);
buttonMatrix.TabIndex = 43;
buttonMatrix.TabIndex = 18;
buttonMatrix.Text = Properties.Strings.PictureGif;
buttonMatrix.UseVisualStyleBackColor = false;
//
@@ -253,7 +251,7 @@ namespace GHelper
checkMatrix.Margin = new Padding(8, 4, 8, 4);
checkMatrix.Name = "checkMatrix";
checkMatrix.Size = new Size(249, 36);
checkMatrix.TabIndex = 44;
checkMatrix.TabIndex = 19;
checkMatrix.Text = Properties.Strings.TurnOffOnBattery;
checkMatrix.UseVisualStyleBackColor = true;
//
@@ -269,10 +267,11 @@ namespace GHelper
panelBattery.Name = "panelBattery";
panelBattery.Padding = new Padding(20);
panelBattery.Size = new Size(810, 125);
panelBattery.TabIndex = 34;
panelBattery.TabIndex = 5;
//
// sliderBattery
//
sliderBattery.AccessibleName = "Battery Charge Limit";
sliderBattery.Dock = DockStyle.Top;
sliderBattery.Location = new Point(20, 65);
sliderBattery.Max = 100;
@@ -280,7 +279,8 @@ namespace GHelper
sliderBattery.Name = "sliderBattery";
sliderBattery.Size = new Size(770, 40);
sliderBattery.Step = 5;
sliderBattery.TabIndex = 39;
sliderBattery.TabIndex = 20;
sliderBattery.TabStop = false;
sliderBattery.Text = "sliderBattery";
sliderBattery.Value = 80;
//
@@ -341,10 +341,11 @@ namespace GHelper
panelFooter.Name = "panelFooter";
panelFooter.Padding = new Padding(20);
panelFooter.Size = new Size(810, 92);
panelFooter.TabIndex = 35;
panelFooter.TabIndex = 7;
//
// buttonUpdates
//
buttonUpdates.AccessibleName = "BIOS and Driver Updates";
buttonUpdates.Activated = false;
buttonUpdates.Anchor = AnchorStyles.Top | AnchorStyles.Right;
buttonUpdates.BackColor = SystemColors.ControlLight;
@@ -356,12 +357,13 @@ namespace GHelper
buttonUpdates.Name = "buttonUpdates";
buttonUpdates.Secondary = true;
buttonUpdates.Size = new Size(180, 44);
buttonUpdates.TabIndex = 19;
buttonUpdates.TabIndex = 22;
buttonUpdates.Text = "Updates";
buttonUpdates.UseVisualStyleBackColor = false;
//
// buttonQuit
//
buttonQuit.AccessibleName = "Quit Application";
buttonQuit.Activated = false;
buttonQuit.Anchor = AnchorStyles.Top | AnchorStyles.Right;
buttonQuit.BackColor = SystemColors.ControlLight;
@@ -373,7 +375,7 @@ namespace GHelper
buttonQuit.Name = "buttonQuit";
buttonQuit.Secondary = true;
buttonQuit.Size = new Size(180, 44);
buttonQuit.TabIndex = 18;
buttonQuit.TabIndex = 23;
buttonQuit.Text = Properties.Strings.Quit;
buttonQuit.UseVisualStyleBackColor = false;
//
@@ -384,7 +386,7 @@ namespace GHelper
checkStartup.Margin = new Padding(8, 4, 8, 4);
checkStartup.Name = "checkStartup";
checkStartup.Size = new Size(206, 36);
checkStartup.TabIndex = 17;
checkStartup.TabIndex = 21;
checkStartup.Text = Properties.Strings.RunOnStartup;
checkStartup.UseVisualStyleBackColor = true;
//
@@ -400,7 +402,7 @@ namespace GHelper
panelPerformance.Name = "panelPerformance";
panelPerformance.Padding = new Padding(20);
panelPerformance.Size = new Size(810, 207);
panelPerformance.TabIndex = 36;
panelPerformance.TabIndex = 0;
//
// tablePerf
//
@@ -426,12 +428,12 @@ namespace GHelper
//
// buttonSilent
//
buttonSilent.AccessibleName = "Silent Mode";
buttonSilent.Activated = false;
buttonSilent.BackColor = SystemColors.ControlLightLight;
buttonSilent.BackgroundImageLayout = ImageLayout.None;
buttonSilent.BorderColor = Color.Transparent;
buttonSilent.BorderRadius = 5;
buttonSilent.CausesValidation = false;
buttonSilent.Dock = DockStyle.Fill;
buttonSilent.FlatAppearance.BorderSize = 0;
buttonSilent.FlatStyle = FlatStyle.Flat;
@@ -443,13 +445,14 @@ namespace GHelper
buttonSilent.Name = "buttonSilent";
buttonSilent.Secondary = false;
buttonSilent.Size = new Size(184, 120);
buttonSilent.TabIndex = 0;
buttonSilent.TabIndex = 1;
buttonSilent.Text = Properties.Strings.Silent;
buttonSilent.TextImageRelation = TextImageRelation.ImageAboveText;
buttonSilent.UseVisualStyleBackColor = false;
//
// buttonBalanced
//
buttonBalanced.AccessibleName = "Balanced Mode";
buttonBalanced.Activated = false;
buttonBalanced.BackColor = SystemColors.ControlLightLight;
buttonBalanced.BorderColor = Color.Transparent;
@@ -472,6 +475,7 @@ namespace GHelper
//
// buttonTurbo
//
buttonTurbo.AccessibleName = "Turbo Mode";
buttonTurbo.Activated = false;
buttonTurbo.BackColor = SystemColors.ControlLightLight;
buttonTurbo.BorderColor = Color.Transparent;
@@ -494,6 +498,7 @@ namespace GHelper
//
// buttonFans
//
buttonFans.AccessibleName = "Fans and Power Settings";
buttonFans.Activated = false;
buttonFans.BackColor = SystemColors.ControlLight;
buttonFans.BorderColor = Color.Transparent;
@@ -508,7 +513,7 @@ namespace GHelper
buttonFans.Name = "buttonFans";
buttonFans.Secondary = true;
buttonFans.Size = new Size(186, 120);
buttonFans.TabIndex = 35;
buttonFans.TabIndex = 3;
buttonFans.Text = Properties.Strings.FansPower;
buttonFans.TextImageRelation = TextImageRelation.ImageAboveText;
buttonFans.UseVisualStyleBackColor = false;
@@ -544,7 +549,7 @@ namespace GHelper
labelPerf.Margin = new Padding(8, 0, 8, 0);
labelPerf.Name = "labelPerf";
labelPerf.Size = new Size(234, 32);
labelPerf.TabIndex = 34;
labelPerf.TabIndex = 0;
labelPerf.Text = "Performance Mode";
//
// labelCPUFan
@@ -572,7 +577,7 @@ namespace GHelper
panelGPU.Name = "panelGPU";
panelGPU.Padding = new Padding(20, 20, 20, 0);
panelGPU.Size = new Size(810, 351);
panelGPU.TabIndex = 37;
panelGPU.TabIndex = 1;
//
// labelTipGPU
//
@@ -635,6 +640,7 @@ namespace GHelper
//
// buttonEco
//
buttonEco.AccessibleName = "Eco GPU Mode";
buttonEco.Activated = false;
buttonEco.BackColor = SystemColors.ControlLightLight;
buttonEco.BorderColor = Color.Transparent;
@@ -651,13 +657,14 @@ namespace GHelper
buttonEco.Name = "buttonEco";
buttonEco.Secondary = false;
buttonEco.Size = new Size(184, 120);
buttonEco.TabIndex = 0;
buttonEco.TabIndex = 4;
buttonEco.Text = Properties.Strings.EcoMode;
buttonEco.TextImageRelation = TextImageRelation.ImageAboveText;
buttonEco.UseVisualStyleBackColor = false;
//
// buttonStandard
//
buttonStandard.AccessibleName = "Standard GPU Mode";
buttonStandard.Activated = false;
buttonStandard.BackColor = SystemColors.ControlLightLight;
buttonStandard.BorderColor = Color.Transparent;
@@ -673,7 +680,7 @@ namespace GHelper
buttonStandard.Name = "buttonStandard";
buttonStandard.Secondary = false;
buttonStandard.Size = new Size(184, 120);
buttonStandard.TabIndex = 1;
buttonStandard.TabIndex = 5;
buttonStandard.Text = Properties.Strings.StandardMode;
buttonStandard.TextImageRelation = TextImageRelation.ImageAboveText;
buttonStandard.UseVisualStyleBackColor = false;
@@ -695,7 +702,7 @@ namespace GHelper
buttonXGM.Name = "buttonXGM";
buttonXGM.Secondary = false;
buttonXGM.Size = new Size(184, 120);
buttonXGM.TabIndex = 2;
buttonXGM.TabIndex = 8;
buttonXGM.Text = "XG Mobile";
buttonXGM.TextImageRelation = TextImageRelation.ImageAboveText;
buttonXGM.UseVisualStyleBackColor = false;
@@ -718,13 +725,14 @@ namespace GHelper
buttonOptimized.Name = "buttonOptimized";
buttonOptimized.Secondary = false;
buttonOptimized.Size = new Size(184, 120);
buttonOptimized.TabIndex = 3;
buttonOptimized.TabIndex = 7;
buttonOptimized.Text = Properties.Strings.Optimized;
buttonOptimized.TextImageRelation = TextImageRelation.ImageAboveText;
buttonOptimized.UseVisualStyleBackColor = false;
//
// buttonUltimate
//
buttonUltimate.AccessibleName = "Ultimate GPU Mode";
buttonUltimate.Activated = false;
buttonUltimate.BackColor = SystemColors.ControlLightLight;
buttonUltimate.BorderColor = Color.Transparent;
@@ -740,7 +748,7 @@ namespace GHelper
buttonUltimate.Name = "buttonUltimate";
buttonUltimate.Secondary = false;
buttonUltimate.Size = new Size(186, 120);
buttonUltimate.TabIndex = 2;
buttonUltimate.TabIndex = 6;
buttonUltimate.Text = Properties.Strings.UltimateMode;
buttonUltimate.TextImageRelation = TextImageRelation.ImageAboveText;
buttonUltimate.UseVisualStyleBackColor = false;
@@ -802,7 +810,7 @@ namespace GHelper
panelScreen.Name = "panelScreen";
panelScreen.Padding = new Padding(20, 20, 20, 10);
panelScreen.Size = new Size(810, 185);
panelScreen.TabIndex = 38;
panelScreen.TabIndex = 2;
//
// labelTipScreen
//
@@ -838,6 +846,7 @@ namespace GHelper
//
// buttonScreenAuto
//
buttonScreenAuto.AccessibleName = "Auto Screen Refresh Rate";
buttonScreenAuto.Activated = false;
buttonScreenAuto.BackColor = SystemColors.ControlLightLight;
buttonScreenAuto.BorderColor = Color.Transparent;
@@ -851,12 +860,13 @@ namespace GHelper
buttonScreenAuto.Name = "buttonScreenAuto";
buttonScreenAuto.Secondary = false;
buttonScreenAuto.Size = new Size(184, 72);
buttonScreenAuto.TabIndex = 0;
buttonScreenAuto.TabIndex = 9;
buttonScreenAuto.Text = Properties.Strings.AutoMode;
buttonScreenAuto.UseVisualStyleBackColor = false;
//
// button60Hz
//
button60Hz.AccessibleName = "60Hz Refresh Rate";
button60Hz.Activated = false;
button60Hz.BackColor = SystemColors.ControlLightLight;
button60Hz.BorderColor = Color.Transparent;
@@ -871,12 +881,13 @@ namespace GHelper
button60Hz.Name = "button60Hz";
button60Hz.Secondary = false;
button60Hz.Size = new Size(184, 72);
button60Hz.TabIndex = 1;
button60Hz.TabIndex = 10;
button60Hz.Text = "60Hz";
button60Hz.UseVisualStyleBackColor = false;
//
// button120Hz
//
button120Hz.AccessibleName = "Maximum Refresh Rate";
button120Hz.Activated = false;
button120Hz.BackColor = SystemColors.ControlLightLight;
button120Hz.BorderColor = Color.Transparent;
@@ -890,7 +901,7 @@ namespace GHelper
button120Hz.Name = "button120Hz";
button120Hz.Secondary = false;
button120Hz.Size = new Size(184, 72);
button120Hz.TabIndex = 2;
button120Hz.TabIndex = 11;
button120Hz.Text = "120Hz + OD";
button120Hz.UseVisualStyleBackColor = false;
//
@@ -910,7 +921,7 @@ namespace GHelper
buttonMiniled.Name = "buttonMiniled";
buttonMiniled.Secondary = false;
buttonMiniled.Size = new Size(186, 72);
buttonMiniled.TabIndex = 3;
buttonMiniled.TabIndex = 12;
buttonMiniled.Text = Properties.Strings.Multizone;
buttonMiniled.UseVisualStyleBackColor = false;
//
@@ -970,7 +981,7 @@ namespace GHelper
panelKeyboard.Name = "panelKeyboard";
panelKeyboard.Padding = new Padding(20);
panelKeyboard.Size = new Size(810, 138);
panelKeyboard.TabIndex = 39;
panelKeyboard.TabIndex = 3;
//
// tableLayoutKeyboard
//
@@ -994,6 +1005,7 @@ namespace GHelper
//
// buttonKeyboard
//
buttonKeyboard.AccessibleName = "Extra Settings";
buttonKeyboard.Activated = false;
buttonKeyboard.BackColor = SystemColors.ControlLight;
buttonKeyboard.BorderColor = Color.Transparent;
@@ -1008,7 +1020,7 @@ namespace GHelper
buttonKeyboard.Name = "buttonKeyboard";
buttonKeyboard.Secondary = true;
buttonKeyboard.Size = new Size(250, 45);
buttonKeyboard.TabIndex = 37;
buttonKeyboard.TabIndex = 15;
buttonKeyboard.Text = Properties.Strings.Extra;
buttonKeyboard.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonKeyboard.UseVisualStyleBackColor = false;
@@ -1048,6 +1060,7 @@ namespace GHelper
//
// buttonKeyboardColor
//
buttonKeyboardColor.AccessibleName = "Keyboard Color";
buttonKeyboardColor.Activated = false;
buttonKeyboardColor.BackColor = SystemColors.ButtonHighlight;
buttonKeyboardColor.BorderColor = Color.Transparent;
@@ -1060,12 +1073,13 @@ namespace GHelper
buttonKeyboardColor.Name = "buttonKeyboardColor";
buttonKeyboardColor.Secondary = false;
buttonKeyboardColor.Size = new Size(248, 45);
buttonKeyboardColor.TabIndex = 39;
buttonKeyboardColor.TabIndex = 14;
buttonKeyboardColor.Text = Properties.Strings.Color;
buttonKeyboardColor.UseVisualStyleBackColor = false;
//
// comboKeyboard
//
comboKeyboard.AccessibleName = "Keyboard Backlight Mode";
comboKeyboard.BorderColor = Color.White;
comboKeyboard.ButtonColor = Color.FromArgb(255, 255, 255);
comboKeyboard.Dock = DockStyle.Top;
@@ -1078,8 +1092,7 @@ namespace GHelper
comboKeyboard.Margin = new Padding(4, 10, 4, 8);
comboKeyboard.Name = "comboKeyboard";
comboKeyboard.Size = new Size(248, 40);
comboKeyboard.TabIndex = 35;
comboKeyboard.TabStop = false;
comboKeyboard.TabIndex = 13;
//
// panelKeyboardTitle
//
@@ -1145,7 +1158,7 @@ namespace GHelper
panelVersion.Location = new Point(10, 1187);
panelVersion.Name = "panelVersion";
panelVersion.Size = new Size(810, 57);
panelVersion.TabIndex = 41;
panelVersion.TabIndex = 6;
//
// SettingsForm
//
@@ -1153,7 +1166,7 @@ namespace GHelper
AutoScaleMode = AutoScaleMode.Dpi;
AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(830, 1213);
ClientSize = new Size(830, 1373);
Controls.Add(panelFooter);
Controls.Add(panelVersion);
Controls.Add(panelBattery);

View File

@@ -489,7 +489,8 @@ namespace GHelper
if (colorDlg.ShowDialog() == DialogResult.OK)
{
AppConfig.Set("aura_color2", colorDlg.Color.ToArgb());
SetAura();
AsusUSB.ApplyAura();
VisualiseAura();
}
}
@@ -554,7 +555,8 @@ namespace GHelper
if (colorDlg.ShowDialog() == DialogResult.OK)
{
AppConfig.Set("aura_color", colorDlg.Color.ToArgb());
SetAura();
AsusUSB.ApplyAura();
VisualiseAura();
}
}
@@ -572,9 +574,6 @@ namespace GHelper
comboKeyboard.SelectedValue = AsusUSB.Mode;
comboKeyboard.SelectedValueChanged += ComboKeyboard_SelectedValueChanged;
pictureColor.BackColor = AsusUSB.Color1;
pictureColor2.BackColor = AsusUSB.Color2;
pictureColor2.Visible = AsusUSB.HasSecondColor();
if (AsusUSB.HasColor())
{
@@ -586,6 +585,15 @@ namespace GHelper
comboKeyboard.Visible = false;
}
VisualiseAura();
}
public void VisualiseAura()
{
pictureColor.BackColor = AsusUSB.Color1;
pictureColor2.BackColor = AsusUSB.Color2;
pictureColor2.Visible = AsusUSB.HasSecondColor();
}
public void InitMatrix()
@@ -606,21 +614,6 @@ namespace GHelper
}
public void SetAura()
{
AsusUSB.Mode = AppConfig.Get("aura_mode");
AsusUSB.Speed = AppConfig.Get("aura_speed");
AsusUSB.SetColor(AppConfig.Get("aura_color"));
AsusUSB.SetColor2(AppConfig.Get("aura_color2"));
pictureColor.BackColor = AsusUSB.Color1;
pictureColor2.BackColor = AsusUSB.Color2;
pictureColor2.Visible = AsusUSB.HasSecondColor();
AsusUSB.ApplyAura();
}
public void CycleAuraMode()
{
if (comboKeyboard.SelectedIndex < comboKeyboard.Items.Count - 1)
@@ -632,7 +625,8 @@ namespace GHelper
private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e)
{
AppConfig.Set("aura_mode", (int)comboKeyboard.SelectedValue);
SetAura();
AsusUSB.ApplyAura();
VisualiseAura();
}
@@ -774,8 +768,10 @@ namespace GHelper
if (HardwareControl.cpuTemp > 0)
cpuTemp = ": " + Math.Round((decimal)HardwareControl.cpuTemp).ToString() + "°C";
if (HardwareControl.batteryDischarge > 0)
battery = Properties.Strings.Discharging + ": " + Math.Round((decimal)HardwareControl.batteryDischarge, 1).ToString() + "W";
if (HardwareControl.batteryRate < 0)
battery = Properties.Strings.Discharging + ": " + Math.Round(-(decimal)HardwareControl.batteryRate, 1).ToString() + "W";
else if (HardwareControl.batteryRate > 0)
battery = Properties.Strings.Charging + ": " + Math.Round((decimal)HardwareControl.batteryRate, 1).ToString() + "W";
if (HardwareControl.gpuTemp > 0)
{
@@ -859,9 +855,11 @@ namespace GHelper
public void AutoKeyboard()
{
InputDispatcher.SetBacklightAuto(true);
AsusUSB.ApplyAuraPower();
AsusUSB.ApplyAura();
InputDispatcher.SetBacklightAuto(true);
if (Program.acpi.IsXGConnected())
AsusUSB.ApplyXGMLight(AppConfig.Is("xmg_light"));

View File

@@ -18,7 +18,7 @@
<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="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>

View File

@@ -18,7 +18,7 @@ Lightweight Armoury Crate alternative for Asus laptops. A small utility that all
5. FN-Lock
6. Doesn't need administrator privileges to run (*)
## [:floppy_disk: Download App](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
# [:floppy_disk: Download G-Helper App](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
If you like this app, please [star :star: it on Github](https://github.com/seerge/g-helper) and spread a word about it!
#### Support project in [:euro: EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [💵 USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) | [:credit_card: Stripe](https://buy.stripe.com/00gaFJ9Lf79v7WobII)
@@ -27,7 +27,7 @@ _If you post about the app - please include a link. Thanks._
![Gihhub](https://github.com/seerge/g-helper/assets/5920850/4d98465a-63a5-4498-ae14-afb3e67e7e82)
### :zap: Main features
### :zap: Features
1. **Performance modes**: Silent - Balanced - Turbo (built-in, with default fan curves)
2. **GPU modes**: Eco - Standard - Ultimate - Optimized
@@ -40,6 +40,7 @@ _If you post about the app - please include a link. Thanks._
9. Battery charge limit to preserve battery health
10. NVidia GPU overclocking
11. XG Mobile Control
12. AMD CPU Undervolting
![Screenshot 2023-04-13 190951](https://user-images.githubusercontent.com/5920850/231859391-c4963af4-491c-4523-95d4-0bdcfd7cfd6f.png)
@@ -216,15 +217,13 @@ App supports custom actions for M3, M4 and FN+F4 hotkeys. To set them select "Cu
2. To simulate any windows key - put appropriate keycode into "action" field, for example ``0x2C`` for Print screen.
Full list of keycodes https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
![Screenshot 2023-06-04 232848](https://github.com/seerge/g-helper/assets/5920850/3db6f058-af2b-4220-9ac9-3b812ab09903)
![Screenshot 2023-07-17 192155](https://github.com/seerge/g-helper/assets/5920850/e450e124-1589-4787-bce8-7c37ffe72fbd)
### Workaround for [bugged bios on G15](https://github.com/seerge/g-helper/issues/253) when external monitor is connected
Some people reported that on G15 model bios can be bugged and either not turn on or not turn off fans, when you set custom fan curve (in Armoury or g-helper, or any other app)
I have added a very optional workaround as it was asked, on launch app will try to disable and re-enable dGPU when external monitor is connected, that seems to wake up fans :)
To enable this custom workaround you need to add an extra line in config.json (under ``%AppData%\GHelper``)
``gpu_reenable : 1,``
### Disable OSD
You can disable app's OSD (for performance modes, keyboard backlight, etc) by adding following line to ``%AppData%\GHelper\config.json``
```
"disable_osd": 1,
```
### Keybinding to toggle performance modes (on external keyboards)