Hacker News new | ask | show | jobs
by d4rky 2402 days ago
You can do it in the desktop app as well. If you run it with SLACK_DEVELOPER_MENU=true in env vars, it'll enable you to right click to Inspect Element, open devtools and run this code snippet there
4 comments

Alternatively, you can run `launchctl setenv SLACK_DEVELOPER_MENU true` and then the dev menu will work if you launch slack from anywhere, and will persist until you log out.

If you create the following plist in ~/Library/LaunchAgents, macOS will set that env variable every time you log in (except if you tell it to reopen windows when logging back in). Change "NAME.OF.FILE" to the plist's filename without the .plist extension.

  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
   <key>Label</key>
   <string>NAME.OF.FILE</string>
   <key>RunAtLoad</key>
   <true/>
   <key>ProgramArguments</key>
   <array>
    <string>sh</string>
    <string>-c</string>
    <string>launchctl setenv SLACK_DEVELOPER_MENU true</string>
   </array>
  </dict>
  </plist>
@ihuman Is this really an "alternative"? To me it is a platform-specific "howto" (in that case, Mac OS X) that implements a platform-neutral recommendation (parent post).
I wonder if the people who complain about Electron apps will refrain from doing this out of principle.
well, they can use the browser version and have this snippet working without any extra steps
I don't understand the point of electron for applications whose functionality is entirely dependent on being online anyway. At that point, just use a browser as it's one fewer item to install. Is the Electron version of Slack capable of anything beyond the browser version?
Some users prefer having a separate app with its own icon and window instead of another tab in a browser. It keeps things Separate
Specifically it makes it easier to get straight to the chat app.

I suppose I could use Hammerspoon to script hotkeys that jump straight to a Chrome tab with the right title, but that sounds like a lot more work than just binding a key combo to focus "Slack.app" (which is what I currently do).

You can do this already for slack in chromium browsers. Click Menu -> More Tools -> Create Shortcut. The app will run in an app window and NOT a tabbed browser window, just like a PWA, with it's own dock icon and cmd-tab icon.
Huh, that's incredibly useful. I'll have to keep that in mind!
You can just create a shortcut with a custom icon that opens slack in a new browser window then.
Missing the point. I don't want it in my browser. My browser is used for reference materials and things like that. My chat app is its own separate thing and easily switched to.
This is all I want from an electron app, and is basically the main reason I really want PWAs to take off.
You can do this already for slack in chromium browsers. Click Menu -> More Tools -> Create Shortcut. The app will run in an app window and NOT a tabbed browser window, just like a PWA, with it's own dock icon and cmd-tab icon.
> I don't understand the point of electron for applications whose functionality is entirely dependent on being online

I’ve made electron apps that load a website I have no control over and added features to it, including new styling, keyboard shortcuts, and command-line flags.

I would have built a native app, but documentation on making macOS app is awful while electron’s documentation is top notch.

You can include native code in Electron apps. I am not sure it is actually needed in any of the messaging Electron apps (Slack, Discord), but the capability is there.

My favorite Electron app is Balena Etcher. It is "dd" but uses 200MB of RAM. It is AMAZING.

> You can include native code in Electron apps. I am not sure it is actually needed in any of the messaging Electron apps (Slack, Discord), but the capability is there.

Discord has options for streaming your game to others, identifying running processes to display games as your status, downloading and launching games, and displaying a chat overlay on top of external game processes.

Some of those can be accomplished in a roundabout way without native code, but I think it's safe to say Discord benefits from that ability.

That is all available in WebRTC.
Hmm, that doesn't seem totally fair - it's 'dd' but with guardrails so that schoolchildren who want to flash raspbian onto an SD card don't accidentally overwrite their boot disk.
I think you can do that without involving Chromium, but I am not well-versed in the ways of full-stack enterprise-ready desktop apps.
> It is "dd" but uses 200MB of RAM. Say no more. I am sold.
Does it actually include any native code, or does it just wrap `dd`?

I tried this app and it was beyond awful. I went back to `dd`.

Apparently it uses some native code to get the necessary permissions on Windows: https://github.com/balena-io/etcher/blob/master/src/os/win32...
I like having a separate app as I can use the window class in X to manipulate which desktop it opens on without too much fucking about.
I think it can do screen sharing in calls, whereas the browser app can only do voice calls (and maybe video, I can't recall).
They could implement screen sharing in the browser version via webrtc.
This is incredible.
I set the env variable but I can't seem to get the access to devtools?

Only regular menu appears on right-click.

Try quitting Slack and just running this from the console.

It worked for me:

export SLACK_DEVELOPER_MENU=true

open /Applications/Slack.app

Instead of using open you can just run the binary inside Slack.app directory:

SLACK_DEVELOPER_MENU=true /Applications/Slack.app/Contents/MacOS/Slack

That's not a great idea. If you don't use open, the app won't show up in the Finder app switcher.
Good point! Thanks for mentioning that.

Small nitpick, though. The dock is what runs the app switcher, not the Finder.

That only works for the Bourne shell. Using `env` is more portable.
slack tends to keep a process in the background that needs to be killed and restarted when you "close" it. did you run `pkill slack` or similar and then restart?
good tip, thank you!
Same for me on macOS.
Try like this:

SLACK_DEVELOPER_MENU=true /Applications/Slack.app/Contents/MacOS/Slack