I like things clean. So I don’t want Slack’s lacking settings to remove the
unread bullet in the badge. (Unlike the mentioned/DM messages which show a
number in the badge, unread messages in channels show •
)
Because Slack’s Mac App is built using Electron framework, I was thinking of hacking the source code to remove the “feature”.
I went to /Applications/Slack.app/Contents/Resources
, and uncompressed
app.asar
using asar e app.asar <tmp dir>
. I tried to hack around and
re-packed the code, but it seemed not to work. I suspect Slack downloads latest
javascript files from their own server. I didn’t want to take time to do the
MitM, which could be tedious.
Then I saw electron.asar
in the same directory of app.asar
. It turned out
to be a much easier way to achieve my goal. The diff is quite straightforward:
diff --git a/browser/api/app.js b/browser/api/app.js
index 381a2a8..0d0cdad 100644
--- a/browser/api/app.js
+++ b/browser/api/app.js
@@ -44,7 +44,13 @@ if (process.platform === 'darwin') {
},
cancelBounce: bindings.dockCancelBounce,
downloadFinished: bindings.dockDownloadFinished,
- setBadge: bindings.dockSetBadgeText,
+ //setBadge: bindings.dockSetBadgeText,
+ setBadge (label) {
+ if (label === '•') {
+ label = ''
+ }
+ return bindings.dockSetBadgeText(label)
+ },
getBadge: bindings.dockGetBadgeText,
hide: bindings.dockHide,
show: bindings.dockShow,
Tip: to get console output, add console.info
as usual, and start the
application in the terminal, like
/Applications/Slack.app/Contents/MacOS/Slack
and the output will be in the
stdout.