4.7.0

4.7.0

직장에서 내가 속한 채널에 활동이 있을 때 발생하는 파란색 아이콘 알림을 비활성화하고 싶습니다. 특히 특정 슬랙 팀에서 보내는 이 알림을 원하지 않습니다. 여기에 이미지 설명을 입력하세요

파란색 아이콘 알림을 받지 않도록 "슬랙 팀 전체를 음소거"하는 방법이 있나요? 감사해요.

답변1

Shawn이 언급한 설정이 없는 것 같지만 디렉토리를 열고 파일 /usr/lib/slack/resources/app.asar.unpacked/src/static의 복사본을 만들고 slack-taskbar-rest.png이름을 바꾸어 slack-taskbar-unread.png파란색 점으로 버전을 덮어쓰면 이 작업을 수행할 수 있었습니다.

물론 모든 팀의 파란색 점이 제거되지만 그것이 바로 제가 원했던 것입니다.

편집(2019-05-28):아이디어는 여전히 정확하지만 Ubuntu의 최신 Slack 버전(3.4.2)의 경우 파일 두 개를 더 교체해야 합니다. 다음은 나에게 효과적이었습니다.

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

답변2

짧은 대답은 다음과 같습니다. 슬랙을 해킹하지 않고는 할 수 없습니다.

긴 대답은 소스 코드를 업데이트함에 따라 버전마다 해킹 방법이 다르다는 것입니다. 우리는 모두 팀을 이루어 기능 요청을 제출해야 합니다(아니면 이는 버그로 간주될 수도 있습니다. 이는 분명히도청사람들).

그때까지는 새로운 Slack 버전마다 새로운 답변이 생성되는 것을 방지하기 위해 커뮤니티 위키여야 합니다. 여기에 스크립트를 추가하고 작동하는 최신 버전을 명확하게 명시하세요. 최신 버전이 맨 위에 표시됩니다.


4.7.0

이는 다음과 같은 개선 사항입니다.Dmitry S.의 답변.

  • unreads>0는 로 대체되므로 falseSlack은 항상 읽지 않은 메시지가 없다고 생각해야 합니다.
  • .js최신 버전에서는 코드가 분할된 것으로 보이므로 교체는 모든 파일에서 수행됩니다 .
  • asar슈퍼유저 권한으로 실행되지 않습니다. 이는 다음을 사용하는 사람들에게 유용합니다.npm-g_nosudo.

전제 조건:

  • asarnpm을 통해 전 세계적으로 설치됩니다.npm install -g asar

스크립트:

#!/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"

답변3

최신 버전 4.1.2는 Linux에서 .ico 파일을 읽지 못하고 .ico src파일로 변경됩니다 dist. 대신 배지 + 베이스를 구축합니다. 다행스럽게도 unread>0배지를 담당하는 수표가 축소된 JS에 한 번만 나타나므로 패치하기 쉽습니다. 당신은ASAR 도구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

답변4

버전 4.27.156

이것은 업데이트된 버전입니다.드미트리 S 답변코드 업데이트 방법이 변경되었습니다. asar를 사용하여 파일을 추출하고 압축하는 방법에 대한 그의 답변을 따르십시오.

더 정교하지만 미래에도 사용할 수 있는 답변이기를 바랍니다. 파일 setTrayIcon에서 함수를 검색하려고 합니다 main.*.js(4.27에서는 이름이 입니다 main.bundle.js). 아이콘 파일을 사용하여 코드를 찾습니다. - const O = nt.resolve(__dirname, "resources", 'slack-taskbar-${t}.ico');이 경우 변수는 t이미지를 선택하는 상태입니다. 가 될 때 t로 변경되는 조건을 추가하고 싶습니다 ."rest""unread"

축소되지 않은 결과:

...
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)
}
...

관련 정보