docs: use github admonition styles (#4263)

This commit is contained in:
ReenigneArcher 2025-09-16 19:01:39 -04:00 committed by GitHub
commit 9f6c832583
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 223 additions and 157 deletions

View file

@ -34,7 +34,8 @@ LizardByte has the full documentation hosted on [Read the Docs](https://docs.liz
## 🖥️ System Requirements ## 🖥️ 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> <table>
<caption id="minimum_requirements">Minimum Requirements</caption> <caption id="minimum_requirements">Minimum Requirements</caption>

View file

@ -2,10 +2,12 @@
Since not all applications behave the same, we decided to create some examples to help you get started adding games Since not all applications behave the same, we decided to create some examples to help you get started adding games
and applications to Sunshine. and applications to Sunshine.
@attention{Throughout these examples, any fields not shown are left blank. You can enhance your experience by > [!TIP]
adding an image or a log file (via the `Output` field).} > 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 ## Common Examples
@ -18,8 +20,10 @@ adding an image or a log file (via the `Output` field).}
| Image | @code{}desktop.png@endcode | | Image | @code{}desktop.png@endcode |
### Steam Big Picture ### 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{ @tabs{
@tab{Linux | <!-- --> @tab{Linux | <!-- -->
@ -49,7 +53,9 @@ process is killed.}
} }
### Epic Game Store game ### 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 #### URI
@ -84,7 +90,9 @@ process is killed.}
} }
### Steam game ### 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 #### 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 | | 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 | | 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 > [!TIP]
and iOS devices, since they use non-standard resolutions. > 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 > You can update the ``Do`` command to this:
bash -c "${HOME}/scripts/set-custom-res.sh \"${SUNSHINE_CLIENT_WIDTH}\" \"${SUNSHINE_CLIENT_HEIGHT}\" \"${SUNSHINE_CLIENT_FPS}\"" > ```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 > The `set-custom-res.sh` will have this content:
#!/bin/bash > ```bash
set -e > #!/bin/bash
> set -e
# Get params and set any defaults >
width=${1:-1920} > # Get params and set any defaults
height=${2:-1080} > width=${1:-1920}
refresh_rate=${3:-60} > 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} > # 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 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') > # Get the modeline info from the 2nd row in the cvt output
xrandr_mode_str=${modeline//Modeline \"*\" /} > modeline=$(cvt ${width} ${height} ${refresh_rate} | awk 'FNR == 2')
mode_alias="${width}x${height}" > 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} > echo "xrandr setting new mode ${mode_alias} ${xrandr_mode_str}"
xrandr --addmode ${display_output} ${mode_alias} > xrandr --newmode ${mode_alias} ${xrandr_mode_str}
> xrandr --addmode ${display_output} ${mode_alias}
# Reset scaling >
xrandr --output ${display_output} --scale 1 > # 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} > # 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 > # Optional reset your wallpaper to fit to new resolution
``` > # xwallpaper --zoom /path/to/wallpaper.png
} > ```
###### Wayland (wlroots, e.g. hyprland) ###### 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 | | 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 | | 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) ###### 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 [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. 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: > [!TIP]
``` > HDR support has been added to Gnome 48, to check if your display supports it, you can run this:
displayconfig-mutter list > ```
``` > displayconfig-mutter list
If it doesn't, then remove ``--hdr`` flag from both ``Do`` and ``Undo`` steps. > ```
} > If it doesn't, then remove ``--hdr`` flag from both ``Do`` and ``Undo`` steps.
###### KDE Plasma (Wayland, X11) ###### 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 | | 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 | | Undo | @code{}kscreen-doctor output.HDMI-A-1.mode.3840x2160@120@endcode |
@attention{The names of your displays will differ between X11 and Wayland. > [!CAUTION]
Be sure to use the correct name, depending on your session manager. > The names of your displays will differ between X11 and Wayland.
e.g. On X11, the monitor may be called ``HDMI-A-0``, but on Wayland, it may be called ``HDMI-A-1``. > 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. > [!TIP]
You can list the monitors available to you with: > 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 > ```
``` > 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 > These will also give you the supported display properties for each monitor. You can select them either by
``do`` command to fetch the resolution requested by your Moonlight client > hard-coding their corresponding number (e.g. ``kscreen-doctor output.HDMI-A1.mode.0``) or using the above
(which has a chance of not being supported by your monitor). > ``do`` command to fetch the resolution requested by your Moonlight client
} > (which has a chance of not being supported by your monitor).
###### NVIDIA ###### NVIDIA
@ -281,9 +290,11 @@ hard-coding their corresponding number (e.g. ``kscreen-doctor output.HDMI-A1.mod
##### macOS ##### macOS
###### displayplacer ###### displayplacer
@note{This example uses the `displayplacer` tool to change the resolution.
This tool can be installed following instructions in their > [!NOTE]
[GitHub repository](https://github.com/jakehilborn/displayplacer)}. > 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 | | 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. third-party tool, you can use *QRes* as an example.
###### QRes ###### 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 | | Prep Step | Command |
|-----------|---------------------------------------------------------------------------------------------------------------------------| |-----------|---------------------------------------------------------------------------------------------------------------------------|
@ -306,8 +319,10 @@ This tool can be downloaded from their [SourceForge repository](https://sourcefo
### Additional Considerations ### Additional Considerations
#### Linux (Flatpak) #### 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 #### Windows
**Elevating Commands (Windows)** **Elevating Commands (Windows)**

View file

@ -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. 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. 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 > [!NOTE]
according to [CUDA Toolkit Archive](https://developer.nvidia.com/cuda-toolkit-archive)} > 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 #### macOS
You can either use [Homebrew](https://brew.sh) or [MacPorts](https://www.macports.org) to install dependencies. 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 ninja -C build
``` ```
@tip{Available build options can be found in > [!TIP]
[options.cmake](https://github.com/LizardByte/Sunshine/blob/master/cmake/prep/options.cmake).} > Available build options can be found in
> [options.cmake](https://github.com/LizardByte/Sunshine/blob/master/cmake/prep/options.cmake).
### Package ### Package

View file

@ -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) > [!NOTE]
to sort the keys.} > 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, > [!IMPORTANT]
and to not modify any other language files. After the PR is merged, the translations can take place > Due to the integration with Crowdin, it is important to only add strings to the *en.json* file,
on [CrowdIn][crowdin-url]. Once the translations are complete, a PR will be made > and to not modify any other language files. After the PR is merged, the translations can take place
to merge the translations into Sunshine.} > 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. * Use the string in the Vue component.
```html ```html
@ -90,8 +92,9 @@ The following is a simple example of how to use it.
</template> </template>
``` ```
@tip{More formatting examples can be found in the > [!TIP]
[Vue I18n guide](https://kazupon.github.io/vue-i18n/guide/formatting.html).} > More formatting examples can be found in the
> [Vue I18n guide](https://kazupon.github.io/vue-i18n/guide/formatting.html).
##### C++ ##### 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!"); std::string msg = boost::locale::translate("Hello world!");
``` ```
@tip{More examples can be found in the documentation for > [!TIP]
[boost locale](https://www.boost.org/doc/libs/1_70_0/libs/locale/doc/html/messages_formatting.html).} > 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 > [!WARNING]
manually compiled language files in Pull Requests.} > 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 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 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 python ./scripts/_locale.py --compile
``` ```
@attention{Due to the integration with CrowdIn, it is important to not include any extracted or compiled files in > [!IMPORTANT]
Pull Requests. The files are automatically generated and updated by the workflow. Once the PR is merged, the > Due to the integration with CrowdIn, it is important to not include any extracted or compiled files in
translations can take place on [CrowdIn][crowdin-url]. Once the translations are > Pull Requests. The files are automatically generated and updated by the workflow. Once the PR is merged, the
complete, a PR will be made to merge the translations into Sunshine.} > 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 ### Testing
@ -175,8 +181,8 @@ To see all available options, run the tests with the `--help` flag.
./build/tests/test_sunshine --help ./build/tests/test_sunshine --help
``` ```
@tip{See the googletest [FAQ](https://google.github.io/googletest/faq.html) for more information on how to use > [!TIP]
Google Test.} > 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, 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. and [Codecov](https://about.codecov.io) to analyze the reports for all PRs and commits.

View file

@ -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. 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. 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 > [!NOTE]
port forwarding to become unreliable. Either uninstall the tool entirely or update it to v5.6 or later.} > 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 ## Limitations
Sunshine does have some limitations, as compared to Nvidia GameStream. Sunshine does have some limitations, as compared to Nvidia GameStream.
* Automatic game/application list. * Automatic game/application list.
* Changing game settings automatically, to optimize streaming. * Changing game settings automatically to optimize streaming.
<div class="section_buttons"> <div class="section_buttons">

View file

@ -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 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]. Binaries can be found in the [latest release][latest-release].
@tip{Some third party packages also exist. > [!NOTE]
See [Third Party Packages](third_party_packages.md) for more information. > Some third party packages also exist.
No support will be provided for third party packages!} > See [Third Party Packages](third_party_packages.md) for more information.
> No support will be provided for third party packages!
## Install ## Install
### Docker ### 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) 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). 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. CUDA is used for NVFBC capture.
@tip{See [CUDA GPUS](https://developer.nvidia.com/cuda-gpus) to cross-reference Compute Capability to your GPU. > [!NOTE]
The table below applies to packages provided by LizardByte. If you use an official LizardByte package, then you do not > See [CUDA GPUS](https://developer.nvidia.com/cuda-gpus) to cross-reference Compute Capability to your GPU.
need to install CUDA.} > 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> <table>
<caption>CUDA Compatibility</caption> <caption>CUDA Compatibility</caption>
@ -72,7 +76,9 @@ need to install CUDA.}
</table> </table>
#### AppImage #### 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. 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 #### ArchLinux
@warning{We do not provide support for any AUR packages.}
> [!CAUTION]
> Use AUR packages at your own risk.
##### Install Prebuilt Packages ##### Install Prebuilt Packages
Follow the instructions at LizardByte's [pacman-repo](https://github.com/LizardByte/pacman-repo) to add 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 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 > [!NOTE]
architecture of your operating system.} > 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 ##### Uninstall
```bash ```bash
@ -159,7 +169,9 @@ sudo apt remove sunshine
``` ```
#### Fedora #### Fedora
@tip{The package name is case-sensitive.}
> [!TIP]
> The package name is case-sensitive.
##### Install ##### Install
1. Enable copr repository. 1. Enable copr repository.
@ -183,13 +195,17 @@ sudo dnf remove Sunshine
``` ```
#### Flatpak #### 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. Using this package requires that you have [Flatpak](https://flatpak.org/setup) installed.
##### Download (local option) ##### Download (local option)
1. Download `sunshine_{arch}.flatpak` and run the following command. 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) ##### Install (system level)
**Flathub** **Flathub**
@ -235,7 +251,9 @@ flatpak uninstall --delete-data dev.lizardbyte.app.Sunshine
``` ```
#### Homebrew #### 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. This package requires that you have [Homebrew](https://docs.brew.sh/Installation) installed.
@ -254,7 +272,8 @@ brew uninstall sunshine
### macOS ### macOS
@important{Sunshine on macOS is experimental. Gamepads do not work.} > [!IMPORTANT]
> Sunshine on macOS is experimental. Gamepads do not work.
#### Homebrew #### Homebrew
This package requires that you have [Homebrew](https://docs.brew.sh/Installation) installed. This package requires that you have [Homebrew](https://docs.brew.sh/Installation) installed.
@ -270,7 +289,8 @@ brew install sunshine
brew uninstall 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 ### Windows
@ -279,16 +299,18 @@ brew uninstall sunshine
1. Download and install 1. Download and install
[Sunshine-Windows-AMD64-installer.exe](https://github.com/LizardByte/Sunshine/releases/latest/download/Sunshine-Windows-AMD64-installer.exe) [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 > [!CAUTION]
enable features.} > 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 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. overflow menu. Different versions of Windows may provide slightly different steps for uninstall.
#### Standalone (lite version) #### Standalone (lite version)
@warning{By using this package instead of the installer, performance will be reduced. This package is not > [!WARNING]
recommended for most users. No support will be provided!} > 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 1. Download and extract
[Sunshine-Windows-AMD64-portable.zip](https://github.com/LizardByte/Sunshine/releases/latest/download/Sunshine-Windows-AMD64-portable.zip) [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 ### Linux
#### KMS Capture #### 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 > [!WARNING]
allow Sunshine to use KMS capture.} > 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 ##### Enable
```bash ```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 [Soundflower](https://github.com/mattingalls/Soundflower) or
[BlackHole](https://github.com/ExistentialAudio/BlackHole). [BlackHole](https://github.com/ExistentialAudio/BlackHole).
@note{Command Keys are not forwarded by Moonlight. Right Option-Key is mapped to CMD-Key.} > [!NOTE]
@caution{Gamepads are not currently supported.} > Command Keys are not forwarded by Moonlight. Right Option-Key is mapped to CMD-Key.
> [!CAUTION]
> Gamepads are not currently supported.
## Usage ## 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 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. 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 > [!NOTE]
Windows installer. Running multiple instances of Sunshine is not advised.} > 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 ```bash
sunshine sunshine
@ -398,9 +428,11 @@ sunshine
sunshine <directory of conf file>/sunshine.conf 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) ### Start Sunshine over SSH (Linux/X11)
Assuming you are already logged into the host, you can use this command Assuming you are already logged into the host, you can use this command
@ -417,7 +449,8 @@ be ready.
ssh <user>@<ip_address> 'startx &; export DISPLAY=:0; sunshine' 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)} on how to set up a headless streaming server without autologin and dummy plugs (X11 + NVidia GPUs)}
@ -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) 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. 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 > [!NOTE]
being self-signed.} > 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. 1. Add games and applications.
2. Adjust any configuration settings as needed. 2. Adjust any configuration settings as needed.

View file

@ -1,6 +1,8 @@
# Legal # 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. 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). The full text of the license can be reviewed [here](https://github.com/LizardByte/Sunshine/blob/master/LICENSE).

View file

@ -1,6 +1,7 @@
# Third-Party Packages # 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 ## Chocolatey
[![Chocolatey](https://img.shields.io/badge/dynamic/xml.svg?color=orange&label=chocolatey&style=for-the-badge&prefix=v&query=%2F%2Ftr%5B%40id%3D%27chocolatey%27%5D%2Ftd%5B3%5D%2Fspan%2Fa&url=https%3A%2F%2Frepology.org%2Fproject%2Fsunshine%2Fversions&logo=chocolatey)](https://community.chocolatey.org/packages/sunshine) [![Chocolatey](https://img.shields.io/badge/dynamic/xml.svg?color=orange&label=chocolatey&style=for-the-badge&prefix=v&query=%2F%2Ftr%5B%40id%3D%27chocolatey%27%5D%2Ftd%5B3%5D%2Fspan%2Fa&url=https%3A%2F%2Frepology.org%2Fproject%2Fsunshine%2Fversions&logo=chocolatey)](https://community.chocolatey.org/packages/sunshine)

View file

@ -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. > [!TIP]
Do not include the curly braces.} > Remember to replace `{new-username}` and `{new-password}` with your new credentials.
> Do not include the curly braces.
### Unusual Mouse Behavior ### Unusual Mouse Behavior
If you experience unusual mouse behavior, try attaching a physical mouse to the Sunshine host. 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 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. [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 > [!IMPORTANT]
system. You may also want to enable decoders, however, that is not required for Sunshine and is not covered here. > You must re-enable the disabled encoders. You can do so by passing the following argument to the build
```bash > system. You may also want to enable decoders, however, that is not required for Sunshine and is not covered here.
-Dvideo-codecs=h264enc,h265enc > ```bash
``` > -Dvideo-codecs=h264enc,h265enc
} > ```
@note{Other build options are listed in the > [!NOTE]
[meson options](https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/meson_options.txt) file.} > Other build options are listed in the
> [meson options](https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/meson_options.txt) file.
### Input not working ### Input not working
After installation, the `udev` rules need to be reloaded. Our post-install script tries to do this for you 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)) sudo setcap -r $(readlink -f $(which sunshine))
``` ```
@note{The above command will not work with the AppImage or Flatpak packages. Please refer to the > [!NOTE]
[AppImage setup](md_docs_2getting__started.html#appimage) or > The above command will not work with the AppImage or Flatpak packages. Please refer to the
[Flatpak setup](md_docs_2getting__started.html#flatpak) for more specific instructions.} > [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 ### KMS streaming fails on Nvidia GPUs
If KMS screen capture results in a black screen being streamed, you may need to If KMS screen capture results in a black screen being streamed, you may need to