Repository navigation
Expand file tree
/
Copy pathOptions.cs
More file actions
67 lines (59 loc) · 2.21 KB
/
Copy pathOptions.cs
File metadata and controls
67 lines (59 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
namespace DisplayNudger;
// --------- PowerShell-friendly argument parsing ----------
public class Options
{
public string DisplaySelector = "1"; // default to display 1
public int? Width, Height, Hz, Bits, DelaySeconds;
public bool ListOnly, ShowHelp;
public static Options Parse(string[] a)
{
var o = new Options();
for (int i = 0; i < a.Length; i++)
{
var k = a[i].Trim().ToLowerInvariant();
string Next() => (i + 1 < a.Length) ? a[++i] : throw new ArgumentException($"Missing value after {k}");
switch (k)
{
case "-display":
case "-d": o.DisplaySelector = Next(); break;
case "-width":
case "-w": o.Width = int.Parse(Next()); break;
case "-height":
case "-h": o.Height = int.Parse(Next()); break;
case "-hz":
case "-r": o.Hz = int.Parse(Next()); break;
case "-bpp":
case "-bits": o.Bits = int.Parse(Next()); break;
case "-wait":
case "-delay": o.DelaySeconds = int.Parse(Next()); break;
case "-list":
case "--list": o.ListOnly = true; break;
case "-?":
case "--help":
case "-help": o.ShowHelp = true; break;
default: throw new ArgumentException($"Unknown option: {k}");
}
}
return o;
}
public static void PrintHelpToConsole()
{
Console.WriteLine(@"
DisplayNudger - set resolution/refresh on a specific display.
Usage:
DisplayNudger -display <index|\\.\DISPLAYx|name-substring> [-w 3840 -h 2160] -hz 120
DisplayNudger -display 1 -hz 120
DisplayNudger -display G80SD -w 3440 -h 1440 -hz 120
DisplayNudger -display 2 -list
Options:
-display, -d Target display by index (1-based), \\.\DISPLAYx, or name substring (e.g., G80SD)
-width, -w Width in pixels
-height, -h Height in pixels
-hz, -r Refresh rate (e.g., 120)
-bpp, -bits Bits per pixel (optional; usually leave unset)
-list List available modes for that display
-help Show this help
");
}
}