A radial menu for Slack: channels, statuses, and reactions
Watch a Slack power user for an hour and a pattern shows up. They jump between four or five channels — usually one team channel, one project channel, one DM with their manager, one #random, and a customer-facing #support thread. They flip their status to "In a meeting" and back to "Back" two or three times. They drop a half-dozen emoji reactions. They paste the same canned reply they always paste when someone asks if the deploy went out.
Almost none of that is typing. It is navigation and signalling. And navigation and signalling are exactly the shape of task a radial menu is good at.
This post walks through a Slack-shaped Swik layout: five channels on the cardinal wedges, two status toggles, an emoji picker, and a small set of canned replies pulled from the clipboard ring. It's worth saying upfront — and we will say it again later — that Swik has no built-in Slack integration. Everything below is built from pieces Swik already ships, wired to Slack's own URL scheme and its Apple Shortcuts actions. You do the wiring once.
Why Slack rewards a radial layout
Slack's own keyboard shortcuts are good. Cmd+K opens the channel switcher. Cmd+Shift+K jumps to DMs. Cmd+Shift+M shows mentions. If you live in Slack all day, you probably already use those.
The problem is that Cmd+K is still typing. You press the hotkey, you type two or three characters of a channel name, you press Enter. That's fine the first time. By the fiftieth jump of the day, the wear shows. Worse: half the channels people switch between have similar names — #proj-foo, #proj-foo-design, #proj-foo-eng — and the autocomplete picks the wrong one if you don't type enough.
A radial menu skips the spelling. You hold the trigger, the wedges appear, you flick toward the one you want. After a week, your hand learns that "design channel" lives north-east and you stop looking at the menu at all. That is the same pattern that makes a Mac dock useful, except the dock is a long row of icons and a radial menu is a circle of eight directions, which is better suited to a brief interaction with the mouse already in your hand.
The Slack URL scheme, briefly
Slack supports slack:// deep links. The one we care about is the channel link:
slack://channel?team=TEAM_ID&id=CHANNEL_ID
To get the IDs, open Slack in a browser tab. The URL will look like https://app.slack.com/client/T01ABCDEF/C09GHIJKL. The string starting with T is your workspace's team ID. The string starting with C is the channel ID. (DMs use a D prefix and groups use a G; the URL scheme handles all three.)
You can also right-click a channel in the desktop app, pick "Copy link", and the resulting URL contains both IDs. Either way, you get one URL per channel you want to wire up.
Swik does not open slack:// URLs directly — its wedges open apps, run Apple Shortcuts, insert text, or drill into a sub-menu. The bridge is Apple Shortcuts. Build a one-step Shortcut for each channel:
- Open the Shortcuts app.
- New Shortcut → name it "Slack: #design".
- Add the action URL, paste the
slack://...URL. - Add the action Open URLs, set its input to the URL above.
- Save.
Repeat for each channel. You'll end up with five Shortcuts called "Slack: #design", "Slack: DM Maria", and so on. In Swik, add a wedge of type Apple Shortcut and pick each one. (The Shortcut wedge is Pro.) That's the channel half of the layout done.
The layout
Here is a layout that holds up across a real working day. Eight wedges, no sub-menus on the channels themselves so the flick stays as short as possible:
| Direction | Wedge |
|---|---|
| North | Slack: #team (most-used channel) |
| North-east | Slack: #project-active |
| East | Slack: DM with manager |
| South-east | Slack: #support |
| South | Slack: #random (or whatever the social channel is) |
| South-west | Status toggle: In a meeting |
| West | Status toggle: Back |
| North-west | Sub-menu: Reactions (emoji picker + recents) |
Five channels live on the right and top half of the menu, where flicks tend to be most accurate. The two status toggles sit on the left where your finger naturally lands when the day is interrupted by a meeting invite. The reactions sub-menu is north-west — slightly slower to reach, which matches how often you actually need it.
Wiring the status toggles
Slack exposes a "Set your Slack status" action through Apple Shortcuts. It takes a text string and an emoji. Build two Shortcuts:
- Slack: In a meeting — text "In a meeting", emoji
:calendar:, optional clear-after of 1 hour. - Slack: Back — text empty, emoji empty (this clears the status).
Bind each Shortcut to a wedge as above. One flick south-west and you're heads-down without scheduling. One flick west and you're available again. No keyboard, no menu hunting.
If you don't want to use the Shortcuts integration — maybe you'd rather pick a status from Slack's full picker each time — Slack's own hotkey for the status menu is Cmd+Shift+Y. You can wire a wedge to send that keystroke, which opens the picker over Slack's window. That's one flick plus one click instead of one flick. Both work; the Shortcuts route is faster, the hotkey route is more flexible.
Reactions and emoji
Slack's emoji picker is good but it's deep — the keyboard shortcut Cmd+Shift+\\ opens a reaction picker for the message you're hovering, then you have to type the emoji name. Fine for a one-off; tedious for the user who drops twelve thumbs-up a day.
Swik has its own emoji picker built in: six categories of around fifty emoji each, plus a recents ring of the last eight you used. Put it on the north-west wedge as a sub-menu. The flow becomes: hover the Slack message, open Swik, flick north-west to Reactions, flick again to the emoji. For the emoji you reach for hourly, the recents ring usually has it on the first level of the sub-menu and the whole thing is two flicks.
One thing to know: Swik's emoji picker inserts the emoji as text via the system clipboard plus a Cmd+V. Slack's reaction picker — the one bound to a specific message — needs you to be in its picker UI for the emoji to attach. So the radial picker works best for two cases: dropping an emoji into the message you're typing, and reacting to a message after you've opened Slack's reaction popover. For raw "hover-and-react" speed, Slack's own Cmd+Shift+\\ is still hard to beat.
Canned replies via the clipboard ring
If you find yourself typing the same five-word reply over and over — "Looking at it now", "Merged, deploying shortly", "Joining in two", "Will follow up after the call" — Swik's clipboard ring helps without you setting anything up.
The ring keeps the last eight distinct text clips you've copied. Anything you copied recently is one flick away on the clipboard wedge. The practical workflow is: copy a reply you'll need again, use it once normally, then it sits in the ring for the rest of the session and is a flick away on the next message that needs it. It's a recency tool, not a snippets database — but for the standing replies of a working day, recency is exactly what you want.
If you have a fixed set of replies you want available all day, every day, the better Swik primitive is the insertText wedge: pin the literal text to a wedge inside a "Slack replies" sub-menu and it never expires. The clipboard ring handles the morning-of rotation; pinned text wedges handle the always-on phrases.
Auto-loading the layout when you're at work
The Slack layout above isn't useful when you're editing video or playing a game. Swik's context-aware profiles handle the swap automatically.
Two triggers do most of the work:
- Wi-Fi network. Attach the Slack profile to your office Wi-Fi SSID. When your laptop joins it, the Slack layout loads. When you tether at a coffee shop, a different (or default) profile loads.
- Time of day. Layer a 9-to-6 weekday window so the Slack profile only activates during work hours. Evenings and weekends fall back to whatever your personal profile is.
You can combine the two triggers (office Wi-Fi and weekday hours) for a tight match, or use either alone. The point is that the Slack-flavoured menu stops being something you load and starts being something that just shows up when the context says you'll need it.
What's actually built-in vs. what you wire
Worth being explicit, because it's easy to read the layout above and assume Swik knows about Slack. It does not. Here's the honest split:
- Built into Swik: the radial menu itself; app wedges; pinned-document wedges; the Apple Shortcut wedge type (Pro); the clipboard ring; the emoji picker; the text-insert wedge; sub-menus; context-aware profiles by Wi-Fi, display, and time of day.
- You wire: the per-channel
slack://URLs, packaged as one-step Apple Shortcuts; the two status Shortcuts using Slack's "Set your Slack status" action; the choice of which channels live on which wedges.
The wiring is a one-time afternoon. After that, the menu behaves like a Slack-aware launcher even though nothing about Swik changes when Slack updates. If Slack changes a deep-link parameter, you update the relevant Shortcut. If Slack adds a new Shortcuts action, you can add a new wedge for it. The layout is yours to maintain, which is the trade for not having a brittle integration that could break in a Slack update.
Frequently asked questions
Does Swik have a built-in Slack integration?
No. Swik has no Slack-specific code. The layout in this post is built from pieces Swik already ships — app wedges, Apple Shortcut wedges, the emoji picker, the clipboard ring — wired up to Slack's own URL scheme and Slack's Apple Shortcuts actions. You do the wiring once and the wedges call out to Slack.
Can a radial menu open a specific Slack channel?
Yes, via Slack's deep-link URL scheme. The format is slack://channel?team=TEAM_ID&id=CHANNEL_ID. Wrap that URL in a one-step Apple Shortcut that uses the Open URL action, then bind the Shortcut to a Swik wedge. The flick fires the Shortcut, the Shortcut opens the URL, Slack jumps to the channel.
How do I find a Slack channel ID and team ID?
Open Slack in a browser tab. The URL looks like https://app.slack.com/client/T01ABCDEF/C09GHIJKL. The string starting with T is your team ID; the string starting with C is the channel ID. You can also right-click any channel inside the desktop app, choose Copy link, and pull both IDs out of the resulting URL.
Can the radial menu change my Slack status?
Two ways. Slack has an Apple Shortcuts action called "Set your Slack status" that takes a text and emoji — wrap two presets ("In a meeting", "Back") in two one-step Shortcuts and put each on a wedge. Or, simpler, fire Slack's own status hotkey (Cmd+Shift+Y) from a wedge to open the status picker and let you pick from there. The Shortcuts route is one flick; the hotkey route is one flick plus one click.
Swik — a radial menu for macOS
Open apps, run Shortcuts, and navigate your Mac with a single flick. Free for five wedges, $9 one-time for unlimited. Requires macOS 14 Sonoma or later.
Download for macOS