
答え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) では、さらに 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 をハッキングしなければ、それは不可能です。
長い答えは、ソースコードが更新されるたびに、ハックの方法が変わるということです。私たちは全員で協力して機能リクエストを提出する必要があります(あるいは、これはバグと見なされるかもしれません。明らかに盗聴人々)。
それまでは、新しい Slack バージョンごとに新しい回答が生成されないように、これをコミュニティ ウィキとして使用してください。ここにスクリプトを追加し、それが動作する最新バージョンを明記してください (最新のバージョンが一番上に表示されます)。
4.7.0
これは、ドミトリーSの回答。
unreads>0
は に置き換えられるfalse
ため、Slack は常に未読メッセージがないものと認識するようになります。.js
最新バージョンではコードが分割されているようなので、すべてのファイルで置き換えが行われます。asar
スーパーユーザー権限で実行されないので、npm-g_nosudo
。
前提条件:
asar
npm を通じてグローバルにインストールされます: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ファイルを読み込まず、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)
}
...