Tornando o cliente oficial do Discord multiusuário em GNU/Linux [Dica]
Tornando o cliente oficial do Discord multiusuário em GNU/Linux
Publicado por Luís Fernando C. Cavalheiro em 04/07/2019
[ Hits: 944 ]
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:
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.
Exec=/usr/bin/discord
Icon=discord
Esse é o arquivo no openSUSE. Bem, faça esta mudancinha aqui:
Exec=/bin/bash -c "mkdir -p /tmp/${USER} ; TMPDIR=/tmp/${USER} /usr/bin/discord"
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!
E é isso, gente, com isso eu encerro esta Dica do Dino® desejando para todos vocês GET RED SLACK OR DIE, BEACHES!!!
Problema com acentuação das pastas do usuário no XFCE sob Slackware e de quebra altere as pastas de usuário padrão