mirror of
https://github.com/LizardByte/Sunshine.git
synced 2025-08-10 00:52:16 +00:00
Compare commits
14 Commits
v0.21.0
...
renovate/c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
85a316ea89 | ||
|
|
ca41c9d6f4 | ||
|
|
df72135ea1 | ||
|
|
842a4cf7b2 | ||
|
|
ab3ff2d355 | ||
|
|
3212b036a1 | ||
|
|
5b052d7c2c | ||
|
|
8096364a0a | ||
|
|
f80251f172 | ||
|
|
2617241d7b | ||
|
|
48a6d2af6f | ||
|
|
e7fc2ed49a | ||
|
|
82d0ff6699 | ||
|
|
ff688d9235 |
10
.github/workflows/release-notifier.yml
vendored
10
.github/workflows/release-notifier.yml
vendored
@@ -15,7 +15,7 @@ on:
|
||||
jobs:
|
||||
discord:
|
||||
if: >-
|
||||
(github.repository, 'LizardByte/') and
|
||||
startsWith(github.repository, 'LizardByte/') and
|
||||
not(github.event.release.prerelease) and
|
||||
not(github.event.release.draft)
|
||||
runs-on: ubuntu-latest
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
|
||||
facebook_group:
|
||||
if: >-
|
||||
(github.repository, 'LizardByte/') and
|
||||
startsWith(github.repository, 'LizardByte/') and
|
||||
not(github.event.release.prerelease) and
|
||||
not(github.event.release.draft)
|
||||
runs-on: ubuntu-latest
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
|
||||
facebook_page:
|
||||
if: >-
|
||||
(github.repository, 'LizardByte/') and
|
||||
startsWith(github.repository, 'LizardByte/') and
|
||||
not(github.event.release.prerelease) and
|
||||
not(github.event.release.draft)
|
||||
runs-on: ubuntu-latest
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
|
||||
reddit:
|
||||
if: >-
|
||||
(github.repository, 'LizardByte/') and
|
||||
startsWith(github.repository, 'LizardByte/') and
|
||||
not(github.event.release.prerelease) and
|
||||
not(github.event.release.draft)
|
||||
runs-on: ubuntu-latest
|
||||
@@ -88,7 +88,7 @@ jobs:
|
||||
|
||||
twitter:
|
||||
if: >-
|
||||
(github.repository, 'LizardByte/') and
|
||||
startsWith(github.repository, 'LizardByte/') and
|
||||
not(github.event.release.prerelease) and
|
||||
not(github.event.release.draft)
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -88,7 +88,12 @@ endif()
|
||||
|
||||
# desktop file
|
||||
# todo - validate desktop files with `desktop-file-validate`
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sunshine.desktop" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sunshine.desktop"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||
if(NOT ${SUNSHINE_BUILD_APPIMAGE})
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sunshine_terminal.desktop"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||
endif()
|
||||
if(${SUNSHINE_BUILD_FLATPAK})
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sunshine_kms.desktop"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||
|
||||
@@ -9,8 +9,10 @@ elseif (UNIX)
|
||||
elseif(${SUNSHINE_BUILD_FLATPAK})
|
||||
configure_file(packaging/linux/flatpak/sunshine.desktop sunshine.desktop @ONLY)
|
||||
configure_file(packaging/linux/flatpak/sunshine_kms.desktop sunshine_kms.desktop @ONLY)
|
||||
configure_file(packaging/linux/sunshine_terminal.desktop sunshine_terminal.desktop @ONLY)
|
||||
else()
|
||||
configure_file(packaging/linux/sunshine.desktop sunshine.desktop @ONLY)
|
||||
configure_file(packaging/linux/sunshine_terminal.desktop sunshine_terminal.desktop @ONLY)
|
||||
endif()
|
||||
|
||||
# configure metadata file
|
||||
|
||||
@@ -152,6 +152,23 @@ gamepad
|
||||
.. code-block:: text
|
||||
|
||||
gamepad = auto
|
||||
|
||||
ds4_back_as_touchpad_click
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
**Description**
|
||||
.. Hint:: Only applies when gamepad is set to ds4 manually. Unused in other gamepad modes.
|
||||
|
||||
Allow Select/Back inputs to also trigger DS4 touchpad click. Useful for clients looking to emulate touchpad click
|
||||
on Xinput devices.
|
||||
|
||||
**Default**
|
||||
``enabled``
|
||||
|
||||
**Example**
|
||||
.. code-block:: text
|
||||
|
||||
ds4_back_as_touchpad_click = enabled
|
||||
|
||||
back_button_timeout
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -197,6 +197,28 @@ Changing Resolution and Refresh Rate (Linux - KDE Plasma - Wayland and X11)
|
||||
| | Undo: ``kscreen-doctor output.HDMI-A-1.mode.3840x2160@120`` |
|
||||
+----------------------+----------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
Changing Resolution (Linux - NVIDIA)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
+----------------------+------------------------------------------------------------------------------------------------------+
|
||||
| **Field** | **Value** |
|
||||
+----------------------+------------------------------------------------------------------------------------------------------+
|
||||
| Command Preparations | Do: ``sh -c "${HOME}/scripts/set-custom-res.sh ${SUNSHINE_CLIENT_WIDTH} ${SUNSHINE_CLIENT_HEIGHT}"`` |
|
||||
| +------------------------------------------------------------------------------------------------------+
|
||||
| | Undo: ``sh -c "${HOME}/scripts/set-custom-res.sh 3840 2160"`` |
|
||||
+----------------------+------------------------------------------------------------------------------------------------------+
|
||||
|
||||
The ``set-custom-res.sh`` will have this content:
|
||||
.. code-block:: bash
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
# Get params and set any defaults
|
||||
width=${1:-1920}
|
||||
height=${2:-1080}
|
||||
output=${3:-HDMI-1}
|
||||
nvidia-settings -a CurrentMetaMode="${output}: nvidia-auto-select { ViewPortIn=${width}x${height}, ViewPortOut=${width}x${height}+0+0 }"
|
||||
|
||||
Flatpak
|
||||
^^^^^^^
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@ Exec=sunshine
|
||||
Version=1.0
|
||||
Comment=@PROJECT_DESCRIPTION@
|
||||
Icon=sunshine
|
||||
Categories=Utility;
|
||||
Keywords=gamestream;stream;moonlight;remote play;
|
||||
Categories=AudioVideo;Network;RemoteAccess;
|
||||
Terminal=true
|
||||
X-AppImage-Name=sunshine
|
||||
X-AppImage-Version=@PROJECT_VERSION@
|
||||
|
||||
@@ -5,5 +5,16 @@ Exec=flatpak run dev.lizardbyte.sunshine
|
||||
Version=1.0
|
||||
Comment=@PROJECT_DESCRIPTION@
|
||||
Icon=sunshine
|
||||
Categories=Utility;
|
||||
Terminal=true
|
||||
Keywords=gamestream;stream;moonlight;remote play;
|
||||
Categories=AudioVideo;Network;RemoteAccess;
|
||||
Actions=RunInTerminal;KMS;
|
||||
|
||||
[Desktop Action RunInTerminal]
|
||||
Name=Run in Terminal
|
||||
Icon=application-x-executable
|
||||
Exec=gio launch @CMAKE_INSTALL_PREFIX@/share/applications/sunshine_terminal.desktop
|
||||
|
||||
[Desktop Action KMS]
|
||||
Name=Run in Terminal (KMS)
|
||||
Icon=application-x-executable
|
||||
Exec=gio launch @CMAKE_INSTALL_PREFIX@/share/applications/sunshine_kms.desktop
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=@PROJECT_NAME@ (KMS)
|
||||
Exec=sudo -i PULSE_SERVER=unix:$(pactl info | awk '/Server String/{print$3}') flatpak run dev.lizardbyte.sunshine
|
||||
Version=1.0
|
||||
Comment=@PROJECT_DESCRIPTION@
|
||||
Icon=sunshine
|
||||
Categories=Utility;
|
||||
Terminal=true
|
||||
Type=Application
|
||||
NoDisplay=true
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=@PROJECT_NAME@
|
||||
Exec=sunshine
|
||||
Exec=/usr/bin/env systemctl start --u sunshine
|
||||
Version=1.0
|
||||
Comment=@PROJECT_DESCRIPTION@
|
||||
Icon=sunshine
|
||||
Categories=Utility;
|
||||
Terminal=true
|
||||
Keywords=gamestream;stream;moonlight;remote play;
|
||||
Categories=AudioVideo;Network;RemoteAccess;
|
||||
Actions=RunInTerminal;
|
||||
|
||||
[Desktop Action RunInTerminal]
|
||||
Name=Run in Terminal
|
||||
Icon=application-x-executable
|
||||
Exec=gio launch @CMAKE_INSTALL_PREFIX@/share/applications/sunshine_terminal.desktop
|
||||
|
||||
6
packaging/linux/sunshine_terminal.desktop
Normal file
6
packaging/linux/sunshine_terminal.desktop
Normal file
@@ -0,0 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Name=@PROJECT_NAME@
|
||||
Exec=sunshine
|
||||
Terminal=true
|
||||
Type=Application
|
||||
NoDisplay=true
|
||||
6
renovate.json
Normal file
6
renovate.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"local>LizardByte/.github:renovate-config"
|
||||
]
|
||||
}
|
||||
@@ -395,6 +395,7 @@ namespace config {
|
||||
"1280x720"s,
|
||||
"1920x1080"s,
|
||||
"2560x1080"s,
|
||||
"2560x1440"s,
|
||||
"3440x1440"s,
|
||||
"1920x1200"s,
|
||||
"3840x2160"s,
|
||||
@@ -418,6 +419,7 @@ namespace config {
|
||||
platf::supported_gamepads().front().data(),
|
||||
platf::supported_gamepads().front().size(),
|
||||
}, // Default gamepad
|
||||
true, // back as touchpad click enabled (manual DS4 only)
|
||||
|
||||
true, // keyboard enabled
|
||||
true, // mouse enabled
|
||||
@@ -1041,6 +1043,7 @@ namespace config {
|
||||
}
|
||||
|
||||
string_restricted_f(vars, "gamepad"s, input.gamepad, platf::supported_gamepads());
|
||||
bool_f(vars, "ds4_back_as_touchpad_click", input.ds4_back_as_touchpad_click);
|
||||
|
||||
bool_f(vars, "mouse", input.mouse);
|
||||
bool_f(vars, "keyboard", input.keyboard);
|
||||
|
||||
@@ -112,6 +112,7 @@ namespace config {
|
||||
std::chrono::duration<double> key_repeat_period;
|
||||
|
||||
std::string gamepad;
|
||||
bool ds4_back_as_touchpad_click;
|
||||
|
||||
bool keyboard;
|
||||
bool mouse;
|
||||
|
||||
@@ -156,7 +156,7 @@ namespace platf::audio {
|
||||
wave_format.Format.wBitsPerSample = 16;
|
||||
wave_format.Format.nBlockAlign = wave_format.Format.nChannels * wave_format.Format.wBitsPerSample / 8;
|
||||
wave_format.Format.nAvgBytesPerSec = wave_format.Format.nSamplesPerSec * wave_format.Format.nBlockAlign;
|
||||
wave_format.Format.cbSize = sizeof(wave_format);
|
||||
wave_format.Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX);
|
||||
|
||||
wave_format.Samples.wValidBitsPerSample = 16;
|
||||
wave_format.dwChannelMask = format.channel_mask;
|
||||
|
||||
@@ -1174,7 +1174,7 @@ namespace platf {
|
||||
BOOST_LOG(info) << "Gamepad " << id.globalIndex << " will be Xbox 360 controller (manual selection)"sv;
|
||||
selectedGamepadType = Xbox360Wired;
|
||||
}
|
||||
else if (config::input.gamepad == "ps4"sv || config::input.gamepad == "ds4"sv) {
|
||||
else if (config::input.gamepad == "ds4"sv) {
|
||||
BOOST_LOG(info) << "Gamepad " << id.globalIndex << " will be DualShock 4 controller (manual selection)"sv;
|
||||
selectedGamepadType = DualShock4Wired;
|
||||
}
|
||||
@@ -1334,6 +1334,9 @@ namespace platf {
|
||||
// Allow either PS4/PS5 clickpad button or Xbox Series X share button to activate DS4 clickpad
|
||||
if (gamepad_state.buttonFlags & (TOUCHPAD_BUTTON | MISC_BUTTON)) buttons |= DS4_SPECIAL_BUTTON_TOUCHPAD;
|
||||
|
||||
// Manual DS4 emulation: check if BACK button should also trigger DS4 touchpad click
|
||||
if (config::input.gamepad == "ds4"sv && config::input.ds4_back_as_touchpad_click && (gamepad_state.buttonFlags & BACK)) buttons |= DS4_SPECIAL_BUTTON_TOUCHPAD;
|
||||
|
||||
return (DS4_SPECIAL_BUTTONS) buttons;
|
||||
}
|
||||
|
||||
|
||||
@@ -105,6 +105,29 @@
|
||||
</select>
|
||||
<div class="form-text">Choose which type of gamepad to emulate on the host</div>
|
||||
</div>
|
||||
<div class="accordion" v-if="config.gamepad === 'ds4'">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#panelsStayOpen-collapseOne">
|
||||
Manual DS4 options
|
||||
</button>
|
||||
</h2>
|
||||
<div id="panelsStayOpen-collapseOne" class="accordion-collapse collapse show"
|
||||
aria-labelledby="panelsStayOpen-headingOne">
|
||||
<div class="accordion-body">
|
||||
<div>
|
||||
<label for="ds4_back_as_touchpad_click" class="form-label">Map Back/Select to Touchpad Click</label>
|
||||
<select id="ds4_back_as_touchpad_click" class="form-select" v-model="config.ds4_back_as_touchpad_click">
|
||||
<option value="disabled">Disabled</option>
|
||||
<option value="enabled">Enabled (default)</option>
|
||||
</select>
|
||||
<div class="form-text">When forcing DS4 emulation, map Back/Select to Touchpad Click</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Ping Timeout-->
|
||||
<div class="mb-3">
|
||||
<label for="ping_timeout" class="form-label">Ping Timeout</label>
|
||||
@@ -1136,6 +1159,7 @@
|
||||
"capture": "",
|
||||
"controller": "enabled",
|
||||
"install_steam_audio_drivers": "enabled",
|
||||
"ds4_back_as_touchpad_click": "enabled",
|
||||
"dwmflush": "enabled",
|
||||
"encoder": "",
|
||||
"fps": "[10,30,60,90,120]",
|
||||
|
||||
2
third-party/Simple-Web-Server
vendored
2
third-party/Simple-Web-Server
vendored
Submodule third-party/Simple-Web-Server updated: 2f29926dbb...27b41f5ee1
2
third-party/ffmpeg-linux-aarch64
vendored
2
third-party/ffmpeg-linux-aarch64
vendored
Submodule third-party/ffmpeg-linux-aarch64 updated: 8b8848d40d...315b077e23
2
third-party/ffmpeg-linux-powerpc64le
vendored
2
third-party/ffmpeg-linux-powerpc64le
vendored
Submodule third-party/ffmpeg-linux-powerpc64le updated: 9dadebb470...4074d52462
2
third-party/ffmpeg-linux-x86_64
vendored
2
third-party/ffmpeg-linux-x86_64
vendored
Submodule third-party/ffmpeg-linux-x86_64 updated: e0169be4b6...c887d24822
2
third-party/ffmpeg-macos-aarch64
vendored
2
third-party/ffmpeg-macos-aarch64
vendored
Submodule third-party/ffmpeg-macos-aarch64 updated: 4537513b45...fe12a607ed
2
third-party/ffmpeg-macos-x86_64
vendored
2
third-party/ffmpeg-macos-x86_64
vendored
Submodule third-party/ffmpeg-macos-x86_64 updated: 7057139d87...97ff12c228
2
third-party/ffmpeg-windows-x86_64
vendored
2
third-party/ffmpeg-windows-x86_64
vendored
Submodule third-party/ffmpeg-windows-x86_64 updated: bbf911e6b2...9bebfe2cfa
2
third-party/miniupnp
vendored
2
third-party/miniupnp
vendored
Submodule third-party/miniupnp updated: e439318cf7...fb5c328a5e
2
third-party/nanors
vendored
2
third-party/nanors
vendored
Submodule third-party/nanors updated: 395e5ada44...e9e242e98e
2
third-party/nv-codec-headers
vendored
2
third-party/nv-codec-headers
vendored
Submodule third-party/nv-codec-headers updated: 9402b5a769...22441b505d
2
third-party/tray
vendored
2
third-party/tray
vendored
Submodule third-party/tray updated: 2664388b0e...e08bdbe5aa
2
third-party/wayland-protocols
vendored
2
third-party/wayland-protocols
vendored
Submodule third-party/wayland-protocols updated: 681c33c854...d70af2ea1e
Reference in New Issue
Block a user