From 65c4f019989009389ca95d9598b943acf96647e2 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Wed, 8 Jun 2022 23:00:59 -0400 Subject: [PATCH] Update documentation - Add copy button to code blocks - Fix some badges - Improve Linux installation instructions --- docs/source/about/advanced_usage.rst | 2 +- docs/source/about/installation.rst | 59 ++++++++++++++------ docs/source/about/third_party_packages.rst | 26 +++------ docs/source/about/usage.rst | 63 +++++++++++++++++----- docs/source/conf.py | 3 +- scripts/requirements.txt | 1 + 6 files changed, 105 insertions(+), 49 deletions(-) diff --git a/docs/source/about/advanced_usage.rst b/docs/source/about/advanced_usage.rst index 7699232c..61c9e60f 100644 --- a/docs/source/about/advanced_usage.rst +++ b/docs/source/about/advanced_usage.rst @@ -1055,7 +1055,7 @@ Description by Moonlight. Default - OS dependent + OS and package dependent Example .. code-block:: text diff --git a/docs/source/about/installation.rst b/docs/source/about/installation.rst index 4fab6e68..deb6f60a 100644 --- a/docs/source/about/installation.rst +++ b/docs/source/about/installation.rst @@ -21,6 +21,26 @@ Docker Linux ----- +Follow the instructions for your preferred package type below. + +.. Hint:: If this is the first time installing. + + .. code-block:: bash + + sudo usermod -a -G input $USER + sudo reboot now + +.. Tip:: Optionally, run Sunshine in the background. + + .. code-block:: bash + + systemctl --user start sunshine + +.. Note:: If screencasting fails with Wayland, you may need to run the following to force screencasting with X11. + + .. code-block:: bash + + sudo setcap -r $(readlink -f $(which sunshine)) AppImage ^^^^^^^^ @@ -41,39 +61,40 @@ The current known compatibility of the AppImage is shown below. - [✖] Ubuntu trusty - [✖] CentOS 7 - -#. Download and extract `sunshine-appimage.zip` -#. Edit ``/etc/udev/rules.d/85-sunshine-rules.rules`` and add - ``KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"`` +#. Download and extract ``sunshine-appimage.zip`` to your home directory. Debian Packages ^^^^^^^^^^^^^^^ .. image:: https://img.shields.io/github/issues/sunshinestream/sunshine/os:linux:debian?logo=github&style=for-the-badge :alt: GitHub issues by-label -#. Download ``sunshine.deb`` -#. ``sudo apt install -f ./sunshine.deb`` +#. Download ``sunshine.deb`` and run the following code. + + .. code-block:: bash + + sudo apt install -f ./sunshine.deb + +.. Tip:: You can double click the deb file to see details about the package and begin installation. Red Hat Packages ^^^^^^^^^^^^^^^^ .. image:: https://img.shields.io/github/issues/sunshinestream/sunshine/os:linux:fedora?logo=github&style=for-the-badge :alt: GitHub issues by-label -#. Download ``sunshine.rpm`` -#. ``sudo dnf install ./sunshine.rpm`` +#. Add `rpmfusion` repositories by running the following code. -.. Hint:: If this is the first time installing. + .. code-block:: bash - .. code-block:: bash + sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \ + https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm - sudo usermod -a -G input $USER - sudo reboot now +#. Download ``sunshine.rpm`` and run the following code. -.. Tip:: Optionally, run Sunshine in the background. + .. code-block:: bash - .. code-block:: bash + sudo dnf install ./sunshine.rpm - systemctl --user start sunshine +.. Tip:: You can double click the rpm file to see details about the package and begin installation. MacOS ----- @@ -87,8 +108,12 @@ Disk Image File option: Portfile option: #. Install `MacPorts `_ - #. Download the ``Portfile`` to ``/tmp`` - #. In a terminal run ``cd /tmp && sudo port install`` + #. Download the ``Portfile`` to ``/tmp`` and run the following code. + + .. code-block:: bash + + cd /tmp && sudo port install + #. The first time you start Sunshine, you will be asked to grant access to screen recording and your microphone. Standalone option: diff --git a/docs/source/about/third_party_packages.rst b/docs/source/about/third_party_packages.rst index 6069258a..5b63a496 100644 --- a/docs/source/about/third_party_packages.rst +++ b/docs/source/about/third_party_packages.rst @@ -10,6 +10,7 @@ AUR (Arch Linux User Repository) .. image:: https://img.shields.io/aur/version/sunshine?style=for-the-badge&logo=archlinux :alt: AUR version + :target: https://aur.archlinux.org/packages/sunshine .. image:: https://img.shields.io/aur/last-modified/sunshine?style=for-the-badge&logo=archlinux :alt: AUR last modified @@ -20,38 +21,31 @@ AUR (Arch Linux User Repository) .. image:: https://img.shields.io/aur/maintainer/sunshine?style=for-the-badge&logo=archlinux :alt: AUR maintainer -.. image:: https://img.shields.io/static/v1?label=maintainer&message=hadogenes&color=blue&style=for-the-badge&logo=github - :alt: GitHub Maintainer - :target: https://github.com/hadogenes - Chocolatey ---------- .. image:: https://img.shields.io/chocolatey/v/Sunshine?style=for-the-badge&logo=chocolatey :alt: Chocolatey Version + :target: https://community.chocolatey.org/packages/sunshine .. image:: https://img.shields.io/chocolatey/dt/sunshine?style=for-the-badge&logo=chocolatey :alt: Chocolatey -.. image:: https://img.shields.io/static/v1?label=maintainer&message=AeliusSaionji&color=blue&style=for-the-badge&logo=github - :alt: GitHub Maintainer - :target: https://github.com/AeliusSaionji - Scoop ----- .. image:: https://img.shields.io/scoop/v/sunshine?bucket=extras&style=for-the-badge :alt: Scoop Version (extras bucket) - -.. image:: https://img.shields.io/static/v1?label=maintainer&message=sitiom&color=blue&style=for-the-badge&logo=github - :alt: GitHub Maintainer - :target: https://github.com/sitiom - + :target: https://scoop.sh/#/apps?s=0&d=1&o=true&q=sunshine Legacy GitHub Repo ------------------ -.. Attention:: This repo is no longer maintained. Thank you to Loki for bringing this amazing project to life! +.. Attention:: This repo is not maintained. Thank you to Loki for bringing this amazing project to life! + +.. image:: https://img.shields.io/static/v1?label=repo&message=loki-47-6F-64/sunshine&color=blue&style=for-the-badge&logo=github + :alt: GitHub Maintainer + :target: https://github.com/loki-47-6F-64/sunshine/releases .. image:: https://img.shields.io/github/last-commit/loki-47-6F-64/sunshine?style=for-the-badge&logo=github :alt: GitHub last commit @@ -61,7 +55,3 @@ Legacy GitHub Repo .. image:: https://img.shields.io/github/downloads/loki-47-6F-64/sunshine/total?style=for-the-badge&logo=github :alt: GitHub Releases - -.. image:: https://img.shields.io/static/v1?label=maintainer&message=loki-47-6F-64&color=blue&style=for-the-badge&logo=github - :alt: GitHub Maintainer - :target: https://github.com/loki-47-6F-64 diff --git a/docs/source/about/usage.rst b/docs/source/about/usage.rst index 4bb81bc5..8f73d204 100644 --- a/docs/source/about/usage.rst +++ b/docs/source/about/usage.rst @@ -23,8 +23,9 @@ Usage Add games and applications. This can be configured in the web ui. - .. Note:: Additionally, apps can be configured manually. `assets/apps_.json` is an example of a list of - applications that are started just before running a stream. + .. Note:: Additionally, apps can be configured manually. `src_assets//config/apps.json` is an example of a + list of applications that are started just before running a stream. This is the directory within the GitHub + repo. .. Attention:: Application list is not fully supported on MacOS @@ -55,6 +56,9 @@ Setup Linux ^^^^^ +The deb and rpm packages handle these steps automatically. The AppImage does not, and third party packages may not as +well. + Sunshine needs access to `uinput` to create mouse and gamepad events. Add user to group `input`. @@ -62,13 +66,23 @@ Add user to group `input`. usermod -a -G input $USER + .. Warning:: If the above doesn't work you can try the following. This is not an advised method as it makes the + current user the owner of ``/dev/uinput``. Use at your own risk. + + .. code-block:: bash + + sudo chown $USER /dev/uinput + Create `udev` rules. .. code-block:: bash nano /etc/udev/rules.d/85-sunshine-input.rules - Input the following contents: - ``KERNEL=="uinput", GROUP="input", MODE="0660"`` + Input the following contents. + + .. code-block:: + + KERNEL=="uinput", GROUP="input", MODE="0660", OPTION+="static_node=uinput" Save the file and exit: @@ -76,18 +90,43 @@ Create `udev` rules. #. ``Y`` to save modifications. Configure autostart service - `path/to/build/dir/sunshine.service` is used to start sunshine in the background. To use it, do the following: + - filename: ``~/.config/systemd/user/sunshine.service`` + - contents: - #. Copy it to the users systemd: ``cp sunshine.service ~/.config/systemd/user/`` - #. Starting + .. code-block:: - - One time: ``systemctl --user start sunshine`` - - Always on boot: ``systemctl --user enable sunshine`` + [Unit] + Description=Sunshine Gamestream Server for Moonlight + + [Service] + ExecStart=~/sunshine.AppImage + + [Install] + WantedBy=graphical-session.target + + Start once + .. code-block:: bash + + systemctl --user start sunshine + + Start on boot + .. code-block:: bash + + systemctl --user enable sunshine Additional Setup for KMS - .. Note:: ``cap_sys_admin`` may as well be root, except you don't need to be root to run it. + .. Note:: ``cap_sys_admin`` may as well be root, except you don't need to be root to run it. It is necessary to + allow Sunshine to use KMS. - It is necessary to allow Sunshine to use KMS: ``sudo setcap cap_sys_admin+p sunshine`` + Enable + .. code-block:: bash + + sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine)) + + Disable + .. code-block:: bash + + sudo setcap -r $(readlink -f $(which sunshine)) MacOS ^^^^^ @@ -114,7 +153,7 @@ All shortcuts start with CTRL + ALT + SHIFT, just like Moonlight Application List ---------------- - You can use Environment variables in place of values -- ``$(HOME)` will be replaced by the value of ``$HOME`` +- ``$(HOME)`` will be replaced by the value of ``$HOME`` - ``$$`` will be replaced by ``$``, e.g. ``$$(HOME)`` will be replaced by ``$(HOME)`` - ``env`` - Adds or overwrites Environment variables for the commands/applications run by Sunshine - ``"Variable name":"Variable value"`` diff --git a/docs/source/conf.py b/docs/source/conf.py index f609783c..f4873f15 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -46,7 +46,8 @@ extensions = [ 'm2r2', # enable markdown files 'sphinx.ext.autosectionlabel', 'sphinx.ext.todo', # enable to-do sections - 'sphinx.ext.viewcode' # add links to view source code + 'sphinx.ext.viewcode', # add links to view source code + 'sphinx_copybutton', # add a copy button to code blocks ] # Add any paths that contain templates here, relative to this directory. diff --git a/scripts/requirements.txt b/scripts/requirements.txt index c089efd9..73eefbe1 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -1,4 +1,5 @@ Babel==2.9.1 m2r2==0.3.2 Sphinx==4.5.0 +sphinx-copybutton==0.5.0 sphinx-rtd-theme==1.0.0