mirror of
https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck.git
synced 2025-04-16 09:51:18 +02:00
Compare commits
398 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ba187f86e6 | ||
![]() |
79984e85b9 | ||
![]() |
fe6214941b | ||
![]() |
6ede5a24b8 | ||
![]() |
0f422a9d2a | ||
![]() |
18c244a817 | ||
![]() |
fbf8b13f85 | ||
![]() |
b95c45a942 | ||
![]() |
ff3c7e8936 | ||
![]() |
53699425f0 | ||
![]() |
376b292942 | ||
![]() |
975d05c9e6 | ||
![]() |
d23be1dca0 | ||
![]() |
916272bfd0 | ||
![]() |
c0b01995b8 | ||
![]() |
a185521560 | ||
![]() |
72ef421c49 | ||
![]() |
086a01ac20 | ||
![]() |
b48a3ab64a | ||
![]() |
212abb22c7 | ||
![]() |
c88d7dea0d | ||
![]() |
9688709a3d | ||
![]() |
9fe131a93f | ||
![]() |
ac16720b8b | ||
![]() |
5f1c97013d | ||
![]() |
37ecab3575 | ||
![]() |
3f3e0571eb | ||
![]() |
ed0dca546f | ||
![]() |
d2b884b6c7 | ||
![]() |
e0473f06d5 | ||
![]() |
2b87e118fe | ||
![]() |
0570ba9ca8 | ||
![]() |
7bf2296eb7 | ||
![]() |
d8d1249546 | ||
![]() |
8ec9b03a77 | ||
![]() |
4f53508667 | ||
![]() |
dd604eab73 | ||
![]() |
6a7c31719e | ||
![]() |
19e0b802a2 | ||
![]() |
61fc835c8f | ||
![]() |
361c7c35ce | ||
![]() |
5d5e712a8f | ||
![]() |
065c662216 | ||
![]() |
ed13418124 | ||
![]() |
9c00b2a22c | ||
![]() |
087a8296d8 | ||
![]() |
57f6d436fa | ||
![]() |
3251636369 | ||
![]() |
43200bc737 | ||
![]() |
2f1e19affb | ||
![]() |
5f219dc33c | ||
![]() |
21fe359961 | ||
![]() |
6245118cf2 | ||
![]() |
92990ff86a | ||
![]() |
a033100a47 | ||
![]() |
60a28268ae | ||
![]() |
15109e93d1 | ||
![]() |
6b92f20a40 | ||
![]() |
39195008a9 | ||
![]() |
93572c981f | ||
![]() |
b202a81346 | ||
![]() |
741e3951d0 | ||
![]() |
f51d3fbbab | ||
![]() |
1085afbd12 | ||
![]() |
6f74d9451b | ||
![]() |
1cf770c09e | ||
![]() |
5ae944be49 | ||
![]() |
bb8ed151d6 | ||
![]() |
10db206c24 | ||
![]() |
18123b0cf7 | ||
![]() |
0653263313 | ||
![]() |
6d6a263735 | ||
![]() |
54988b1b41 | ||
![]() |
d53a238583 | ||
![]() |
f75dbf490d | ||
![]() |
087adfe509 | ||
![]() |
cfe94755ee | ||
![]() |
327b7ab87d | ||
![]() |
841ba44a09 | ||
![]() |
0b40ebf3c0 | ||
![]() |
ad93f52988 | ||
![]() |
b8555e6efe | ||
![]() |
504032e41d | ||
![]() |
45b822b565 | ||
![]() |
4d7dcbcb5a | ||
![]() |
fbf068a79f | ||
![]() |
aa8ca2470d | ||
![]() |
7e498278b2 | ||
![]() |
aab3f6c4ab | ||
![]() |
9325e1afe7 | ||
![]() |
50393c8eda | ||
![]() |
325125852c | ||
![]() |
e867837705 | ||
![]() |
e49c0dff60 | ||
![]() |
2843306833 | ||
![]() |
9535b6f11f | ||
![]() |
08512e9541 | ||
![]() |
047144e4bf | ||
![]() |
48ca52cd31 | ||
![]() |
ffd8eeecfe | ||
![]() |
bbd1ca0f11 | ||
![]() |
3d815e165e | ||
![]() |
840b0977c4 | ||
![]() |
1d0a2505af | ||
![]() |
5b26e17d30 | ||
![]() |
dde0afcfe2 | ||
![]() |
6cc43cbed5 | ||
![]() |
225962e8ab | ||
![]() |
c43fdeaf8c | ||
![]() |
2de5de559d | ||
![]() |
b2c6812e23 | ||
![]() |
d9e341c998 | ||
![]() |
6fb31a4226 | ||
![]() |
a1d28f8598 | ||
![]() |
2421500709 | ||
![]() |
be6d41420d | ||
![]() |
cee929d953 | ||
![]() |
7e7b92fa84 | ||
![]() |
718442653a | ||
![]() |
f2f53a933b | ||
![]() |
c1cccbd2f7 | ||
![]() |
82c2f0fdac | ||
![]() |
586a5a9467 | ||
![]() |
658d6d76a3 | ||
![]() |
289f2a7fd6 | ||
![]() |
e7cf3adf7f | ||
![]() |
001d645c69 | ||
![]() |
17b9d816fb | ||
![]() |
959613e408 | ||
![]() |
cfcbfc22df | ||
![]() |
a8dcf988df | ||
![]() |
2fe292083b | ||
![]() |
fad93ae52a | ||
![]() |
c171463254 | ||
![]() |
eef4695d8d | ||
![]() |
65c16c6582 | ||
![]() |
9535568470 | ||
![]() |
a94429b1bd | ||
![]() |
e288756ead | ||
![]() |
bb04d1098c | ||
![]() |
d120f7cb23 | ||
![]() |
22fde21e9c | ||
![]() |
55e40bfff8 | ||
![]() |
7941fc5729 | ||
![]() |
4b2acb2fd0 | ||
![]() |
998e5af150 | ||
![]() |
f68a2d5893 | ||
![]() |
cff2d6c7c9 | ||
![]() |
bd9b330b1f | ||
![]() |
1107eadf0e | ||
![]() |
a41562fb7a | ||
![]() |
6c677f6512 | ||
![]() |
16996b7a89 | ||
![]() |
888e7fc84d | ||
![]() |
89003132f6 | ||
![]() |
6de1d90b28 | ||
![]() |
f86e78d920 | ||
![]() |
a79d778786 | ||
![]() |
47f4e19513 | ||
![]() |
0969a6441c | ||
![]() |
8313381770 | ||
![]() |
e04115fc7d | ||
![]() |
c287de25fc | ||
![]() |
2505804d2b | ||
![]() |
30310735c1 | ||
![]() |
4172e7a107 | ||
![]() |
080f35a269 | ||
![]() |
cf10965f91 | ||
![]() |
6dfcef1ebc | ||
![]() |
b667219adc | ||
![]() |
8f198f616b | ||
![]() |
68e34cfde8 | ||
![]() |
bb38286145 | ||
![]() |
c352008260 | ||
![]() |
af6f46e046 | ||
![]() |
56b4243b03 | ||
![]() |
c241fa2401 | ||
![]() |
3f7576cfda | ||
![]() |
9663e83ade | ||
![]() |
c07decc9ea | ||
![]() |
7a66485ccf | ||
![]() |
51592d6b12 | ||
![]() |
eae8523fa0 | ||
![]() |
4b17e0e484 | ||
![]() |
1c0a2225a1 | ||
![]() |
123bc80b2f | ||
![]() |
fcdb93cd7b | ||
![]() |
01ef7a4d26 | ||
![]() |
97f49575cc | ||
![]() |
1efb184d39 | ||
![]() |
adf4579cc9 | ||
![]() |
a9852026af | ||
![]() |
7f419ab0b0 | ||
![]() |
7402a158c2 | ||
![]() |
45e38d36af | ||
![]() |
b421643531 | ||
![]() |
a88b3a0b90 | ||
![]() |
2bfe14a6a7 | ||
![]() |
f8f91258e9 | ||
![]() |
2c579109e7 | ||
![]() |
a7de732b02 | ||
![]() |
41dee335a8 | ||
![]() |
f2c1545c9e | ||
![]() |
5822cf0705 | ||
![]() |
1d905ea1af | ||
![]() |
8181303f61 | ||
![]() |
3e86a6539d | ||
![]() |
a0a2a699c8 | ||
![]() |
105855ffda | ||
![]() |
df4168a87e | ||
![]() |
878d716b20 | ||
![]() |
a739b000bb | ||
![]() |
414c618318 | ||
![]() |
871bce2c17 | ||
![]() |
40310df41a | ||
![]() |
cd518c3b1b | ||
![]() |
5c12bb3814 | ||
![]() |
21bd1394da | ||
![]() |
f5e835175a | ||
![]() |
8689eaba68 | ||
![]() |
41bd6242a2 | ||
![]() |
b9110ae1d1 | ||
![]() |
510eff83b6 | ||
![]() |
b0e1a78860 | ||
![]() |
5df303cc33 | ||
![]() |
1de33397b7 | ||
![]() |
c4d9add919 | ||
![]() |
4d55342209 | ||
![]() |
fb198431f5 | ||
![]() |
c63f536032 | ||
![]() |
60a42ea2e9 | ||
![]() |
4ff1d27e48 | ||
![]() |
8a75c42100 | ||
![]() |
2f82847f74 | ||
![]() |
00f85efde4 | ||
![]() |
97ce677083 | ||
![]() |
ce67401e34 | ||
![]() |
521bb3a916 | ||
![]() |
31ec5936a0 | ||
![]() |
53a803b447 | ||
![]() |
b52847c786 | ||
![]() |
4bc8441ab1 | ||
![]() |
9cdb5a4828 | ||
![]() |
5663a0b950 | ||
![]() |
29c846cb76 | ||
![]() |
414e92d162 | ||
![]() |
3c65cbfd15 | ||
![]() |
00bcb32904 | ||
![]() |
dab631a126 | ||
![]() |
934e719a23 | ||
![]() |
c346dc35d6 | ||
![]() |
ee8a1d6f68 | ||
![]() |
7069c41855 | ||
![]() |
a8c13d41ad | ||
![]() |
9a02c133c1 | ||
![]() |
83c3a3bfa1 | ||
![]() |
0918b5fe94 | ||
![]() |
b107c5b5fe | ||
![]() |
49cd0788bc | ||
![]() |
2f200aefb6 | ||
![]() |
148e0cb9bb | ||
![]() |
0e0034ebdf | ||
![]() |
3456c6c8cd | ||
![]() |
4db4e2ecdf | ||
![]() |
4b860d14c4 | ||
![]() |
67ff873969 | ||
![]() |
0557aee20a | ||
![]() |
8bb2e01b2a | ||
![]() |
903fec3834 | ||
![]() |
c435c1aa15 | ||
![]() |
de4ebc1bac | ||
![]() |
7efb2d9da3 | ||
![]() |
3dfa8e7637 | ||
![]() |
2d0705f940 | ||
![]() |
3676f9a37c | ||
![]() |
50ba58bd3b | ||
![]() |
576ed66de0 | ||
![]() |
2e5e8673e3 | ||
![]() |
1f4510608f | ||
![]() |
fcde7d9c0d | ||
![]() |
c33fbb36f2 | ||
![]() |
f820d1dd58 | ||
![]() |
95132cf63b | ||
![]() |
c92defb786 | ||
![]() |
516992e797 | ||
![]() |
a2a6687758 | ||
![]() |
f1f1c61f63 | ||
![]() |
a879402dde | ||
![]() |
a25c6bcc70 | ||
![]() |
ce48851169 | ||
![]() |
8ba5bb7f94 | ||
![]() |
ad248dd3be | ||
![]() |
3839e79934 | ||
![]() |
b4ec47c819 | ||
![]() |
838c763b95 | ||
![]() |
2d75e133a6 | ||
![]() |
1aeb618247 | ||
![]() |
a19525f7bf | ||
![]() |
01902298ef | ||
![]() |
38517effeb | ||
![]() |
bb2315fe31 | ||
![]() |
010a965266 | ||
![]() |
4ed5f64886 | ||
![]() |
fcd0d8a1ae | ||
![]() |
71bf91080b | ||
![]() |
2c279024d2 | ||
![]() |
f86356c7b6 | ||
![]() |
fc9f546505 | ||
![]() |
d4afc8c3d6 | ||
![]() |
6cf309b8d2 | ||
![]() |
236fff0ed8 | ||
![]() |
9740bbe4c4 | ||
![]() |
9668299bd8 | ||
![]() |
fdc3014541 | ||
![]() |
2c68256e85 | ||
![]() |
2875707e92 | ||
![]() |
89498f0ac2 | ||
![]() |
654d6bdee9 | ||
![]() |
16267ee886 | ||
![]() |
0ddeebc98f | ||
![]() |
aceb9a03ea | ||
![]() |
32a89c0fb8 | ||
![]() |
76b691e8c2 | ||
![]() |
f8453c66f1 | ||
![]() |
e6a70de97f | ||
![]() |
00bb19d9db | ||
![]() |
e7abfe56f9 | ||
![]() |
74cf362e4e | ||
![]() |
3847a6756f | ||
![]() |
ea871c22e8 | ||
![]() |
69d0941269 | ||
![]() |
d25a38ecd3 | ||
![]() |
b2ab96975d | ||
![]() |
5c17c086c0 | ||
![]() |
a93336eb85 | ||
![]() |
462462e196 | ||
![]() |
a975ce512f | ||
![]() |
39cdfc0d4b | ||
![]() |
b828b4a9e9 | ||
![]() |
cea403eb89 | ||
![]() |
ca03c797fa | ||
![]() |
33f9e62b0b | ||
![]() |
a8f9c19cfb | ||
![]() |
73d386d0ff | ||
![]() |
18e84770a9 | ||
![]() |
f79b4efc8e | ||
![]() |
c29162231d | ||
![]() |
7a1b562fde | ||
![]() |
5203bd123d | ||
![]() |
4b82ce2e8b | ||
![]() |
7c770dbdba | ||
![]() |
2cf3f336db | ||
![]() |
59eaa5e32d | ||
![]() |
3bcf1eb0bd | ||
![]() |
aa4d4d29fd | ||
![]() |
124873d1c5 | ||
![]() |
bc60bad31d | ||
![]() |
46b535e243 | ||
![]() |
a3bee506ca | ||
![]() |
1aa602cff7 | ||
![]() |
26176376e3 | ||
![]() |
0e08f2009f | ||
![]() |
41565a298b | ||
![]() |
4e608c7d77 | ||
![]() |
ee3bfdca22 | ||
![]() |
d772d8e524 | ||
![]() |
306e59d6f7 | ||
![]() |
60cbfe85a9 | ||
![]() |
25d59a8237 | ||
![]() |
f26978609a | ||
![]() |
135cd26d04 | ||
![]() |
e98f46502d | ||
![]() |
4288e7d8d7 | ||
![]() |
5f8f9438ee | ||
![]() |
1f628b2c54 | ||
![]() |
b3333347af | ||
![]() |
d4c725e87e | ||
![]() |
3bf35a1d0a | ||
![]() |
e5b1a18367 | ||
![]() |
21f79556ac | ||
![]() |
c32545fbdc | ||
![]() |
bb0bdfed79 | ||
![]() |
3422b13fdb | ||
![]() |
43034167e8 | ||
![]() |
9d78ebc396 | ||
![]() |
af2d7bad52 | ||
![]() |
8d8be0e2bf | ||
![]() |
ed5c145014 | ||
![]() |
b228384352 | ||
![]() |
3d7f5698ab | ||
![]() |
69b9030179 | ||
![]() |
cf55a61421 | ||
![]() |
b1173b2b9a | ||
![]() |
52609692d6 | ||
![]() |
53103f8aac | ||
![]() |
6f0f66a8da | ||
![]() |
78938fe1d2 | ||
![]() |
81939aedfe |
1687
NSLGameScanner.py
1687
NSLGameScanner.py
File diff suppressed because it is too large
Load Diff
19
NSLPlugin.desktop
Normal file
19
NSLPlugin.desktop
Normal file
@ -0,0 +1,19 @@
|
||||
[Desktop Entry]
|
||||
Comment[en_US]=
|
||||
Comment=
|
||||
Exec=/bin/bash -c 'export logged_in_home=$(eval echo "~$(whoami)"); curl -Ls https://raw.githubusercontent.com/moraroy/NonSteamLaunchers-On-Steam-Deck/refs/heads/main/NSLPluginInstaller.sh | nohup /bin/bash'
|
||||
GenericName[en_US]=
|
||||
GenericName=
|
||||
Icon=uav
|
||||
MimeType=
|
||||
Name[en_US]=NSL Decky Plugin
|
||||
Name=NSL Decky Plugin
|
||||
Path=
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
TerminalOptions=
|
||||
Type=Application
|
||||
X-DBUS-ServiceName=
|
||||
X-DBUS-StartupType=
|
||||
X-KDE-SubstituteUID=false
|
||||
X-KDE-Username=
|
172
NSLPluginInstaller.sh
Normal file
172
NSLPluginInstaller.sh
Normal file
@ -0,0 +1,172 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ENVIRONMENT VARIABLES
|
||||
# $USER
|
||||
logged_in_user=$(logname 2>/dev/null || whoami)
|
||||
# $HOME
|
||||
logged_in_home=$(eval echo "~${logged_in_user}")
|
||||
|
||||
# Function to switch to Game Mode
|
||||
switch_to_game_mode() {
|
||||
echo "Switching to Game Mode..."
|
||||
rm -rf ${logged_in_home}/.config/systemd/user/nslgamescanner.service
|
||||
unlink ${logged_in_home}/.config/systemd/user/default.target.wants/nslgamescanner.service
|
||||
systemctl --user daemon-reload
|
||||
qdbus org.kde.Shutdown /Shutdown org.kde.Shutdown.logout
|
||||
}
|
||||
|
||||
# Function to display a Zenity message
|
||||
show_message() {
|
||||
zenity --notification --text="$1" --timeout=1
|
||||
}
|
||||
|
||||
# Function to show the update message in Zenity notification
|
||||
show_update_message() {
|
||||
zenity --notification --text="Updating from $1 to $2..." --timeout=5
|
||||
}
|
||||
|
||||
# Set the remote repository URL
|
||||
REPO_URL="https://github.com/moraroy/NonSteamLaunchersDecky/archive/refs/heads/main.zip"
|
||||
|
||||
# Set the local directory path
|
||||
LOCAL_DIR="${logged_in_home}/homebrew/plugins/NonSteamLaunchers"
|
||||
|
||||
# Check if the Decky Loader and NSL Plugin exist
|
||||
DECKY_LOADER_EXISTS=false
|
||||
NSL_PLUGIN_EXISTS=false
|
||||
|
||||
if [ -d "${logged_in_home}/homebrew/plugins" ]; then
|
||||
DECKY_LOADER_EXISTS=true
|
||||
fi
|
||||
|
||||
if [ -d "$LOCAL_DIR" ] && [ -n "$(ls -A $LOCAL_DIR)" ]; then
|
||||
NSL_PLUGIN_EXISTS=true
|
||||
fi
|
||||
|
||||
# Set version check variables
|
||||
GITHUB_URL="https://raw.githubusercontent.com/moraroy/NonSteamLaunchersDecky/refs/heads/main/package.json"
|
||||
|
||||
# Function to fetch GitHub package.json
|
||||
fetch_github_version() {
|
||||
response=$(curl -s "$GITHUB_URL")
|
||||
github_version=$(echo "$response" | jq -r '.version')
|
||||
|
||||
if [ "$github_version" != "null" ]; then
|
||||
echo "$github_version"
|
||||
else
|
||||
echo "Error: Could not fetch or parse GitHub version"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to fetch the local package.json version
|
||||
fetch_local_version() {
|
||||
if [ -f "$LOCAL_DIR/package.json" ]; then
|
||||
local_version=$(jq -r '.version' "$LOCAL_DIR/package.json")
|
||||
|
||||
if [ "$local_version" != "null" ]; then
|
||||
echo "$local_version"
|
||||
else
|
||||
echo "Error: Failed to parse local version"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
echo "Error: Local package.json not found!"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to compare versions
|
||||
compare_versions() {
|
||||
# Only compare versions if both local and GitHub versions are available
|
||||
if [ ! -d "$LOCAL_DIR" ] || [ ! -f "$LOCAL_DIR/package.json" ]; then
|
||||
echo "Local plugin not found or no package.json. Skipping version comparison."
|
||||
return 1 # Skip version comparison and proceed to install/update
|
||||
fi
|
||||
|
||||
# Fetch local and GitHub versions
|
||||
local_version=$(fetch_local_version)
|
||||
github_version=$(fetch_github_version)
|
||||
|
||||
if [ "$local_version" == "Error:" ] || [ "$github_version" == "Error:" ]; then
|
||||
echo "Error: Could not fetch version information"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Local Version: $local_version, GitHub Version: $github_version"
|
||||
|
||||
if [ "$local_version" == "$github_version" ]; then
|
||||
echo "Status: Up-to-date"
|
||||
return 0
|
||||
else
|
||||
echo "Status: Update available"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
set +x
|
||||
|
||||
if $DECKY_LOADER_EXISTS; then
|
||||
while true; do
|
||||
USER_INPUT=$(zenity --forms --title="Authentication Required" --text="Decky Loader detected! $(if $NSL_PLUGIN_EXISTS; then echo 'NSL Plugin also detected and will be updated to the latest version 🚀.'; else echo 'But no NSL plugin :( This is not an ERROR. Would you like to inject it and go to Game Mode?'; fi) Please enter your sudo password to proceed:" --separator="|" --add-password="Password")
|
||||
USER_PASSWORD=$(echo $USER_INPUT | cut -d'|' -f1)
|
||||
|
||||
if [ -z "$USER_PASSWORD" ]; then
|
||||
zenity --error --text="No password entered. Exiting." --timeout=5
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$USER_PASSWORD" | sudo -S echo "Password accepted" 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
break
|
||||
else
|
||||
zenity --error --text="Incorrect password. Please try again."
|
||||
fi
|
||||
done
|
||||
else
|
||||
zenity --error --text="This is not an error but Decky Loader was not detected. Please download and install it from their website first and re-run this script to get the NSL Plugin."
|
||||
rm -rf "$download_dir"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Compare versions before proceeding with installation
|
||||
compare_versions
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "No update needed. The plugin is already up-to-date."
|
||||
show_message "No update needed. The plugin is already up-to-date."
|
||||
else
|
||||
# Get local and GitHub versions
|
||||
local_version=$(fetch_local_version)
|
||||
github_version=$(fetch_github_version)
|
||||
|
||||
# Show update message in Zenity notification
|
||||
show_update_message "$local_version" "$github_version"
|
||||
|
||||
if $NSL_PLUGIN_EXISTS; then
|
||||
show_message "NSL Plugin detected. Deleting and updating..."
|
||||
echo "Plugin directory exists. Removing..."
|
||||
echo "$USER_PASSWORD" | sudo -S rm -rf "$LOCAL_DIR"
|
||||
fi
|
||||
|
||||
sudo systemctl stop plugin_loader.service
|
||||
|
||||
show_message "Creating base directory and setting permissions..."
|
||||
echo "$USER_PASSWORD" | sudo -S mkdir -p "$LOCAL_DIR"
|
||||
echo "$USER_PASSWORD" | sudo -S chmod -R u+rw "$LOCAL_DIR"
|
||||
echo "$USER_PASSWORD" | sudo -S chown -R $USER:$USER "$LOCAL_DIR"
|
||||
|
||||
echo "Downloading and extracting the repository..."
|
||||
curl -L "$REPO_URL" -o /tmp/NonSteamLaunchersDecky.zip
|
||||
echo "$USER_PASSWORD" | sudo -S unzip -o /tmp/NonSteamLaunchersDecky.zip -d /tmp/
|
||||
echo "$USER_PASSWORD" | sudo -S cp -r /tmp/NonSteamLaunchersDecky-main/* "$LOCAL_DIR"
|
||||
|
||||
echo "$USER_PASSWORD" | sudo -S rm -rf /tmp/NonSteamLaunchersDecky*
|
||||
fi
|
||||
|
||||
set -x
|
||||
cd "$LOCAL_DIR"
|
||||
|
||||
show_message "Plugin installed. Switching to Game Mode..."
|
||||
switch_to_game_mode
|
||||
|
||||
sudo systemctl restart plugin_loader.service
|
1722
NonSteamLaunchers.sh
1722
NonSteamLaunchers.sh
File diff suppressed because it is too large
Load Diff
151
README.md
151
README.md
@ -1,3 +1,16 @@
|
||||
<p align="center"><em>“Who hath ascended up into heaven, or descended? who hath gathered the wind in his fists? who hath bound the waters in a garment? who hath established all the ends of the earth? what is his name, and what is his son's name, if thou canst tell?”</em><br><em>- Proverbs 30:4 (KJV)</em></p>
|
||||
|
||||
<p align="center"><em>“For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life.”</em><br><em>“For God sent not his Son into the world to condemn the world; but that the world through him might be saved.”</em><br><em>- John 3:16-17 (KJV)</em></p>
|
||||
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="https://github-readme-stats.vercel.app/api?username=moraroy&theme=transparent&show_icons=true&hide_border=true&count_private=true" width="48%" />
|
||||
<img src="https://github-readme-streak-stats.herokuapp.com/?user=moraroy&theme=transparent&hide_border=true" width="48%" />
|
||||
<img src="https://github-readme-stats.vercel.app/api/top-langs/?username=moraroy&theme=transparent&show_icons=true&hide_border=true&layout=compact" width="48%" />
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="https://github.com/cchrkk/NSLOSD-DL/raw/main/logo.svg" width=40% height=auto
|
||||
@ -7,9 +20,9 @@
|
||||
NonSteamLaunchers 🚀
|
||||
</h1>
|
||||
|
||||
This script installs the latest GE-Proton, installs NonSteamLaunchers under one unique Proton prefix folder in your compatdata folder path called "NonSteamLaunchers" and adds them to your Steam Library. It will also add the games automatically on every steam restart.
|
||||
This script installs the latest UMU & GE-Proton and installs NonSteamLaunchers under one unique Proton prefix folder in your compatdata folder path called "NonSteamLaunchers" and adds them to your Steam Library. It will also add the games automatically on every steam restart.
|
||||
So you can use them on Desktop or in Game Mode.
|
||||
Local Saves and Cloud saves are supported, as well as multiplayer/online support (because youre using the launchers). Obviously, certain anticheat games will not work on linux enviroments; this is on a game to game basis.
|
||||
Local Saves and Cloud saves are supported, as well as multiplayer/online support (because you're using the launchers). Obviously, certain anticheat games will not work on linux enviroments; this is on a game to game basis.
|
||||
|
||||
<h1 align="center">
|
||||
Features ✅
|
||||
@ -27,31 +40,106 @@ Features ✅
|
||||
|
||||
- Command Line Ready, you can call it from online, heres an example of installing a launcher ``` /bin/bash -c 'curl -Ls https://raw.githubusercontent.com/moraroy/NonSteamLaunchers-On-Steam-Deck/main/NonSteamLaunchers.sh | nohup /bin/bash -s -- "Epic Games"' ```
|
||||
|
||||
- NSL can in fact be installed on many linux distros, feel free to try, here are some examples of some... ChimeraOS, Nobara and Arch Linux as well as any KDE Environments such as this opensuse - tumbleweed - wayland , if for any reason you find that NonSteamLaunchers installs perfectly or not, let me know!
|
||||
- NSL can in fact be installed on many linux distros, feel free to try, here are some examples of some... Ubuntu LTS, ChimeraOS, Nobara and Arch Linux as well as any KDE Environments such as this opensuse - tumbleweed - wayland , if for any reason you find that NonSteamLaunchers installs perfectly or not, let me know!
|
||||
|
||||
- RemotePlayWhatever is also bundled with NSL to allow for local and co-op play between non steam games, this is created by m4Engi, here is the repo [here](https://github.com/m4dEngi/RemotePlayWhatever)
|
||||
|
||||
- Ludusavi is also pre-installed and setup for NSL for your games save backups. Not all games will work with this yet so bare this in mind when deleted or uninstalling games that are arent backed up yet, here is the repo [here](https://github.com/mtkennerly/ludusavi)
|
||||
|
||||
- [UMU Launcher](https://github.com/Open-Wine-Components/umu-launcher) is automatically used and is processed for each game and Launcher. Proton GE will be used where necessary.
|
||||
|
||||
### Notes
|
||||
- With NSL youre able to send notes to each other and communicate to other NSL users via a hashtag in your note at the beginning, write #nsl and leave a space, and then type your actual note. The script will then look for that note and send it through the api and spit it back out for that non-steam game. Everyone who uses NSL will then receive it and it will be added to the "NSL Community Note". This is to allow people to have first hand information about their games right in front of them from others! Currently you can participate only if you send a note! Once you created a note, open up NonSteamLaunchers and press the ❤️. This is an expiremental feature so keep that in mind!
|
||||
|
||||
|
||||
# As Seen on
|
||||
just to name a few!...there are much more videos and articles out there just wanted to share some resources on how to install and how the program works.
|
||||
## Videos
|
||||
- [Linus Tech Tips](https://www.youtube.com/watch?v=tdR-bxvQKN8&t=885s) (starting at 14:45)
|
||||
- [GameTechPlanet](https://www.youtube.com/watch?v=jE1qD3yzrks)
|
||||
- [NerdZap](https://www.youtube.com/watch?v=t2EzbKkbS1Q)
|
||||
- [Joserra y sus cosicas](https://www.youtube.com/watch?v=6ETxmbzRODQ)
|
||||
- [Steam Deck In Hand](https://www.youtube.com/watch?v=_j3HV6yyGjI)
|
||||
- [Steam Deck Gaming](https://www.youtube.com/watch?v=svOj4MTEAVc)
|
||||
- [BakaKuma](https://www.youtube.com/watch?v=QluZ3UGYoKo)
|
||||
- [SteamFlow](https://www.youtube.com/watch?v=aud5F6iwA0s)
|
||||
- [Hooandee - 6 Hour Video](https://www.youtube.com/watch?v=OGmwtSS-zoE&t=7023s) (starting at 1:57:23)
|
||||
|
||||
## Articles
|
||||
- [Gaming On Linux - Non-Steam Launchers Tool for Installing Popular Game Stores](https://www.gamingonlinux.com/2025/01/nonsteamlaunchers-tool-for-installing-popular-game-stores-working-on-better-desktop-linux-support/)
|
||||
- [Steam Deck HQ - Non-Steam Launchers New Update Community Notes](https://steamdeckhq.com/news/nonsteamlaunchers-new-update-community-notes/)
|
||||
- [Windows Central - How to Install Decky Loader on Steam Deck](https://www.windowscentral.com/gaming/how-to-install-decky-loader-on-steam-deck)
|
||||
- [Dexerto - Non-Steam Launchers on Steam Deck](https://www.dexerto.com/tech/nonsteamlaunchers-steam-deck-2808063/)
|
||||
- [MSN - Steam Deck: How to Install Epic Games Launcher with Decky Loader](https://www.msn.com/en-ca/news/technology/steam-deck-how-to-install-epic-games-launcher-with-decky-loader/ar-BB1pW1Ht)
|
||||
- [PCMAG - How to Install Third-Party Game Launchers on Steam Deck](https://www.pcmag.com/how-to/steam-deck-install-third-party-game-launchers)
|
||||
|
||||
<p align="center">
|
||||
▶️ **YouTube Tutorial** 🡺🡺🡺 <a href="https://youtu.be/sxMmI8I9G_g">Watch here</a> 🡸🡸🡸 ▶️
|
||||
</p>
|
||||
<p align="center">
|
||||
📖 **Step-by-step Article** 🡺🡺🡺 <a href="https://steamdeckhq.com/news/nonsteamlaunchers-adds-scan-support-launchers">here</a> 🡸🡸🡸 📖
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 align="center">
|
||||
Currently Working On 👷♂️
|
||||
</h1>
|
||||
|
||||
* Decky Loader Plugin is available [here](https://github.com/moraroy/NonSteamLaunchersDecky) and the pull request for it [here](https://github.com/SteamDeckHomebrew/decky-plugin-database/pull/677)
|
||||
* Decky Loader Plugin is available [here](https://github.com/moraroy/NonSteamLaunchersDecky) and the pull request for it [here](https://github.com/SteamDeckHomebrew/decky-plugin-database/pull/677) and can be installed with this big button, only press this button if you have Decky Loader installed already
|
||||
* Working on Flatpak version
|
||||
|
||||
<p align="center">
|
||||
<a name="download button" href="https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/releases/download/v3.9.6/NSLPlugin.desktop"><img src="https://user-images.githubusercontent.com/98482469/242361563-33f31d3d-9a69-4fca-a928-207a5d17a98f.png" alt="Download NSL Decky Plugin" width="350px" style="padding-top: 15px;"></a>
|
||||
|
||||
---
|
||||
|
||||
**Windows Installation Steps**:
|
||||
|
||||
1. **Sign in to GitHub** and go to this [link](https://github.com/SteamDeckHomebrew/decky-loader/actions/workflows/build-win.yml).
|
||||
|
||||
2. Choose the latest link or whichever version works for you.
|
||||
|
||||
3. Scroll down to **"Artifacts"** and download **"PluginLoader Win"**. This is a zip file that you need to extract on your Windows machine. Make sure you're signed in to see the download link.
|
||||
|
||||
4. Download **NSLPluginWindows.exe** from [here](https://github.com/moraroy/NonSteamLaunchersDecky/releases).
|
||||
|
||||
5. Run **NSLPluginWindows.exe** first. This will also create the necessary cef debugging file for Decky Loader.
|
||||
|
||||
6. Run either **No_console.exe** or **Plugin Loader.exe**, depending on your preference.
|
||||
|
||||
7. Go into **Game Mode** or **Big Picture Mode** to see the Decky Loader plugin and NonSteamLaunchers.
|
||||
|
||||
|
||||
This setup will automatically add all your non-Steam games with artwork, correctly formatted for Windows. Only scanning will work; nothing else will function, so you can either auto-scan or manually scan your games.
|
||||
|
||||
<h1 align="center">
|
||||
How to Install the Desktop Version 🔧
|
||||
</h1>
|
||||
|
||||
<p align="center">
|
||||
▶️ YouTube Tutorial 🡺🡺🡺 https://youtu.be/sxMmI8I9G_g 🡸🡸🡸 ▶️
|
||||
<a name="download button" href="https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/releases/download/v3.9.1/NonSteamLaunchers.desktop"><img src="https://user-images.githubusercontent.com/98482469/242361563-33f31d3d-9a69-4fca-a928-207a5d17a98f.png" alt="Download NonSteamLaunchers" width="350px" style="padding-top: 15px;"></a>
|
||||
</p>
|
||||
<!--- Thanks https://github.com/Heus-Sueh -->
|
||||
|
||||
* Go to desktop mode, click the download button above and it should download the .desktop file in your Downloads folder.
|
||||
* Go to your downloads folder, click the NonSteamLaunchers icon, it will download and run the latest NonSteamLaunchers.sh from this repository and run it.
|
||||
* You will simply have to choose which launcher to install and let the script handle the rest. 💻 No files are left in your "Downloads" they are deleted after installation.
|
||||
* After running the script, launch Steam on your Steam Deck. You'll find the new launchers in your library under the non-steam tab. Click a launcher to see your installed games from that store, and launch them directly from Steam! If you have downloaded a game inside of your launcher, restart your Deck or quit and reopen Steam and the NSLGameScanner.service should add it to your library, even in gamemode! 🥳
|
||||
|
||||
<p align="center">
|
||||
📖 Step-by-step Article 🡺🡺🡺 <a href="https://steamdeckhq.com/news/nonsteamlaunchers-adds-scan-support-launchers">here</a> 🡸🡸🡸 📖
|
||||
</p>
|
||||
|
||||
|
||||
<h1 align="center">
|
||||
Supported Stores 🛍
|
||||
</h1>
|
||||
|
||||
- Unreal Engine (via Epic Games) ✔️
|
||||
- Amazon Games Launcher ✔️
|
||||
- Battle.net ✔️
|
||||
- EA App ✔️
|
||||
@ -68,6 +156,17 @@ Supported Stores 🛍
|
||||
- VK Play ✔️
|
||||
- HoYoPlay ✔️
|
||||
- Nexon Launcher ✔️
|
||||
- Game Jolt Client ✔️
|
||||
- Artix Game Launcher ✔️
|
||||
- ARC Launcher ✔️
|
||||
- Pokémon Trading Card Game Live ✔️
|
||||
- Minecraft Launcher(Legacy) (Java Edition doesnt work but its for Dungeons) ✔️
|
||||
- PURPLE Launcher ✔️
|
||||
- Plarium Play ✔️
|
||||
- VFUN Launcher ✔️
|
||||
- Tempo Launcher ✔️
|
||||
- Antstream Arcade ✔️
|
||||
- RemotePlayWhatever ✔️
|
||||
|
||||
<h1 align="center">
|
||||
Supported Streaming Sites for games and as well as any website. 🌐
|
||||
@ -75,15 +174,33 @@ Supported Streaming Sites for games and as well as any website. 🌐
|
||||
|
||||
- Website Shortcut Creator ✔️
|
||||
- Fortnite ✔️
|
||||
- Venge ✔️
|
||||
- PokéRogue ✔️
|
||||
- Xbox Game Pass ✔️
|
||||
- Better xCloud ✔️
|
||||
- GeForce Now ✔️
|
||||
- Amazon Luna ✔️
|
||||
- Boosteroid Cloud Gaming ✔️
|
||||
- Stim.io ✔️
|
||||
- WebRcade ✔️
|
||||
- WebRcade Editor ✔️
|
||||
- Afterplay.io ✔️
|
||||
- OnePlay ✔️
|
||||
- AirGPU ✔️
|
||||
- CloudDeck ✔️
|
||||
- JioGamesCloud ✔️
|
||||
- WatchParty ✔️
|
||||
- Rocketcrab ✔️
|
||||
- Netflix ✔️
|
||||
- Amazon Prime Video ✔️
|
||||
- Disney+ ✔️
|
||||
- Hulu ✔️
|
||||
- Tubi ✔️
|
||||
- Youtube ✔️
|
||||
- Twitch ✔️
|
||||
- Plex ✔️
|
||||
- Apple TV+ ✔️
|
||||
- Crunchyroll ✔️
|
||||
|
||||
<h1 align="left">
|
||||
Finds Games Automatically
|
||||
@ -91,29 +208,21 @@ Finds Games Automatically
|
||||
|
||||
"NSLGameScanner.service" is also live when you use this script and continues after the script is closed and even works after your Steam Deck has restarted. This works in the background as a service file to automatically add your games to your library on every Steam restart. Currently adds:
|
||||
- Epic Games 🎮 💾 Full SD Card Support
|
||||
- Ubisoft Connect 🎮
|
||||
- EA App 🎮
|
||||
- Ubisoft Connect 🎮 💾 Full SD Card Support
|
||||
- EA App 🎮 💾 Full SD Card Support not sure
|
||||
- Gog Galaxy 🎮 💾 Full SD Card Support
|
||||
- Battle.net 🎮
|
||||
- Amazon Games 🎮 💾 Full SD Card Support
|
||||
- Itch.io 🎮
|
||||
- Legacy Games 🎮
|
||||
- VK Play 🎮 💾 Full SD Card Support
|
||||
- HoYoPlay 🎮 💾 Full SD Card Support
|
||||
- Game Jolt Client 🎮 💾 Full SD Card Support
|
||||
- Minecraft Launcher 🎮
|
||||
|
||||
To stop the NSLGameScanner.service, open up NSL and hit "Stop NSLGameScanner" it will then ask you if you want to restart it, click no, and that's it.
|
||||
|
||||
<h1 align="center">
|
||||
How to Install 🔧
|
||||
</h1>
|
||||
|
||||
<p align="center">
|
||||
<a name="download button" href="https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck/releases/download/v3.9.1/NonSteamLaunchers.desktop"><img src="https://user-images.githubusercontent.com/98482469/242361563-33f31d3d-9a69-4fca-a928-207a5d17a98f.png" alt="Download NonSteamLaunchers" width="350px" style="padding-top: 15px;"></a>
|
||||
</p>
|
||||
<!--- Thanks https://github.com/Heus-Sueh -->
|
||||
|
||||
* Go to desktop mode, click the download button above and it should download the .desktop file in your Downloads folder.
|
||||
* Go to your downloads folder, click the NonSteamLaunchers icon, it will download and run the latest NonSteamLaunchers.sh from this repository and run it.
|
||||
* You will simply have to choose which launcher to install and let the script handle the rest. 💻 No files are left in your "Downloads" they are deleted after installation.
|
||||
* After running the script, launch Steam on your Steam Deck. You'll find the new launchers in your library under the non-steam tab. Click a launcher to see your installed games from that store, and launch them directly from Steam! If you have downloaded a game inside of your launcher, restart your Deck or quit and reopen Steam and the NSLGameScanner.service should add it to your library, even in gamemode! 🥳
|
||||
|
||||
<!--- TODO: handful of broken icons (cf. 🡺🡺🡺 ); probably should remove or replace them with more common font to handle unicode-->
|
||||
|
||||
|
@ -128,8 +128,10 @@ flavor_mapping = {
|
||||
"StarCraft": "S1",
|
||||
"Warcraft Arclight Rumble": "GRY",
|
||||
"Warcraft II: Battle.net Edition": "W2",
|
||||
"Warcraft II: Remastered": "W2R",
|
||||
"Warcraft III: Reforged": "W3",
|
||||
"Warcraft: Orcs & Humans": "W1",
|
||||
"Warcraft I: Remastered": "W1R",
|
||||
"World of Warcraft Classic": "WoWC",
|
||||
"World of Warcraft": "WoW",
|
||||
}
|
||||
|
681
poetry.lock
generated
681
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -20,15 +20,15 @@ vdf = "^3.4"
|
||||
coverage = "^7.3.2"
|
||||
hypothesis = {extras = ["cli"], version = "^6.88.4"}
|
||||
icecream = "^2.1.3"
|
||||
ipython = "^8.17.2"
|
||||
ipython = "^9.0.2"
|
||||
poetry-plugin-export = "^1.6.0"
|
||||
pytest = "^8.0.2"
|
||||
pytest-asyncio = "^0.24.0"
|
||||
pytest-cov = "^5.0.0"
|
||||
pytest-asyncio = "^0.26.0"
|
||||
pytest-cov = "^6.0.0"
|
||||
pytest-datafiles = "^3.0.0"
|
||||
pytest-xdist = "^3.4.0"
|
||||
rich = "^13.6.0"
|
||||
ruff = "^0.6.1"
|
||||
rich = "^14.0.0"
|
||||
ruff = "^0.11.0"
|
||||
|
||||
[tool.ruff]
|
||||
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
||||
|
@ -1,8 +1,8 @@
|
||||
certifi==2024.2.2 ; python_version >= "3.11" and python_version < "3.13"
|
||||
charset-normalizer==3.3.2 ; python_version >= "3.11" and python_version < "3.13"
|
||||
idna==3.6 ; python_version >= "3.11" and python_version < "3.13"
|
||||
certifi==2025.1.31 ; python_version >= "3.11" and python_version < "3.13"
|
||||
charset-normalizer==3.4.1 ; python_version >= "3.11" and python_version < "3.13"
|
||||
idna==3.10 ; python_version >= "3.11" and python_version < "3.13"
|
||||
python-decouple==3.8 ; python_version >= "3.11" and python_version < "3.13"
|
||||
python-steamgriddb==1.0.5 ; python_version >= "3.11" and python_version < "3.13"
|
||||
requests==2.31.0 ; python_version >= "3.11" and python_version < "3.13"
|
||||
urllib3==2.2.1 ; python_version >= "3.11" and python_version < "3.13"
|
||||
requests==2.32.3 ; python_version >= "3.11" and python_version < "3.13"
|
||||
urllib3==2.4.0 ; python_version >= "3.11" and python_version < "3.13"
|
||||
vdf==3.4 ; python_version >= "3.11" and python_version < "3.13"
|
||||
|
Loading…
x
Reference in New Issue
Block a user