4.7.0

4.7.0

Quando estou no trabalho, quero desativar a notificação do ícone azul que acontece quando há alguma atividade em um canal em que estou. Especificamente, não quero esta notificação de certas equipes do Slack: insira a descrição da imagem aqui

Existe uma maneira de "silenciar uma equipe inteira do Slack" para que eu não receba a notificação do ícone azul? Obrigado.

Responder1

Parece que não tenho a configuração mencionada por Shawn, mas consegui fazer isso funcionar abrindo o /usr/lib/slack/resources/app.asar.unpacked/src/staticdiretório, fazendo uma cópia do slack-taskbar-rest.pngarquivo e renomeando-o para slack-taskbar-unread.pngsubstituir a versão pelo ponto azul.

claro, isso elimina o ponto azul para todas as equipes, mas era isso que eu queria.

Editar (28/05/2019):A ideia ainda está correta, mas para a versão mais recente do Slack (3.4.2) no Ubuntu, mais dois arquivos precisam ser substituídos. O seguinte funcionou para mim:

cd /usr/lib/slack/resources/app.asar.unpacked/src/static
sudo cp slack-taskbar-rest.ico slack-taskbar-unread.ico
sudo cp slack-taskbar-rest.png slack-taskbar-unread.png
sudo cp slack-taskbar-rest-linux.png slack-taskbar-unread-linux.png

Responder2

A resposta curta é: você não pode, sem folga.

A resposta longa é que exatamente como hackear será diferente de uma versão para outra, à medida que atualizam o código-fonte. Deveríamos todos nos unir e enviar uma solicitação de recurso (ou talvez isso possa até ser considerado um bug – é claramenteescutapessoas).

Até então, este deveria ser um wiki da comunidade, para evitar que uma nova resposta seja gerada para cada nova versão do Slack. Adicione seus scripts aqui e indique claramente a versão mais recente em que funciona, a mais recente por cima.


4.7.0

Isto é uma melhoriaResposta de Dmitry S..

  • unreads>0é substituído por false, então o Slack deve sempre pensar que não há mensagens não lidas.
  • A substituição é feita em todos .jsos arquivos, pois o código parece ter sido dividido na versão mais recente.
  • asarnão é executado com privilégios de superusuário, o que é útil para pessoas que usamnpm-g_nosudo.

Pré-requisitos:

  • asarinstalado globalmente através do npm:npm install -g asar

Roteiro:

#!/usr/bin/env sh

set -eu

# Clean up previous failed attempts
rm -rf ~/tmp/slack
rm -rf ~/tmp/app.asar

# Unpack
mkdir -p ~/tmp/slack
asar extract /usr/lib/slack/resources/app.asar ~/tmp/slack

# Modify
sed -i 's/unreads>0/false/g' ~/tmp/slack/dist/*.js

# Replace
sudo rm /usr/lib/slack/resources/app.asar
sudo rm -rf /usr/lib/slack/resources/app.asar.unpacked
asar pack ~/tmp/slack ~/tmp/app.asar
sudo cp ~/tmp/app.asar /usr/lib/slack/resources/app.asar
sudo cp -r ~/tmp/slack /usr/lib/slack/resources/app.asar.unpacked

echo "Enjoy your productivity"

Responder3

A versão mais recente 4.1.2 não lê o arquivo .ico no Linux e muda srcpara dist. Em vez disso, constrói um distintivo + base. Felizmente, unread>0a verificação é responsável pelo emblema e só aparece uma vez no JS minificado, por isso é fácil de corrigir. Você precisará doFerramenta ASARpara modificar o arquivo Electron ( npm install -g asar):

mkdir -p ~/tmp/slack
asar extract /usr/lib/slack/resources/app.asar ~/tmp/slack
sed -i 's/unreads>0/unreads<0/g' ~/tmp/slack/dist/main.1.*.js
sudo rm /usr/lib/slack/resources/app.asar
sudo rm -rf /usr/lib/slack/resources/app.asar.unpacked
sudo asar pack ~/tmp/slack /usr/lib/slack/resources/app.asar
sudo mv ~/tmp/slack /usr/lib/slack/resources/app.asar.unpacked

Responder4

Versão 4.27.156

Esta é a versão atualizada doResposta de Dmitry Scom a mudança de como o código é atualizado. Siga a resposta dele para extrair e compactar arquivos usando asar.

Resposta mais elaborada, mas esperançosamente preparada para o futuro. Você deseja procurar a setTrayIconfunção no main.*.jsarquivo (em 4.27 é chamada main.bundle.js). Procure o código usando o arquivo de ícone - const O = nt.resolve(__dirname, "resources", 'slack-taskbar-${t}.ico');neste caso a variável té o status da seleção da imagem. Você deseja adicionar alteração de condição tpara "rest"quando for "unread".

Resultado não minificado:

...
setTrayIcon(t, n, o) {

  if (t === "hidden") {
    this.tray && (ee.kg.debug("Tray Handler: Destroying tray."), this.tray.destroy(), this.tray = null);
    return
  }
  if (!t) return;
  if (t === "unread") t = "rest"; // <----- new line
  let y;
  if (al) {
    const O = nt.resolve(__dirname, "resources", `slack-taskbar-${t}.ico`);
    y = ce.nativeImage.createFromPath(O)
  } else {
    const O = WM[t];
    y = ce.nativeImage.createFromDataURL(O)
  }
  this.tray ? this.tray.setImage(y) : this.createTrayIcon(y, n, o)
}
...

informação relacionada