misc: uh what happened here
This commit is contained in:
parent
bae0d02885
commit
d0572325eb
@ -2,7 +2,7 @@
|
|||||||
## `preloader.sh`
|
## `preloader.sh`
|
||||||
Execute multiple scripts in a folder (default is `./preloader`), usually useful for Lutris Pre-launch/Post-exit script
|
Execute multiple scripts in a folder (default is `./preloader`), usually useful for Lutris Pre-launch/Post-exit script
|
||||||
+ Logging is enabled by default, but can be disabled by changing DEBUG to 0 in script source (`DEBUG=0`)
|
+ Logging is enabled by default, but can be disabled by changing DEBUG to 0 in script source (`DEBUG=0`)
|
||||||
> This script will execute scripts in **current directory** *(where `preloader.sh` is executed)*, so for example if a script need a file called `nightmare`, and preloader.sh is in `~`, **put it in `~`** *instead of `~/preloader/nightmare`*
|
> This script will execute scripts in **current working directory** *(where `preloader.sh` is executed)*, so for example if a script need a file called `nightmare`, and preloader.sh is in `~`, **put the file in `~`** *instead of `~/preloader/`*
|
||||||
### Installation
|
### Installation
|
||||||
+ To download `preloader.sh` itself:
|
+ To download `preloader.sh` itself:
|
||||||
```sh
|
```sh
|
||||||
@ -11,16 +11,21 @@ chmod +x preloader.sh
|
|||||||
```
|
```
|
||||||
+ After that, copy/move this script to the game prefix you want to use, then in Lutris:
|
+ After that, copy/move this script to the game prefix you want to use, then in Lutris:
|
||||||
- Set pre-launch script in Lutris to where `preloader.sh` is located.
|
- Set pre-launch script in Lutris to where `preloader.sh` is located.
|
||||||
- Disable **Wait for pre-launch script completion**
|
- Disable **Wait for pre-launch script completion** (optional)
|
||||||
|
|
||||||
+ **IMPORTANT**: Now, to add pre-launch script, instead of setting them in Lutris, add them to `./preloader` (or the folder you specified).
|
+ **IMPORTANT**: Now, to add pre-launch script, instead of setting them in Lutris, add them to `./preloader` (or the folder you specified).
|
||||||
+ Enjoy :L
|
+ Enjoy :L
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
There are environment variables to control how preloader.sh work:
|
||||||
|
+ `PRELOADER_PATH=./preloader`: Path to preload scripts.
|
||||||
|
+ `PRELOADER_DEBUG=0`: Enable debug (1) or disable it (0)
|
||||||
|
|
||||||
## `discord_rpc.sh`
|
## `discord_rpc.sh`
|
||||||
Launch `winediscordrpcbridge.exe`, to be able to get Discord Rich Presence on Wine applications on the specified prefix.
|
Launch `winediscordrpcbridge.exe`, to be able to get Discord Rich Presence on Wine applications on the specified prefix.
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
+ To install you must have `winediscordrpcbridge.exe` present, if not you can download latest version by executing
|
+ To install you must have [`winediscordrpcbridge.exe`](https://github.com/0e4ef622/wine-discord-ipc-bridge/) present, if not you can download latest version by executing
|
||||||
```sh
|
```sh
|
||||||
curl -OL https://github.com/0e4ef622/wine-discord-ipc-bridge/releases/latest/download/winediscordipcbridge.exe
|
curl -OL https://github.com/0e4ef622/wine-discord-ipc-bridge/releases/latest/download/winediscordipcbridge.exe
|
||||||
```
|
```
|
||||||
|
0
apps/Lutris/discord_rpc.sh
Executable file → Normal file
0
apps/Lutris/discord_rpc.sh
Executable file → Normal file
0
apps/Lutris/enable-picom-ingame.sh
Executable file → Normal file
0
apps/Lutris/enable-picom-ingame.sh
Executable file → Normal file
17
apps/Lutris/preloader.sh
Executable file → Normal file
17
apps/Lutris/preloader.sh
Executable file → Normal file
@ -2,8 +2,10 @@
|
|||||||
# Lutris pre-loader script, for allowing loading multiple pre-load scripts.
|
# Lutris pre-loader script, for allowing loading multiple pre-load scripts.
|
||||||
|
|
||||||
# Enabling debug will enable the script output.
|
# Enabling debug will enable the script output.
|
||||||
FOLDER="./preloader"
|
|
||||||
DEBUG=1
|
# Folder path (relative to Lutris prefix directory)
|
||||||
|
FOLDER="${PRELOADER_PATH:-"./preloader"}"
|
||||||
|
DEBUG="${PRELOADER_DEBUG:-0}"
|
||||||
|
|
||||||
execute_file () {
|
execute_file () {
|
||||||
# Just in case...
|
# Just in case...
|
||||||
@ -11,14 +13,19 @@ execute_file () {
|
|||||||
if [[ $DEBUG -eq 0 ]]; then
|
if [[ $DEBUG -eq 0 ]]; then
|
||||||
nohup "$1" >/dev/null 2>&1 &
|
nohup "$1" >/dev/null 2>&1 &
|
||||||
else
|
else
|
||||||
# No this is not as smart as you think...
|
fullfile="$1"
|
||||||
filename=$(echo "$1" | cut -d "/" -f3)
|
filename="${fullfile##*/}"
|
||||||
nohup "$1" > ./logs/"$FOLDER"_"$filename".log 2>&1 &
|
nohup "$1" > ./logs/"$FOLDER"_"$filename".log 2>&1 &
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [[ $DEBUG -ne 0 ]]; then
|
||||||
|
echo "!!!DEBUGGING ENABLED!!!"
|
||||||
|
echo "Debug log may leak your sensitive information, use with caution."
|
||||||
|
echo "!!!DEBUGGING ENABLED!!!"
|
||||||
|
mkdir -p "$FOLDER" ./logs/
|
||||||
|
fi
|
||||||
echo "Checking directory..."
|
echo "Checking directory..."
|
||||||
mkdir -p "$FOLDER" ./logs/
|
|
||||||
for file in "$FOLDER"/*.*; do
|
for file in "$FOLDER"/*.*; do
|
||||||
[ -e "$file" ] || continue
|
[ -e "$file" ] || continue
|
||||||
echo "Found $file, loading..."
|
echo "Found $file, loading..."
|
||||||
|
0
apps/Spotify/wine/install-blockthespot.sh
Executable file → Normal file
0
apps/Spotify/wine/install-blockthespot.sh
Executable file → Normal file
0
apps/Spotify/wine/soggfy.sh
Executable file → Normal file
0
apps/Spotify/wine/soggfy.sh
Executable file → Normal file
41
apps/discord/openasar-installer.py
Normal file
41
apps/discord/openasar-installer.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
from urllib import request
|
||||||
|
from shutil import which
|
||||||
|
|
||||||
|
def find_discord_asar(discord_exec: str) -> Path | None:
|
||||||
|
dis_loc = which(discord_exec)
|
||||||
|
if not dis_loc:
|
||||||
|
return
|
||||||
|
dis = Path(dis_loc)
|
||||||
|
with dis.open("r") as f:
|
||||||
|
try:
|
||||||
|
content = f.read(256)
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
# Official Discord app, the binary is hopefully symlink
|
||||||
|
# e.g. /usr/bin/discord -> /opt/discord/Discord
|
||||||
|
asar_path = dis.resolve().parent.joinpath("resources/app.asar")
|
||||||
|
if asar_path.is_file():
|
||||||
|
return asar_path
|
||||||
|
else:
|
||||||
|
# Discord wrapper script (Discord system Electron, etc.)
|
||||||
|
for v in content.split():
|
||||||
|
if "app.asar" not in v:
|
||||||
|
continue
|
||||||
|
# v is full path to app.asar
|
||||||
|
# e.g. /usr/lib/discord-canary/app.asar
|
||||||
|
return Path(v)
|
||||||
|
|
||||||
|
|
||||||
|
def download_openasar():
|
||||||
|
file, _ = request.urlretrieve("")
|
||||||
|
return file
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print(find_discord_asar("discord-canary"))
|
||||||
|
# print("Downloading OpenAsar (nightly)...")
|
||||||
|
# file = request.urlretrieve("")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
45
apps/lutris/README.md
Normal file
45
apps/lutris/README.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Lutris scripts
|
||||||
|
## `preloader.sh`
|
||||||
|
Execute multiple scripts in a folder (default is `./preloader`), usually useful for Lutris Pre-launch/Post-exit script
|
||||||
|
+ Logging is enabled by default, but can be disabled by changing DEBUG to 0 in script source (`DEBUG=0`)
|
||||||
|
> This script will execute scripts in **current working directory** *(where `preloader.sh` is executed)*, so for example if a script need a file called `nightmare`, and preloader.sh is in `~`, **put the file in `~`** *instead of `~/preloader/`*
|
||||||
|
### Installation
|
||||||
|
+ To download `preloader.sh` itself:
|
||||||
|
```sh
|
||||||
|
curl -OL https://gitlab.com/tretrauit/scripts/-/raw/main/apps/Lutris/preloader.sh
|
||||||
|
chmod +x preloader.sh
|
||||||
|
```
|
||||||
|
+ After that, copy/move this script to the game prefix you want to use, then in Lutris:
|
||||||
|
- Set pre-launch script in Lutris to where `preloader.sh` is located.
|
||||||
|
- Disable **Wait for pre-launch script completion** (optional)
|
||||||
|
|
||||||
|
+ **IMPORTANT**: Now, to add pre-launch script, instead of setting them in Lutris, add them to `./preloader` (or the folder you specified).
|
||||||
|
+ Enjoy :L
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
There are environment variables to control how preloader.sh work:
|
||||||
|
+ `PRELOADER_PATH=./preloader`: Path to preload scripts.
|
||||||
|
+ `PRELOADER_DEBUG=0`: Enable debug (1) or disable it (0)
|
||||||
|
|
||||||
|
## `discord_rpc.sh`
|
||||||
|
Launch `winediscordrpcbridge.exe`, to be able to get Discord Rich Presence on Wine applications on the specified prefix.
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
+ To install you must have [`winediscordrpcbridge.exe`](https://github.com/0e4ef622/wine-discord-ipc-bridge/) present, if not you can download latest version by executing
|
||||||
|
```sh
|
||||||
|
curl -OL https://github.com/0e4ef622/wine-discord-ipc-bridge/releases/latest/download/winediscordipcbridge.exe
|
||||||
|
```
|
||||||
|
or use my build (latest commit: `master/9d56418`)
|
||||||
|
```sh
|
||||||
|
curl -OL https://github.com/teppyboy/releases/releases/download/git%2B0e4ef622%2Fwine-discord-ipc-bridge%2Bmaster%2F9d56418/winediscordipcbridge.exe
|
||||||
|
```
|
||||||
|
+ Then to download `discord_rpc.sh` itself:
|
||||||
|
```sh
|
||||||
|
curl -OL https://gitlab.com/tretrauit/scripts/-/raw/main/apps/Lutris/discord_rpc.sh
|
||||||
|
chmod +x discord_rpc.sh
|
||||||
|
```
|
||||||
|
+ After that, copy/move this script to the game prefix you want to use, then in Lutris:
|
||||||
|
- Set pre-launch script in Lutris to where `discord_rpc.sh` is located.
|
||||||
|
- Disable **Wait for pre-launch script completion**
|
||||||
|
|
||||||
|
+ Enjoy :L
|
6
apps/lutris/discord_rpc.sh
Normal file
6
apps/lutris/discord_rpc.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Launch winediscordipcbridge.exe automatically.
|
||||||
|
|
||||||
|
echo "wine: $WINE"
|
||||||
|
echo "prefix: $WINEPREFIX"
|
||||||
|
$WINE ./winediscordipcbridge.exe
|
25
apps/lutris/enable-picom-ingame.sh
Normal file
25
apps/lutris/enable-picom-ingame.sh
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Put your game process name here (can be full name or short name)
|
||||||
|
# If it doesn't work for .exe file, try <process name>.e instead
|
||||||
|
# it may work.
|
||||||
|
PROCESS=""
|
||||||
|
|
||||||
|
echo "Waiting for '$PROCESS' to start..."
|
||||||
|
until _=$(pidof $PROCESS)
|
||||||
|
do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Starting picom..."
|
||||||
|
picom --experimental-backends &
|
||||||
|
picom_pid=$!
|
||||||
|
echo "picom PID: $picom_pid"
|
||||||
|
|
||||||
|
echo "Waiting for '$PROCESS' to exit..."
|
||||||
|
while [[ $(pidof $PROCESS) ]]; do
|
||||||
|
sleep .5
|
||||||
|
done
|
||||||
|
echo "Killing picom..."
|
||||||
|
kill -15 $picom_pid
|
||||||
|
echo "Done."
|
34
apps/lutris/preloader.sh
Normal file
34
apps/lutris/preloader.sh
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Lutris pre-loader script, for allowing loading multiple pre-load scripts.
|
||||||
|
|
||||||
|
# Enabling debug will enable the script output.
|
||||||
|
|
||||||
|
# Folder path (relative to Lutris prefix directory)
|
||||||
|
FOLDER="${PRELOADER_PATH:-"./preloader"}"
|
||||||
|
DEBUG="${PRELOADER_DEBUG:-0}"
|
||||||
|
|
||||||
|
execute_file () {
|
||||||
|
# Just in case...
|
||||||
|
chmod +x "$1"
|
||||||
|
if [[ $DEBUG -eq 0 ]]; then
|
||||||
|
nohup "$1" >/dev/null 2>&1 &
|
||||||
|
else
|
||||||
|
fullfile="$1"
|
||||||
|
filename="${fullfile##*/}"
|
||||||
|
nohup "$1" > ./logs/"$FOLDER"_"$filename".log 2>&1 &
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $DEBUG -ne 0 ]]; then
|
||||||
|
echo "!!!DEBUGGING ENABLED!!!"
|
||||||
|
echo "Debug log may leak your sensitive information, use with caution."
|
||||||
|
echo "!!!DEBUGGING ENABLED!!!"
|
||||||
|
mkdir -p "$FOLDER" ./logs/
|
||||||
|
fi
|
||||||
|
echo "Checking directory..."
|
||||||
|
for file in "$FOLDER"/*.*; do
|
||||||
|
[ -e "$file" ] || continue
|
||||||
|
echo "Found $file, loading..."
|
||||||
|
execute_file "$file"
|
||||||
|
done
|
||||||
|
|
0
apps/proxytext/proxytext-wrapper.sh
Executable file → Normal file
0
apps/proxytext/proxytext-wrapper.sh
Executable file → Normal file
103
apps/spotify/wine/install-blockthespot.sh
Normal file
103
apps/spotify/wine/install-blockthespot.sh
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
declare -a deps=("curl" "unzip" "rm" "7z" "python3")
|
||||||
|
declare -a patchfiles=("chrome_elf.dll" "config.ini")
|
||||||
|
|
||||||
|
if (( $EUID == 0 )); then
|
||||||
|
echo "Do not run this script as root."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
adPatchScript=$(cat << EOF
|
||||||
|
#!/usr/bin/python3
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
print("Patching xpui.js...")
|
||||||
|
xpui = Path("./xpui/xpui.js")
|
||||||
|
xpui_content = xpui.read_text(encoding="utf-8")
|
||||||
|
replace_ad = re.sub(r"(\.ads\.leaderboard\.isEnabled)(}|\))", r"\1&&false\2", xpui_content)
|
||||||
|
replace_upgrade = re.sub(r"\.createElement\([^.,{]+,{onClick:[^.,]+,className:[^.]+\.[^.]+\.UpgradeButton}\),[^.(]+\(\)", "", replace_ad)
|
||||||
|
xpui.write_text(replace_upgrade, encoding="utf-8")
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
[[ -z "${WINEPREFIX}" ]] && WINEPREFIX="$HOME/.wine" || WINEPREFIX="${WINEPREFIX}"
|
||||||
|
|
||||||
|
SPOTIFY="$WINEPREFIX/drive_c/users/$(whoami)/AppData/Roaming/Spotify/"
|
||||||
|
SPOTIFY_APPS="$SPOTIFY/Apps/"
|
||||||
|
xpuiBundlePath="$SPOTIFY_APPS/xpui.spa"
|
||||||
|
xpuiUnpackedPath="$SPOTIFY_APPS/xpui/xpui.js"
|
||||||
|
|
||||||
|
echo "BlockTheSpot install script for Spotify (Wine version)"
|
||||||
|
echo "BlockTheSpot: https://github.com/mrpond/BlockTheSpot/"
|
||||||
|
echo "Current Wineprefix: $WINEPREFIX"
|
||||||
|
TMPDIR=$(mktemp -d)
|
||||||
|
cd $TMPDIR
|
||||||
|
|
||||||
|
for v in "${deps[@]}"
|
||||||
|
do
|
||||||
|
if ! [ -x /usr/bin/$v ]; then
|
||||||
|
echo "Dependency '$v' not found"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! [ -d "$SPOTIFY" ]; then
|
||||||
|
echo "Spotify not found, make sure you're using correct wineprefix..."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == "uninstall" ]; then
|
||||||
|
if [ -f "$SPOTIFY/chrome_elf_bak.dll" ]; then
|
||||||
|
echo "Uninstalling BlockTheSpot..."
|
||||||
|
for v in "${patchfiles[@]}"
|
||||||
|
do
|
||||||
|
rm "$SPOTIFY/$v"
|
||||||
|
done
|
||||||
|
mv "$SPOTIFY/chrome_elf_bak.dll" "$SPOTIFY/chrome_elf.dll"
|
||||||
|
echo "Uninstalling xpui patch if found..."
|
||||||
|
mv "$xpuiBundlePath.bak" "$xpuiBundlePath"
|
||||||
|
fi
|
||||||
|
echo "Uninstalling BlockTheSpot (IF INSTALLED) completed."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Downloading BlockTheSpot..."
|
||||||
|
curl -OL "https://github.com/mrpond/BlockTheSpot/releases/latest/download/chrome_elf.zip"
|
||||||
|
|
||||||
|
echo "Extracting BlockTheSpot..."
|
||||||
|
unzip -d chrome_elf chrome_elf.zip
|
||||||
|
|
||||||
|
if [ -f "$SPOTIFY/chrome_elf.dll" ] && ! [ -f "$SPOTIFY/chrome_elf_bak.dll" ]; then
|
||||||
|
echo "Backuping files..."
|
||||||
|
mv "$SPOTIFY/chrome_elf.dll" "$SPOTIFY/chrome_elf_bak.dll"
|
||||||
|
fi
|
||||||
|
|
||||||
|
WINEPREFIX=$WINEPREFIX wineserver -k
|
||||||
|
|
||||||
|
echo "Patching Spotify..."
|
||||||
|
for v in "${patchfiles[@]}"
|
||||||
|
do
|
||||||
|
cp "./chrome_elf/$v" "$SPOTIFY/$v"
|
||||||
|
done
|
||||||
|
|
||||||
|
read -p "Do you want to remove ad placeholder and upgrade button? (y/n) " -n 1 -r
|
||||||
|
echo # (optional) move to a new line
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
if [ -f "$xpuiBundlePath" ]; then
|
||||||
|
echo "Patching xpui.spa..."
|
||||||
|
if ! [ -f "$xpuiBundlePath.bak" ]; then
|
||||||
|
mv "$xpuiBundlePath" "$xpuiBundlePath.bak"
|
||||||
|
fi
|
||||||
|
unzip -d xpui "$xpuiBundlePath.bak"
|
||||||
|
fi
|
||||||
|
echo "$adPatchScript" > "./patch.py"
|
||||||
|
python3 ./patch.py
|
||||||
|
7z a xpui.zip "./xpui/*"
|
||||||
|
mv xpui.zip $xpuiBundlePath
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Patching completed, open Spotify and enjoy :D"
|
||||||
|
echo "Temporary directory used $TMPDIR"
|
60
apps/spotify/wine/soggfy.sh
Normal file
60
apps/spotify/wine/soggfy.sh
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
if (( $EUID == 0 )); then
|
||||||
|
echo "Do not run this script as root."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ -z "${WINEPREFIX}" ]]; WINEPREFIX="$HOME/.wine"
|
||||||
|
[[ -z "${WINE}" ]]; WINE="wine"
|
||||||
|
|
||||||
|
pfx_arch=$(grep '#arch' "$WINEPREFIX/system.reg" | cut -d "=" -f2)
|
||||||
|
echo "Wine binary: $WINE"
|
||||||
|
echo "Detected wineprefix: $WINEPREFIX ($pfx_arch)"
|
||||||
|
|
||||||
|
download_ffmpeg() {
|
||||||
|
if [[ pfx_arch == "win64" ]]; then
|
||||||
|
repo_url="https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest"
|
||||||
|
else
|
||||||
|
repo_url="https://api.github.com/repos/sudo-nautilus/FFmpeg-Builds-Win32/releases/latest"
|
||||||
|
fi
|
||||||
|
asset_info=$(curl -s "$repo_url" | jq '.assets | first(.[] | select(.name | match("ffmpeg")))')
|
||||||
|
asset_name=$(echo $asset_info | jq -r '.name')
|
||||||
|
echo "Downloading $asset_name..."
|
||||||
|
curl -OL "$(echo $asset_info | jq -r '.browser_download_url')"
|
||||||
|
echo "Extracting.."
|
||||||
|
unzip -j $asset_name "${asset_name%.*}/bin/*" -d "./ffmpeg/"
|
||||||
|
rm $asset_name
|
||||||
|
}
|
||||||
|
|
||||||
|
download_soggfy() {
|
||||||
|
repo_url="https://api.github.com/repos/Rafiuth/Soggfy/releases/latest"
|
||||||
|
asset_info=$(curl -s "$repo_url" | jq '.assets[0]')
|
||||||
|
asset_name=$(echo $asset_info | jq -r '.name')
|
||||||
|
echo "Downloading $asset_name..."
|
||||||
|
curl -OL "$(echo $asset_info | jq -r '.browser_download_url')"
|
||||||
|
echo "Extracting.."
|
||||||
|
unzip -j $asset_name "${asset_name%.*}/*" -d "."
|
||||||
|
rm $asset_name
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -f ./Soggfy.js ]; then
|
||||||
|
echo "Soggfy not found, downloading..."
|
||||||
|
download_soggfy
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "./ffmpeg/" ]; then
|
||||||
|
echo "FFmpeg not found, downloading..."
|
||||||
|
mkdir ./ffmpeg/
|
||||||
|
download_ffmpeg
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Waiting for Spotify to start..."
|
||||||
|
until _=$(pidof Spotify.exe)
|
||||||
|
do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Injecting..."
|
||||||
|
WINEPREFIX=$WINEPREFIX $WINE Injector.exe
|
||||||
|
echo "Done."
|
14
apps/termux/install-termux-x11.bash
Normal file
14
apps/termux/install-termux-x11.bash
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Installing dependencies..."
|
||||||
|
pkg install aria2 termux-x11
|
||||||
|
termux-setup-storage
|
||||||
|
mkdir -p ./tmp/
|
||||||
|
echo "Downloading Termux-x11..."
|
||||||
|
aria2c -d ./tmp/ https://nightly.link/termux/termux-x11/workflows/debug_build/master/termux-x11.zip
|
||||||
|
unzip ./tmp/termux-x11.zip -d ./tmp/
|
||||||
|
rm termux-x11.zip
|
||||||
|
echo "Installing..."
|
||||||
|
apt install ./tmp/termux-x11.deb
|
||||||
|
mv ./tmp/app-debug.apk ~/storage/shared/Downloads/
|
||||||
|
echo "NOW PLEASE GO TO YOUR DOWNLOAD FOLDER AND INSTALL TERMUX-X11 MANUALLY."
|
@ -20,9 +20,22 @@ chmod +x sulaunchhelper2.sh
|
|||||||
- Enable **Disable Lutris Runtime**
|
- Enable **Disable Lutris Runtime**
|
||||||
> Failure to do above steps will result in Zenity can't show necessary messages dialog so LoL UI can't launch properly.
|
> Failure to do above steps will result in Zenity can't show necessary messages dialog so LoL UI can't launch properly.
|
||||||
+ Enjoy your LoL experience :P
|
+ Enjoy your LoL experience :P
|
||||||
## `garena_wrapper.sh`
|
|
||||||
|
## [`discord_rpc.sh`](../../../apps/Lutris#discord_rpcsh)
|
||||||
|
+ This script will bridge Discord RPC from LoL prefix to your linux Discord.
|
||||||
|
> Note: The script in current directory [`discord_rpc.sh`](./discord_rpc.sh) is modified from the script mentioned above to work properly with `sulaunchhelper2.sh`,
|
||||||
|
the installation is the same **except** when installing the script itself, execute this instead:
|
||||||
|
```sh
|
||||||
|
curl -OL https://gitlab.com/tretrauit/scripts/-/raw/main/games/LoL/linux/discord_rpc.sh
|
||||||
|
chmod +x discord_rpc.sh
|
||||||
|
```
|
||||||
|
## Deprecated
|
||||||
|
|
||||||
|
### `garena_wrapper.sh`
|
||||||
|
> Garena no longer owns LoL so to play LoL you need to use Rito Client.
|
||||||
|
|
||||||
This script automates the launching of [lol.py](https://github.com/nhubaotruong/league-of-legends-linux-garena-script) (LoL in Garena client) so you don't have to manually do it ;)
|
This script automates the launching of [lol.py](https://github.com/nhubaotruong/league-of-legends-linux-garena-script) (LoL in Garena client) so you don't have to manually do it ;)
|
||||||
### Installation
|
#### Installation
|
||||||
> This script no longer wraps `syscall_check.sh`, if you need to execute that script alongside this one, I recommend you to take a look at [`preloader.sh`](../../../apps/Lutris#preloadersh)
|
> This script no longer wraps `syscall_check.sh`, if you need to execute that script alongside this one, I recommend you to take a look at [`preloader.sh`](../../../apps/Lutris#preloadersh)
|
||||||
If you plan to use `preloader.sh` then I **highly recommend you** to **disable logging**, because **lol.py and `preloader.sh` will log your token to ./preloader/preloader_garena_wrapper.sh.log if you keep it enabled**, hence your account may get compromised.
|
If you plan to use `preloader.sh` then I **highly recommend you** to **disable logging**, because **lol.py and `preloader.sh` will log your token to ./preloader/preloader_garena_wrapper.sh.log if you keep it enabled**, hence your account may get compromised.
|
||||||
|
|
||||||
@ -43,12 +56,3 @@ chmod +x garena_wrapper.sh
|
|||||||
- Enable **Disable Lutris Runtime**
|
- Enable **Disable Lutris Runtime**
|
||||||
> Failure to do above steps will result in Zenity can't show necessary messages dialog so LoL UI may not launch properly (it'll still launch if you use `sulaunchhelper2.sh` and have installed it correctly).
|
> Failure to do above steps will result in Zenity can't show necessary messages dialog so LoL UI may not launch properly (it'll still launch if you use `sulaunchhelper2.sh` and have installed it correctly).
|
||||||
+ Enjoy your Garena LoL experience :P
|
+ Enjoy your Garena LoL experience :P
|
||||||
|
|
||||||
## [`discord_rpc.sh`](../../../apps/Lutris#discord_rpcsh)
|
|
||||||
+ This script will bridge Discord RPC from LoL prefix to your linux Discord.
|
|
||||||
> Note: The script in current directory [`discord_rpc.sh`](./discord_rpc.sh) is modified from the script mentioned above to work properly with `sulaunchhelper2.sh`,
|
|
||||||
the installation is the same **except** when installing the script itself, execute this instead:
|
|
||||||
```sh
|
|
||||||
curl -OL https://gitlab.com/tretrauit/scripts/-/raw/main/games/LoL/linux/discord_rpc.sh
|
|
||||||
chmod +x discord_rpc.sh
|
|
||||||
```
|
|
||||||
|
0
games/lol/linux/discord_rpc.sh
Executable file → Normal file
0
games/lol/linux/discord_rpc.sh
Executable file → Normal file
0
games/lol/linux/garena_wrapper.sh
Executable file → Normal file
0
games/lol/linux/garena_wrapper.sh
Executable file → Normal file
0
games/lol/linux/sulaunchhelper2.sh
Executable file → Normal file
0
games/lol/linux/sulaunchhelper2.sh
Executable file → Normal file
0
games/lol/linux/syscall_check.sh
Executable file → Normal file
0
games/lol/linux/syscall_check.sh
Executable file → Normal file
@ -9,7 +9,7 @@
|
|||||||
// @run-at document-idle
|
// @run-at document-idle
|
||||||
// @homepageURL https://gitlab.com/tretrauit/scripts
|
// @homepageURL https://gitlab.com/tretrauit/scripts
|
||||||
// @supportURL https://gitlab.com/tretrauit/scripts/-/issues
|
// @supportURL https://gitlab.com/tretrauit/scripts/-/issues
|
||||||
// @downloadURL https://gitlab.com/tretrauit/scripts/-/raw/main/userscripts/hidemy.name-free-ipport-export.user.js.user.js
|
// @downloadURL https://gitlab.com/tretrauit/scripts/-/raw/main/userscripts/hidemy.name-free-ipport-export.user.js
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
@ -32,6 +32,9 @@ function findElement(tag, properties) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getAncestor(element, level) {
|
function getAncestor(element, level) {
|
||||||
|
if (element == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
for (let i = 0; i < level; i++) {
|
for (let i = 0; i < level; i++) {
|
||||||
element = element.parentNode;
|
element = element.parentNode;
|
||||||
}
|
}
|
||||||
@ -39,26 +42,39 @@ function getAncestor(element, level) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
console.log("Scanning class for components...");
|
console.log("Scanning class for components...");
|
||||||
|
// Search box
|
||||||
let searchBox = findElement("input", {"aria-autocomplete": "list"});
|
let searchBox = findElement("input", {"aria-autocomplete": "list"});
|
||||||
if (searchBox != null) {
|
if (searchBox == null) {
|
||||||
searchBox = getAncestor(searchBox, 7);
|
console.warn("Failed to get searchBox element.");
|
||||||
|
throw new Error();
|
||||||
}
|
}
|
||||||
let textHeader = findElement("span", {"style": "line-height: 28px;"});
|
searchBox = getAncestor(searchBox, 7);
|
||||||
|
// Header & Text header
|
||||||
|
let textHeader = findElement("span", {"style": "line-height: var(--base-line-clamp-line-height); --base-line-clamp-line-height:28px;"});
|
||||||
let header;
|
let header;
|
||||||
if (textHeader != null) {
|
if (textHeader == null) {
|
||||||
header = getAncestor(textHeader, 7);
|
console.warn("Failed to get textHeader element.");
|
||||||
textHeader = textHeader.childNodes[0];
|
throw new Error();
|
||||||
}
|
}
|
||||||
|
header = getAncestor(textHeader, 7);
|
||||||
|
textHeader = textHeader.childNodes[0];
|
||||||
|
// Unread indicator
|
||||||
let unreadIndicator = findElement("span", {"data-visualcompletion": "ignore"});
|
let unreadIndicator = findElement("span", {"data-visualcompletion": "ignore"});
|
||||||
|
// Action bar
|
||||||
let actionBar = findElement("div", {"aria-expanded": "false"});
|
let actionBar = findElement("div", {"aria-expanded": "false"});
|
||||||
if (actionBar != null) {
|
if (actionBar == null) {
|
||||||
actionBar = actionBar.parentNode;
|
console.warn("Failed to get actionBar element.");
|
||||||
|
throw new Error();
|
||||||
}
|
}
|
||||||
|
actionBar = actionBar.parentNode;
|
||||||
|
// Chats
|
||||||
let chats = findElement("div", {"aria-label": "Chats"});
|
let chats = findElement("div", {"aria-label": "Chats"});
|
||||||
if (chats != null) {
|
if (chats == null) {
|
||||||
chats = chats.parentNode;
|
console.warn("Failed to get chats element.");
|
||||||
|
throw new Error();
|
||||||
}
|
}
|
||||||
|
chats = chats.parentNode;
|
||||||
|
// Print elements
|
||||||
console.log("Search box:", searchBox);
|
console.log("Search box:", searchBox);
|
||||||
console.log("Header:", header);
|
console.log("Header:", header);
|
||||||
console.log("Text header:", textHeader);
|
console.log("Text header:", textHeader);
|
||||||
|
Loading…
Reference in New Issue
Block a user