aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2020-10-21 22:43:37 +0200
committerJohn Ankarström <john@ankarstrom.se>2020-10-21 22:45:37 +0200
commit914ff1da71db0564d5423f97e1dec6aa13ef1fc7 (patch)
tree64d2475b9586746074f3245e61c2156d423a9ade
parent3711cb6516adc385174a80eb5144339b92aa0b4f (diff)
downloaddrm-914ff1da71db0564d5423f97e1dec6aa13ef1fc7.tar.gz
add readme
-rw-r--r--640x480.pngbin0 -> 30032 bytes
-rw-r--r--800x600.pngbin0 -> 36024 bytes
-rw-r--r--index.html155
-rw-r--r--menu.pngbin0 -> 30742 bytes
4 files changed, 155 insertions, 0 deletions
diff --git a/640x480.png b/640x480.png
new file mode 100644
index 0000000..8c06e32
--- /dev/null
+++ b/640x480.png
Binary files differ
diff --git a/800x600.png b/800x600.png
new file mode 100644
index 0000000..5b8c0f8
--- /dev/null
+++ b/800x600.png
Binary files differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..bb93fcf
--- /dev/null
+++ b/index.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+
+ <meta http-equiv="content-type" content="text/html;charset=windows-1252">
+ <title>drm – dynamic resolution manager</title>
+
+
+
+ <style type="text/css">
+ code, tt, pre, xmp { font-size: 0.8em; font-family: monospace, monospace; }
+ </style>
+</head><body>
+<h1 style="display: inline;">drm</h1>
+
+
+<p>The Dynamic Resolution Manager, or DRM for short, is simple Windows
+program that resides in your tray. When right-clicked, it opens a menu,
+where you can choose a new resolution:</p>
+
+<img src="../plain/menu.png?h=readme" alt="Screenshot of" style="margin: 0pt 1em 1em 0pt; float: left;" height="271" width="233">
+<p style="width: 25em;"><small>(Don’t
+worry about the font in the screenshot – it follows your system font.
+It’s just that I personally happen to use Verdana as my system font.)</small>
+</p>
+
+<p style="clear: left;">The “dynamic” part – and the main selling point
+– is that the program <strong>retains the window layout across
+resolutions</strong>. For example, let’s say you have two windows side
+by side, together covering the entirety of the screen. When you switch
+to a lower resolution using drm, the windows will automatically be
+repositioned and resized to cover the exact same area; the full-screen
+side-by-side layout will be retained regardless of resolution. In other
+words, drm retains the <em>centimeter-measured</em> positions and
+sizes of all windows, rather than the pixel-measured.</p>
+
+<p style="clear: left;">The resizing and repositioning is instantaneous
+and invisible, and it applies to all windows, even those that are
+currently minimized. Below is an example, where the window layout is
+retained when switching from 800×600 to 640×480.<br>
+</p>
+
+<img src="../plain/800x600.png?h=readme" alt="Two windows side by side in 800×600." height="300" width="400"><img src="../plain/640x480.png?h=readme" alt="The same two" height="300" width="400"> <br>
+
+<h2>Configuration</h2>
+
+<p>drm is configured via a set of registry keys located in <tt>
+HKCU\Software\JohnAJ\DRM</tt>. They will be created automatically when
+the program is launched for the first time.<br>
+</p>
+
+<table border="1" cellpadding="2" cellspacing="2" width="100%">
+
+ <thead> <tr>
+ <td valign="top"><b>Key</b><b><br>
+ </b> </td>
+ <td valign="top"><b>Description</b><b><br>
+ </b> </td>
+ <td valign="top"><b>Example</b><b><br>
+ </b></td>
+ </tr>
+ </thead> <tbody>
+ <tr>
+ <td valign="top"><i>Resolutions</i><i><br>
+ </i> </td>
+ <td valign="top">Set of custom resolutions. Since 1.4, refresh
+rates can optionally be specified.*<br>
+ </td>
+ <td valign="top"><tt>1600x1200&nbsp;75Hz|1024x768<br>
+ </tt> </td>
+ </tr>
+ <tr>
+ <td valign="top"><i>Ignore</i><i><br>
+ </i> </td>
+ <td valign="top">Set of programs whose window position and size
+should be ignored (1.2).**<br>
+ </td>
+ <td valign="top"><tt>explorer.exe|2kclient.exe<br>
+ </tt> </td>
+ </tr>
+ <tr>
+ <td valign="top"><i>IgnoreSize</i><i><br>
+ </i> </td>
+ <td valign="top">Set of programs whose window size should be
+ignored, but window position retained (1.2).<br>
+ </td>
+ <td valign="top"><tt>mpc-hc.exe|winamp.exe<br>
+ </tt> </td>
+ </tr>
+ </tbody>
+</table>
+
+<p><small>* Resolutions are specified using the following notation: <tt>width
+"x" height [" " refresh rate "Hz"]</tt>, with the section enclosed in
+brackets being optional. Each resolution is then separated by a pipe (<tt>|</tt>)
+character. Since 1.4.1, two pipe characters in a row (<tt>||</tt>) are
+rendered as a separator in the menu.<br>
+** These windows will still be repositioned and resized, but always to
+their original pixel-measured position and size. (As such, it will
+still behave differently from Windows’ normal operation, which is to
+shrink windows that don’t fit on screen.)</small> </p>
+
+<p>To quickly open the configuration in Registry Editor, click the <i>Configure…</i>
+menu option. Note that you must restart drm in order for any
+configuration changes to be applied. To easily restart drm, hold Shift
+while opening the menu, which replaces the <i>Exit</i> option with a <i>Restart</i>
+option.<br>
+</p>
+
+<h3>Advanced configuration</h3>
+
+<p>If you want to customize the handling of specific windows further,
+use the non-compiled version of drm, <i>drm.ahk</i>, which you can easily modify yourself. Note that this
+requires <a href="https://www.autohotkey.com/">AutoHotKey</a> to be
+installed on your system.<br>
+</p>
+
+<p>Since version 1.3.2, <i>drm.ahk</i> includes a designated place
+(around line 196, as of 1.4.2) where you can write your own custom
+rules. The included example, shown below, would instruct drm to ignore
+the size, but retain the position, of any window of the <i>mpc-hc.exe</i>
+process with a client width of 294 pixels:<br>
+</p>
+
+<pre>; Custom rules<br><br>; Example:<br>; if (exe = "mpc-hc.exe" and cw = 294)<br>; DoIgnoreSize := true<br></pre>
+
+<p>Code in this section of the program is run once for every window,
+whenever drm initiates a resolution change. You can easily control how
+drm should handle a specific window by setting one of the variables <i>DoIgnore</i>
+and <i>DoIgnoreSize</i> to true. This is equivalent to adding the
+program to the <i>Ignore</i> or <i>IgnoreSize</i> registry key.</p>
+
+<p>This approach, while more powerful than the registry-based
+configuration, requires some knowledge of AutoHotKey, some
+understanding of drm’s source code (which, however, is relatively
+simple) and, finally, a slightly more manual update process, should a
+new version of drm be released.<br>
+</p>
+
+<h2>Other information<br>
+</h2>
+
+<ul>
+
+ <li>Currently, drm is untested in combination with multiple monitors
+and is not programmed with multiple monitors in mind.</li>
+ <li>If you want to use drm, I recommend disabling NVIDEA’s nView
+Desktop Manager, which has a tendency to interfere with it.</li>
+</ul>
+
+<p>If you have any other issues or feature requests, feel free to <a href="http://john.ankarstrom.se/about.html#contact">contact me</a> or to modify the source
+code yourself. If you add a feature or fix a bug yourself, please share
+it!<br>
+</p>
+
+</body></html> \ No newline at end of file
diff --git a/menu.png b/menu.png
new file mode 100644
index 0000000..23caad7
--- /dev/null
+++ b/menu.png
Binary files differ