Is SightAdapt free?
Yes. SightAdapt is free and open source under the MIT License.
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 00000000..ac1e0aff --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,72 @@ +name: Validate and deploy SightAdapt website + +on: + workflow_dispatch: + pull_request: + branches: [main] + paths: + - "site/**" + - "tools/build-site.py" + - "tools/verify-site.py" + - "assets/brand/**" + - ".github/workflows/pages.yml" + push: + branches: [main] + paths: + - "site/**" + - "tools/build-site.py" + - "tools/verify-site.py" + - "assets/brand/**" + - ".github/workflows/pages.yml" + +concurrency: + group: sightadapt-pages-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + - name: Build GitHub Pages fallback + run: python tools/build-site.py --base-path /SightAdapt/ --output artifacts/site + + - name: Validate GitHub Pages fallback + run: python tools/verify-site.py artifacts/site --base-path /SightAdapt/ + + - name: Build canonical Aiteracja path + run: python tools/build-site.py --base-path /sightadapt/ --output artifacts/site-canonical + + - name: Validate canonical Aiteracja path + run: python tools/verify-site.py artifacts/site-canonical --base-path /sightadapt/ + + - name: Upload validated GitHub Pages artifact + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + uses: actions/upload-pages-artifact@v3 + with: + path: artifacts/site + + deploy: + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + needs: validate + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy GitHub Pages fallback + id: deployment + uses: actions/deploy-pages@v4 diff --git a/site/README.md b/site/README.md new file mode 100644 index 00000000..3c9637ff --- /dev/null +++ b/site/README.md @@ -0,0 +1,35 @@ +# SightAdapt website source + +The public product site is a dependency-free static site whose content follows issue #124. + +- Canonical production URL: `https://aiteracja.pl/sightadapt/` +- GitHub Pages fallback: `https://keyffms.github.io/SightAdapt/` +- GitHub Releases remain the authoritative binary source. + +## Build for GitHub Pages + +```powershell +python .\tools\build-site.py --base-path /SightAdapt/ --output .\artifacts\site +``` + +## Build for the canonical Aiteracja path + +```powershell +python .\tools\build-site.py --base-path /sightadapt/ --output .\artifacts\site +``` + +## Validate + +```powershell +python .\tools\verify-site.py .\artifacts\site --base-path /SightAdapt/ +``` + +## Preview + +```powershell +python -m http.server 8000 --directory .\artifacts\site +``` + +The build copies the canonical SVG brand assets from `assets/brand/` into the generated site, so the deployed site does not depend on a third-party CDN or raw GitHub asset request. + +The initial site intentionally contains no analytics, cookies, remote fonts, advertising, session replay or third-party embeds. diff --git a/site/assets/architecture.svg b/site/assets/architecture.svg new file mode 100644 index 00000000..3b74c9cb --- /dev/null +++ b/site/assets/architecture.svg @@ -0,0 +1 @@ + diff --git a/site/assets/site.js b/site/assets/site.js new file mode 100644 index 00000000..076f9396 --- /dev/null +++ b/site/assets/site.js @@ -0,0 +1,33 @@ +document.documentElement.classList.add("js"); +(() => { + const nav = document.querySelector(".nav-links"); + const host = document.querySelector(".nav"); + if (!nav || !host) return; + + nav.id = "site-navigation"; + const button = document.createElement("button"); + button.type = "button"; + button.className = "menu-toggle"; + button.textContent = "Menu"; + button.setAttribute("aria-controls", nav.id); + button.setAttribute("aria-expanded", "false"); + host.insertBefore(button, nav); + + const mobile = window.matchMedia("(max-width: 800px)"); + const sync = () => { + if (!mobile.matches) { + nav.hidden = false; + button.setAttribute("aria-expanded", "false"); + return; + } + nav.hidden = button.getAttribute("aria-expanded") !== "true"; + }; + + button.addEventListener("click", () => { + const open = button.getAttribute("aria-expanded") === "true"; + button.setAttribute("aria-expanded", String(!open)); + sync(); + }); + mobile.addEventListener?.("change", sync); + sync(); +})(); diff --git a/site/assets/styles.css b/site/assets/styles.css new file mode 100644 index 00000000..5261f42d --- /dev/null +++ b/site/assets/styles.css @@ -0,0 +1 @@ +:root{--bg:#f7f8fb;--ink:#121826;--muted:#5d667a;--panel:#fff;--line:#dce1ea;--accent:#1c5cff;--dark:#10182f;--focus:#ffbf47;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:#164fc9}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.7rem 1rem;z-index:1000}.wrap{width:min(var(--max),calc(100% - 2rem));margin:auto}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.nav{display:flex;align-items:center;gap:1rem;min-height:72px}.brand img{width:205px;height:auto;display:block}.nav-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-left:auto;align-items:center}.nav-links a{color:var(--ink);text-decoration:none;padding:.45rem .55rem;border-radius:.4rem}.nav-links a[aria-current=page]{background:#eef3ff;color:#123a91;font-weight:700}.button{display:inline-block;background:var(--accent);color:#fff!important;text-decoration:none!important;padding:.75rem 1rem;border-radius:.55rem;font-weight:700}.button.secondary{background:#fff;color:#163b85!important;border:1px solid #8aa5e8}.hero{background:var(--dark);color:#fff;padding:4rem 0}.hero a{color:#d9e7ff}.hero-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:2rem;align-items:center}.eyebrow{font-weight:700;color:#b8c8ee}.hero h1{font-size:clamp(2.5rem,6vw,4.8rem);line-height:1.02;margin:.35rem 0 1rem}.lead{font-size:1.22rem;max-width:48rem}.actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.5rem 0}.release-card,.card,.notice{background:var(--panel);border:1px solid var(--line);border-radius:.8rem;padding:1.2rem}.hero .release-card{background:#172341;border-color:#34456e;color:#fff}.alpha{background:#fff4d6;border-bottom:1px solid #e6c76c;padding:.7rem 0}.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1.5rem 0}.trust a{display:block;background:#fff;border:1px solid var(--line);padding:1rem;border-radius:.7rem;text-decoration:none;font-weight:700}.section{padding:3rem 0}.section h1,.section h2{line-height:1.2}.section h1{font-size:clamp(2rem,4vw,3rem)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.two{grid-template-columns:repeat(2,1fr)}.kicker{color:var(--muted);font-weight:700}.muted{color:var(--muted)}code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}pre{background:#111827;color:#f9fafb;padding:1rem;overflow:auto;border-radius:.6rem}.architecture{width:100%;height:auto;border:1px solid var(--line);border-radius:.8rem;background:#fff}.site-footer{background:#0f172a;color:#dbe4f3;padding:2.5rem 0}.site-footer a{color:#dbeafe}.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.footer-grid h2{font-size:1rem;color:#fff}.footer-grid ul{list-style:none;padding:0;margin:0}.small{font-size:.92rem}.menu-toggle{display:none;background:#fff;border:1px solid var(--line);border-radius:.45rem;padding:.55rem .8rem;font:inherit;font-weight:700}table{width:100%;border-collapse:collapse;background:#fff}th,td{border:1px solid var(--line);padding:.7rem;text-align:left;vertical-align:top}th{background:#eef1f6}@media(max-width:800px){.js .menu-toggle{display:block;margin-left:auto}.js .nav-links[hidden]{display:none}.hero-grid,.grid,.two,.trust,.footer-grid{grid-template-columns:1fr}.nav{align-items:flex-start;padding:.7rem 0;flex-wrap:wrap}.brand img{width:180px}.nav-links{width:100%;margin-left:0}.hero{padding:2.5rem 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}} diff --git a/site/docs/index.html b/site/docs/index.html new file mode 100644 index 00000000..3fb92f1c --- /dev/null +++ b/site/docs/index.html @@ -0,0 +1 @@ +
SightAdapt™ documentation
SightAdapt.exe.Add an application, enable or disable the assignment, choose its profile and configure automatic mode. Saved assignments use executable identity and local path data.
Choose a built-in profile, duplicate one into a custom profile, edit output levels, brightness, contrast, saturation and hue, then rename or delete user-created profiles when no longer needed.
Native Win32 popup menus can inherit or override the application profile. Overlay scope can target the client area, full window, current screen or all screens. WPF, WinUI, Electron, Qt and custom-rendered menus may not appear as native #32768 menus.
Ctrl+Alt+I — temporary active-window correction.Ctrl+Alt+Shift+I — toggle the active application assignment.If another program already owns a shortcut, registration may fail.
%LOCALAPPDATA%\SightAdapt\settings.json.Architecture and repository documentation · Contributing · Security policy · CI and test runs
SightAdapt™ download
| Release date | {{RELEASE_DATE}} |
|---|---|
| Status | Alpha prerelease |
| Windows | Windows 10 version 2004 or later, or Windows 11 |
| Architecture | x64 |
| Archive size | {{ARCHIVE_SIZE}} |
| SHA-256 | {{SHA256}} |
Release notes · Source tag · SBOM · Checksums · Legal and compliance files
SightAdapt.exe.Get-FileHash .\SightAdapt-0.5.0.50-alpha-win-x64.zip -Algorithm SHA256The resulting hash must match {{SHA256}}.
Unsigned or newly published open-source binaries may trigger Microsoft Defender SmartScreen. Do not disable system protection. Verify the project-controlled source, the published hash and the GitHub Release before deciding whether to run a file.
Exit SightAdapt, remove the extracted application files and, if you also want to remove saved configuration, delete %LOCALAPPDATA%\SightAdapt\settings.json. Deleting that settings file removes saved profiles and assignments.
SightAdapt™ FAQ
Yes. SightAdapt is free and open source under the MIT License.
No. It uses a separate Windows overlay and does not modify the target application's installed files.
No. The current alpha does not use DLL injection or write another process's memory.
The current alpha does not save or transmit captured screen content. See privacy and security for the exact boundaries.
Paths are used locally to identify saved application assignments. A path can contain a Windows account or organization name, so redact it from public bug reports when necessary.
No guarantee is made. Framework, privilege level, digital rights management (DRM), remote sessions and graphics drivers can affect behavior.
For supported native Win32 popup menus, an application can use None while an explicit menu profile is assigned. Custom-rendered menus are not separately detected.
The project is a general-purpose visual-accessibility and display-personalization utility. It does not diagnose or treat medical conditions.
New or unsigned binaries may have limited reputation. Download only from official project-controlled sources and verify the published checksum.
Use Emergency disable all overlays from the notification-area menu, or exit SightAdapt.
Yes. The repository documents the .NET 8 build and publish process. Browse the source.
Use the GitHub issue tracker for non-sensitive defects. For a vulnerability, follow the private reporting guidance. Do not attach private screenshots or unredacted paths.
SightAdapt™ features
Saved executable-based assignments can be enabled or disabled and are resolved automatically when the matching application becomes foreground.
Use built-in profiles or duplicate a profile into a user-defined copy that can be renamed, edited and deleted. Built-in profiles remain protected.
Profiles expose output black, output white, brightness, contrast, saturation and hue. They are display adjustments, not color-calibration measurements.
Supported native Win32 #32768 popup menus can inherit the application profile or use a separate profile. Custom-rendered menus are not detected as native popup menus.
Choose client area, full window, current screen or all screens. Wider scopes may affect content beyond the application window while the session is active.
Ctrl+Alt+I toggles temporary correction for the active window. Ctrl+Alt+Shift+I toggles the active application assignment. The tray menu includes an emergency command that removes active overlays.
SightAdapt is designed for per-monitor-aware Windows behavior. Remote sessions, unusual graphics drivers and mixed scaling can require application-specific testing.
Configuration is stored locally in schema-versioned JSON. Supported older settings are migrated; writes are designed to avoid leaving a partially written settings file.
SightAdapt™ architecture
Free and open source · Windows 10 and 11 · Alpha
SightAdapt™ applies configurable color correction to individual Windows application windows. Keep the rest of the desktop unchanged, assign profiles per application and stop every overlay immediately when needed.
Per-application control
System-wide display filters can affect every monitor, application and notification. SightAdapt targets the active application through a separate overlay, allowing different applications to use different visual profiles while unrelated windows remain unchanged.
Assign a saved color profile to an application and let SightAdapt activate it when that application becomes active.
Use the application profile for native popup menus or assign a different menu profile when menu contrast needs separate treatment.
Choose the client area, full window, current screen or all screens according to the application and display setup.
Adjust output black and white levels, brightness, contrast, saturation and hue, then preview the result before assigning it.
Toggle the active window temporarily or save an automatic application assignment.
Remove active overlays from the notification-area menu through the emergency-disable command.
Visual preferences are individual. SightAdapt does not choose a medically appropriate profile and does not replace professional advice.
SightAdapt stores its configuration locally. The current alpha does not transmit captured screen content, does not inject code into target applications and does not install a kernel driver. Application assignments may include executable paths and file metadata stored in the local settings file.
SightAdapt is developed in a public GitHub repository and distributed under the MIT License. Source code, architecture documentation, test results, issues and release history are available for inspection.
#32768 popup menus;Read the current release notes.
SightAdapt™ legal
SightAdapt source code is distributed under the MIT License. The license permits use, copying, modification, merging, publishing, distribution, sublicensing and sale subject to preservation of the copyright and permission notice, and it provides the software without warranty.
Read the complete MIT License.
Official releases include exact-version third-party notices and Microsoft/.NET redistribution material. Use the release-specific files as the authoritative binary-distribution record.
Open the current release legal bundle · SPDX SBOM · Compliance report
SightAdapt™ is an unregistered product mark used by KeyffMS / aiteracja.pl. The ™ notation identifies product branding and does not represent a registered trademark.
Third-party product names and trademarks are the property of their respective owners and are used only to identify applications selected or configured by the user. SightAdapt is not affiliated with, sponsored by or endorsed by Microsoft or those owners unless an explicit written relationship is identified.
SightAdapt does not circumvent digital rights management (DRM) or other access controls. Protected content may remain unavailable or unfilterable.
The software is provided under the warranty limitation in the MIT License. Alpha status does not create a compatibility or availability guarantee.
SightAdapt™ privacy
SightAdapt may read active-window handles, process identifiers, application display names, executable file names and full executable paths, window geometry, monitor state, saved assignments, overlay scopes and visual-profile settings. These values are used to identify the selected application and render the configured overlay.
Settings are stored at %LOCALAPPDATA%\SightAdapt\settings.json. The file can contain application names, executable names and paths, enabled states, selected profile identifiers, overlay scopes and user-defined profile values.
The current release does not intentionally save screenshots, record the screen, build a screen-content history, perform content recognition or transmit captured screen content. It includes no telemetry, product analytics, advertising, remote crash reporting, automatic diagnostic upload, account, cloud synchronization or automatic update check.
Exit SightAdapt and delete %LOCALAPPDATA%\SightAdapt\settings.json. Starting the application again recreates default settings.
Information reaches the project owner only when you voluntarily submit it through GitHub or another support route. Paths, screenshots, settings and logs can reveal private data. Redact usernames, organization names, private directories, unrelated windows, tokens and confidential content before sharing.
KeyffMS / aiteracja.pl. Use the repository owner or issue tracker for public support; for non-public material, request a private communication channel before sending it.
This page must remain synchronized with the repository privacy notice. Read the complete current PRIVACY.md. Repository notice last updated: 2026-07-29.
SightAdapt™ releases
GitHub Releases are authoritative. This website does not host a separate copy of the Windows binary.
Published: {{RELEASE_DATE}} · Status: Alpha prerelease · Platform: Windows x64
The immutable release contains the official Windows binary, SHA-256 checksums, compliance report, SPDX software bill of materials (SBOM), dependency and license reports, privacy notice and third-party notices.
If a release is withdrawn, its dated record remains visible rather than silently replacing its tag or assets.
SightAdapt™ security
A target running at a higher integrity level may require a compatible integrity level before SightAdapt can interact with the relevant windows as expected.
The current alpha has not completed a formal security review and must not be treated as production-ready assistive software.
Do not disclose security-sensitive issues in a public GitHub issue. Until a dedicated private reporting channel is configured, contact the repository owner through GitHub and request a private communication channel.
Do not publish credentials, private screenshots, unredacted paths, confidential settings or exploit details that would increase risk.
Read the repository SECURITY.md · Review current limitations
SightAdapt™ support
Start with the documentation and FAQ.
Use the GitHub issue tracker for reproducible non-sensitive reports and feature requests.
Follow the private vulnerability-reporting route; do not post sensitive details publicly.
General project publisher information: KeyffMS / aiteracja.pl.