Como integrar os flatpaks Heroic e Steam?

Boa noite

Adicionei um jogo do heroic flatpak (através dos 3 pontinhos e clicando na opção “adicionar ao steam“) ao steam também flatpak, mas ele não inicia. Vi que é por causa do sandbox, mas queria saber se existe alguma forma de fazer funcionar? Ou se funciona apenas com steam nativo?

Estou fazendo isso porque o controle generico não funciona nesse jogo, então quero usar as configurações de controle da steam.

1 curtida

Para que a integração entre o Heroic Games Launcher e a Steam funcione você precisa informar para o Heroic onde a Steam está instalada. Aqui eu uso a Steam e o Heroic no formato Flatpak - tudo que eu precisei fazer foi adicionar o caminho completo da Steam nas opções do Heroic.

  • Na tela do Heroic clique em Configurações, depois em Geral e na tela que vai aparecer preencha corretamente o local de instalação da Steam.

Geralmente a Steam em flatpak fica em

/home/trocarPeloSeuUsuario/.var/app/com.valvesoftware.Steam/.steam/steam/

:vulcan_salute:

O jogo aparece na Steam, mas não inicia. No terminal aparece isso:

chdir "/home/aa" 
ERROR: ld.so: object '/home/aa/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrende
rer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. 
ERROR: ld.so: object '/home/aa/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrende
rer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. 
ERROR: ld.so: object '/home/aa/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/gameoverlayrende
rer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. 
pid 1368 != 1367, skipping destruction (fork without exec?) 
Game Recording - would start recording game 17043510569455321088, but recording for this game is disabled 
Adding process 1367 for gameID 17043510569455321088 
WARNING: discarding \_NET_WM_PID 2631 as invalid for X11 window - use specialized XCB_X11_TO_PID function! 
Game Recording - game stopped \[gameid=17043510569455321088\] 
Removing process 1367 for gameID 17043510569455321088

Talvez os flatpak não tenham as permisões de escrita e leitura de dados necessarias para abrir os jogos instalados em outro programa, tentei editar as permisões com flatseal mas por enquanto sem sucesso

Encontrei este post Running Heroic flatpak games on Steam flatpak. · GitHub que indica como permitir org.freedesktop.Flatpak ao Steam para interagir com outros Flatpaks. Não cheguei a testar, pois acredito que não faça sentido aplicar isso aos Flatpaks.

Acabei criando um container do openSUSE com o Distrobox. O que fiz foi:

1 - Criar a pasta distrobox em /home/usuário/ para separar os arquivos de configuração do container e da minha home (host).

2 - Criar o container com:
distrobox create --unshare-netns --image registry.opensuse.org/opensuse/tumbleweed:latest --name game --home /home/usuário/distrobox/

3 - Criar atalhos no terminal para facilitar abrir e pausar o container, adicionando ao final do arquivo ~/.bashrc as linhas:
alias dstop=‘distrobox stop -a -Y’
alias dgame=‘distrobox enter game’

4 - Dentro do container, exportar os aplicativos para que apareçam no menu do sistema:
distrobox-export --app steam
distrobox-export --app heroic

Instalei o Distroshelf para gerenciar o container, mas prefiro usar o terminal mesmo. Fiquei surpreso com o openSUSE: para jogos, o repositório dele é mais completo que o do Arch Linux. Ele vem com Steam, Lutris, Heroic, Proton Plus, PCSX2, etc. O container não é sandbox, mas, pelo menos, separa as bibliotecas do host.