refactor: restructure docs

This commit is contained in:
JoniVR 2021-12-11 14:56:42 +01:00
parent ad6406c7bf
commit d717af313a
No known key found for this signature in database
GPG key ID: 3C8F6B8A7809ACDA
18 changed files with 0 additions and 1010 deletions

View file

@ -1 +0,0 @@
monitorcontrol.app

View file

@ -1,108 +0,0 @@
<?xml version="1.0" standalone="yes"?>
<!-- TODO: Use correct channels once setting is present. (after 4.0.0 release) -->
<!-- <sparkle:channel>beta</sparkle:channel> -->
<!-- NOTE: Releases after v4.0.0 should use the dynamic changelog links since v4.0.0 adds JS support in Sparkle release notes window:
https://monitorcontrol.app/changelog.html?tag=v4.0.0
-->
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
<channel>
<title>MonitorControl</title>
<link>https://monitorcontrol.app</link>
<item>
<title>v4.0.0-beta1</title>
<sparkle:releaseNotesLink>
https://monitorcontrol.app/changelogs/v4.0.0-beta1.html
</sparkle:releaseNotesLink>
<pubDate>Thu, 30 Sep 2021 21:43:20 +0200</pubDate>
<sparkle:version>6293</sparkle:version>
<sparkle:shortVersionString>4.0.0-beta1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>10.15</sparkle:minimumSystemVersion>
<enclosure
url="https://github.com/MonitorControl/MonitorControl/releases/download/v4.0.0-beta1/MonitorControl.4.0.0-beta1.dmg"
type="application/octet-stream"
sparkle:edSignature="vb1yP7PHUbfKXARe3oHw+2y7V79fW/lsOAj8zlr03K1vXWq0l/LfBnjmJySCRnJjtkfn6TbkEwNVi0Q64pwJDA=="
length="4127428"
/>
</item>
<item>
<title>v4.0.0-beta2</title>
<sparkle:releaseNotesLink>
https://monitorcontrol.app/changelogs/v4.0.0-beta2.html
</sparkle:releaseNotesLink>
<pubDate>Thu, 07 Oct 2021 20:31:20 +0200</pubDate>
<sparkle:version>6443</sparkle:version>
<sparkle:shortVersionString>4.0.0-beta2</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>10.15</sparkle:minimumSystemVersion>
<enclosure
url="https://github.com/MonitorControl/MonitorControl/releases/download/v4.0.0-beta2/MonitorControl.4.0.0-beta2.dmg"
type="application/octet-stream"
sparkle:edSignature="D00vAphhkkQ/lo753WP0LIxXg0Ph8jhF+u5pQrF8ZXFBR1cJtP3kdqRtKR6OMG9P9om6xc4UmyZXz99vuUzzDQ=="
length="4135991"
/>
</item>
<item>
<title>v4.0.0-rc1</title>
<sparkle:releaseNotesLink>
https://monitorcontrol.app/changelogs/v4.0.0-rc1.html
</sparkle:releaseNotesLink>
<pubDate>Thu, 12 Oct 2021 19:13:00 +0200</pubDate>
<sparkle:version>6632</sparkle:version>
<sparkle:shortVersionString>4.0.0-rc1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>10.15</sparkle:minimumSystemVersion>
<enclosure
url="https://github.com/MonitorControl/MonitorControl/releases/download/v4.0.0-rc1/MonitorControl.4.0.0-rc1.dmg"
type="application/octet-stream"
sparkle:edSignature="S8KTrjt00Q9DkQWHleyfxhESqy4MmMKNcne0ebwB/wY1aMH5swhEy0pld8nEmPGy32lccw4feRe9nUWOIvAXCg=="
length="4158362"
/>
</item>
<item>
<title>v4.0.0</title>
<sparkle:releaseNotesLink>
https://monitorcontrol.app/changelogs/v4.0.0.html
</sparkle:releaseNotesLink>
<pubDate>Thu, 26 Oct 2021 19:32:00 +0200</pubDate>
<sparkle:version>6851</sparkle:version>
<sparkle:shortVersionString>4.0.0</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>10.15</sparkle:minimumSystemVersion>
<enclosure
url="https://github.com/MonitorControl/MonitorControl/releases/download/v4.0.0/MonitorControl.4.0.0.dmg"
type="application/octet-stream"
sparkle:edSignature="5hyW24GNTZKMY/SsIpQ5kItDbgwN0aXQ2WadV0nFpoY0340Ol3dcheGbTt5F8LOZopfJDZvqDbXkvuHgjCKKCA=="
length="4271343"
/>
</item>
<item>
<title>v4.0.1</title>
<sparkle:releaseNotesLink>
https://monitorcontrol.app/changelog.html?tag=v4.0.1
</sparkle:releaseNotesLink>
<pubDate>Fri, 05 Nov 2021 17:16:00 +0200</pubDate>
<sparkle:version>6941</sparkle:version>
<sparkle:shortVersionString>4.0.1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>10.14</sparkle:minimumSystemVersion>
<enclosure
url="https://github.com/MonitorControl/MonitorControl/releases/download/v4.0.1/MonitorControl.4.0.1.dmg"
type="application/octet-stream"
sparkle:edSignature="iRwfnB95Mxkxvmsu73EyYbfzgxkyOqAL2F5GeMmZlfD2AVvYfy18KDgUTfm1ShMY0FlQHs4HBfq49R2cuEnOCw=="
length="11023343"
/>
</item>
<item>
<title>v4.0.2</title>
<sparkle:releaseNotesLink>
https://monitorcontrol.app/changelog.html?tag=v4.0.2
</sparkle:releaseNotesLink>
<pubDate>Fri, 18 Nov 2021 20:10:00 +0200</pubDate>
<sparkle:version>6965</sparkle:version>
<sparkle:shortVersionString>4.0.2</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>10.14</sparkle:minimumSystemVersion>
<enclosure
url="https://github.com/MonitorControl/MonitorControl/releases/download/v4.0.2/MonitorControl.4.0.2.dmg"
type="application/octet-stream"
sparkle:edSignature="Hj/A/33u8715otbPJ2zYHYeX0Bu0eCCoWOH9tdFepQCxY/4VdnXF617X1s6FzrqFYtUm4OwK/vzkJJBU8m9jCg=="
length="18233149"
/>
</item>
</channel>
</rss>

View file

@ -1,30 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" href="./styles/changelog.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Changelog</title>
<script src="./scripts/marked.min.js"></script>
<script src="./scripts/marked-footnotes.min.js"></script>
<script>
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());
if (params?.tag) {
const url = `https://api.github.com/repos/MonitorControl/MonitorControl/releases/tags/${params.tag}`;
let request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = (event) => {
const response = JSON.parse(event.target.response);
const el = document.createElement('div');
el.innerHTML = marked(response.body);
document.body.appendChild(el);
document.title = `Changelog ${params.tag}`;
};
request.send();
}
</script>
</head>
</html>

View file

@ -1,54 +0,0 @@
html,
body {
font-size: 90%;
margin: 2px 10px;
line-height: 1.5;
font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto,
'Helvetica Neue', sans-serif;
text-rendering: optimizeLegibility;
}
kbd {
font-family: Consolas, 'Lucida Console', monospace;
display: inline-block;
border-radius: 3px;
padding: 0px 4px;
box-shadow: 1px 1px 1px #777;
margin: 2px;
font-size: small;
vertical-align: text-bottom;
background: #eee;
font-weight: 500;
color: #555;
letter-spacing: 1px;
/* Prevent selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
ul li {
margin-top: 0.4rem;
}
ul {
margin: 0.8rem 0 0.8rem 0.8rem;
padding: 0;
list-style: disc inside;
}
a {
color: #6fa2fa !important;
outline: 0;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
h3 {
color: inherit;
font-size: 1.4rem;
font-weight: 500;
line-height: 1.2;
margin-bottom: 0.5em;
margin-top: 0.4em;
}

View file

@ -1,12 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="changelog.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>$title$</title>
</head>
<body>
$body$
</body>
</html>

View file

@ -1,222 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="changelog.css" />
<title>Changelog v4.0.0-beta1</title>
</head>
<body>
<h2>MonitorControl v4.0.0-beta1 (Thu, 30 Sept 2021)</h2>
<aside>
View full notes
<a
href="https://github.com/MonitorControl/MonitorControl/releases/tag/v4.0.0-beta1"
>on Github</a
>
</aside>
<h3>Enhancements</h3>
<ul>
<li>
Automatic & manual updates through the app, no more manual downloads 🎉
</li>
<li>Added proper support for controlling Apple displays.</li>
<li>Added option to show/hide brightness slider.</li>
<li>
Added option to show brightness slider for internal display and apple
displays (enabled by default).
</li>
<li>
Replication of built-in and Apple display brightness to corresponding
brightness slider.
</li>
<li>
Added suffix to similarly named displays for better differentiation.
</li>
<li>
Option to disable slider snapping for finer control + disable slider
snapping by default.
</li>
<li>Added option to show slider tick marks for better accuracy.</li>
<li>
Added option to use window focus instead of mouse to determine which
display to control.
</li>
<li>
<kbd>control</kbd> + <kbd>command</kbd> + <kbd>brightness</kbd> now
controls external displays only (<kbd>control</kbd> +
<kbd>Brightness</kbd> continues to control internal display only)
</li>
<li>Added separate tab for menu options.</li>
<li>Added option to restore last saved values upon startup.</li>
<li>
Added option for audio device name matching for display volume control
selection.
</li>
<li>Separated option to change all screens for brightness and volume.</li>
<li>Added option for keyboard fine scale for brightness.</li>
<li>Added option for keyboard fine scale for volume.</li>
<li>
Added version check upon startup for mandatory preferences reset upon
downgrade or incompatible previous version + notification about this.
</li>
<li>
Added implementation for <kbd>command</kbd> + <kbd>f1</kbd> macOS
shortcut to enable/disable mirroring.
</li>
<li>
Added safer 'Assume last saved settings are valid' option as default
instead of startup DDC read (or restore).
</li>
<li>
Streamlined preference panes, 'Show advanced settings' now affect all
tabs. This leads to a better and safer first timer experience
(especially because of the influx of many new features).
</li>
<li>
Added a Quit button to Preferences if menu is hidden (it was not
passible to quit the application until this time in this mode only by
re-enabling the menu).
</li>
<li>
Lowered default first-run volume DDC default from 75% to 15% if read is
not possible or disabled to prevent unexpectedly loud sound.
</li>
<li>
Added slider skew setting on a per control basis to have the ability to
manipulate DDC slider balance and OSD scale if display control is not
linear.
</li>
<li>
Added the ability to set min. and max. DDC bounds on a per display, per
control basis.
</li>
<li>
Audio device name override option for a display (manually assign a
specific audio device to a display).
</li>
<li>
Advanced setting to invert DDC control range (some displays have the
scale reversed).
</li>
<li>
Advanced setting to remap DDC control code (some displays have contrast
and brightness mixed up).
</li>
<li>
Ability to mark a DDC control as available or unavailable in advanced
settings under Displays.
</li>
<li>
Ability to automatically hide menu icon if there is no slider present in
the menu.
</li>
<li>Option to show slider percentage for more precision.</li>
<li>
Option to set combined or separate OSD scale when combined
hardware+software brightness is used.
</li>
<li>
Apple like smooth brightness change (both for software, hardware, mixed
and DisplayServices).
</li>
<li>
Added support for DisplayLink, AirPlay, Sidecar, screen sharing etc.
using window shades (this is an inferior technique to the existing
software implementation - gamma control - but still better than
nothing). Disabled for any kind of mirroring setups. [^1]
</li>
<li>
Brightness change synchronisation from Built-In and Apple displays to
other displays. This makes Touch Bar, Ambient light sensor, Control
Center and System Preferences induced changes affect all displays.
Synchronisation uses a sophisticated indirect delta method + the user
can intervene and adjust individual screen brightness at any time to
easily compensate mismatching native brightness levels.
</li>
<li>Preferences pane tab selector has a simpler look on Catalina.</li>
<li>
All menu sliders are now scrollable using a magic mouse/trackpad swipes
or mouse wheel.
</li>
<li>
Added option for menu to show only items that are relevant to display
which shows the menu currently.
</li>
<li>
Added option to enable combined sliders (note: this option combined with
enabled Apple/built-in display syncing and enabled 'change all' keyboard
settings finally provides full synchronised control of all displays).
</li>
<li>
Combined sliders can now display multiple displays when keyboard and
brightness syncing is not enabled. [^1]
</li>
<li>
Redesigned sliders to look like Big Sur/Monterey Control Center's
sliders. [^1]
</li>
<li>
Quit and Preferences... are now icons for a much cleaner look. [^1]
</li>
<li>
Added option to change additional menu options style or hide them. [^1]
</li>
<li>
Multiple displays are now in nice Big Sur styled blocks - no more ugly
separators. [^1]
</li>
<li>
Added customisable gamma/ddc switchover point for combined brightness in
the advanced section of Displays.
</li>
<li>
Added comma separated list for control code override to enable edge
cases like controlling Brightness and Contrast at the same time (use VCP
list entry `10, 12` for that)
</li>
<li>
Contrast can now be controlled from keyboard via <kbd>control</kbd> +
<kbd>option</kbd> + <kbd>command</kbd> + <kbd>brightness up/down</kbd>.
</li>
<li>
Custom keyboard shortcuts for brightness, contrast, volume and mute
</li>
</ul>
<h3>Other under the hood changes and bug fixes</h3>
<ul>
<li>
Standardised internal scale among various displays and DDC ranges for
ranged controls.
</li>
<li>
Uses the new internal scale for combined hardware-software brightness
mode.
</li>
<li>
Migrated scales to internal float representation to prevent loss of fine
detail on transformations.
</li>
<li>
Fixed double sound when muting multiple external displays at the same
time.
</li>
<li>
Fixed lack of initial volume configuration if slider is not shown in
menu.
</li>
<li>
Fixed wrong settings being applied to a display when replaced on Apple
Silicon (UserDefaults preferences are now tied to specific display
strings instead of CGDirectDisplayID - which is no longer semi-unique on
arm64).
</li>
<li>A lot of refactoring, streamlining and general optimisations.</li>
</ul>
</body>
</html>

View file

@ -1,100 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="changelog.css" />
<title>Changelog v4.0.0-beta1</title>
</head>
<body>
<h2>MonitorControl v4.0.0-beta2 (Thu, 07 Oct 2021)</h2>
<aside>
View full notes
<a
href="https://github.com/MonitorControl/MonitorControl/releases/tag/v4.0.0-beta2"
>on Github</a
>
</aside>
<h3>Enhancements</h3>
<ul>
<li>Added Internet Access Policy</li>
<li>
Don't relinquish control over brightness keys with no external display
connected if fine brightness OSD scale is active
</li>
<li>Changed icon order in menu (when icon mode is enabled)</li>
<li>
Gear shape icon is used for preferences + stands a little bit apart to
help user focus.
</li>
<li>
Changed default to a minimum software dimming of 15% for safety reasons.
</li>
<li>
Added advanced option to enable zero brightness with software dimming.
</li>
<li>
Added 'Avoid gamma table manipulation' option for coexistence with
f.lux.
</li>
<li>
Set relevant options to disabled when keyboard control is disabled.
</li>
<li>
Added <kbd>Command</kbd> + <kbd>Q</kbd> shortcut in menu when it is in
standard text mode (not icon mode).
</li>
<li>Made preferences more spacious + more room for verbose languages</li>
</ul>
<h3>Updated translations:</h3>
<ul>
<li>English - base language</li>
<li>Chinese (Traditional, Taiwan) - thanks to @stiiveo, @dororojames</li>
<li>Dutch - thanks to @JoniVR</li>
<li>French - thanks to @the0neyouseek</li>
<li>German - thanks to @jajoho</li>
<li>Hungarian - thanks to @waydabber</li>
<li>Italian - thanks to @picov</li>
<li>Korean - thanks to @zzulu</li>
<li>Turkish - thanks to @mennan</li>
</ul>
<h3>Under the hood changes & fixes</h3>
<ul>
<li>
DDC command touched status. When write on startup enabled, apply only
touched command values.
</li>
<li>Reorganised PrefKey list to be less confusing.</li>
<li>
Disengage custom shortcut keyboard after 100 key repeat to prevent
possibly endless loop if keyUp event never arrives due to any
circumstance.
</li>
<li>
Fixed text for external display brightness control keyboard shortcut.
</li>
<li>
Fix cumulative darkening bug upon toggling 'Disable dimming as
fallback'.
</li>
<li>
Make sure that key repeat speed for custom shortcuts do not go below a
certain threshold.
</li>
<li>Fixes text clipping issues for various languages</li>
<li>Added beta channel update backend</li>
<li>Fixed layout issue at brightness custom shortcuts.</li>
<li>
Fixed custom key shortcuts going runaway when menu was opened during a
key repeat streak.
</li>
</ul>
</body>
</html>

View file

@ -1,108 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="changelog.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>v4.0.0-rc1</title>
</head>
<body>
<h2 id="full-v4.0.0-release-notes">Full v4.0.0 release notes</h2>
<h3 id="enhancements">Enhancements</h3>
<ul>
<li>Automatic &amp; manual updates through the app, no more manual downloads 🎉</li>
<li>Added proper support for controlling Apple displays.</li>
<li>Added option to show/hide brightness slider.</li>
<li>Added option to show brightness slider for internal display and apple displays (enabled by default).</li>
<li>Replication of built-in and Apple display brightness to corresponding brightness slider.</li>
<li>Added suffix to similarly named displays for better differentiation.</li>
<li>Option to disable slider snapping for finer control + disable slider snapping by default.</li>
<li>Added option to show slider tick marks for better accuracy.</li>
<li>Added option to use window focus instead of mouse to determine which display to control.</li>
<li><kbd>control</kbd> + <kbd>command</kbd> + <kbd>brightness</kbd> now controls external displays only (<kbd>control</kbd> + <kbd>Brightness</kbd> continues to control internal display only)</li>
<li>Added separate tab for menu options.</li>
<li>Added option to restore last saved values upon startup.</li>
<li>Added option for audio device name matching for display volume control selection.</li>
<li>Separated option to change all screens for brightness and volume.</li>
<li>Added option for keyboard fine scale for brightness.</li>
<li>Added option for keyboard fine scale for volume.</li>
<li>Added version check upon startup for mandatory preferences reset upon downgrade or incompatible previous version + notification about this.</li>
<li>Added implementation for <kbd>command</kbd> + <kbd>f1</kbd> macOS shortcut to enable/disable mirroring.</li>
<li>Added safer Assume last saved settings are valid option as default instead of startup DDC read (or restore).</li>
<li>Streamlined preference panes, Show advanced settings now affect all tabs. This leads to a better and safer first timer experience (especially because of the influx of many new features).</li>
<li>Added a Quit button to Preferences if menu is hidden (it was not passible to quit the application until this time in this mode only by re-enabling the menu).</li>
<li>Lowered default first-run volume DDC default from 75% to 15% if read is not possible or disabled to prevent unexpectedly loud sound.</li>
<li>Added slider skew setting on a per control basis to have the ability to manipulate DDC slider balance and OSD scale if display control is not linear.</li>
<li>Added the ability to set min. and max. DDC bounds on a per display, per control basis.</li>
<li>Audio device name override option for a display (manually assign a specific audio device to a display).</li>
<li>Advanced setting to invert DDC control range (some displays have the scale reversed).</li>
<li>Advanced setting to remap DDC control code (some displays have contrast and brightness mixed up).</li>
<li>Ability to mark a DDC control as available or unavailable in advanced settings under Displays.</li>
<li>Ability to automatically hide menu icon if there is no slider present in the menu.</li>
<li>Option to show slider percentage for more precision.</li>
<li>Option to set combined or separate OSD scale when combined hardware+software brightness is used.</li>
<li>Apple like smooth brightness change (both for software, hardware, mixed and DisplayServices).</li>
<li>Added support for DisplayLink, AirPlay, Sidecar, screen sharing etc. using window shades (this is an inferior technique to the existing software implementation - gamma control - but still better than nothing). Disabled for any kind of mirroring setups. <a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a></li>
<li>Brightness change synchronisation from Built-In and Apple displays to other displays. This makes Touch Bar, Ambient light sensor, Control Center and System Preferences induced changes affect all displays. Synchronisation uses a sophisticated indirect delta method + the user can intervene and adjust individual screen brightness at any time to easily compensate mismatching native brightness levels.</li>
<li>Preferences pane tab selector has a simpler look on Catalina.</li>
<li>All menu sliders are now scrollable using a magic mouse/trackpad swipes or mouse wheel.</li>
<li>Added option for menu to show only items that are relevant to display which shows the menu currently.</li>
<li>Added option to enable combined sliders (note: this option combined with enabled Apple/built-in display syncing and enabled change all keyboard settings finally provides full synchronised control of all displays).</li>
<li>Combined sliders can now display multiple displays when keyboard and brightness syncing is not enabled. <a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a></li>
<li>Redesigned sliders to look like Big Sur/Monterey Control Centers sliders. <a href="#fn3" class="footnote-ref" id="fnref3" role="doc-noteref"><sup>3</sup></a></li>
<li>Quit and Preferences… are now icons for a much cleaner look. <a href="#fn4" class="footnote-ref" id="fnref4" role="doc-noteref"><sup>4</sup></a></li>
<li>Added option to change additional menu options style or hide them. <a href="#fn5" class="footnote-ref" id="fnref5" role="doc-noteref"><sup>5</sup></a></li>
<li>Multiple displays are now in nice Big Sur styled blocks - no more ugly separators. <a href="#fn6" class="footnote-ref" id="fnref6" role="doc-noteref"><sup>6</sup></a></li>
<li>Added customisable gamma/ddc switchover point for combined brightness in the advanced section of Displays.</li>
<li>Added comma separated list for control code override to enable edge cases like controlling Brightness and Contrast at the same time (use VCP list entry <code>10, 12</code> for that)</li>
<li>Contrast can now be controlled from keyboard via <kbd>control</kbd> + <kbd>option</kbd> + <kbd>command</kbd> + <kbd>brightness up/down</kbd>.</li>
<li>Custom keyboard shortcuts for brightness, contrast, volume and mute</li>
<li>Added Internet Access Policy</li>
<li>Added advanced option to enable zero brightness with software dimming.</li>
<li>Added <kbd>command</kbd> + <kbd>q</kbd> shortcut in menu when it is in standard text mode.</li>
<li>Rearranged Preferences to fit better on smaller screens in Advanced mode</li>
<li>Alert when repeated interference is detected with applications.</li>
<li>Added Avoid gamma table manipulation option for peaceful coexistence with f.lux.</li>
</ul>
<h3 id="other-under-the-hood-changes-and-bug-fixes">Other under the hood changes and bug fixes</h3>
<ul>
<li>Standardised internal scale among various displays and DDC ranges for ranged controls.</li>
<li>Uses the new internal scale for combined hardware-software brightness mode.</li>
<li>Migrated scales to internal float representation to prevent loss of fine detail on transformations.</li>
<li>Fixed double sound when muting multiple external displays at the same time.</li>
<li>Fixed lack of initial volume configuration if slider is not shown in menu.</li>
<li>Fixed wrong settings being applied to a display when replaced on Apple Silicon (UserDefaults preferences are now tied to specific display strings instead of CGDirectDisplayID - which is no longer semi-unique on arm64).</li>
<li>A lot of refactoring, streamlining and general optimisations.</li>
</ul>
<h3 id="thanks-to-all-our-translators">Thanks to all our translators</h3>
<ul>
<li>Chinese - thanks to <span class="citation" data-cites="dev-coco">@dev-coco</span>, <span class="citation" data-cites="anmoliyang">@anmoliyang</span></li>
<li>Chinese (Traditional, Taiwan) - thanks to <span class="citation" data-cites="stiiveo">@stiiveo</span>, <span class="citation" data-cites="dororojames">@dororojames</span></li>
<li>Dutch - thanks to <span class="citation" data-cites="JoniVR">@JoniVR</span></li>
<li>French - thanks to <span class="citation" data-cites="the0neyouseek">@the0neyouseek</span></li>
<li>German - thanks to <span class="citation" data-cites="jajoho">@jajoho</span>, <span class="citation" data-cites="curana">@curana</span></li>
<li>Hungarian - thanks to <span class="citation" data-cites="waydabber">@waydabber</span></li>
<li>Italian - thanks to <span class="citation" data-cites="picov">@picov</span></li>
<li>Korean - thanks to <span class="citation" data-cites="zzulu">@zzulu</span></li>
<li>Turkish - thanks to <span class="citation" data-cites="mennan">@mennan</span>, <span class="citation" data-cites="ozkanozcan">@ozkanozcan</span></li>
</ul>
<h3 id="notes">Notes</h3>
<ul>
<li>This is a release candidate. If you encounter any issues, you can try the <a href="https://github.com/MonitorControl/MonitorControl/releases/tag/v3.1.1">last stable release v3.1.1</a> or <a href="https://github.com/MonitorControl/MonitorControl/releases/tag/v4.0.0-beta2">last beta release v4.0.0-beta2</a>.</li>
<li>If you discover issues, make sure to report them in the linked release discussion.</li>
<li>If you want to help translating, see #637</li>
<li>Thanks to everyone who helps make MonitorControl better!</li>
</ul>
<section class="footnotes" role="doc-endnotes">
<hr />
<ol>
<li id="fn1" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn3" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn4" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref4" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn5" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref5" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn6" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref6" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
</body>
</html>

View file

@ -1,110 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="changelog.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>v4.0.0</title>
</head>
<body>
<h3 id="enhancements">Enhancements</h3>
<ul>
<li>Automatic &amp; manual updates through the app, no more manual downloads 🎉</li>
<li>Moved Show advanced settings under Displays</li>
<li>Added proper support for controlling Apple displays.</li>
<li>Added option to show/hide brightness slider.</li>
<li>Added option to show brightness slider for internal display and apple displays (enabled by default).</li>
<li>Replication of built-in and Apple display brightness to corresponding brightness slider.</li>
<li>Added suffix to similarly named displays for better differentiation.</li>
<li>Option to disable slider snapping for finer control + disable slider snapping by default.</li>
<li>Added option to show slider tick marks for better accuracy.</li>
<li>Added option to use window focus instead of mouse to determine which display to control.</li>
<li><kbd>control</kbd> + <kbd>command</kbd> + <kbd>brightness</kbd> now controls external displays only (<kbd>control</kbd> + <kbd>Brightness</kbd> continues to control internal display only)</li>
<li>Added separate tab for menu options.</li>
<li>Added option to restore last saved values upon startup.</li>
<li>Added option for audio device name matching for display volume control selection.</li>
<li>Separated option to change all screens for brightness and volume.</li>
<li>Added option for keyboard fine scale for brightness.</li>
<li>Added option for keyboard fine scale for volume.</li>
<li>Added version check upon startup for mandatory preferences reset upon downgrade or incompatible previous version + notification about this.</li>
<li>Added implementation for <kbd>command</kbd> + <kbd>f1</kbd> macOS shortcut to enable/disable mirroring.</li>
<li>Added safer Assume last saved settings are valid option as default instead of startup DDC read (or restore).</li>
<li>Streamlined preference panes, Show advanced settings now affect all tabs. This leads to a better and safer first timer experience (especially because of the influx of many new features).</li>
<li>Added a Quit button to Preferences if menu is hidden (it was not passible to quit the application until this time in this mode only by re-enabling the menu).</li>
<li>Lowered default first-run volume DDC default from 75% to 15% if read is not possible or disabled to prevent unexpectedly loud sound.</li>
<li>Added slider skew setting on a per control basis to have the ability to manipulate DDC slider balance and OSD scale if display control is not linear.</li>
<li>Added the ability to set min. and max. DDC bounds on a per display, per control basis.</li>
<li>Audio device name override option for a display (manually assign a specific audio device to a display).</li>
<li>Advanced setting to invert DDC control range (some displays have the scale reversed).</li>
<li>Advanced setting to remap DDC control code (some displays have contrast and brightness mixed up).</li>
<li>Ability to mark a DDC control as available or unavailable in advanced settings under Displays.</li>
<li>Ability to automatically hide menu icon if there is no slider present in the menu.</li>
<li>Option to show slider percentage for more precision.</li>
<li>Option to set combined or separate OSD scale when combined hardware+software brightness is used.</li>
<li>Apple like smooth brightness change (both for software, hardware, mixed and DisplayServices).</li>
<li>Added support for DisplayLink, AirPlay, Sidecar, screen sharing etc. using window shades (this is an inferior technique to the existing software implementation - gamma control - but still better than nothing). Disabled for any kind of mirroring setups. <a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a></li>
<li>Brightness change synchronisation from Built-In and Apple displays to other displays. This makes Touch Bar, Ambient light sensor, Control Center and System Preferences induced changes affect all displays. Synchronisation uses a sophisticated indirect delta method + the user can intervene and adjust individual screen brightness at any time to easily compensate mismatching native brightness levels.</li>
<li>Preferences pane tab selector has a simpler look on Catalina.</li>
<li>All menu sliders are now scrollable using a magic mouse/trackpad swipes or mouse wheel.</li>
<li>Added option for menu to show only items that are relevant to display which shows the menu currently.</li>
<li>Added option to enable combined sliders (note: this option combined with enabled Apple/built-in display syncing and enabled change all keyboard settings finally provides full synchronised control of all displays).</li>
<li>Combined sliders can now display multiple displays when keyboard and brightness syncing is not enabled. <a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a></li>
<li>Redesigned sliders to look like Big Sur/Monterey Control Centers sliders. <a href="#fn3" class="footnote-ref" id="fnref3" role="doc-noteref"><sup>3</sup></a></li>
<li>Quit and Preferences… are now icons for a much cleaner look. <a href="#fn4" class="footnote-ref" id="fnref4" role="doc-noteref"><sup>4</sup></a></li>
<li>Added option to change additional menu options style or hide them. <a href="#fn5" class="footnote-ref" id="fnref5" role="doc-noteref"><sup>5</sup></a></li>
<li>Multiple displays are now in nice Big Sur styled blocks - no more ugly separators. <a href="#fn6" class="footnote-ref" id="fnref6" role="doc-noteref"><sup>6</sup></a></li>
<li>Added customisable gamma/ddc switchover point for combined brightness in the advanced section of Displays.</li>
<li>Added comma separated list for control code override to enable edge cases like controlling Brightness and Contrast at the same time (use VCP list entry <code>10, 12</code> for that)</li>
<li>Contrast can now be controlled from keyboard via <kbd>control</kbd> + <kbd>option</kbd> + <kbd>command</kbd> + <kbd>brightness up/down</kbd>.</li>
<li>Custom keyboard shortcuts for brightness, contrast, volume and mute</li>
<li>Added Internet Access Policy</li>
<li>Added advanced option to enable zero brightness with software dimming.</li>
<li>Added <kbd>command</kbd> + <kbd>q</kbd> shortcut in menu when it is in standard text mode.</li>
<li>Rearranged Preferences to fit better on smaller screens in Advanced mode</li>
<li>Alert when repeated interference is detected with applications.</li>
<li>Added Avoid gamma table manipulation option for peaceful coexistence with f.lux.</li>
</ul>
<h3 id="other-under-the-hood-changes-and-bug-fixes">Other under the hood changes and bug fixes</h3>
<ul>
<li>Standardised internal scale among various displays and DDC ranges for ranged controls.</li>
<li>Uses the new internal scale for combined hardware-software brightness mode.</li>
<li>Improved settings reset functionality for virtual and Apple displays.</li>
<li>Migrated scales to internal float representation to prevent loss of fine detail on transformations.</li>
<li>Fixed double sound when muting multiple external displays at the same time.</li>
<li>Multiple attempts to write last DDC brightness and contrast settings after wake when Apply last saved settings is enabled to make sure that slow displays are handled well</li>
<li>Fixed lack of initial volume configuration if slider is not shown in menu.</li>
<li>Fixed wrong settings being applied to a display when replaced on Apple Silicon (UserDefaults preferences are now tied to specific display strings instead of CGDirectDisplayID - which is no longer semi-unique on arm64).</li>
<li>A lot of refactoring, streamlining and general optimisations.</li>
</ul>
<h3 id="thanks-to-all-our-translators">Thanks to all our translators</h3>
<ul>
<li>Chinese - thanks to <span class="citation" data-cites="dev-coco">@dev-coco</span>, <span class="citation" data-cites="anmoliyang">@anmoliyang</span></li>
<li>Chinese (Traditional, Taiwan) - thanks to <span class="citation" data-cites="stiiveo">@stiiveo</span>, <span class="citation" data-cites="dororojames">@dororojames</span>, <span class="citation" data-cites="kix99aug">@kix99aug</span></li>
<li>Dutch - thanks to <span class="citation" data-cites="JoniVR">@JoniVR</span></li>
<li>French - thanks to <span class="citation" data-cites="the0neyouseek">@the0neyouseek</span></li>
<li>German - thanks to <span class="citation" data-cites="jajoho">@jajoho</span>, <span class="citation" data-cites="curana">@curana</span></li>
<li>Hungarian - thanks to <span class="citation" data-cites="waydabber">@waydabber</span></li>
<li>Italian - thanks to <span class="citation" data-cites="picov">@picov</span></li>
<li>Korean - thanks to <span class="citation" data-cites="zzulu">@zzulu</span></li>
<li>Turkish - thanks to <span class="citation" data-cites="mennan">@mennan</span>, <span class="citation" data-cites="ozkanozcan">@ozkanozcan</span></li>
</ul>
<h3 id="notes">Notes</h3>
<ul>
<li>If you discover issues, feel free to open an issue!</li>
<li>If you want to help translating, see #637</li>
<li>Special thanks to <span class="citation" data-cites="waydabber">@waydabber</span> on another fantastic job on this release!</li>
<li>Thanks to everyone who helps make MonitorControl better!</li>
</ul>
<section class="footnotes" role="doc-endnotes">
<hr />
<ol>
<li id="fn1" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn3" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn4" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref4" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn5" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref5" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn6" role="doc-endnote"><p>Only on Big Sur and above<a href="#fnref6" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
</body>
</html>

View file

@ -1,41 +0,0 @@
---
title: Advanced Preferences
---
To enable Advanced Preferences for monitors, toggle the "Show advanced settings under Displays" checkbox in the General Preferences and go to the Displays tab, where you'll now see advanced preferences for each display.
Inside the advanced preferences you can experiment and modify some more advanced settings.
Not all monitors are the same and some are better at implementing the [DDC/CI spec](https://en.wikipedia.org/wiki/Display_Data_Channel) than others.
## Polling Mode
Sets the amount of times MonitorControl will try polling the display.
Polling the display essentially means that it tries to read information from the display.
This can sometimes be unreliable and thus MonitorControl will try reading these values multiple times to increase success rates.
Polling is used for reading current display volume and brightness values, which happens on app launch or when
coming out of sleep mode.
Because we try to read the values multiple times (for example, 10 tries for volume and 10 tries for brightness on `Normal` mode), it can cause some slowdown on your system. The different polling modes indicate a different amount of times we try to poll the display for information.
### Polling Modes
- None: 0 tries
- Minimal: 5 tries
- Normal: 10 tries (default)
- High: 100 tries
- Custom: X tries (selecting this will allow you to set the polling count yourself in the `Polling Count` text field.)
In case the display is still unable to read the values through DDC (or you selected `None`), the last known values will be used instead.
**If you experience significant system slowdown when coming out of sleep mode or at startup, try lowering or disabling the Polling Mode setting.**
## Longer Delay
Some displays will require a longer `minReplyDelay` (referred to as `Longer Delay` in settings) to be able to read display information more reliably. This depends on a combination of different factors like Cable, Monitor, GPU.
If it takes a long time to read your volume and brightness settings, you can try enabling the `Longer Delay` settings to improve reliability. However, please be aware that this setting will not work for every system and **may cause your system to freeze after enabling it. Please use this at your own risk.**
As a safety measure, automatic app startup will be disabled.
## Hide OSD
Tries to hide your display's native OSD (On-Screen Display) when changing volume or brightness.
This setting also depends on your monitor, so it may not work properly on every monitor.

View file

@ -1,97 +0,0 @@
---
title: Monitor Troubleshooting
---
We often get issues like:
_"MonitorControl doesn't work with my monitor"_,
so here are some troubleshooting steps and general information to try and help you.
# General Information
- MonitorControl **doesn't work with every monitor**, it all depends on how well your display/cable manufacturer implements the [DDC/CI spec](https://en.wikipedia.org/wiki/Display_Data_Channel).
- Some displays will only support certain features well (for example, they work well with brightness but not volume).
- It also depends a lot on your [hardware combination](https://github.com/the0neyouseek/MonitorControl/issues/82).
# Troubleshooting
## I can't control volume/brightness
### Known incompatibilities
Mac Minis made after 2018 (including the M1 Mini) have trouble supporting DDC via the built-in HDMI port. Use the USB-C/Thunderbolt port instead!
### Check if your monitor OSD has a setting for DDC
Some monitors have a ddc settings that can be enabled/disabled, make sure you check if your specific monitor has this setting and if it does, you should ensure DDC is enabled.
### Try a different ddc tool
You can try a different ddc tool called [ddcctl](https://github.com/kfix/ddcctl) for Intel Macs.
For Apple Silicon macs you can try [m1ddc](https://github.com/waydabber/m1ddc)
This can help us isolate issues with MonitorControl vs other tools.
If your setup works with ddcctl or m1ddc it should also work with MonitorControl.
After installing ddcctl, try something like:
```sh
./ddcctl -d 1 -v 30
```
or for m1ddc:
```sh
./m1ddc set volume 30
```
(tries to set the volume of display 1 to value 30)
or
```sh
./ddcctl -d 1 -b 30
```
or for m1ddc:
```sh
./m1ddc set brightness 30
```
(tries to set the brightness of display 1 to value 30)
If these commands change your brightness or volume, you know that your display supports ddc (or at least the command that worked).
### Try a different cable
Generally, people seem to have the highest success rates with DisplayPort and the lowest with HDMI.
## Mute does not actually mute the speakers
By default, we mute by lowering the volume all the way to 0, we do this because it's the approach that works with most displays.
If you are having issues with this, try:
1. Preferences > Displays > Toggle `Show advanced settings` at the bottom
2. Toggle `Enable Mute DDC command` for the display.
This approach uses the actuall DDC Mute command, which might work/behave better.
## I can't get accurate read values from the monitor
If the monitor is unable to read values from the display, it will default to the last known values.
To try and fix this, you can try checking the `Longer Delay` option in Advanced Preferences under Displays (requires enabling advanced preferences).
See the [Advanced Preferences](https://github.com/the0neyouseek/MonitorControl/wiki/Advanced-Preferences#longer-delay) wiki page for more information.
## The app is slow on startup
This is usually because we poll the display to try and read its current volume/brightness on app launch.
You can lower or disable the `Polling Mode` in Advanced Preferences under Displays (requires enabling advanced preferences).
See the [Advanced Preferences](https://github.com/the0neyouseek/MonitorControl/wiki/Advanced-Preferences#polling-mode) wiki page for more information.
## I get screen flickering when launching MonitorControl
This can be caused due to trying to poll (read) values from your display multiple times. Try setting `Polling Mode` to none in Advanced Preferences under Displays (requires enabling advanced preferences).

View file

@ -1,15 +0,0 @@
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="0; url=https://github.com/MonitorControl/MonitorControl#readme">
<script type="text/javascript">
window.location.href = "https://github.com/MonitorControl/MonitorControl#readme"
</script>
<title>MonitorControl - redirect</title>
</head>
<body>
<!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
If you are not redirected automatically, <a href='https://github.com/MonitorControl/MonitorControl#readme'>follow this link</a>!.
</body>
</html>

View file

@ -1,15 +0,0 @@
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="0; url=https://github.com/MonitorControl/MonitorControlLite#readme">
<script type="text/javascript">
window.location.href = "https://github.com/MonitorControl/MonitorControlLite#readme"
</script>
<title>MonitorControl Lite - redirect</title>
</head>
<body>
<!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
If you are not redirected automatically, <a href='https://github.com/MonitorControl/MonitorControlLite#readme'>follow this link</a>!.
</body>
</html>

View file

@ -1,42 +0,0 @@
const footnoteMatch = /^\[\^([^\]]+)\]:([\s\S]*)$/;
const referenceMatch = /\[\^([^\]]+)\](?!\()/g;
const referencePrefix = "fnref";
const footnotePrefix = "fn";
const footnoteTemplate = (ref, text) => {
return `<p id="${footnotePrefix}:${ref}">${ref}. ${text}</p>`;
};
const footnoteContainerTemplate = (text) => {
return `<h3>Footnotes</h3>${text}`
}
const referenceTemplate = ref => {
return `<sup id="${referencePrefix}:${ref}"><a href="#${footnotePrefix}:${ref}">[${ref}]</a></sup>`;
};
const interpolateReferences = (text) => {
return text.replace(referenceMatch, (_, ref) => {
return referenceTemplate(ref);
});
}
const interpolateFootnotes = (text) => {
const found = text.match(footnoteMatch)
if (found) {
const replacedText = text.replace(footnoteMatch, (_, value, text) => {
return footnoteTemplate(value, text);
});
return footnoteContainerTemplate(replacedText)
}
return text
}
const renderer = {
paragraph(text) {
return marked.Renderer.prototype.paragraph.apply(null, [
interpolateReferences(interpolateFootnotes(text))
]);
},
text(text) {
return marked.Renderer.prototype.text.apply(null, [
interpolateReferences(interpolateFootnotes(text))
]);
}
};
marked.use({ renderer });

File diff suppressed because one or more lines are too long

View file

@ -1,54 +0,0 @@
html,
body {
font-size: 90%;
margin: 2px 10px;
line-height: 1.5;
font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto,
'Helvetica Neue', sans-serif;
text-rendering: optimizeLegibility;
}
kbd {
font-family: Consolas, 'Lucida Console', monospace;
display: inline-block;
border-radius: 3px;
padding: 0px 4px;
box-shadow: 1px 1px 1px #777;
margin: 2px;
font-size: small;
vertical-align: text-bottom;
background: #eee;
font-weight: 500;
color: #555;
letter-spacing: 1px;
/* Prevent selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
ul li {
margin-top: 0.4rem;
}
ul {
margin: 0.8rem 0 0.8rem 0.8rem;
padding: 0;
list-style: disc inside;
}
a {
color: #6fa2fa !important;
outline: 0;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
h3 {
color: inherit;
font-size: 1.4rem;
font-weight: 500;
line-height: 1.2;
margin-bottom: 0.5em;
margin-top: 0.4em;
}