Skip to content

Commit

Permalink
📝 Update the ReadMe.
Browse files Browse the repository at this point in the history
  • Loading branch information
hexawyz committed Mar 7, 2024
1 parent 9ba00a5 commit 9c3d3ac
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Exo currently support the following features, provided that there is a custom dr
* Monitor control: Brightness, Contrast and Audio Volume.
* Keyboard backlighting: The service will observe keyboard backlight changes and push overlay notifications.
* Mouse: The service can observe and display DPI changes.
* GPU: Provide support for accessing connected monitors in non-interactive (service) mode.

# Supported devices

Expand All @@ -43,30 +44,41 @@ NB: Support of a device does not mean that all of its features will be exposed i
* DeathAdder V2 Pro (USB, Dongle): Battery Level, RGB lighting, DPI changes.
* Mouse Dock Chroma: RGB
* NVIDIA
* GeForce RTX 3090 (Support for same-gen and other GPUs should be straightforward): RGB lighting
* All GPUs: Support for the I2C interface to control connected monitors.
* GeForce RTX 3090 FE and select other GPUs: RGB lighting
* Intel
* WIP: Should at term be able to expose the I2C interface to control connected monitors, however the IGCL library support is currently very poor and doesn't work on many not-too-old configurations.
* Gigabyte
* IT5702 RGB controller: RGB lighting
* LG
* GP950 Monitor (USB): Standard Monitor control, RGB lighting.
* 27GP950 Monitor (USB): Standard Monitor control, RGB lighting.
* 27GP950 Monitor (DP/HDMI): Standard Monitor control (if connected through supported GPU)
* Elgato
* SteamDeck XL (Protocol is implemented and mostly tested, but features are not exposed)
* Other
* Generic monitor support (* Currently broken if run in service mode)
* Generic monitor support (Currently works only for monitors connected to NVIDIA GPUs)

# Running Exo

There is currently no official build available, but you can run and help develop Exo by installing the latest version of Visual Studio. You will need the C# and C++ workloads installed, as well as anything necessary to develop WinUI3 applications.

From within Visual Studio, you can start `Exo.Service` to run the service, `Exo.Overlay` for the overlay UI, and `Exo.Settings.UI` for the Settings UI.

If you fancy trying to run it as a service, you can create a service using the following PowerShell command:
You can generate a publish build of the service from the VS developer command prompt:
````
MSBuild Exo.Service\Exo.Service.csproj /t:Publish /p:Configuration=Release
````

And if you fancy trying to run it as a service, you can create a service using the following PowerShell command:

````PowerShell
New-Service -Name "Exo" -BinaryPathName "<PATH TO YOUR GIT REPOSITORY>Exo.Service\bin\Release\net8.0-windows\publish\Exo.Service.exe" -DisplayName "Exo" -Description "Exo the exoskeleton for your Windows PC and devices." -StartupType Manual
````

The command will create a manual startup service, which you can then start with `Start-Service Exo`.

NB: The `Publish.ps1` script can be used to generate a publish build of all the binaries under a `publish` directory at the root of the git repository.

# Architecture

Disclaimer: I can't promise that Exo is (will not be) not over-engineered in some parts, as this is also an opinion matter. However, I'll try to choose the most efficient design to provide the most generic features possible.
Expand Down

0 comments on commit 9c3d3ac

Please sign in to comment.