Guest User

proton.sh

a guest
Nov 18th, 2025
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.17 KB | Gaming | 0 0
  1. #!/bin/sh
  2.  
  3. proton_ver="my"
  4. proton_dir="/opt/Proton-GE-Sh"
  5.  
  6. proton_run="$proton_dir/proton"
  7. proton_pfx="$HOME/.local/proton-${proton_ver}_compatdata"
  8.  
  9. quet_verbose=\0
  10. info_version=\0
  11. virt_desktop=\0
  12.  
  13. m_cmd="run"
  14. m_exe="winecfg"
  15. m_args=""
  16.  
  17. for i in "$@"; do
  18.   case $i in
  19.     --help | -h)
  20.       echo "  -h, --help       show this help"
  21.       echo "  -d, --desktop    open virtual desktop"
  22.       echo "  -v, --version    show proton version"
  23.       echo "  -q, --quet       no info in console"
  24.       echo "  -be              enable BepInEx Unity runtime"
  25.       echo "  -gl              use wine d3d instead dxvk"
  26.       echo "  -vk              use dxvk instead of d3dgl"
  27.       echo "  -jp              japanese locale"
  28.       echo "  -ja              japanese locale (alt)"
  29.       exit
  30.       ;;
  31.  
  32.     --desktop | -d)  virt_desktop=\1 ;;
  33.     --version | -v)  info_version=\1 ;;
  34.     --quet    | -q)  quet_verbose=\1 ;;
  35.  
  36.     -jp) export LANG="ja_JP.UTF-8" ;;
  37.     -ja) export LC_ALL="ja_JP" ;;
  38.     -be) export WINEDLLOVERRIDES="winhttp.dll=n,b" ;;
  39.     -vk) export PROTON_DXVK_D3D8=1
  40.          ;;
  41.     -gl) export PROTON_USE_WINED3D=1
  42.          export PROTON_USE_WINED3D11=1
  43.          export PROTON_NO_D3D11=0
  44.          export PROTON_NO_D3D10=0
  45.          ;;
  46.     --args=*)
  47.       m_args="${i#*=}"
  48.       ;;
  49.     *)
  50.       m_exe="$i"
  51.       ;;
  52.   esac
  53. done
  54.  
  55. export STEAM_COMPAT_DATA_PATH="$proton_pfx"
  56. export STEAM_COMPAT_CLIENT_INSTALL_PATH="$proton_pfx/compatclient"
  57.  
  58. if [ ! -f "$proton_run" ]; then
  59.   echo "$proton_run not found!";
  60.   exit
  61. elif [ $info_version -eq \1 ]; then
  62.   while read ln; do echo $ln; done < "$proton_dir/version";
  63.   exit
  64. elif [ $quet_verbose -eq \0 ]; then
  65.   printf "\n\033[34mProton found at\033[0m\n  $proton_run\n\n"
  66. fi
  67.  
  68. if [ !  -d "$STEAM_COMPAT_DATA_PATH" ]; then
  69.   mkdir -p "$STEAM_COMPAT_DATA_PATH"
  70. fi
  71.  
  72. if [ $virt_desktop -eq \1 ]; then
  73.   m_cmd="run explorer /desktop=1,1920x1080"
  74. fi
  75.  
  76. if [ $quet_verbose -eq \1 ]; then
  77.   "$proton_run" $m_cmd "$m_exe" "$m_args" &> /dev/null
  78. else
  79.   printf "\033[33mRun program\033[0m\n  $m_exe\n\n"
  80.   printf "\033[32mWith arguments\033[0m\n  $m_args\n\n"
  81.   "$proton_run" $m_cmd "$m_exe" "$m_args"
  82. fi
  83. sleep 1
  84.  
Advertisement
Add Comment
Please, Sign In to add comment