Multi-ring layouts — concentric outer rings
The default Swik menu is one ring of wedges. Multi-ring lets you stack additional rings around the outside, each one subdividing the parent wedge into independent action slots. Where a sub-menu hides actions until you drill in, an outer ring keeps everything visible at once and gates activation by which inner wedge you've hovered. The result: 16, 24, even 32 actions reachable in a single hold-drag-release without ever losing the spatial map.
Multi-ring vs sub-menus — when to use which
Both let you exceed the 5–8 wedge ceiling. They solve the same problem differently:
| Sub-menus | Multi-ring | |
|---|---|---|
| Visibility | Outer wedges hidden until you hover the parent | All rings visible at once (outer rings dimmed until parent is hovered) |
| Gesture | Hover parent → keep dragging outward → next ring opens around cursor | Drag straight out through the inner ring into the outer ring of the same wedge |
| Spatial memory | Two motions to commit (parent + child) | One motion — direction tells the parent, distance tells the ring |
| Best for | Categorical grouping where children are unrelated to the parent's primary action | Variants of a parent action — the same direction, refined by distance |
| Example | Comms wedge → Slack / Discord / Mail / Messages | Browser wedge → inner: Chrome launch · outer 1: new incognito · outer 2: clear cache |
You can mix the two — a sub-menu can live inside a multi-ring layout, and outer rings work alongside whatever the inner wedge contains. But pick the right tool for each: rings for graduated variants, sub-menus for categorical depth.
Adding a ring
Open Settings → Menu. Below the wedge slot list, expand the Outer Rings section. You'll see an Add ring button — click it.
- The new ring appears as concentric outer wedges around your existing menu in the preview.
- Each parent wedge gets its own independent group of outer slots — the count per parent is configurable.
- Click an outer slot in the preview to assign it. Same editor flow as inner wedges: pick an app, action, sub-menu, or paste-text custom action.
Up to 3 additional rings can be stacked. After 3, the Add ring button greys out with "Maximum of 3 rings reached."
Size presets — controlling each ring's thickness
Each ring has its own size preset, picked from five fixed depths. Independent per ring — your inner ring can be normal-sized while a quick-actions outer ring is compact.
| Preset | Depth | When to pick |
|---|---|---|
| XS | 40pt | Many small actions per parent (4–5 per wedge); icon-only labels |
| S | 53pt | Compact outer ring with short text labels |
| M | 64pt | Default. Balanced — readable labels, comfortable target |
| L | 74pt | Headline outer ring with longer labels, or stylus / motor accessibility |
| XL | 85pt | Large displays (4K/5K) at lower Menu Scale, or showcasing the menu in a screencast |
Pick the preset from the dropdown next to each ring in the configuration panel. The full menu re-renders immediately so you can sanity-check the geometry.
Ring gap — the breathing room
Between every two rings is a gap — empty space your cursor crosses but doesn't trigger anything. The default gap is 4–5 points; the slider lets you set 2–10. Why have a gap at all?
- Visual separation — without a gap, two rings blur into one solid arc and you lose the structural cue that they're independent.
- Hysteresis — when your cursor crosses the gap, the highlighted ring switches. A wider gap creates a small "neutral zone" that prevents accidental ring-switches when your cursor wobbles at the boundary.
Wider gap = safer but slower. Narrower gap = tighter target acquisition but more prone to ring slip-overs. Default 4–5pt is right for most setups; raise to 7–8 if you have shaky-hand moments or use a stylus.
Activation gating — the rule that keeps it readable
Outer rings are always visible, but their wedges are dimmed until you've crossed into their parent inner wedge. Once you hover the inner wedge, that wedge's entire outer column lights up to full opacity and becomes selectable.
This is the rule that makes multi-ring usable. Without activation gating, your cursor traveling from the dead zone to a far outer wedge would cross five other parents' outer wedges along the way — any of which could fire. With gating, only the wedges in your current radial direction are committable.
Practical consequence: multi-ring requires hovering the inner wedge first. If you flick straight from dead zone to a far outer wedge, you're momentarily in another parent's column and that outer wedge isn't activated yet. The motion is: dead zone → inner ring (parent picks) → keep dragging outward (outer ring activates) → release.
Recipes that hold up
Browser variants
Inner ring: launch your default browser. Outer ring 1 (S preset): new incognito window, "go to last tab," history. Outer ring 2 (XS preset): clear cache, dev tools, view source.
One direction (the browser wedge), three refinement levels by distance. Becomes muscle memory faster than three separate launchers.
Comms triage
Inner ring: 5 messaging apps (Slack, Discord, Mail, Messages, Telegram). Outer ring (M preset): per-app "mark all read" Apple Shortcut for each. Out by direction, in by app.
Lets you triage notifications without entering each app — your hand learns "Slack-direction + outer = mark Slack read."
Editor with paste shortcuts
Inner ring: launch your editor (VS Code / Cursor / Xcode). Outer ring 1: paste-text wedges for common boilerplate (license header, function template, log statement).
The outer ring fires only after you've pulled the editor wedge — so the boilerplate goes into the editor you just brought forward.
Designer's modal
Inner ring: design app launchers (Figma, Sketch, Photoshop). Outer ring (XS preset): plugin shortcuts for whichever app is the design-tool-of-the-moment. Combined with a Profile triggered by the active app, the outer ring re-shapes itself per design tool.
Caveats & current limits
- Outer slot count is bounded by your sub-wedge setting. Each parent wedge's outer slot count derives from Settings → Menu → Layout → Sub-wedges per slot. A higher sub-wedge count means more outer slots per parent but smaller targets at any given size preset. Default is 3.
- Outer rings inherit the appearance. Theme, colors, blur — they all apply to every ring. There's no per-ring theming today.
- No ring-specific haptics. If haptics are on, every ring boundary fires the same tap. There's no way to give the outer ring a stronger haptic to differentiate.
- Profiles include rings. When you switch profiles (manually or via auto-switch), the new profile's rings replace the active ones. So per-profile ring layouts are the natural way to context-shift.
- Ring removal isn't undoable past the next ring add. Removing ring 2 then adding a new ring 2 starts fresh — there's no "restore previous outer ring" action.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Outer wedge is dim and unselectable | Cursor isn't over the parent inner wedge yet | Cross into the inner wedge first; outer wedges activate when their parent is hovered. |
| Outer ring fires the wrong wedge | Cursor crossed an angular boundary at release | Settings → Advanced → Behavior → raise Selection Stability. |
| Multi-ring menu feels cramped | Default Menu Scale on a 5K display, or 4 rings stacked | Settings → Advanced → Accessibility → Menu Scale → 1.3× or 1.5×. Consider XS preset for the outermost ring. |
| Add ring button is greyed out | You've reached the 3-ring cap, or you're on free tier | Free: upgrade to Pro. Pro at cap: remove a ring before adding another. |
| Outer ring slots are empty | Newly-added rings auto-populate from a default catalog, but only for parent wedges that have registered actions | Click each empty outer slot in the preview to assign a launch / Apple Shortcut / custom action manually. |
Frequently asked questions
How many actions fit on a 4-ring menu (1 inner + 3 outer)?
With 8 inner wedges and 3 sub-wedges per outer slot, you get 8 + (8 × 3 × 3) = 80 actions reachable. In practice, anything over 30 starts losing the muscle-memory advantage — the menu becomes a visual scan rather than a flick. Most multi-ring users settle at 1 inner + 1 outer (16 actions) or 1 inner + 2 outer (32).
Can outer rings have sub-menus?
Outer wedges can be sub-menu type, yes — clicking one opens another ring around the cursor like any sub-menu. But this rarely makes sense ergonomically; if you need that depth, sub-menus on the inner ring are usually clearer.
Do outer rings work with keyboard navigation?
Partially. Number keys 1–8 jump to inner wedges. Arrow keys cycle the highlight. Switching to outer rings via keyboard is currently limited — you'd typically use mouse for multi-ring layouts. Pure-keyboard users tend to prefer sub-menus instead.
Why isn't there an "Add inner ring" — only outer?
The geometry is fixed: dead zone → inner ring → outer rings. The inner ring is conceptually the entry point, so adding a ring inside of it would mean shrinking everything outward. Conceptually sub-menus solve the "more depth in the middle" case better.
Can I export a multi-ring layout?
Yes — the rings field is part of the standard export. Importing on another Pro Mac restores the rings as-is. On a free Mac, the inner ring imports normally but outer rings are ignored (they need Pro to render).
Swik — a radial menu for macOS
Launch anything. One gesture. Free for five wedges, $9 one-time for unlimited. Requires macOS 14 Sonoma or later.
Download for macOS