mirror of
https://github.com/the-sane/lug-helper.git
synced 2025-07-01 08:51:02 +00:00
Compare commits
25 Commits
v1.11.1
...
f3166c77da
Author | SHA1 | Date | |
---|---|---|---|
f3166c77da | |||
707211962f | |||
5df5cb210d | |||
bf36fc96a9 | |||
702c678716 | |||
dedefebd2d | |||
d24e8b590b | |||
3daeb0b3b1 | |||
e8c93196ff | |||
1561e1a9f6 | |||
a0110720f6 | |||
c1af0383f2 | |||
74c5bd2275 | |||
48d49dd438 | |||
f080ae2bca | |||
72677ff7d5 | |||
42f9992abf | |||
786e3f4c13 | |||
08285946c8 | |||
dafc53615d | |||
3f72676c71 | |||
3d7702dfdd | |||
7ae0bcf330 | |||
8ce1a9a8ea | |||
431df4aabd |
@ -20,6 +20,9 @@ Keybinds are backed up to *$XDG_CONFIG_HOME/starcitizen-lug/keybinds/*
|
|||||||
- Checks that the hard open file descriptors limit is set to at least 524288.
|
- Checks that the hard open file descriptors limit is set to at least 524288.
|
||||||
- This limits the maximum number of open files on your system. On some Linux distributions, the default is set too low for Star Citizen.
|
- This limits the maximum number of open files on your system. On some Linux distributions, the default is set too low for Star Citizen.
|
||||||
|
|
||||||
|
`Install Star Citizen`
|
||||||
|
- Launches Lutris and uses the bundled json to install Star Citizen
|
||||||
|
|
||||||
`Manage Lutris Runners`
|
`Manage Lutris Runners`
|
||||||
- Quickly install and delete Lutris wine runners
|
- Quickly install and delete Lutris wine runners
|
||||||
|
|
||||||
|
136
lug-helper.sh
136
lug-helper.sh
@ -15,6 +15,8 @@
|
|||||||
# - Check your system for optimal settings and
|
# - Check your system for optimal settings and
|
||||||
# change them as needed to prevent crashes.
|
# change them as needed to prevent crashes.
|
||||||
#
|
#
|
||||||
|
# - Install Star Citizen using a bundled Lutris install script
|
||||||
|
#
|
||||||
# - Easily install and remove Lutris wine Runners and DXVK versions.
|
# - Easily install and remove Lutris wine Runners and DXVK versions.
|
||||||
#
|
#
|
||||||
# - Qickly wipe your Star Citizen USER folder as is recommended
|
# - Qickly wipe your Star Citizen USER folder as is recommended
|
||||||
@ -46,6 +48,8 @@
|
|||||||
# Contributor: https://github.com/Wrzlprnft
|
# Contributor: https://github.com/Wrzlprnft
|
||||||
# Runner Downloader inspired by:
|
# Runner Downloader inspired by:
|
||||||
# https://github.com/richardtatum/sc-runner-updater
|
# https://github.com/richardtatum/sc-runner-updater
|
||||||
|
#
|
||||||
|
# License: GPLv3.0
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
# Check if script is run as root
|
# Check if script is run as root
|
||||||
@ -61,10 +65,10 @@ if [ ! -x "$(command -v curl)" ]; then
|
|||||||
notify-send "lug-helper" "The required package 'curl' was not found on this system.\n" --icon=dialog-warning
|
notify-send "lug-helper" "The required package 'curl' was not found on this system.\n" --icon=dialog-warning
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ ! -x "$(command -v mktemp)" ] || [ ! -x "$(command -v basename)" ]; then
|
if [ ! -x "$(command -v mktemp)" ] || [ ! -x "$(command -v sort)" ] || [ ! -x "$(command -v basename)" ] || [ ! -x "$(command -v realpath)" ] || [ ! -x "$(command -v dirname)" ]; then
|
||||||
# Print to stderr and also try warning the user through notify-send
|
# Print to stderr and also try warning the user through notify-send
|
||||||
printf "lug-helper.sh: One or more required packages were not found on this system.\nPlease check that the following packages are installed:\n- mktemp (part of gnu coreutils)\n- basename (part of gnu coreutils)\n" 1>&2
|
printf "lug-helper.sh: One or more required packages were not found on this system.\nPlease check that the following coreutils packages are installed:\n- mktemp\n- sort\n- basename\n- realpath\n- dirname\n" 1>&2
|
||||||
notify-send "lug-helper" "One or more required packages were not found on this system.\nPlease check that the following packages are installed:\n- mktemp (part of gnu coreutils)\n- basename (part of gnu coreutils)\n" --icon=dialog-warning
|
notify-send "lug-helper" "One or more required packages were not found on this system.\nPlease check that the following coreutils packages are installed:\n- mktemp\n- sort\n- basename\n- realpath\n- dirname\n" --icon=dialog-warning
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -78,6 +82,9 @@ data_dir="${XDG_DATA_HOME:-$HOME/.local/share}"
|
|||||||
# .config subdirectory
|
# .config subdirectory
|
||||||
conf_subdir="starcitizen-lug"
|
conf_subdir="starcitizen-lug"
|
||||||
|
|
||||||
|
# Helper directory
|
||||||
|
helper_dir="$(realpath "$0" | xargs dirname)"
|
||||||
|
|
||||||
# Temporary directory
|
# Temporary directory
|
||||||
tmp_dir="$(mktemp -d --suffix=".lughelper")"
|
tmp_dir="$(mktemp -d --suffix=".lughelper")"
|
||||||
trap 'rm -r "$tmp_dir"' EXIT
|
trap 'rm -r "$tmp_dir"' EXIT
|
||||||
@ -105,7 +112,7 @@ runners_dir="$data_dir/lutris/runners/wine"
|
|||||||
# The second is expected to contain the github api releases url
|
# The second is expected to contain the github api releases url
|
||||||
# ie. "RawFox" "https://api.github.com/repos/rawfoxDE/raw-wine/releases"
|
# ie. "RawFox" "https://api.github.com/repos/rawfoxDE/raw-wine/releases"
|
||||||
runner_sources=(
|
runner_sources=(
|
||||||
"RawFox" "https://api.github.com/repos/rawfoxDE/raw-wine/releases"
|
"RawFox" "https://api.github.com/repos/starcitizen-lug/raw-wine/releases"
|
||||||
"Molotov/Snatella" "https://api.github.com/repos/snatella/wine-runner-sc/releases"
|
"Molotov/Snatella" "https://api.github.com/repos/snatella/wine-runner-sc/releases"
|
||||||
"/dev/null" "https://api.github.com/repos/gort818/wine-sc-lug/releases"
|
"/dev/null" "https://api.github.com/repos/gort818/wine-sc-lug/releases"
|
||||||
"GloriousEggroll" "https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases"
|
"GloriousEggroll" "https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases"
|
||||||
@ -138,16 +145,19 @@ menu_option_height="25"
|
|||||||
# Otherwise, default to the logo in the same directory
|
# Otherwise, default to the logo in the same directory
|
||||||
if [ -f "/usr/share/pixmaps/lug-logo.png" ]; then
|
if [ -f "/usr/share/pixmaps/lug-logo.png" ]; then
|
||||||
lug_logo="/usr/share/pixmaps/lug-logo.png"
|
lug_logo="/usr/share/pixmaps/lug-logo.png"
|
||||||
elif [ -f "lug-logo.png" ]; then
|
elif [ -f "$helper_dir/lug-logo.png" ]; then
|
||||||
lug_logo="lug-logo.png"
|
lug_logo="$helper_dir/lug-logo.png"
|
||||||
else
|
else
|
||||||
lug_logo="info"
|
lug_logo="info"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Lutris install script
|
||||||
|
install_script="$helper_dir/lug-lutris-install.json"
|
||||||
|
|
||||||
# Github repo and script version info
|
# Github repo and script version info
|
||||||
repo="the-sane/lug-helper"
|
repo="starcitizen-lug/lug-helper"
|
||||||
releases_url="https://github.com/the-sane/lug-helper/releases"
|
releases_url="https://github.com/$repo/releases"
|
||||||
current_version="v1.11.1"
|
current_version="v1.14"
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
############################################################################
|
############################################################################
|
||||||
@ -304,7 +314,7 @@ menu() {
|
|||||||
elif [ -z "$menu_height" ]; then
|
elif [ -z "$menu_height" ]; then
|
||||||
debug_print exit "Script error: The string 'menu_height' was not set\nbefore calling the menu function. Aborting."
|
debug_print exit "Script error: The string 'menu_height' was not set\nbefore calling the menu function. Aborting."
|
||||||
elif [ -z "$cancel_label" ]; then
|
elif [ -z "$cancel_label" ]; then
|
||||||
debug_print exit "Script error: The string 'menu_height' was not set\nbefore calling the menu function. Aborting."
|
debug_print exit "Script error: The string 'cancel_label' was not set\nbefore calling the menu function. Aborting."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Use Zenity if it is available
|
# Use Zenity if it is available
|
||||||
@ -637,7 +647,7 @@ mapcount_check() {
|
|||||||
# Add to the results and actions arrays
|
# Add to the results and actions arrays
|
||||||
if [ "$mapcount" -ge 16777216 ]; then
|
if [ "$mapcount" -ge 16777216 ]; then
|
||||||
# All good
|
# All good
|
||||||
preflight_pass+=("vm.max_map_count is set to at least 16777216.")
|
preflight_pass+=("vm.max_map_count is set to $mapcount.")
|
||||||
elif grep -E -x -q "vm.max_map_count" /etc/sysctl.conf /etc/sysctl.d/* 2>/dev/null; then
|
elif grep -E -x -q "vm.max_map_count" /etc/sysctl.conf /etc/sysctl.d/* 2>/dev/null; then
|
||||||
# Was it supposed to have been set by sysctl?
|
# Was it supposed to have been set by sysctl?
|
||||||
preflight_fail+=("vm.max_map_count is configured to at least 16777216 but the setting has not been loaded by your system.")
|
preflight_fail+=("vm.max_map_count is configured to at least 16777216 but the setting has not been loaded by your system.")
|
||||||
@ -702,7 +712,7 @@ filelimit_check() {
|
|||||||
# Add to the results and actions arrays
|
# Add to the results and actions arrays
|
||||||
if [ "$filelimit" -ge 524288 ]; then
|
if [ "$filelimit" -ge 524288 ]; then
|
||||||
# All good
|
# All good
|
||||||
preflight_pass+=("Hard open file descriptors limit is set to at least 524288.")
|
preflight_pass+=("Hard open file descriptors limit is set to $filelimit.")
|
||||||
else
|
else
|
||||||
# The file limit should be changed
|
# The file limit should be changed
|
||||||
preflight_fail+=("Your hard open file descriptors limit is $filelimit\nand should be set to at least 524288\nto increase the maximum number of open files.")
|
preflight_fail+=("Your hard open file descriptors limit is $filelimit\nand should be set to at least 524288\nto increase the maximum number of open files.")
|
||||||
@ -746,6 +756,23 @@ avx_check() {
|
|||||||
|
|
||||||
#------------------------- end preflight check functions ---------------------#
|
#------------------------- end preflight check functions ---------------------#
|
||||||
|
|
||||||
|
# Install Star Citizen using Lutris
|
||||||
|
install_game() {
|
||||||
|
# Check if Lutris is installed
|
||||||
|
if [ ! -x "$(command -v lutris)" ]; then
|
||||||
|
message warning "Lutris is required but does not appear to be installed."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
# Check if the install script exists
|
||||||
|
if [ ! -f "$install_script" ]; then
|
||||||
|
message warning "Lutris install script not found.\n\n$install_script\n\nIt is included in our official releases here:\n$releases_url"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
lutris --install "$install_script" &
|
||||||
|
message info "The installation will continue in Lutris"
|
||||||
|
}
|
||||||
|
|
||||||
# Delete the shaders directory
|
# Delete the shaders directory
|
||||||
rm_shaders() {
|
rm_shaders() {
|
||||||
# Get/Set directory paths
|
# Get/Set directory paths
|
||||||
@ -807,17 +834,17 @@ lutris_restart() {
|
|||||||
#------------------------- begin download functions ----------------------------#
|
#------------------------- begin download functions ----------------------------#
|
||||||
|
|
||||||
# Display post download message or instructions if needed
|
# Display post download message or instructions if needed
|
||||||
# Expects the variables message_heading, post_download_msg1,
|
# Expects the variables message_heading, post_download_msg_text,
|
||||||
# post_download_msg2, and downloaded_item_name
|
# post_download_msg_italics, and downloaded_item_name
|
||||||
post_download() {
|
post_download() {
|
||||||
if [ "$trigger_post_download" = "true" ]; then
|
if [ "$trigger_post_download" = "true" ]; then
|
||||||
message_heading="Download Complete"
|
message_heading="Download Complete"
|
||||||
|
|
||||||
if [ "$use_zenity" -eq 1 ]; then
|
if [ "$use_zenity" -eq 1 ]; then
|
||||||
message_heading="<b>$message_heading</b>"
|
message_heading="<b>$message_heading</b>"
|
||||||
post_download_msg2="<i>$post_download_msg2</i>"
|
post_download_msg_italics="<i>$post_download_msg_italics</i>"
|
||||||
fi
|
fi
|
||||||
message info "$message_heading\n\n$post_download_msg1\n\n$post_download_msg2\n$downloaded_item_name"
|
message info "$message_heading\n\n$post_download_msg_text\n\n$post_download_msg_italics\n$downloaded_item_name"
|
||||||
fi
|
fi
|
||||||
trigger_post_download="false"
|
trigger_post_download="false"
|
||||||
}
|
}
|
||||||
@ -972,10 +999,10 @@ download_install() {
|
|||||||
num_files=0
|
num_files=0
|
||||||
for extracted_item in "$tmp_dir/$download_name"/*; do
|
for extracted_item in "$tmp_dir/$download_name"/*; do
|
||||||
if [ -d "$extracted_item" ]; then
|
if [ -d "$extracted_item" ]; then
|
||||||
num_dirs="$((num_dirs+1))"
|
num_dirs="$(($num_dirs+1))"
|
||||||
extracted_dir="$(basename "$extracted_item")"
|
extracted_dir="$(basename "$extracted_item")"
|
||||||
elif [ -f "$extracted_item" ]; then
|
elif [ -f "$extracted_item" ]; then
|
||||||
num_files="$((num_files+1))"
|
num_files="$(($num_files+1))"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -1240,11 +1267,11 @@ runner_manage() {
|
|||||||
# Set the post download instructions
|
# Set the post download instructions
|
||||||
# Format:
|
# Format:
|
||||||
# A header is automatically displayed that reads: Download Complete
|
# A header is automatically displayed that reads: Download Complete
|
||||||
# msg1 is displayed below the header
|
# msg_text is displayed below the header
|
||||||
# msg2 is displayed below that in italics when zenity is in use
|
# msg_italics is displayed below that in italics when zenity is in use
|
||||||
# Lastly, the downloaded directory name is automatically displayed
|
# Lastly, the downloaded directory name is automatically displayed
|
||||||
post_download_msg1="Select the runner in Lutris from the dropdown menu"
|
post_download_msg_text="Select the runner in Lutris from the dropdown menu"
|
||||||
post_download_msg2="Configure->Runner Options->Wine version"
|
post_download_msg_italics="Configure->Runner Options->Wine version"
|
||||||
|
|
||||||
# Call the download_manage function with the above configuration
|
# Call the download_manage function with the above configuration
|
||||||
# The argument passed to the function is used for special handling
|
# The argument passed to the function is used for special handling
|
||||||
@ -1271,11 +1298,11 @@ dxvk_manage() {
|
|||||||
# Set the post download instructions
|
# Set the post download instructions
|
||||||
# Format:
|
# Format:
|
||||||
# A header is automatically displayed that reads: Download Complete
|
# A header is automatically displayed that reads: Download Complete
|
||||||
# msg1 is displayed below the header
|
# msg_text is displayed below the header
|
||||||
# msg2 is displayed below that in italics when zenity is in use
|
# msg_italics is displayed below that in italics when zenity is in use
|
||||||
# Lastly, the downloaded directory name is automatically displayed
|
# Lastly, the downloaded directory name is automatically displayed
|
||||||
post_download_msg1="Type the DXVK folder name in your Lutris settings"
|
post_download_msg_text="Type the DXVK folder name in your Lutris settings"
|
||||||
post_download_msg2="Configure->Runner Options->DXVK version"
|
post_download_msg_italics="Configure->Runner Options->DXVK version"
|
||||||
|
|
||||||
# Call the download_manage function with the above configuration
|
# Call the download_manage function with the above configuration
|
||||||
# The argument passed to the function is used for special handling
|
# The argument passed to the function is used for special handling
|
||||||
@ -1393,6 +1420,48 @@ preflight_check() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deploy Easy Anti-Cheat Workaround
|
||||||
|
eac_workaround() {
|
||||||
|
# Get/set directory paths
|
||||||
|
getdirs
|
||||||
|
|
||||||
|
# Set the EAC directory path and hosts modification
|
||||||
|
eac_dir="$wine_prefix/drive_c/users/$USER/AppData/Roaming/EasyAntiCheat"
|
||||||
|
eac_hosts="127.0.0.1 modules-cdn.eac-prod.on.epicgames.com"
|
||||||
|
|
||||||
|
# Check if EAC is installed
|
||||||
|
if [ ! -d "$eac_dir" ]; then
|
||||||
|
message info "Easy Anti-Cheat does not appear to be installed.\nThere is nothing to do!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configure message variables
|
||||||
|
eac_title="Easy Anti-Cheat Workaround"
|
||||||
|
eac_hosts_formatted="$eac_hosts"
|
||||||
|
eac_dir_formatted="$eac_dir"
|
||||||
|
if [ "$use_zenity" -eq 1 ]; then
|
||||||
|
eac_title="<b>$eac_title</b>"
|
||||||
|
eac_hosts_formatted="<i>$eac_hosts_formatted</i>"
|
||||||
|
eac_dir_formatted="<i>$eac_dir_formatted</i>"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if message question "$eac_title\n\nThe following entry will be added to /etc/hosts:\n$eac_hosts_formatted\n\nThe following directory will be deleted:\n$eac_dir_formatted\n\n\nTo revert these changes, delete the above line from\n/etc/hosts and relaunch the game\n\nDo you want to proceed?"; then
|
||||||
|
debug_print continue "Editing hosts file..."
|
||||||
|
|
||||||
|
# Use pollkit's pkexec for gui with a fallback to sudo
|
||||||
|
if [ -x "$(command -v pkexec)" ]; then
|
||||||
|
pkexec sh -c "echo $eac_hosts '#Star Citizen EAC workaround' >> /etc/hosts"
|
||||||
|
else
|
||||||
|
sudo sh -c "echo $eac_hosts '#Star Citizen EAC workaround' >> /etc/hosts"
|
||||||
|
fi
|
||||||
|
|
||||||
|
debug_print continue "Deleting $eac_dir..."
|
||||||
|
rm -r "$eac_dir"
|
||||||
|
|
||||||
|
message info "Easy Anti-Cheat workaround has been deployed!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Show maintenance/troubleshooting options
|
# Show maintenance/troubleshooting options
|
||||||
maintenance_menu() {
|
maintenance_menu() {
|
||||||
# Loop the menu until the user selects quit
|
# Loop the menu until the user selects quit
|
||||||
@ -1431,7 +1500,7 @@ maintenance_menu() {
|
|||||||
# Get a random Penguin's Star Citizen referral code
|
# Get a random Penguin's Star Citizen referral code
|
||||||
referral_randomizer() {
|
referral_randomizer() {
|
||||||
# Populate the referral codes array
|
# Populate the referral codes array
|
||||||
referral_codes=("STAR-4TZD-6KMM" "STAR-4XM2-VM99" "STAR-2NPY-FCR2" "STAR-T9Z9-7W6P" "STAR-VLBF-W2QR" "STAR-BYR6-YHMF" "STAR-3X2H-VZMX" "STAR-BRWN-FB9T" "STAR-FG6Y-N4Q4" "STAR-VLD6-VZRG" "STAR-T9KF-LV77" "STAR-4XHB-R7RF" "STAR-9NVF-MRN7" "STAR-3Q4W-9TC3" "STAR-3SBK-7QTT" "STAR-XFBT-9TTK" "STAR-F3H9-YPHN" "STAR-BYK6-RCCL" "STAR-XCKH-W6T7" "STAR-H292-39WK" "STAR-ZRT5-PJB7" "STAR-GMBP-SH9Y" "STAR-PLWB-LMFY" "STAR-TNZN-H4ZT" "STAR-T5G5-L2GJ" "STAR-6TPV-7QH2" "STAR-THHD-TV3Y" "STAR-7ZFS-PK2L" "STAR-SRQN-43TB" "STAR-9TDG-D4H9" "STAR-BPH3-THJC" "STAR-HL3M-R5KC" "STAR-GBS5-LTVB" "STAR-CJ3Y-KZZ4" "STAR-5GRM-7HBY" "STAR-G2GX-Y2QJ" "STAR-YWY3-H4XX" "STAR-6VGM-PTKC" "STAR-T6MZ-QFHX" "STAR-T2K6-LXFW" "STAR-XN25-9CJJ" "STAR-47V3-4QGB")
|
referral_codes=("STAR-4TZD-6KMM" "STAR-4XM2-VM99" "STAR-2NPY-FCR2" "STAR-T9Z9-7W6P" "STAR-VLBF-W2QR" "STAR-BYR6-YHMF" "STAR-3X2H-VZMX" "STAR-BRWN-FB9T" "STAR-FG6Y-N4Q4" "STAR-VLD6-VZRG" "STAR-T9KF-LV77" "STAR-4XHB-R7RF" "STAR-9NVF-MRN7" "STAR-3Q4W-9TC3" "STAR-3SBK-7QTT" "STAR-XFBT-9TTK" "STAR-F3H9-YPHN" "STAR-BYK6-RCCL" "STAR-XCKH-W6T7" "STAR-H292-39WK" "STAR-ZRT5-PJB7" "STAR-GMBP-SH9Y" "STAR-PLWB-LMFY" "STAR-TNZN-H4ZT" "STAR-T5G5-L2GJ" "STAR-6TPV-7QH2" "STAR-THHD-TV3Y" "STAR-7ZFS-PK2L" "STAR-SRQN-43TB" "STAR-9TDG-D4H9" "STAR-BPH3-THJC" "STAR-HL3M-R5KC" "STAR-GBS5-LTVB" "STAR-CJ3Y-KZZ4" "STAR-5GRM-7HBY" "STAR-G2GX-Y2QJ" "STAR-YWY3-H4XX" "STAR-6VGM-PTKC" "STAR-T6MZ-QFHX" "STAR-T2K6-LXFW" "STAR-XN25-9CJJ" "STAR-47V3-4QGB" "STAR-YD4Z-TQZV" "STAR-XLN7-9XNJ" "STAR-N62T-2R39" "STAR-3S3D-9HXQ" "STAR-TRZF-NMCV" "STAR-TLLJ-SMG4")
|
||||||
# Pick a random array element. Scale a floating point number for
|
# Pick a random array element. Scale a floating point number for
|
||||||
# a more random distribution than simply calling RANDOM
|
# a more random distribution than simply calling RANDOM
|
||||||
random_code="${referral_codes[$(awk '{srand($2); print int(rand()*$1)}' <<< "${#referral_codes[@]} $RANDOM")]}"
|
random_code="${referral_codes[$(awk '{srand($2); print int(rand()*$1)}' <<< "${#referral_codes[@]} $RANDOM")]}"
|
||||||
@ -1497,7 +1566,8 @@ live_or_ptu="$live_dir"
|
|||||||
# Check if a newer verison of the script is available
|
# Check if a newer verison of the script is available
|
||||||
latest_version="$(get_latest_release "$repo")"
|
latest_version="$(get_latest_release "$repo")"
|
||||||
|
|
||||||
if [ "$latest_version" != "$current_version" ]; then
|
if [ "$latest_version" != "$current_version" ] &&
|
||||||
|
[ "$current_version" = "$(printf "$current_version\n$latest_version" | sort -V | head -n1)" ]; then
|
||||||
if [ "$use_zenity" -eq 1 ]; then
|
if [ "$use_zenity" -eq 1 ]; then
|
||||||
releases_url_formatted="<a href='$releases_url'>$releases_url</a>"
|
releases_url_formatted="<a href='$releases_url'>$releases_url</a>"
|
||||||
else
|
else
|
||||||
@ -1518,6 +1588,7 @@ if [ "$#" -gt 0 ]; then
|
|||||||
Usage: lug-helper <options>
|
Usage: lug-helper <options>
|
||||||
-p, --preflight-check Run system optimization checks
|
-p, --preflight-check Run system optimization checks
|
||||||
-m, --manage-runners Install or remove Lutris runners
|
-m, --manage-runners Install or remove Lutris runners
|
||||||
|
-k, --manage-dxvk Install or remove DXVK versions
|
||||||
-u, --delete-user-folder Delete Star Citizen USER folder, preserving keybinds
|
-u, --delete-user-folder Delete Star Citizen USER folder, preserving keybinds
|
||||||
-s, --delete-shaders Delete Star Citizen shaders directory
|
-s, --delete-shaders Delete Star Citizen shaders directory
|
||||||
-c, --delete-dxvk-cache Delete Star Citizen dxvk cache file
|
-c, --delete-dxvk-cache Delete Star Citizen dxvk cache file
|
||||||
@ -1535,6 +1606,9 @@ Usage: lug-helper <options>
|
|||||||
--manage-runners | -m )
|
--manage-runners | -m )
|
||||||
cargs+=("runner_manage")
|
cargs+=("runner_manage")
|
||||||
;;
|
;;
|
||||||
|
--manage-dxvk | -k )
|
||||||
|
cargs+=("dxvk_manage")
|
||||||
|
;;
|
||||||
--delete-user-folder | -u )
|
--delete-user-folder | -u )
|
||||||
cargs+=("sanitize")
|
cargs+=("sanitize")
|
||||||
;;
|
;;
|
||||||
@ -1606,6 +1680,8 @@ while true; do
|
|||||||
|
|
||||||
# Configure the menu options
|
# Configure the menu options
|
||||||
preflight_msg="Preflight Check (System Optimization)"
|
preflight_msg="Preflight Check (System Optimization)"
|
||||||
|
install_msg="Install Star Citizen"
|
||||||
|
eac_msg="Deploy Easy Anti-Cheat Workaround"
|
||||||
runners_msg="Manage Lutris Runners"
|
runners_msg="Manage Lutris Runners"
|
||||||
dxvk_msg="Manage DXVK Versions"
|
dxvk_msg="Manage DXVK Versions"
|
||||||
maintenance_msg="Maintenance and Troubleshooting"
|
maintenance_msg="Maintenance and Troubleshooting"
|
||||||
@ -1613,9 +1689,9 @@ while true; do
|
|||||||
quit_msg="Quit"
|
quit_msg="Quit"
|
||||||
|
|
||||||
# Set the options to be displayed in the menu
|
# Set the options to be displayed in the menu
|
||||||
menu_options=("$preflight_msg" "$runners_msg" "$dxvk_msg" "$maintenance_msg" "$randomizer_msg" "$quit_msg")
|
menu_options=("$preflight_msg" "$install_msg" "$eac_msg" "$runners_msg" "$dxvk_msg" "$maintenance_msg" "$randomizer_msg" "$quit_msg")
|
||||||
# Set the corresponding functions to be called for each of the options
|
# Set the corresponding functions to be called for each of the options
|
||||||
menu_actions=("preflight_check" "runner_manage" "dxvk_manage" "maintenance_menu" "referral_randomizer" "quit")
|
menu_actions=("preflight_check" "install_game" "eac_workaround" "runner_manage" "dxvk_manage" "maintenance_menu" "referral_randomizer" "quit")
|
||||||
|
|
||||||
# Calculate the total height the menu should be
|
# Calculate the total height the menu should be
|
||||||
menu_height="$(($menu_option_height * ${#menu_options[@]} + $menu_text_height))"
|
menu_height="$(($menu_option_height * ${#menu_options[@]} + $menu_text_height))"
|
||||||
|
90
lug-lutris-install.json
Normal file
90
lug-lutris-install.json
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
{
|
||||||
|
"count": 1,
|
||||||
|
"next": null,
|
||||||
|
"previous": null,
|
||||||
|
"results": [
|
||||||
|
{
|
||||||
|
"id": 10872,
|
||||||
|
"game_id": 17622,
|
||||||
|
"game_slug": "star-citizen",
|
||||||
|
"name": "Star Citizen",
|
||||||
|
"year": 2016,
|
||||||
|
"user": "ungarscool1",
|
||||||
|
"runner": "wine",
|
||||||
|
"slug": "starcitizen-lutris-install",
|
||||||
|
"version": "LIVE/PTU",
|
||||||
|
"description": "Welcome to the Star Citizen installer maintained by the Star Citizen LUG!\r\nBefore continuing, please see our Quick Start Guide:\r\nhttps://github.com/starcitizen-lug/information-howtos/wiki\r\n\r\nFor help with the installer or to just hang out, we invite Linux Star Citizen players to join us: https://robertsspaceindustries.com/orgs/LUG/",
|
||||||
|
"notes": "Performance may be choppy the first couple minutes after visiting a new place or performing a new activity while shaders compile. Subsequent arrival should not be choppy.\r\n\r\nIf you receive a Runtime Error you can continue using Star Citizen by dragging the dialog box to the side, but in-game VoIP and FoIP will cease to function until Star Citizen is restarted. Drop in to the LUG group's chat and forums, we have custom runners to work around this problem.\r\n\r\nPlease make sure you have all Wine dependencies properly installed, or your game may crash during start-up. See our wiki linked above for more information and instructions.\r\n\r\nTo prevent crashes in areas with lots of geometry, the game needs a Linux resource limit named \"vm.max_map_count\" increased. If you are following our Quick Start Guide and using our LUG Helper, the Preflight Check will do this for you. To set it manually, execute:\r\n\r\nsudo sysctl -w vm.max_map_count=16777216\r\n\r\nConsult your distro's documentation on how to set this permanently, or ask a LUG member.\r\n\r\nSee you in the 'verse!",
|
||||||
|
"created_at": "2018-11-15T17:43:07.367000Z",
|
||||||
|
"updated_at": "2021-12-24T00:49:16.775712Z",
|
||||||
|
"draft": false,
|
||||||
|
"published": true,
|
||||||
|
"published_by": 64834,
|
||||||
|
"rating": "",
|
||||||
|
"steamid": null,
|
||||||
|
"gogid": null,
|
||||||
|
"gogslug": "",
|
||||||
|
"humbleid": "",
|
||||||
|
"humblestoreid": "",
|
||||||
|
"humblestoreid_real": "",
|
||||||
|
"script": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"client": "https://install.robertsspaceindustries.com/star-citizen/RSI-Setup-1.5.4.exe"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"game": {
|
||||||
|
"arch": "win64",
|
||||||
|
"args": null,
|
||||||
|
"exe": "drive_c/Program Files/Roberts Space Industries/RSI Launcher/RSI Launcher.exe",
|
||||||
|
"prefix": "$GAMEDIR"
|
||||||
|
},
|
||||||
|
"installer": [
|
||||||
|
{
|
||||||
|
"task": {
|
||||||
|
"arch": "win64",
|
||||||
|
"description": "Creating Wine prefix",
|
||||||
|
"name": "create_prefix",
|
||||||
|
"prefix": "$GAMEDIR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"task": {
|
||||||
|
"app": "--force arial vcrun2019 win10",
|
||||||
|
"arch": "win64",
|
||||||
|
"description": "Installing dlls",
|
||||||
|
"name": "winetricks",
|
||||||
|
"prefix": "$GAMEDIR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"task": {
|
||||||
|
"arch": "win64",
|
||||||
|
"args": "/S",
|
||||||
|
"description": "Installing client",
|
||||||
|
"executable": "client",
|
||||||
|
"name": "wineexec",
|
||||||
|
"prefix": "$GAMEDIR"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"system": {
|
||||||
|
"env": {
|
||||||
|
"DXVK_HUD": "0",
|
||||||
|
"__GL_SHADER_DISK_CACHE": 1,
|
||||||
|
"__GL_SHADER_DISK_CACHE_SIZE": "1073741824",
|
||||||
|
"__GL_THREADED_OPTIMIZATIONS": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wine": {
|
||||||
|
"dxvk": true,
|
||||||
|
"esync": true,
|
||||||
|
"overrides": {
|
||||||
|
"nvapi,nvapi64": "disabled"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content": "files:\n- client: https://install.robertsspaceindustries.com/star-citizen/RSI-Setup-1.5.4.exe\ngame:\n arch: win64\n args: null\n exe: drive_c/Program Files/Roberts Space Industries/RSI Launcher/RSI Launcher.exe\n prefix: $GAMEDIR\ninstaller:\n- task:\n arch: win64\n description: Creating Wine prefix\n name: create_prefix\n prefix: $GAMEDIR\n- task:\n app: --force arial vcrun2019 win10\n arch: win64\n description: Installing dlls\n name: winetricks\n prefix: $GAMEDIR\n- task:\n arch: win64\n args: /S\n description: Installing client\n executable: client\n name: wineexec\n prefix: $GAMEDIR\nsystem:\n env:\n DXVK_HUD: '0'\n __GL_SHADER_DISK_CACHE: 1\n __GL_SHADER_DISK_CACHE_SIZE: '1073741824'\n __GL_THREADED_OPTIMIZATIONS: '1'\nwine:\n dxvk: true\n esync: true\n overrides:\n nvapi,nvapi64: disabled\n"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Reference in New Issue
Block a user