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.