DEV Community

loading...

Why is Slack changing its internals?

mykeels profile image The Smith! 🛠 ・1 min read

This post by @changoman inspired many tools for changing Slack's visual themes.

It used to be fairly easy to find and edit Slack's ssb-interop.js file, to load a custom CSS which would change the way it looked.

With the recent release of v4.0, the file is gone, and exists as a bundled file within app.asar, a compressed file.

To achieve the same functionality, you'd have to extract app.asar into a folder, edit the dist/ssb-interop.bundle.js file, and compress the folder back into app.asar before restarting the application.

This means, that Slack's program loads content from the compressed file.

I wonder what the benefits of such an arrangement would be to Slack's internal architecture. Does anyone know?

Discussion

pic
Editor guide
Collapse
sneakysneakysoysauce profile image
sneakysneakysoysauce

So i already see "app.asar.unpacked" within my Resources/Contents path under Slack.app... But i still don't see an ssb-interop.js file under dist.

Not sure how to unpack the app.asar file... i guess i'll start looking there.

Collapse
mykeels profile image
The Smith! 🛠 Author

See how to unpack an asar file in this comment

Collapse
ghostsquad profile image
Wes McNamee

How do you even create an "asar" file?

Collapse
mykeels profile image
The Smith! 🛠 Author

See NPM asar

You can actually:

npx asar pack /path/to/dir

to create a *.asar compressed file, and

npx extract /path/to/file.asar --out-path /path/to/output/directory

to decompress an asar file to a directory.

If you'd rather not install NPM, I compiled these asar binaries for Windows, Linux and Mac OS with zeit's pkg

Collapse
mykeels profile image
The Smith! 🛠 Author

If you've come here, looking for solution to change your slack's theme, checkout slack-theme-cli.