#!/bin/bash # João Sousa 2022 # Instalando o Roblox no Ubuntu # Testado no Ubuntu 20.04LTS 30/01/2022 # Testado no Ubuntu 22.04LTS 26/12/2022 # v0.2 ( 26/12/2022 ) # winehq-staging # wine version 8 # dxvk 2.0 # Nova versão do roblox utiliza um "launcher" # Algumas funcionalidades do "launcher" ainda não funcionam no wine # Utilize o browser para lançar os jogos # v0.1 ( 30/01/2022 ) # winehq-stable # wine version 7 # dxvk 1.9.3 # Bug cursor do mouse fica "preso" quando utiliza a tecla direita. # Para voltar a ter o cursor alterne entre janelas [alt] + [tab] # Mantenha sempre uma janela do firefox aberta atrás da janela do jogo :P # Ou utilize um gamepad :) # Opcional mas recomendado, instalar o DXVK (não é compatível com o Roblox Studio) BASEDIR="$(realpath "$(dirname "$0")")" EXEROBLOX="$2" ############################################### setup_wine(){ echo "" echo "########################################" echo "setup_wine..." ############################################### cd ${HOME} mkdir ROBLOX cd ROBLOX mkdir pfx sudo apt update sudo apt upgrade -y sudo add-apt-repository universe -y sudo add-apt-repository multiverse -y sudo apt-get update # Instalar wine pelo repo oficial do wine sudo dpkg --add-architecture i386 sudo mkdir -pm755 /etc/apt/keyrings sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq # Forma antiga de armazenar keys do wine ( via trusted.gpg ) #wget -nc https://dl.winehq.org/wine-builds/winehq.key #sudo apt-key add winehq.key # Forma antiga de adicionar o repo do wine ( via sources.list ) #sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ $(lsb_release -cs) main' # A variável $(lsb_release -cs) coloca o code name da veresão do Ubuntu focal jammy etc... sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources sudo apt update # Possíveis opçõesde winehq : stable staging devel WINE_VERSION=staging # Notas: # Nova versão do dxvk 2.0 só funciona com winehq-staging sudo apt install --install-recommends winehq-${WINE_VERSION} -y # Setup inicial #WINEPREFIX=/home/${USER}/ROBLOX/pfx wine winecfg # Remove popup para instalar mono export WINEDLLOVERRIDES="mscoree,mshtml=" # Wine prefix export WINEPREFIX=/home/"${USER}"/ROBLOX/pfx # Mudar para windowns 10 winecfg /v win10 wineserver --wait # Remover links simbólicos do wine para as pastas "xdg-user-dirs" do host # Criar as pastas "xdg-user-dirs" só para o roblox rm "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Desktop" mkdir -p "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Desktop" rm "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Documents" mkdir -p "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Documents" rm "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Downloads" mkdir -p "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Downloads" rm "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Music" mkdir -p "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Music" rm "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Pictures" mkdir -p "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Pictures" rm "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Videos" mkdir -p "/home/${USER}/ROBLOX/pfx/drive_c/users/${USER}/Videos" # Remove wine-*.desktop files com MimeType cd /home/${USER}/.local/share/applications/ rm wine-*.desktop cd ####### RobloxPlayer.desktop # MIME scheme para o roblox-player # Cria um arquivo ~/.local/share/applications/RobloxPlayer.desktop com o conteúdo em baixo: cat > ~/.local/share/applications/RobloxPlayer.desktop << EOF [Desktop Entry] Name=Roblox Player Exec=env WINEPREFIX="/home/${USER}/ROBLOX/pfx" DXVK_HUD=fps,version,scale=0.7 wine /home/${USER}/ROBLOX/roblox.exe %u Type=Application StartupNotify=true Icon=RobloxPlayerLauncher MimeType=x-scheme-handler/roblox-player; StartupWMClass=robloxplayerlauncher.exe NoDisplay=true EOF chmod +x "${HOME}/.local/share/applications/RobloxPlayer.desktop" # Nota: "DXVK_HUD=fps,version,scale=0.7" é opcional # Serve para mostrar um hud com os FPS e a versão do DXVK. # O roblox lança os jogos através de um link no browser (scheme roblox-player) que abre o jogo. # Para abilitar o scheme roblox-player no browser é preciso usar o comando. xdg-mime default RobloxPlayer.desktop x-scheme-handler/roblox-player # O comando em cima addiciona # x-scheme-handler/roblox-player=RobloxPlayer.desktop # Em /home/${USER}/.config/mimeapps.list # O RobloxPlayer.desktop não aparece no menu do desktop "NoDisplay=true" mas o firefox consegue executar através de um link no browser # Ao clicar num link de um jogo no site do roblox, uma janela popup aparece no firefox pedindo autorização para executar o "scheme roblox-player". } ############################################### setup_firefox_roblox() { echo "" echo "########################################" echo "setup_firefox_roblox..." ############################################### # Criar uma user session no Firefox só para usar com o Roblox. # firefox snap ou apt? if whereis firefox | grep -q snap ; then echo "firefox snap" mkdir -p "${HOME}/snap/firefox/common/.mozilla/firefox/roblox-profile" else echo "firefox apt" mkdir -p "${HOME}/.mozilla/firefox/roblox-profile" fi ####### FirefoxRoblox.desktop cat > ~/.local/share/applications/FirefoxRoblox.desktop << EOF [Desktop Entry] Version=1.0 Name=Roblox Comment=Browse Roblox Firefox GenericName=Web Browser Firefox para o roblox Keywords=Internet;WWW;Browser;Web;Explorer Exec=firefox-roblox.sh Terminal=false X-MultipleArgs=false Type=Application Icon=RobloxPlayerLauncher Categories=GNOME;GTK;Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall; StartupNotify=true EOF chmod +x "${HOME}/.local/share/applications/FirefoxRoblox.desktop" # Cria ~/bin se não existe e adiciona no .bashrc mkdir -p "${HOME}/bin" LINE='PATH="$HOME/bin:$PATH"' FILE=/home/$USER/.bashrc grep -q "$LINE" "$FILE" || echo "$LINE" >> "$FILE" cat > "${HOME}/bin/firefox-roblox.sh" << EOF #!/bin/bash # /opt/wine-${WINE_VERSION}/bin/wine # Detecta se tem permições em qualquer um dos usuarios ou grupos ls -all /opt/wine-${WINE_VERSION}/bin/wine | cut -d' ' -f1 | grep -q x && EXC_PERMISSION=true || EXC_PERMISSION=false if [ "$EXC_PERMISSION" = "true" ] ; then echo "ok" if whereis firefox | grep -q snap ; then echo "firefox snap" firefox --profile "${HOME}/snap/firefox/common/.mozilla/firefox/roblox-profile" https://www.roblox.com/ & else echo "firefox apt" firefox --profile "${HOME}/.mozilla/firefox/roblox-profile" https://www.roblox.com/ & fi else zenity --info --title "Wine Roblox!" --text "Wine desligado /opt/wine-${WINE_VERSION}/bin/wine \nPara Ligar: \nsudo chmod +x /opt/wine-${WINE_VERSION}/bin/wine" --width 450 fi # Remove os .desktops criados pelo wine de cada vez que o roblox faz um update. rm -r "/home/${USER}/.local/share/applications/wine/Programs/Roblox" # Cria link simbólico para updates ( nome do ficheiro muda consoante a versão ) find ~/ROBLOX/pfx/drive_c/Program\ Files\ \(x86\)/Roblox/Versions/version-* -name RobloxPlayerLauncher.exe -exec ln -sf '{}' ~/ROBLOX/roblox.exe ';' # Pasta de instalação em AppData? find ~/ROBLOX/pfx/drive_c/users/${USER}/AppData/Local/Roblox/Versions/version-* -name RobloxPlayerLauncher.exe -exec ln -sf '{}' ~/ROBLOX/roblox.exe ';' exit EOF chmod +x "${HOME}/bin/firefox-roblox.sh" } ############################################### setup_DXVK() { echo "" echo "########################################" echo "setup_DXVK..." ############################################### # DXVK ( melhora muito o desenpenho no player, mas cria problemas na execução do roblox studio ) # https://github.com/doitsujin/dxvk/releases #export WINEPREFIX=/home/${USER}/ROBLOX/pfx #./setup_dxvk.sh install # Exemplo para usar o hud do dxvk # Exec=env WINEPREFIX="/home/${USER}/ROBLOX/pfx" DXVK_HUD=scale=0.7,fps wine /home/tuxmind/ROBLOX/roblox.exe %u echo "setup DXVK" # Repositório github REPO="doitsujin/dxvk" DXVK_VERSION=`curl --silent "https://api.github.com/repos/${REPO}/releases/latest" | grep '"tag_name":' | cut -d'"' -f4 | cut -dv -f2` URL=`curl --silent "https://api.github.com/repos/${REPO}/releases/latest" | grep '"browser_download_url":' | cut -d'"' -f4` # Última versão testada que funciona # Versão 2.0 dá erro (24/11/2022) #https://github.com/doitsujin/dxvk/releases/download/v1.10.3/dxvk-1.10.3.tar.gz cd "${HOME}/ROBLOX" wget "$URL" tar -xvzf dxvk-"${DXVK_VERSION}".tar.gz cd dxvk-"${DXVK_VERSION}" export WINEPREFIX=/home/"${USER}"/ROBLOX/pfx sleep 3 ./setup_dxvk.sh install wineserver --wait } ############################################### instalar_roblox_exe() { echo "" echo "########################################" echo "instalar_roblox.." ############################################### echo "${EXEROBLOX}" echo "${BASEDIR}" #WINEPREFIX=/home/${USER}/ROBLOX/pfx wine RobloxPlayerLauncher.exe cp "${BASEDIR}/${EXEROBLOX}" /home/"${USER}"/ROBLOX/ cd "/home/${USER}/ROBLOX/" export WINEPREFIX=/home/"${USER}"/ROBLOX/pfx wine /home/"${USER}"/ROBLOX/"${EXEROBLOX}" wineserver --wait cd } ############################################### pos_install() { echo "" echo "########################################" echo "Criando link simbólico para o executável roblox.exe..." echo "Update .desktop files..." ############################################### # Cria link simbolico para executáveis no caso de existir um update que alterou o nome (versão) do exe. find ~/ROBLOX/pfx/drive_c/Program\ Files\ \(x86\)/Roblox/Versions/version-* -name RobloxPlayerLauncher.exe -exec ln -sf '{}' ~/ROBLOX/roblox.exe ';' # Pasta de instalação em AppData? find ~/ROBLOX/pfx/drive_c/users/${USER}/AppData/Local/Roblox/Versions/version-* -name RobloxPlayerLauncher.exe -exec ln -sf '{}' ~/ROBLOX/roblox.exe ';' #find ~/ROBLOX/pfx/drive_c/Program\ Files\ \(x86\)/Roblox/Versions/version-* -name RobloxStudioLauncherBeta.exe -exec ln -sf '{}' ~/ROBLOX/roblox-studio.exe ';' # Copia icon ****_RobloxPlayerLauncher.0" para local icons com nome de RobloxPlayerLauncher.png find ~/.local/share/icons/hicolor/64x63/apps/*RobloxPlayerLauncher* -exec cp '{}' ~/.local/share/icons/RobloxPlayerLauncher.png ';' # Remove wine Roblox.desktop files rm -r "/home/${USER}/.local/share/applications/wine/Programs/Roblox" # Remove wine-*.desktop files com MimeType cd "/home/${USER}/.local/share/applications/" rm wine-*.desktop # Restart gnome shell para *desktop files aparecerem nos menus ( só testei no X11 ) busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' } ############################################### instalar() { ############################################### setup_wine setup_firefox_roblox setup_DXVK instalar_roblox_exe pos_install } ############################################### remover_roblox() { ############################################### read -p "Tem certeza que pretende remover? (s/N): " -r REPLY if [ "$REPLY" = "s" ] || [ "$REPLY" = "sim" ] || [ "$REPLY" = "S" ] || [ "$REPLY" = "SIM" ]; then cd "${HOME}" rm -r ROBLOX/ rm bin/firefox-roblox.sh rm .local/share/applications/RobloxPlayer.desktop rm .local/share/applications/FirefoxRoblox.desktop rm .local/share/icons/RobloxPlayerLauncher.png cd .mozilla/firefox/ rm -r roblox-profile cd "${HOME}/snap/firefox/common/.mozilla/firefox" rm -r roblox-profile # Remove wine Roblox.desktop files rm -r "/home/${USER}/.local/share/applications/wine/Programs/Roblox" else echo "Manter a instalação do roblox com wine " && echo "" exit fi } ############################################### remover_wine() { ############################################### # Remove o roblox primeiro remover_roblox sudo apt remove wine sudo apt autoremove -y # Remove repositório do wine # Forma antiga de adicionar/remover ( sources.list ) sudo add-apt-repository -r -y "deb https://dl.winehq.org/wine-builds/ubuntu/ $(lsb_release -cs) main" # Remove repositório do wine cd /etc/apt/sources.list.d sudo rm winehq-$(lsb_release -cs).sources cd sudo apt update } ############################################### # Inicio ############################################### clear case "$1" in "instalar") echo "A iniciar instalação ..." instalar ;; "remover") echo "remover roblox e o wine ..." remover_wine ;; *) echo "Vá até https://www.roblox.com faça login e baixe o instalador." echo "Coloque o instalador exe do roblox na mesma pasta onde se encontra este script." echo "Parametros possíveis:" echo " " echo " " echo "" echo "Exemplo para instalação:" echo "" echo "./install-roblox-ubuntu-22-04.sh instalar RobloxPlayerLauncher.exe" ;; esac exit

html.cafe - a realtime HTML editor and host

Edit the html in the top panel, see the result here.
Save your page and get a link to view it live, anywhere.