DEV Community

Backlog Slayer
Backlog Slayer

Posted on

Why is Slack changing its internals?

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?

Top comments (5)

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
Backlog Slayer •

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
Backlog Slayer •

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
Backlog Slayer •

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