diff --git a/Readme.md b/Readme.md
index d3a86b3..eb5a805 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,12 +1,41 @@
   [](https://ci.appveyor.com/project/icewind1991/openvr-advancedsettings/branch/master)
+ > * [Features](#features)
+ > * [Usage](#usage)
+ > * [Installer](#installer)
+ > * [Standalone](#standalone)
+ > * [Command Line Arguments](#command_line_arguments)
+ > * [Desktop mode](#desktop_mode)
+ > * [Preview Builds](#preview_builds)
+ > * [Documentation](#documentation)
+ > * [Top Page](#top_page)
+ > * [SteamVR Page](#steamvr_page)
+ > * [Chaperone Page](#chaperone_page)
+ > * [Chaperone Proximity Warning Settings Page](#chaperone_proximity_page)
+ > * [Play Space Page](#play_space_page)
+ > * [Playspace Fix Page](#playspace_fix_page)
+ > * [Audio Page](#audio_page)
+ > * [Revive Page](#revive_page)
+ > * [Utilities Page](#utilities_page)
+ > * [Accessibility Page](#accessibility_page)
+ > * [Statistics Page](#statistics_page)
+ > * [Settings Page](#settings_page)
+ > * [How To Compile](#how_to_compile)
+ > * [Building on Windows](#building_on_windows)
+ > * [Building on Linux](#building_on_linux)
+ > * [Notes](#notes)
+ > * [Known Bugs](#known_bugs)
+ > * [License](#license)
+
+
# OpenVR Advanced Settings Overlay
Adds an overlay to the OpenVR dashboard that allows access to advanced settings.

+
# Features
- Set supersampling values.
@@ -28,34 +57,55 @@ Adds an overlay to the OpenVR dashboard that allows access to advanced settings.
- Simple Alarm Clock
- Player height adjust toggle (Credits to mklim)
+
# Usage
+
## Installer
-Download the newest installer from the [release section](https://github.com/icewind1991/OpenVR-AdvancedSettings/releases) and execute it.
+Download the newest installer from the [release section](https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/releases) and execute it.
If you have an older standalone version installed, delete the old application folder first.
+
## Standalone
+I am not currently providing standalone Archives if you want a standalone version you can:
-Download the newest standalone archive from the [release section](https://github.com/icewind1991/OpenVR-AdvancedSettings/releases) and unpack the archive.
+Download the newest standalone archive from the [release section](https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/releases)and unpack the archive.
-To install for the first time simply start AdvancedSettings.exe once while SteamVRis running. It will register with SteamVR and automatically starts whenever SteamVR starts (Can be disabled in the settings).
+To install for the first time simply start AdvancedSettings.exe once while SteamVR is running. It will register with SteamVR and automatically starts whenever SteamVR starts (Can be disabled in the settings).
To upgrade an existing installation first stop SteamVR and delete the old application folder (or override it). Then start SteamVR and run AdvancedSettings.exe once.
+
+## Command Line Arguments
+
+The application (`AdvancedSettings.exe`) can be run with the following five optional arguments:
+
+`"-desktop"`: Creates a settings window on the desktop.
+
+`"-nosound"`: Forces sound effects off.
+
+`"-nomanifest"`: Forces not creating a `.vrmanifest`.
+
+`"-installmanifest"`: Force installs the `.vrmanifest`.
+
+`"-removemanifest"`: Force uninstalls the `.vrmanifest`.
+
+
## Desktop mode
Executing startdesktopmode.bat from the application folder shows a window on the desktop instead of a vr overlay. Desktop mode can be used alongside an already running vr overlay instance.
+
## Preview builds
-If you want to try latest and greatest unreleased features, you can download the latest [automated build](https://ci.appveyor.com/project/icewind1991/openvr-advancedsettings/branch/master/artifacts).
-
-Note that these unreleased builds often only get minimal testing and might be broken.
+If you want to try latest and greatest unreleased features, you can download latest changes in the alpha branches of the repository.
+
# Documentation
+
## Top Page:

@@ -65,6 +115,7 @@ Note that these unreleased builds often only get minimal testing and might be br
- **Microphone**: Allows to set the microphone volume and to mute/unmute it.
- **Push-to-Talk**: Enable/disable push-to-talk and allows to apply push-to-talk profiles. Profiles can be created on the Audio page.
+
## - SteamVR Page:

@@ -78,6 +129,7 @@ Note that these unreleased builds often only get minimal testing and might be br
- **Enable Always-on Reprojection**: Enable/disable forced reprojection.
- **Restart SteamVR**: Restart SteamVR (May crash the Steam overlay when SteamVR Home is running when you restart. Therefore I advice that you close SteamVR Home before restarting).
+
## - Chaperone Page:

@@ -93,7 +145,7 @@ Note that these unreleased builds often only get minimal testing and might be br
- **Flip Orientation**: Flips the orientation of the play space.
- **Reload from Disk**: Reloads the chaperone bounds geometry from disk.
-
+
## - Chaperone Proximity Warning Settings Page:

@@ -106,6 +158,7 @@ Note that these unreleased builds often only get minimal testing and might be br
- **Open dashboard**: Opens the dashboard when the user's distance to the chaperone falls below the configured activation distance. The idea is to pause the game (most single-player games auto-pause when the dashboard is shown) to give the user time for reorientation.
- **Velocity Dependent Fade/Activation Distance**: Dynamically modifies the chaperone's fade distance and the proximity warning's activation distance as a function of the player's speed. The used formula is: *distance = old_distance * ( 1 + distance_modifier * max(left_controller_speed, right_controller_speed, hmd_speed) )*
+
## - Play Space Page:

@@ -115,6 +168,7 @@ Allows to temporarily move and rotate the center of the playspace. This allows t
- **Virtual Move Shortcut**: Allows moving the placespace center by holding down the application menu shortcut and moving the controller.
- **Adjust Chaperone**: When enabled then the chaperone bounds stay in place when the playspace is moved or rotated (so noone gets hurt). Unfortunately this does not work when moving up/down.
+
## - Playspace Fix Page:

@@ -123,6 +177,7 @@ Allows to temporarily move and rotate the center of the playspace. This allows t
- **Fix Floor** Allows you to fix the height of your floor. Just place one controller on your floor and press the button.
- **Recenter Playspace** Besides fixing the floor height, also recenters the place space around the controller on the floor.
+
## - Audio Page:

@@ -136,8 +191,10 @@ Allows to temporarily move and rotate the center of the playspace. This allows t
- **Right Controller**: Configure the right controller for push-to-talk.
- **Show Notification**: Shows a notification icon in the headset when push-to-talk is enabled a configured button is pressed.
- **Push-to-Mute**: Inverse push-to-talk. The Microphone is unmuted by default and muted when any of the configured buttons is pressed.
-- **Profile**: Allows to apply/define/delete push-to-talk profiles that save buttons, controller and notification settings.
+- **PTT Profile**: Allows you to apply/define/delete push-to-talk profiles that save buttons, controller and notification settings.
+- **Audio Profile**: Allows you to apply/define/delete audio profiles that save playback devices, mute state, and volume.
+
## - Revive Page:

@@ -160,6 +217,7 @@ Any changes to controller settings are immediately applied by Revive (Requires R
- **Z**: Allows to modify the touch controllers z-offset. (TouchZ setting the vrsettings file)
- **Controller Profile**: Allows to apply/define/delete controller profiles that save the controller settings (grip button mode, deadzone, sensitivity, pitch/yaw/roll and x/y/z-offsets).
+
## - Utilities Page:

@@ -170,12 +228,14 @@ Any changes to controller settings are immediately applied by Revive (Requires R
- **Steam Desktop Overlay Width:** Allows to increase the size of the Steam desktop overlay. Useful for multi-monitor setups.
+
## - Accessibility Page:

- **Adjust Player Height:** Offsets the player height to allows short or wheelchair-bound players to fully interact with height-limited applications by both boosting their height and being able to touch the in-game floor when necessary by pressing a configurable motion controller button.
+
## - Statistics Page:

@@ -190,6 +250,7 @@ Any changes to controller settings are immediately applied by Revive (Requires R
- **Timed Out**: Number of times the currently running application timed out.
- **Reprojection Ratio**: Ratio of presented frames to reprojected frames.
+
## - Settings Page:

@@ -197,21 +258,21 @@ Any changes to controller settings are immediately applied by Revive (Requires R
- **Autostart:** Allows you to enable/disable auto start.
- **Force Revive Page:** Force the Revive page button on the root page to be visible.
+
# How to Compile
-Building has been tested with Qt 5.10 and Visual Studio 2017 community.
-If both have been installed in their default paths than the project can be build using `build_windows.cmd`, this compiles the binary and copies all files necessary for execution into the output directory.
+
+## Building on Windows
-The following environment variables should be set for the build script to work
-
-- QT: `C:\Qt\5.10.1\msvc2017_64` or wherever you installed Qt.
-- PLATFORM: `amd64` only x64 builds have been tested atm.
+Full build instructions can be found [here](docs/building_for_windows.md).
+
## Building on Linux
If you want to run Advanced Settings on linux you can build it yourself using `qmake` and `make` or using Qt Creator, you'll have to copy the `res` folder from the `src` folder into folder that contains the binary
and copy `third-party/openvr/lib/linux64/libopenvr_api.so` into your systems library path.
+
# Notes:
- The center marker and the play space marker are provided by the chaperone subsystem, and therefore they will have the same color and visibility settings as the chaperone bounds.
@@ -220,10 +281,12 @@ and copy `third-party/openvr/lib/linux64/libopenvr_api.so` into your systems lib
- You can modify the shutdown wait time when restarting SteamVR by opening restartvrserver.bat and changing the number behind "timeout /t" (unit is seconds).
+
# Known Bugs
- None yet.
+
# License
This software is released under GPL 3.0.
diff --git a/docs/building_for_windows.md b/docs/building_for_windows.md
new file mode 100644
index 0000000..b6c7b51
--- /dev/null
+++ b/docs/building_for_windows.md
@@ -0,0 +1,34 @@
+# Building for Windows
+
+
+ > * [Requirements](#requirements)
+ > * [Locations and Environment Variables](#locs_and_envs)
+ > * [Building](#features)
+
+
+## Requirements
+
+For compiling:
+
+1. Microsoft Visual Studio (tested on 2017 Community)
+2. Qt Framework (tested on 5.10 and 5.11)
+
+Additionally, for fully building portable and installer release versions:
+3. 7zip Command Line
+4. Nullsoft Scriptable Install System (NSIS)
+
+
+## Locations and Environment Variables
+
+Visual Studio must be installed in the default location of `C:\Program Files (x86)\Microsoft Visual Studio\2017\Community`.
+
+The `QT` environment variable must be set to the location of your Qt installation (for example `C:\Qt\5.11.1\msvc2017_64`).
+
+The `PLATFORM` environment variable must be set to `amd64`.
+
+For building the portable and installer release versions, the locations of 7zip Command Line (`7z.exe`) and NSIS (`makensis.exe`) must be in the `PATH` environment variable.
+
+
+## Building
+
+With the programs above installed and environment variables set, go into the root folder of the repository and first run `build_windows.cmd` and then `package.cmd`. Compiled binaries along with everything needed to run portable will output to `.\bin\win64\AdvancedSettings\`.