Tornando o cliente oficial do Discord multiusuário em GNU/Linux

Publicado por Luís Fernando C. Cavalheiro em 04/07/2019

[ Hits: 1.944 ]

Blog: https://github.com/lcavalheiro/

 


Tornando o cliente oficial do Discord multiusuário em GNU/Linux



Seres humanos, sub-seres e escravos da tecnologia da informação, aqui começa mais uma Dica do Dino® trazendo para vocês informações de um bom senso jamais visto em um país em que juízes são aplaudidos por agirem à margem da lei. Hoje falaremos do Discord, um cliente de mensagens instantâneas descentralizado muito usado por gamers devido à leveza e à qualidade de seu canal de áudio. Na data em que escrevo, recém convenci minha esposa a usar GNU/Linux, e eis que nos deparamos com uma coisa estranha: se ela deixasse o usuário dela logado no computador com o Discord aberto, eu não conseguia abrir o Discord no meu usuário. Pesquisando um bocado, encontrei uma solução simples de doer pro problema.

Sem mais delongas, vamos ao trabalho?

Mas por que, em nome de Satã, isso acontece?

Quando você loga na sua conta pelo cliente oficial do Discord, o filho de uma pessoa de bem cria o arquivo /tmp/discord.sock, que serve como soquete de comunicações pro áudio e tal e como trava para evitar que múltiplas instâncias do programa sejam abertas simultaneamente. Pois bem, acontece que o nome do arquivo é hardcoded no código JavaScript usado pelo cliente oficial do Discord, ou seja, nem com muita propina pode ser alterado.

Mas Dino®, você tem a solução para o problema?

Claro, pessoa de pouca luz, pois do contrário eu não estaria escrevendo esta Dica do Dino®. Ela envolve uma modificação no arquivo discord.desktop, que é o lançador do programa. Essa modificação é necessária para levar o Discord a usar outro diretório que não o /tmp como diretório para arquivos temporários.

Pois bem... esse arquivo estará em algum lugar do seu computador, dependendo de como você o tenha instalado. Usuários do openSUSE Tumbleweed, por exemplo, encontram o Discord nos repositórios oficiais da distribuição. Bem, uma vez encontrado o arquivo você verá nele um texto parecido com esse aqui:

[Desktop Entry]
Name=Discord
StartupWMClass=discord
Comment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone.
GenericName=Internet Messenger
Exec=/usr/bin/discord
Icon=discord
Type=Application
Categories=Network;InstantMessaging;
X-Desktop-File-Install-Version=0.23

Esse é o arquivo no openSUSE. Bem, faça esta mudancinha aqui:

[Desktop Entry]
Name=Discord
StartupWMClass=discord
Comment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone.
GenericName=Internet Messenger
Exec=/bin/bash -c "mkdir -p /tmp/${USER} ; TMPDIR=/tmp/${USER} /usr/bin/discord"
Icon=discord
Type=Application
Categories=Network;InstantMessaging;
X-Desktop-File-Install-Version=0.23

Como vocês podem ver, a linha começando por Exec recebeu um mini shell script cujo propósito é assegurar que dentro de /tmp haverá um diretório para cada usuário e que o Discord use esse diretório como seu diretório de arquivos temporários. Para garantir que atualizações não alterem isso, rode:

# chattr +i /caminho/para/discord.desktop

E para finalizar, rode:

$ update-desktop-database /diretório/onde/discord.desktop/está # o comando precisa ser executado como root caso o discord.desktop esteja em /usr/share/applications

E com isso problema resolvido!

Conclusão

E é isso, gente, com isso eu encerro esta Dica do Dino® desejando para todos vocês GET RED SLACK OR DIE, BEACHES!!!

Outras dicas deste autor

Subliminal: buscando legendas via terminal

Telegram Desktop parou de funcionar após atualização ou troca de idioma? Corrija isso já!

OpenJDK 7 em Debians-like - Como instalar corretamente

Impedindo atualização de pacotes específicos no Fedora

Corrigir erro de DNS no NetworkManager

Leitura recomendada

Backup de Configurações do MikroTik RouterOS

Dreamweaver no Linux

Descubra se um pacote de software existe nos repositórios de sua distribuição

Criar CD/DVD com os pacotes do cache no Ubuntu 9.04

Usando o ed

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts