diff options
author | John Ankarström <john@ankarstrom.se> | 2020-10-21 22:43:37 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2020-10-21 22:45:37 +0200 |
commit | 914ff1da71db0564d5423f97e1dec6aa13ef1fc7 (patch) | |
tree | 64d2475b9586746074f3245e61c2156d423a9ade | |
parent | 3711cb6516adc385174a80eb5144339b92aa0b4f (diff) | |
download | drm-914ff1da71db0564d5423f97e1dec6aa13ef1fc7.tar.gz |
add readme
-rw-r--r-- | 640x480.png | bin | 0 -> 30032 bytes | |||
-rw-r--r-- | 800x600.png | bin | 0 -> 36024 bytes | |||
-rw-r--r-- | index.html | 155 | ||||
-rw-r--r-- | menu.png | bin | 0 -> 30742 bytes |
4 files changed, 155 insertions, 0 deletions
diff --git a/640x480.png b/640x480.png Binary files differnew file mode 100644 index 0000000..8c06e32 --- /dev/null +++ b/640x480.png diff --git a/800x600.png b/800x600.png Binary files differnew file mode 100644 index 0000000..5b8c0f8 --- /dev/null +++ b/800x600.png 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 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 Binary files differnew file mode 100644 index 0000000..23caad7 --- /dev/null +++ b/menu.png |