mirror of
https://github.com/LizardByte/Sunshine.git
synced 2025-10-29 11:23:23 +00:00
docs: use github admonition styles (#4263)
This commit is contained in:
parent
cadc89aa14
commit
9f6c832583
@ -34,7 +34,8 @@ LizardByte has the full documentation hosted on [Read the Docs](https://docs.liz
|
||||
|
||||
## 🖥️ System Requirements
|
||||
|
||||
@warning{These tables are a work in progress. Do not purchase hardware based on this information.}
|
||||
> [!WARNING]
|
||||
> These tables are a work in progress. Do not purchase hardware based on this information.
|
||||
|
||||
<table>
|
||||
<caption id="minimum_requirements">Minimum Requirements</caption>
|
||||
|
||||
@ -2,10 +2,12 @@
|
||||
Since not all applications behave the same, we decided to create some examples to help you get started adding games
|
||||
and applications to Sunshine.
|
||||
|
||||
@attention{Throughout these examples, any fields not shown are left blank. You can enhance your experience by
|
||||
adding an image or a log file (via the `Output` field).}
|
||||
> [!TIP]
|
||||
> Throughout these examples, any fields not shown are left blank. You can enhance your experience by
|
||||
> adding an image or a log file (via the `Output` field).
|
||||
|
||||
@note{When a working directory is not specified, it defaults to the folder where the target application resides.}
|
||||
> [!WARNING]
|
||||
> When a working directory is not specified, it defaults to the folder where the target application resides.
|
||||
|
||||
|
||||
## Common Examples
|
||||
@ -18,8 +20,10 @@ adding an image or a log file (via the `Output` field).}
|
||||
| Image | @code{}desktop.png@endcode |
|
||||
|
||||
### Steam Big Picture
|
||||
@note{Steam is launched as a detached command because Steam starts with a process that self updates itself and the original
|
||||
process is killed.}
|
||||
|
||||
> [!NOTE]
|
||||
> Steam is launched as a detached command because Steam starts with a process that self updates itself and the original
|
||||
> process is killed.
|
||||
|
||||
@tabs{
|
||||
@tab{Linux | <!-- -->
|
||||
@ -49,7 +53,9 @@ process is killed.}
|
||||
}
|
||||
|
||||
### Epic Game Store game
|
||||
@note{Using URI method will be the most consistent between various games.}
|
||||
|
||||
> [!NOTE]
|
||||
> Using the URI method will be the most consistent between various games.
|
||||
|
||||
#### URI
|
||||
|
||||
@ -84,7 +90,9 @@ process is killed.}
|
||||
}
|
||||
|
||||
### Steam game
|
||||
@note{Using URI method will be the most consistent between various games.}
|
||||
|
||||
> [!NOTE]
|
||||
> Using the URI method will be the most consistent between various games.
|
||||
|
||||
#### URI
|
||||
|
||||
@ -169,49 +177,49 @@ process is killed.}
|
||||
| Do | @code{}sh -c "xrandr --output HDMI-1 --mode ${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT} --rate ${SUNSHINE_CLIENT_FPS}"@endcode |
|
||||
| Undo | @code{}xrandr --output HDMI-1 --mode 3840x2160 --rate 120@endcode |
|
||||
|
||||
@hint{The above only works if the xrandr mode already exists. You will need to create new modes to stream to macOS
|
||||
and iOS devices, since they use non-standard resolutions.
|
||||
|
||||
You can update the ``Do`` command to this:
|
||||
```bash
|
||||
bash -c "${HOME}/scripts/set-custom-res.sh \"${SUNSHINE_CLIENT_WIDTH}\" \"${SUNSHINE_CLIENT_HEIGHT}\" \"${SUNSHINE_CLIENT_FPS}\""
|
||||
```
|
||||
|
||||
The `set-custom-res.sh` will have this content:
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Get params and set any defaults
|
||||
width=${1:-1920}
|
||||
height=${2:-1080}
|
||||
refresh_rate=${3:-60}
|
||||
|
||||
# You may need to adjust the scaling differently so the UI/text isn't too small / big
|
||||
scale=${4:-0.55}
|
||||
|
||||
# Get the name of the active display
|
||||
display_output=$(xrandr | grep " connected" | awk '{ print $1 }')
|
||||
|
||||
# Get the modeline info from the 2nd row in the cvt output
|
||||
modeline=$(cvt ${width} ${height} ${refresh_rate} | awk 'FNR == 2')
|
||||
xrandr_mode_str=${modeline//Modeline \"*\" /}
|
||||
mode_alias="${width}x${height}"
|
||||
|
||||
echo "xrandr setting new mode ${mode_alias} ${xrandr_mode_str}"
|
||||
xrandr --newmode ${mode_alias} ${xrandr_mode_str}
|
||||
xrandr --addmode ${display_output} ${mode_alias}
|
||||
|
||||
# Reset scaling
|
||||
xrandr --output ${display_output} --scale 1
|
||||
|
||||
# Apply new xrandr mode
|
||||
xrandr --output ${display_output} --primary --mode ${mode_alias} --pos 0x0 --rotate normal --scale ${scale}
|
||||
|
||||
# Optional reset your wallpaper to fit to new resolution
|
||||
# xwallpaper --zoom /path/to/wallpaper.png
|
||||
```
|
||||
}
|
||||
> [!TIP]
|
||||
> The above only works if the xrandr mode already exists. You will need to create new modes to stream to macOS
|
||||
> and iOS devices, since they use non-standard resolutions.
|
||||
>
|
||||
> You can update the ``Do`` command to this:
|
||||
> ```bash
|
||||
> bash -c "${HOME}/scripts/set-custom-res.sh \"${SUNSHINE_CLIENT_WIDTH}\" \"${SUNSHINE_CLIENT_HEIGHT}\" \"${SUNSHINE_CLIENT_FPS}\""
|
||||
> ```
|
||||
>
|
||||
> The `set-custom-res.sh` will have this content:
|
||||
> ```bash
|
||||
> #!/bin/bash
|
||||
> set -e
|
||||
>
|
||||
> # Get params and set any defaults
|
||||
> width=${1:-1920}
|
||||
> height=${2:-1080}
|
||||
> refresh_rate=${3:-60}
|
||||
>
|
||||
> # You may need to adjust the scaling differently so the UI/text isn't too small / big
|
||||
> scale=${4:-0.55}
|
||||
>
|
||||
> # Get the name of the active display
|
||||
> display_output=$(xrandr | grep " connected" | awk '{ print $1 }')
|
||||
>
|
||||
> # Get the modeline info from the 2nd row in the cvt output
|
||||
> modeline=$(cvt ${width} ${height} ${refresh_rate} | awk 'FNR == 2')
|
||||
> xrandr_mode_str=${modeline//Modeline \"*\" /}
|
||||
> mode_alias="${width}x${height}"
|
||||
>
|
||||
> echo "xrandr setting new mode ${mode_alias} ${xrandr_mode_str}"
|
||||
> xrandr --newmode ${mode_alias} ${xrandr_mode_str}
|
||||
> xrandr --addmode ${display_output} ${mode_alias}
|
||||
>
|
||||
> # Reset scaling
|
||||
> xrandr --output ${display_output} --scale 1
|
||||
>
|
||||
> # Apply new xrandr mode
|
||||
> xrandr --output ${display_output} --primary --mode ${mode_alias} --pos 0x0 --rotate normal --scale ${scale}
|
||||
>
|
||||
> # Optional reset your wallpaper to fit to new resolution
|
||||
> # xwallpaper --zoom /path/to/wallpaper.png
|
||||
> ```
|
||||
|
||||
###### Wayland (wlroots, e.g. hyprland)
|
||||
|
||||
@ -220,7 +228,8 @@ xrandr --output ${display_output} --primary --mode ${mode_alias} --pos 0x0 --rot
|
||||
| Do | @code{}sh -c "wlr-xrandr --output HDMI-1 --mode \"${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT}@${SUNSHINE_CLIENT_FPS}Hz\""@endcode |
|
||||
| Undo | @code{}wlr-xrandr --output HDMI-1 --mode 3840x2160@120Hz@endcode |
|
||||
|
||||
@hint{`wlr-xrandr` only works with wlroots-based compositors.}
|
||||
> [!TIP]
|
||||
> `wlr-xrandr` only works with wlroots-based compositors.
|
||||
|
||||
###### Gnome (X11)
|
||||
|
||||
@ -240,12 +249,12 @@ Installation instructions for displayconfig-mutter can be [found here](https://g
|
||||
[gnome-randr-rust](https://github.com/maxwellainatchi/gnome-randr-rust) and [gnome-randr.py](https://gitlab.com/Oschowa/gnome-randr), but both of those are
|
||||
unmaintained and do not support newer Mutter features such as HDR and VRR.
|
||||
|
||||
@hint{HDR support has been added to Gnome 48, to check if your display supports it you can run this:
|
||||
```
|
||||
displayconfig-mutter list
|
||||
```
|
||||
If it doesn't, then remove ``--hdr`` flag from both ``Do`` and ``Undo`` steps.
|
||||
}
|
||||
> [!TIP]
|
||||
> HDR support has been added to Gnome 48, to check if your display supports it, you can run this:
|
||||
> ```
|
||||
> displayconfig-mutter list
|
||||
> ```
|
||||
> If it doesn't, then remove ``--hdr`` flag from both ``Do`` and ``Undo`` steps.
|
||||
|
||||
###### KDE Plasma (Wayland, X11)
|
||||
|
||||
@ -254,22 +263,22 @@ If it doesn't, then remove ``--hdr`` flag from both ``Do`` and ``Undo`` steps.
|
||||
| Do | @code{}sh -c "kscreen-doctor output.HDMI-A-1.mode.${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT}@${SUNSHINE_CLIENT_FPS}"@endcode |
|
||||
| Undo | @code{}kscreen-doctor output.HDMI-A-1.mode.3840x2160@120@endcode |
|
||||
|
||||
@attention{The names of your displays will differ between X11 and Wayland.
|
||||
Be sure to use the correct name, depending on your session manager.
|
||||
e.g. On X11, the monitor may be called ``HDMI-A-0``, but on Wayland, it may be called ``HDMI-A-1``.
|
||||
}
|
||||
> [!CAUTION]
|
||||
> The names of your displays will differ between X11 and Wayland.
|
||||
> Be sure to use the correct name, depending on your session manager.
|
||||
> e.g., On X11, the monitor may be called ``HDMI-A-0``, but on Wayland, it may be called ``HDMI-A-1``.
|
||||
|
||||
@hint{Replace ``HDMI-A-1`` with the display name of the monitor you would like to use for Moonlight.
|
||||
You can list the monitors available to you with:
|
||||
```
|
||||
kscreen-doctor -o
|
||||
```
|
||||
|
||||
These will also give you the supported display properties for each monitor. You can select them either by
|
||||
hard-coding their corresponding number (e.g. ``kscreen-doctor output.HDMI-A1.mode.0``) or using the above
|
||||
``do`` command to fetch the resolution requested by your Moonlight client
|
||||
(which has a chance of not being supported by your monitor).
|
||||
}
|
||||
> [!TIP]
|
||||
> Replace ``HDMI-A-1`` with the display name of the monitor you would like to use for Moonlight.
|
||||
> You can list the monitors available to you with:
|
||||
> ```
|
||||
> kscreen-doctor -o
|
||||
> ```
|
||||
>
|
||||
> These will also give you the supported display properties for each monitor. You can select them either by
|
||||
> hard-coding their corresponding number (e.g. ``kscreen-doctor output.HDMI-A1.mode.0``) or using the above
|
||||
> ``do`` command to fetch the resolution requested by your Moonlight client
|
||||
> (which has a chance of not being supported by your monitor).
|
||||
|
||||
###### NVIDIA
|
||||
|
||||
@ -281,9 +290,11 @@ hard-coding their corresponding number (e.g. ``kscreen-doctor output.HDMI-A1.mod
|
||||
##### macOS
|
||||
|
||||
###### displayplacer
|
||||
@note{This example uses the `displayplacer` tool to change the resolution.
|
||||
This tool can be installed following instructions in their
|
||||
[GitHub repository](https://github.com/jakehilborn/displayplacer)}.
|
||||
|
||||
> [!NOTE]
|
||||
> This example uses the `displayplacer` tool to change the resolution.
|
||||
> This tool can be installed following instructions in their
|
||||
> [GitHub repository](https://github.com/jakehilborn/displayplacer).
|
||||
|
||||
| Prep Step | Command |
|
||||
|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
@ -295,8 +306,10 @@ Sunshine has built-in support for changing the resolution and refresh rate on Wi
|
||||
third-party tool, you can use *QRes* as an example.
|
||||
|
||||
###### QRes
|
||||
@note{This example uses the *QRes* tool to change the resolution and refresh rate.
|
||||
This tool can be downloaded from their [SourceForge repository](https://sourceforge.net/projects/qres).}
|
||||
|
||||
> [!NOTE]
|
||||
> This example uses the *QRes* tool to change the resolution and refresh rate.
|
||||
> This tool can be downloaded from their [SourceForge repository](https://sourceforge.net/projects/qres).
|
||||
|
||||
| Prep Step | Command |
|
||||
|-----------|---------------------------------------------------------------------------------------------------------------------------|
|
||||
@ -306,8 +319,10 @@ This tool can be downloaded from their [SourceForge repository](https://sourcefo
|
||||
### Additional Considerations
|
||||
|
||||
#### Linux (Flatpak)
|
||||
@attention{Because Flatpak packages run in a sandboxed environment and do not normally have access to the
|
||||
host, the Flatpak of Sunshine requires commands to be prefixed with `flatpak-spawn --host`.}
|
||||
|
||||
> [!CAUTION]
|
||||
> Because Flatpak packages run in a sandboxed environment and do not normally have access to the
|
||||
> host, the Flatpak of Sunshine requires commands to be prefixed with `flatpak-spawn --host`.
|
||||
|
||||
#### Windows
|
||||
**Elevating Commands (Windows)**
|
||||
|
||||
@ -28,8 +28,9 @@ Sunshine requires CUDA Toolkit for NVFBC capture. There are two caveats to CUDA:
|
||||
At the time of writing, the recommended version to use is CUDA ~12.9.
|
||||
See [CUDA compatibility](https://docs.nvidia.com/deploy/cuda-compatibility/index.html) for more info.
|
||||
|
||||
@tip{To install older versions, select the appropriate run file based on your desired CUDA version and architecture
|
||||
according to [CUDA Toolkit Archive](https://developer.nvidia.com/cuda-toolkit-archive)}
|
||||
> [!NOTE]
|
||||
> To install older versions, select the appropriate run file based on your desired CUDA version and architecture
|
||||
> according to [CUDA Toolkit Archive](https://developer.nvidia.com/cuda-toolkit-archive)
|
||||
|
||||
#### macOS
|
||||
You can either use [Homebrew](https://brew.sh) or [MacPorts](https://www.macports.org) to install dependencies.
|
||||
@ -127,8 +128,9 @@ cmake -B build -G Ninja -S .
|
||||
ninja -C build
|
||||
```
|
||||
|
||||
@tip{Available build options can be found in
|
||||
[options.cmake](https://github.com/LizardByte/Sunshine/blob/master/cmake/prep/options.cmake).}
|
||||
> [!TIP]
|
||||
> Available build options can be found in
|
||||
> [options.cmake](https://github.com/LizardByte/Sunshine/blob/master/cmake/prep/options.cmake).
|
||||
|
||||
### Package
|
||||
|
||||
|
||||
@ -73,13 +73,15 @@ The following is a simple example of how to use it.
|
||||
}
|
||||
```
|
||||
|
||||
@note{The json keys should be sorted alphabetically. You can use [jsonabc](https://novicelab.org/jsonabc)
|
||||
to sort the keys.}
|
||||
> [!NOTE]
|
||||
> The JSON keys should be sorted alphabetically. You can use [jsonabc](https://novicelab.org/jsonabc)
|
||||
> to sort the keys.
|
||||
|
||||
@attention{Due to the integration with Crowdin, it is important to only add strings to the *en.json* file,
|
||||
and to not modify any other language files. After the PR is merged, the translations can take place
|
||||
on [CrowdIn][crowdin-url]. Once the translations are complete, a PR will be made
|
||||
to merge the translations into Sunshine.}
|
||||
> [!IMPORTANT]
|
||||
> Due to the integration with Crowdin, it is important to only add strings to the *en.json* file,
|
||||
> and to not modify any other language files. After the PR is merged, the translations can take place
|
||||
> on [CrowdIn][crowdin-url]. Once the translations are complete, a PR will be made
|
||||
> to merge the translations into Sunshine.
|
||||
|
||||
* Use the string in the Vue component.
|
||||
```html
|
||||
@ -90,8 +92,9 @@ The following is a simple example of how to use it.
|
||||
</template>
|
||||
```
|
||||
|
||||
@tip{More formatting examples can be found in the
|
||||
[Vue I18n guide](https://kazupon.github.io/vue-i18n/guide/formatting.html).}
|
||||
> [!TIP]
|
||||
> More formatting examples can be found in the
|
||||
> [Vue I18n guide](https://kazupon.github.io/vue-i18n/guide/formatting.html).
|
||||
|
||||
##### C++
|
||||
|
||||
@ -106,11 +109,13 @@ some situations. For example the system tray icon could be localized as it is us
|
||||
std::string msg = boost::locale::translate("Hello world!");
|
||||
```
|
||||
|
||||
@tip{More examples can be found in the documentation for
|
||||
[boost locale](https://www.boost.org/doc/libs/1_70_0/libs/locale/doc/html/messages_formatting.html).}
|
||||
> [!TIP]
|
||||
> More examples can be found in the documentation for
|
||||
> [boost locale](https://www.boost.org/doc/libs/1_70_0/libs/locale/doc/html/messages_formatting.html).
|
||||
|
||||
@warning{The below is for information only. Contributors should never include manually updated template files, or
|
||||
manually compiled language files in Pull Requests.}
|
||||
> [!WARNING]
|
||||
> The below is for information only. Contributors should never include manually updated template files, or
|
||||
> manually compiled language files in Pull Requests.
|
||||
|
||||
Strings are automatically extracted from the code to the `locale/sunshine.po` template file. The generated file is
|
||||
used by CrowdIn to generate language specific template files. The file is generated using the
|
||||
@ -135,10 +140,11 @@ required for this, along with the python dependencies in the `./scripts/requirem
|
||||
python ./scripts/_locale.py --compile
|
||||
```
|
||||
|
||||
@attention{Due to the integration with CrowdIn, it is important to not include any extracted or compiled files in
|
||||
Pull Requests. The files are automatically generated and updated by the workflow. Once the PR is merged, the
|
||||
translations can take place on [CrowdIn][crowdin-url]. Once the translations are
|
||||
complete, a PR will be made to merge the translations into Sunshine.}
|
||||
> [!IMPORTANT]
|
||||
> Due to the integration with CrowdIn, it is important to not include any extracted or compiled files in
|
||||
> Pull Requests. The files are automatically generated and updated by the workflow. Once the PR is merged, the
|
||||
> translations can take place on [CrowdIn][crowdin-url]. Once the translations are
|
||||
> complete, a PR will be made to merge the translations into Sunshine.
|
||||
|
||||
### Testing
|
||||
|
||||
@ -175,8 +181,8 @@ To see all available options, run the tests with the `--help` flag.
|
||||
./build/tests/test_sunshine --help
|
||||
```
|
||||
|
||||
@tip{See the googletest [FAQ](https://google.github.io/googletest/faq.html) for more information on how to use
|
||||
Google Test.}
|
||||
> [!TIP]
|
||||
> See the googletest [FAQ](https://google.github.io/googletest/faq.html) for more information on how to use Google Test.
|
||||
|
||||
We use [gcovr](https://www.gcovr.com) to generate code coverage reports,
|
||||
and [Codecov](https://about.codecov.io) to analyze the reports for all PRs and commits.
|
||||
|
||||
@ -13,14 +13,15 @@ to a specified directory.
|
||||
If you are using the Moonlight Internet Hosting Tool, you can remove it from your system when you migrate to Sunshine.
|
||||
To stream over the Internet with Sunshine and a UPnP-capable router, enable the UPnP option in the Sunshine Web UI.
|
||||
|
||||
@note{Running Sunshine together with versions of the Moonlight Internet Hosting Tool prior to v5.6 will cause UPnP
|
||||
port forwarding to become unreliable. Either uninstall the tool entirely or update it to v5.6 or later.}
|
||||
> [!NOTE]
|
||||
> Running Sunshine together with versions of the Moonlight Internet Hosting Tool prior to v5.6 will cause UPnP
|
||||
> port forwarding to become unreliable. Either uninstall the tool entirely or update it to v5.6 or later.
|
||||
|
||||
## Limitations
|
||||
Sunshine does have some limitations, as compared to Nvidia GameStream.
|
||||
|
||||
* Automatic game/application list.
|
||||
* Changing game settings automatically, to optimize streaming.
|
||||
* Changing game settings automatically to optimize streaming.
|
||||
|
||||
<div class="section_buttons">
|
||||
|
||||
|
||||
@ -11,14 +11,17 @@ and release artifacts may be missing when merging changes on a faster cadence.
|
||||
Binaries of Sunshine are created for each release. They are available for Linux, macOS, and Windows.
|
||||
Binaries can be found in the [latest release][latest-release].
|
||||
|
||||
@tip{Some third party packages also exist.
|
||||
See [Third Party Packages](third_party_packages.md) for more information.
|
||||
No support will be provided for third party packages!}
|
||||
> [!NOTE]
|
||||
> Some third party packages also exist.
|
||||
> See [Third Party Packages](third_party_packages.md) for more information.
|
||||
> No support will be provided for third party packages!
|
||||
|
||||
## Install
|
||||
|
||||
### Docker
|
||||
@warning{The Docker images are not recommended for most users.}
|
||||
|
||||
> [!WARNING]
|
||||
> The Docker images are not recommended for most users.
|
||||
|
||||
Docker images are available on [Dockerhub.io](https://hub.docker.com/repository/docker/lizardbyte/sunshine)
|
||||
and [ghcr.io](https://github.com/orgs/LizardByte/packages?repo_name=sunshine).
|
||||
@ -30,9 +33,10 @@ See [Docker](../DOCKER_README.md) for more information.
|
||||
|
||||
CUDA is used for NVFBC capture.
|
||||
|
||||
@tip{See [CUDA GPUS](https://developer.nvidia.com/cuda-gpus) to cross-reference Compute Capability to your GPU.
|
||||
The table below applies to packages provided by LizardByte. If you use an official LizardByte package, then you do not
|
||||
need to install CUDA.}
|
||||
> [!NOTE]
|
||||
> See [CUDA GPUS](https://developer.nvidia.com/cuda-gpus) to cross-reference Compute Capability to your GPU.
|
||||
> The table below applies to packages provided by LizardByte. If you use an official LizardByte package, then you do not
|
||||
> need to install CUDA.
|
||||
|
||||
<table>
|
||||
<caption>CUDA Compatibility</caption>
|
||||
@ -72,7 +76,9 @@ need to install CUDA.}
|
||||
</table>
|
||||
|
||||
#### AppImage
|
||||
@caution{Use distro-specific packages instead of the AppImage if they are available.}
|
||||
|
||||
> [!CAUTION]
|
||||
> Use distro-specific packages instead of the AppImage if they are available.
|
||||
|
||||
According to AppImageLint the supported distro matrix of the AppImage is below.
|
||||
|
||||
@ -113,7 +119,9 @@ According to AppImageLint the supported distro matrix of the AppImage is below.
|
||||
```
|
||||
|
||||
#### ArchLinux
|
||||
@warning{We do not provide support for any AUR packages.}
|
||||
|
||||
> [!CAUTION]
|
||||
> Use AUR packages at your own risk.
|
||||
|
||||
##### Install Prebuilt Packages
|
||||
Follow the instructions at LizardByte's [pacman-repo](https://github.com/LizardByte/pacman-repo) to add
|
||||
@ -148,10 +156,12 @@ Download `sunshine-{distro}-{distro-version}-{arch}.deb` and run the following c
|
||||
sudo dpkg -i ./sunshine-{distro}-{distro-version}-{arch}.deb
|
||||
```
|
||||
|
||||
@note{The `{distro-version}` is the version of the distro we built the package on. The `{arch}` is the
|
||||
architecture of your operating system.}
|
||||
> [!NOTE]
|
||||
> The `{distro-version}` is the version of the distro we built the package on. The `{arch}` is the
|
||||
> architecture of your operating system.
|
||||
|
||||
@tip{You can double-click the deb file to see details about the package and begin installation.}
|
||||
> [!TIP]
|
||||
> You can double-click the deb file to see details about the package and begin installation.
|
||||
|
||||
##### Uninstall
|
||||
```bash
|
||||
@ -159,7 +169,9 @@ sudo apt remove sunshine
|
||||
```
|
||||
|
||||
#### Fedora
|
||||
@tip{The package name is case-sensitive.}
|
||||
|
||||
> [!TIP]
|
||||
> The package name is case-sensitive.
|
||||
|
||||
##### Install
|
||||
1. Enable copr repository.
|
||||
@ -183,13 +195,17 @@ sudo dnf remove Sunshine
|
||||
```
|
||||
|
||||
#### Flatpak
|
||||
@caution{Use distro-specific packages instead of the Flatpak if they are available.}
|
||||
|
||||
> [!CAUTION]
|
||||
> Use distro-specific packages instead of the Flatpak if they are available.
|
||||
|
||||
Using this package requires that you have [Flatpak](https://flatpak.org/setup) installed.
|
||||
|
||||
##### Download (local option)
|
||||
1. Download `sunshine_{arch}.flatpak` and run the following command.
|
||||
@note{Replace `{arch}` with your system architecture.}
|
||||
|
||||
> [!NOTE]
|
||||
> Replace `{arch}` with your system architecture.
|
||||
|
||||
##### Install (system level)
|
||||
**Flathub**
|
||||
@ -235,7 +251,9 @@ flatpak uninstall --delete-data dev.lizardbyte.app.Sunshine
|
||||
```
|
||||
|
||||
#### Homebrew
|
||||
@important{The Homebrew package is experimental on Linux.}
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The Homebrew package is experimental on Linux.
|
||||
|
||||
This package requires that you have [Homebrew](https://docs.brew.sh/Installation) installed.
|
||||
|
||||
@ -254,7 +272,8 @@ brew uninstall sunshine
|
||||
|
||||
### macOS
|
||||
|
||||
@important{Sunshine on macOS is experimental. Gamepads do not work.}
|
||||
> [!IMPORTANT]
|
||||
> Sunshine on macOS is experimental. Gamepads do not work.
|
||||
|
||||
#### Homebrew
|
||||
This package requires that you have [Homebrew](https://docs.brew.sh/Installation) installed.
|
||||
@ -270,7 +289,8 @@ brew install sunshine
|
||||
brew uninstall sunshine
|
||||
```
|
||||
|
||||
@tip{For beta you can replace `sunshine` with `sunshine-beta` in the above commands.}
|
||||
> [!TIP]
|
||||
> For beta you can replace `sunshine` with `sunshine-beta` in the above commands.
|
||||
|
||||
### Windows
|
||||
|
||||
@ -279,16 +299,18 @@ brew uninstall sunshine
|
||||
1. Download and install
|
||||
[Sunshine-Windows-AMD64-installer.exe](https://github.com/LizardByte/Sunshine/releases/latest/download/Sunshine-Windows-AMD64-installer.exe)
|
||||
|
||||
@attention{You should carefully select or unselect the options you want to install. Do not blindly install or
|
||||
enable features.}
|
||||
> [!CAUTION]
|
||||
> You should carefully select or unselect the options you want to install. Do not blindly install or
|
||||
> enable features.
|
||||
|
||||
To uninstall, find Sunshine in the list <a href="ms-settings:installed-apps">here</a> and select "Uninstall" from the
|
||||
overflow menu. Different versions of Windows may provide slightly different steps for uninstall.
|
||||
|
||||
#### Standalone (lite version)
|
||||
|
||||
@warning{By using this package instead of the installer, performance will be reduced. This package is not
|
||||
recommended for most users. No support will be provided!}
|
||||
> [!WARNING]
|
||||
> By using this package instead of the installer, performance will be reduced. This package is not
|
||||
> recommended for most users. No support will be provided!
|
||||
|
||||
1. Download and extract
|
||||
[Sunshine-Windows-AMD64-portable.zip](https://github.com/LizardByte/Sunshine/releases/latest/download/Sunshine-Windows-AMD64-portable.zip)
|
||||
@ -342,9 +364,13 @@ After installation, some initial setup is required.
|
||||
### Linux
|
||||
|
||||
#### KMS Capture
|
||||
@warning{Capture of most Wayland-based desktop environments will fail unless this step is performed.}
|
||||
@note{`cap_sys_admin` may as well be root, except you don't need to be root to run the program. This is necessary to
|
||||
allow Sunshine to use KMS capture.}
|
||||
|
||||
> [!WARNING]
|
||||
> Capture of most Wayland-based desktop environments will fail unless this step is performed.
|
||||
|
||||
> [!NOTE]
|
||||
> `cap_sys_admin` may as well be root, except you don't need to be root to run the program. This is necessary to
|
||||
> allow Sunshine to use KMS capture.
|
||||
|
||||
##### Enable
|
||||
```bash
|
||||
@ -377,8 +403,11 @@ Sunshine can only access microphones on macOS due to system limitations. To stre
|
||||
[Soundflower](https://github.com/mattingalls/Soundflower) or
|
||||
[BlackHole](https://github.com/ExistentialAudio/BlackHole).
|
||||
|
||||
@note{Command Keys are not forwarded by Moonlight. Right Option-Key is mapped to CMD-Key.}
|
||||
@caution{Gamepads are not currently supported.}
|
||||
> [!NOTE]
|
||||
> Command Keys are not forwarded by Moonlight. Right Option-Key is mapped to CMD-Key.
|
||||
|
||||
> [!CAUTION]
|
||||
> Gamepads are not currently supported.
|
||||
|
||||
## Usage
|
||||
|
||||
@ -386,8 +415,9 @@ Sunshine can only access microphones on macOS due to system limitations. To stre
|
||||
If Sunshine is not installed/running as a service, then start Sunshine with the following command, unless a start
|
||||
command is listed in the specified package [install](#install) instructions above.
|
||||
|
||||
@note{A service is a process that runs in the background. This is the default when installing Sunshine from the
|
||||
Windows installer. Running multiple instances of Sunshine is not advised.}
|
||||
> [!NOTE]
|
||||
> A service is a process that runs in the background. This is the default when installing Sunshine from the
|
||||
> Windows installer. Running multiple instances of Sunshine is not advised.
|
||||
|
||||
```bash
|
||||
sunshine
|
||||
@ -398,9 +428,11 @@ sunshine
|
||||
sunshine <directory of conf file>/sunshine.conf
|
||||
```
|
||||
|
||||
@note{You do not need to specify a config file. If no config file is entered the default location will be used.}
|
||||
> [!NOTE]
|
||||
> You do not need to specify a config file. If no config file is entered, the default location will be used.
|
||||
|
||||
@attention{The configuration file specified will be created if it doesn't exist.}
|
||||
> [!TIP]
|
||||
> The configuration file specified will be created if it doesn't exist.
|
||||
|
||||
### Start Sunshine over SSH (Linux/X11)
|
||||
Assuming you are already logged into the host, you can use this command
|
||||
@ -417,9 +449,10 @@ be ready.
|
||||
ssh <user>@<ip_address> 'startx &; export DISPLAY=:0; sunshine'
|
||||
```
|
||||
|
||||
@tip{You could also utilize the `~/.bash_profile` or `~/.bashrc` files to set up the `DISPLAY` variable.}
|
||||
> [!TIP]
|
||||
> You could also use the `~/.bash_profile` or `~/.bashrc` files to set up the `DISPLAY` variable.
|
||||
|
||||
@seealso{ See [Remote SSH Headless Setup](https://app.lizardbyte.dev/2023-09-14-remote-ssh-headless-sunshine-setup)
|
||||
@seealso{See [Remote SSH Headless Setup](https://app.lizardbyte.dev/2023-09-14-remote-ssh-headless-sunshine-setup)
|
||||
on how to set up a headless streaming server without autologin and dummy plugs (X11 + NVidia GPUs)}
|
||||
|
||||
### Configuration
|
||||
@ -427,10 +460,12 @@ on how to set up a headless streaming server without autologin and dummy plugs (
|
||||
Sunshine is configured via the web ui, which is available on [https://localhost:47990](https://localhost:47990)
|
||||
by default. You may replace *localhost* with your internal ip address.
|
||||
|
||||
@attention{Ignore any warning given by your browser about "insecure website". This is due to the SSL certificate
|
||||
being self-signed.}
|
||||
> [!NOTE]
|
||||
> Ignore any warning given by your browser about "insecure website". This is due to the SSL certificate
|
||||
> being self-signed.
|
||||
|
||||
@caution{If running for the first time, make sure to note the username and password that you created.}
|
||||
> [!CAUTION]
|
||||
> If running for the first time, make sure to note the username and password that you created.
|
||||
|
||||
1. Add games and applications.
|
||||
2. Adjust any configuration settings as needed.
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
# Legal
|
||||
@attention{This documentation is for informational purposes only and is not intended as legal advice. If you have
|
||||
any legal questions or concerns about using Sunshine, we recommend consulting with a lawyer.}
|
||||
|
||||
> [!CAUTION]
|
||||
> This documentation is for informational purposes only and is not intended as legal advice. If you have
|
||||
> any legal questions or concerns about using Sunshine, we recommend consulting with a lawyer.
|
||||
|
||||
Sunshine is licensed under the GPL-3.0 license, which allows for free use and modification of the software.
|
||||
The full text of the license can be reviewed [here](https://github.com/LizardByte/Sunshine/blob/master/LICENSE).
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
# Third-Party Packages
|
||||
|
||||
@danger{These packages are not maintained by LizardByte. Use at your own risk.}
|
||||
> [!WARNING]
|
||||
> These packages are not maintained by LizardByte. Use at your own risk.
|
||||
|
||||
## Chocolatey
|
||||
[](https://community.chocolatey.org/packages/sunshine)
|
||||
|
||||
@ -20,8 +20,9 @@ If you forgot your credentials to the web UI, try this.
|
||||
}
|
||||
}
|
||||
|
||||
@tip{Don't forget to replace `{new-username}` and `{new-password}` with your new credentials.
|
||||
Do not include the curly braces.}
|
||||
> [!TIP]
|
||||
> Remember to replace `{new-username}` and `{new-password}` with your new credentials.
|
||||
> Do not include the curly braces.
|
||||
|
||||
### Unusual Mouse Behavior
|
||||
If you experience unusual mouse behavior, try attaching a physical mouse to the Sunshine host.
|
||||
@ -137,15 +138,16 @@ Error: Could not open codec [h264_vaapi]: Function not implemented
|
||||
If you see the above error in the Sunshine logs, compiling *Mesa* manually may be required. See the official Mesa3D
|
||||
[Compiling and Installing](https://docs.mesa3d.org/install.html) documentation for instructions.
|
||||
|
||||
@important{You must re-enable the disabled encoders. You can do so by passing the following argument to the build
|
||||
system. You may also want to enable decoders, however, that is not required for Sunshine and is not covered here.
|
||||
```bash
|
||||
-Dvideo-codecs=h264enc,h265enc
|
||||
```
|
||||
}
|
||||
> [!IMPORTANT]
|
||||
> You must re-enable the disabled encoders. You can do so by passing the following argument to the build
|
||||
> system. You may also want to enable decoders, however, that is not required for Sunshine and is not covered here.
|
||||
> ```bash
|
||||
> -Dvideo-codecs=h264enc,h265enc
|
||||
> ```
|
||||
|
||||
@note{Other build options are listed in the
|
||||
[meson options](https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/meson_options.txt) file.}
|
||||
> [!NOTE]
|
||||
> Other build options are listed in the
|
||||
> [meson options](https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/meson_options.txt) file.
|
||||
|
||||
### Input not working
|
||||
After installation, the `udev` rules need to be reloaded. Our post-install script tries to do this for you
|
||||
@ -164,9 +166,10 @@ If screencasting fails with KMS, you may need to run the following to force unpr
|
||||
sudo setcap -r $(readlink -f $(which sunshine))
|
||||
```
|
||||
|
||||
@note{The above command will not work with the AppImage or Flatpak packages. Please refer to the
|
||||
[AppImage setup](md_docs_2getting__started.html#appimage) or
|
||||
[Flatpak setup](md_docs_2getting__started.html#flatpak) for more specific instructions.}
|
||||
> [!NOTE]
|
||||
> The above command will not work with the AppImage or Flatpak packages. Please refer to the
|
||||
> [AppImage setup](md_docs_2getting__started.html#appimage) or
|
||||
> [Flatpak setup](md_docs_2getting__started.html#flatpak) for more specific instructions.
|
||||
|
||||
### KMS streaming fails on Nvidia GPUs
|
||||
If KMS screen capture results in a black screen being streamed, you may need to
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user