- An Accessible, Cross-Platform Remote Desktop Protocol
Warning: This is alpha software - it is released for testing and development purposes, but is not ready for end-user adoption. Use at your own risk!
Sinter is an innovative platform for remote access that supports screen readers and other assistive software. Sinter is portable across operating systems (currently Mac and Windows). For example, a Mac user can connect to a Windows remote desktop and read remote Windows apps using VoiceOver (the default screen reader for Mac OS X).
Sinter currently supports applications including Windows Explorer, Mac Finder, Notepad/TextEdit, Calculator, and MS Word. We plan to increase this list over time.
Currently, Sinter runs as a stand-alone application on the client and server. We eventually plan to make Sinter a plug-in for Remote Desktop Protocol (RDP) and other remote-desktop systems.
Please refer to this user tutorial tutorial.md to download and run Sinter.
For developers who would like to build Sinter.
Sinter consists of two major entities:
- Scraper - constructs the semantic hierarchy of UI elements representing an app in a remote Windows or Mac machine, and ships that hierarchy as an XML to the Proxy.
- Proxy - renders UI elements natively from the received XML in a local Window or Mac machine.
Scenario | Remote | Local | Scraper | Proxy |
---|---|---|---|---|
1 | Windows | Windows | windowscraper |
windowsproxy |
2 | Windows | Mac | windowscraper |
osxproxy |
3 | Mac | Mac | osxscraper |
osxproxy |
4 | Mac | Windows | osxscraper |
windowsproxy |
- Windows 7 or later
- Visual Studio 2017 IDE or later
- .Net Framework 4.6 or later
- .Net desktop development workload to build WPF, Windows Froms, and console applications using C#
- Go to
sinter/windowscraper
directory and open the solutionWindowsScraper.sln
in Visual Studio IDE. - After loading the solution, open
Solution Explorer
from theView
menu. - Build the entire solution by choosing
Build Solution
fromBuild
menu. - In
Solution Explorer
, right-click onWindowsScraperTest
project as choose "Set as Startup Project", if it is not set already.
- Go to
sinter/windowsproxy
directory and open the solutionWindowsProxyClient.sln
in Visual Studio IDE. - After loading the solution, open
Solution Explorer
from theView
menu. - Build the entire solution by choosing
Build Solution
from theBuild
menu. - In
Solution Explorer
, right-click onWindowsProxy
project and choose "Set as Startup Project", if it is not set already.
- Mac OS 10.10 or later
- Xcode 9.0 IDE or later
- Go to
sinter/osxscraper
directory and open the projectOSXScraper.xcodeproj
in Xcode - After loading the project in Xcode, choose
Build
fromProduct
menu.
- Go to
sinter/osxproxy
directory and open the projectOSXProxy.xcodeproj
in Xcode - After loading the project in Xcode, choose
Build
fromProduct
menu.
- In your remote machine, run the scraper. If the remote machine is a Mac, choose
osxscraper
; if it is a Windows, thenwindowscraper
. - In your local machine, run the proxy (
osxproxy
for Mac,windowscraper
for Windows). But before running the proxy, you need to provide the IP address of the remote machine in the config file (Inosxproxy
, the name of the config file issinter/osxproxy/OSXProxy/Settings.plist
; inwindowscraper
, it issinter/windowsproxy/src/config.xml
). - When the proxy application is running, click on
Connect
button to connect with the remote machine. - After successful connection, you need to click on the
Load Processes
button to get a list of applications running in the remote machine. This list is rendered as a List-View in the proxy application. - To run any of those remote application locally, double click on the application's name in the list.
Sinter is available under a dual GPL/commercial license. In other words, anyone can use Sinter for free, so long as they share their code (ideally back to this project) in accordance with the GPL.
Commercial licensing is also available; contact Don Porter [email protected] for more information.
We would love your help! To contribute code to the project, please create pull request on the github page.
Note that we require all patches to be signed off by the author, indicating that you are authorized to contribute this code to the project. By contributing code to this project, you are also agreeing that your code may be distributed under both the GPL and a commercial license without compensation.
Pull Requests must pass our unit tests (CI coming soon), and be approved by at least one maintainer before merging.
For help, please file bug reports on the github page using the issue tracker. https://github.com/oscarlab/sinter/issues
We will also be adding additional documentation on the project wiki and website over time.
This project is currently maintained by:
- Syed Masum Billah [email protected]
- Don Porter [email protected]
- Erica Fu [email protected]