Compare commits

...

14 Commits

Author SHA1 Message Date
renovate[bot]
85a316ea89 build(deps): add renovate.json 2023-11-05 00:49:12 +00:00
Timo Gurr
ca41c9d6f4 config: add 2K resolution (WQHD - 16:9) (#1816) 2023-11-04 20:48:52 -04:00
dependabot[bot]
df72135ea1 build(deps): bump third-party/tray from 2664388 to e08bdbe (#1802)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-30 22:29:04 -04:00
everything411
842a4cf7b2 fix(audio:windows): set cbSize correctly (#1787) 2023-10-27 09:28:29 -04:00
detiam
ab3ff2d355 Update linux sunshine.desktop (#1768) 2023-10-25 14:14:28 -04:00
Erick C
3212b036a1 Manual DS4 mode: Allow Back/Select to trigger Touchpad click (#1772)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-10-22 15:03:33 -04:00
Ehab Ajmal
5b052d7c2c Add guide for setting custom res with nvidia on linux (#1767)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-10-19 10:43:42 -04:00
LizardByte-bot
8096364a0a Bump ffmpeg (#1717) 2023-10-17 13:16:05 -04:00
dependabot[bot]
f80251f172 build(deps): bump third-party/miniupnp from e439318 to fb5c328 (#1511)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 11:31:15 -04:00
dependabot[bot]
2617241d7b build(deps): bump third-party/Simple-Web-Server from 2f29926 to 27b41f5 (#1217)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 10:56:05 -04:00
dependabot[bot]
48a6d2af6f Bump third-party/nanors from 395e5ad to e9e242e (#1090)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 09:52:13 -04:00
dependabot[bot]
e7fc2ed49a build(deps): bump third-party/nv-codec-headers from 9402b5a to 22441b5 (#1725)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 09:04:39 -04:00
dependabot[bot]
82d0ff6699 build(deps): bump third-party/wayland-protocols from 681c33c to d70af2e (#1753)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-16 23:10:29 -04:00
LizardByte-bot
ff688d9235 ci: update release notifier (#1755) 2023-10-16 09:11:27 -04:00
28 changed files with 135 additions and 31 deletions

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View 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
^^^^^^^^^^^^^^^^^^^

View File

@@ -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
^^^^^^^

View File

@@ -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@

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,6 @@
[Desktop Entry]
Name=@PROJECT_NAME@
Exec=sunshine
Terminal=true
Type=Application
NoDisplay=true

6
renovate.json Normal file
View File

@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>LizardByte/.github:renovate-config"
]
}

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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]",