Show HN: Pie Menu – a radial menu for macOS (pie-menu.com)

309 points by hauken ↗ HN
Hi everyone! I'm Marius Hauken, an indie developer, and I'm excited to share my app: Pie Menu. It offers a fresh way to access your favorite menu bar commands and keyboard shortcuts on macOS. By simply pressing a hotkey you choose during setup, a radial menu appears around your cursor, customized to the current active application. This allows you to quickly select commands without having to remember complex shortcuts across different applications.

Pie Menu comes with a library of preprogrammed commands for popular apps, but you can easily add any app on your computer. We've also created an extensive database at https://www.pie-menu.com/shortcuts where you can quickly add shortcuts for different programs. If a command lacks a keyboard shortcut, you can always create one through System Preferences > Keyboard > Application Shortcuts.

For now, you can use Apple’s SF Symbols to label your commands, but we plan to include custom symbol sets in the future. You can see and vote on our roadmap at https://www.pie-menu.com/help/roadmap.

I hope you give Pie Menu a try and find it as useful as I intended!

145 comments

[ 3.3 ms ] story [ 205 ms ] thread
Happy to see someone implementing something along the lines of what I wrote an essay on years back - https://ubiquity.acm.org/article.cfm?id=1086454
Thanks for sharing! The ideas are still relevant today! In fact the first documented radial menu is attributed to a system called PIXIE in 1969 - https://en.m.wikipedia.org/wiki/Pie_menu
My first CS prof (~2000) talked about a circular interface he used on some navy gear back in the early/mid 70s (complete with round screens)
Interesting, I wonder how there are so many radial menu patents when this clearly invalidates them.

https://patents.google.com/?q=(radial+menu)&oq=radial+menu

Didn’t know! I’ve just thought that this was a common pattern along with tab bars and other menu items.
(comment deleted)
Alias was granted an illegitimate software patent on radial menus that was an abuse of the patent system, because Bill Buxton and Gordon Kurtenbach knowingly omitted information about prior art and made false and misleading claims that contradicted detailed information about my own pie menus implementations that I'd provided to them previously. They dishonestly abused the patent system by spreading "FUD" and successfully discouraged other products like 3D Studio Max and open source projects like Blender from using them for many years.

Fortunately their patent has long expired, and Blender supports pie menus quite well now.

Pie Menu FUD and Misconceptions.

Dispelling the fear, uncertainty, doubt and misconceptions about pie menus.

https://donhopkins.medium.com/pie-menu-fud-and-misconception...

Patent Abuse Example: US Patent US5689667A: Methods and system of controlling menus with radial and linear portions

Unfortunately a bad patent that covered an obvious technique, and also made some incorrect misleading claims, was abused by Alias marketing in Bill Buxton’s name to baselessly threaten and discouraged others from using pie or marking menus, by exaggerating its scope and obfuscating its specificity. It’s my strong opinion that the particular technique that it covered (overflow items) was quite obvious.

Gordon Kurtenbach and I discussed pie and marking menus in 1990 before he wrote his paper and filed the patent, and at that time he made it clear that he understood pie menus supported mouse ahead display suppression, and that pie menus enjoyed the same benefits as marking menus have in easing the transition from novice to expert user:

“The the cool thing is that expert can mouse ahead like you’ve talked about but they get an ink trail so they have a better idea what they’ve selected without even bothering to wait for the menu to come up.” -Gordon Kurtenbach

However that contradicts what the paper and the patent implies, and it’s misled other people into incorrectly believing that pie menus don’t support what I call “mouse ahead display preemption” (or “suppression”, a harsher word), and that the patent covers much more than it actually does.

When Gordon applied for the patent on in 1995, which his employment contract with SGI required him to do, the patent had at least two misleading statements, and the “overflow” technique claim was obvious, which should have prevented it from being granted or invalidated it.

Another piece of mistaken but published misinformation about the differences of “typical pie menus” and marking menus is that “typical pie menus” pop up submenus after the cursor has moved a certain distance from the menu center, without clicking the mouse button. However, I have never seen nor implemented such badly designed pie menus in the real world.

Dumbold Voting Machine Pie Menu in The Sims “Typical pie menus” (such as those in The Sims, played by hundreds of millions of people) have always selected leaf and submenu items by triggering on a button press or release (or pen or finger tap or release). They also typically support mouse-ahead. Pie menus can seamlessly support both quick press-drag-release gestures, as well as the more leisurely click-move-click gestures.

The patent US5689667A “Methods and system of controlling menus with radial and linear portions” also makes the mistake of claiming that that pie menu selection is based on pointing at the items like linear menus (or PIXIE), instead of the direction of cursor motion, which Kurtenbach and Buxton know very well is simply not the case with “typical pie menus”.

“Radial menus include two types: pie menus and marking menus. Pie menus are typically used in item selection using the location principles of linear menus as discussed above. Marking menus operate on the principle of the direction of cursor or pointer motion as being t...

Thanks so much for sharing all of this. After seeing all these posts I was reminded of other radial menus I had seen and how uncommon they felt.
Flight of the PIXIE - Yuja Wang

https://www.youtube.com/watch?v=jDrqR9XssJI

Dedication and Thanks to:

Neil E. Wiseman, Heinz U. Lemke, John O. Hiles,

PIXIE: A New Approach to Graphical Man-Machine Communication, Proceedings of 1969 CAD Conference Southampton IEEE Conference Publication 51, pp. 463–471.

https://www.donhopkins.com/home/documents/PIXIE%20a%20new%20...

David Chapman, Cambridge University Library

https://www.cl.cam.ac.uk/library/archives.html

This film demonstrates an early graphical user interface in use. It was made in 1969 to accompany a paper entitled “PIXIE: a new approach to graphical man-machine communication” presented at the 1969 CAD Conference held in Southampton. Rimsky-Korsakov’s Flight of the Bumble-Bee performed by Yuja Wang

https://archive.org/details/FlightOfTheBumblebeeChaameh/02+Y...

Remixing and Synchronization with AfterEffects by Don Hopkins.

See also:

Pie Menus: A 30 Year Retrospective. By Don Hopkins, Ground Up Software, May 15, 2018.

https://donhopkins.medium.com/pie-menus-936fed383ff1

Timeline of pie menu development by Don Hopkins.

https://donhopkins.medium.com/pie-menu-timeline-21bec9b21620

argument against the radial menu: the circle partially blocks multiple rows of text content behind that. A single-row menu can be placed above / below the cursor (with margin) blocking only one line of content. Also, adding/removing menu items doesn't change the dimension of other menu items unlike in radial menu.
[flagged]
(comment deleted)
(Disclaimer: I’m on mobile and definitely haven’t used this yet.) I feel like the problem of “I don’t know the shortcut to do this” is solved for my by hitting ⌘? And searching the menus for a keyword, then hitting enter. How do you see this as improving upon that? Is this something you have to set up per app? Because if it doesn’t automatically populate its options with actions I use a lot but don’t use the shortcut for that seems like a miss :)
You set up the frequent shortcuts you want for each app: This way you can quickly switch between different modes or tools in your different apps by only remembering one shortcut.
Like me, you seem to like to drive your computer with the keyboard and use the mouse when necessary.

I use the Windows key to open applications on Windows, Cmd+Space on MacOS, and Mod+d on my i3 nixOS machine.

Some people like their mouse/trackpad though, and this seems like a useful tool for those that do.

it would be cool to have an options to show the shortcut under the icon in the radial menu so that over time you learn it, and over time can replace items on the menu to ones you still don't have memorized
Agree, there are pointer-centric patterns of computer use. Usually visual things: art, design, some CAD, marketing, and of course the GUI patterns of personal computer use that most people have been taught
You still have to use a keyboard shortcut to activate this, though?
TwistedMexi: How About a Searchable Pie Menu? | The Sims 4

https://www.youtube.com/watch?v=1brQOz6FZjI

Smarter Pie Menu: Searchable Interactions V2.0:

https://www.patreon.com/posts/83099506

RosannaTxt: SEARCHABLE Pie Menu Mod for The Sims 4 - An absolute GAME CHANGER!

https://www.youtube.com/watch?v=A0TY6gV9InQ

Keyboard shortcuts are a completely different action than pie menu gestures, so keyboard shortcuts are not as easy to learn as pie menu gestures, because they don't support "rehearsal": browsing a pie menu is actually rehearsal for using them with quick "mouse ahead" gestures, while selecting from linear drop-down menus that show keyboard shortcuts isn't rehearsal because using keyboard shortcuts is a totally different unrelated action than using a drop-down menu.

https://news.ycombinator.com/item?id=17105643

>Swiping gestures are essentially like invisible pie menus, but actual pie menus have the advantage of being "Self Revealing" [5] because they have a way to prompt and show you what the possible gestures are, and give you feedback as you make the selection.

>They also provide the ability of "Reselection" [6], which means you as you're making a gesture, you can change it in-flight, and browse around to any of the items, in case you need to correct a mistake or change your mind, or just want to preview the effect or see the description of each item as you browse around the menu.

>Compared to typical gesture recognition systems, like Palm's graffiti for example, you can think of the gesture space of all possible gestures between touching the screen, moving around through any possible path, then releasing: most gestures are invalid syntax errors, and they only recognizes well formed gestures.

>There is no way to correct or abort a gesture once you start making it (other than scribbling, but that might be recognized as another undesired gesture!). Ideally each gesture should be as far away as possible from all other gestures in gesture space, to minimize the possibility of errors, but in practice they tend to be clumped (so "2" and "Z" are easily confused, while many other possible gestures are unused and wasted).

>But with pie menus, only the direction between the touch and the release matter, not the path. All gestures are valid and distinct: there are no possible syntax errors, so none of gesture space is wasted. There's a simple intuitive mapping of direction to selection that the user can understand (unlike the mysterious fuzzy black box of a handwriting recognizer), that gives you the ability to refine your selection by moving out further (to get more leverage), return to the center to cancel, move around to correct and change the selection.

>Pie menus also support "Rehearsal" [7] -- the way a novice uses them is actually practice for the way an expert uses them, so they have a smooth learning curve. Contrast this with keyboard accelerators for linear menus: you pull down a linear menu with the mouse to learn the keyboard accelerators, but using the keyboard accelerators is a totally different action, so it's not rehearsal.

>Pie menu users tend to learn them in three stages: 1) novice pops up an unfamiliar menu, looks at all the items, moves in the direction of the desired item, and selects it. 2) intermediate remembers the direction of the item they want, pop up the menu and moves in that direction without hesitating (mousing ahead but not selecting), looks at the screen to make sure the desired item is selected, then clicks to select the item. 3) expert knows w...

Expert mode pie/marking selection has strong analogues to modern iPad OS's mystery meat gestures for navigating the home screen. (App switcher, dashboard pull down, control panel pull down)
Except that the pie menu can pop up as soon as you stop moving, revealing available menu items and their directions.

That is what I mean by "self revealing": When it pops up, the menu shows you what options you have. But you can use it with a swift gesture and it doesn't pop up at all, or you can start out with a swift gesture in the direction you want, then stop and wait for the menu to pop up to confirm you've selected the right item, then click to select it.

Also the menu can display the selected item label next to the cursor like a tooltip while you're gesturing ahead, before it's popped up the entire menu, to feed back the selected item even before popping up the menu.

The best case is when the menu can apply a preview of the currently selected item (which can include using the distance as a parameter, like setting the size of something by "pulling out"), so you just release the button when you see what you want, without ever having to see the menu itself if you move continuously, but at any time you can stop moving and see the menu.

Not all implementations of pie menus support all these features, but I've been implementing and writing about them for decades, they're not patented, and anyone who wants is free to implement them.

You really ought to try them out yourself, since just architectural armchair astronaut speculating about how a hypothetical user interface you've never actually used might work, without actually implementing it, and using it a lot, and measuring its speed and error rates, and iteratively refining it, and putting in front of users and asking them for feedback, and shipping and supporting it in real world products and open source projects, isn't really useful and doesn't provide much insight.

Thanks for this! I have used macOS for ten years now and somehow I was unaware of this. This is such a useful feature, it’s a shame it’s not better documented.
A cross-platform pie menu: https://github.com/kando-menu/kando

I haven't used it, but the readme seems very nice. It might be more focused on app launching.

(comment deleted)
It's based on Electron though. It's literally spawning a new browser to show you a ring of icons...
See also: Opie addon in World of Warcraft.

Does not feel intuitive with mouse (too slow) but keybinds / touch, sure.

Another alternative is the "Search Menu Items" command from raycast: https://www.raycast.com/changelog/1-20-0
Why do you need Raycast for this, isn't there a built-in shortcut Cmd+? or something?
(comment deleted)
`cmd+?` works, but it's visually quite hard to follow. The raycast version looks much more like an universal command palette, and supports fuzzy matching.

You can also pin menu items for each apps.

One of the best things I've ever used in a program is Autodesk Maya's Hotbox. I even went so far as designing a Flash website where the user interface was a riff on that. I'm going to have to check this out.

https://www.youtube.com/watch?v=7Q06HN5dXzI

Fusion 360 also features pie menus for certain functions. quite handy and I wish more places used them. especially the homescreen on my phone - just go home then put a finger down then go up then right to open whatever preconfigured app is there.
That looks more usable than pie menus to me.

Somehow I‘m an orthogonal-grid person and perceive radial movements as too finicky to perform accurately.

this approach is definitely more usable. radial menus only make ergonomic sense on ie game controllers. with a mouse it becomes a high precision action to use, plus poor accessibility because it doesnt conform to the standard box model.
(comment deleted)
I can't try this because my OS version is too old. I'm confident the app marketing, specifically the idea "Your favorite shortcuts at your mousetip!," is appropriate for how most would use it, though my case would be different.

My first thought was how this would be helpful for the app commands I use just enough to want quickly accessible but not often enough that I remember the keyboard shortcuts. I'll give this a try when my Mac/OS are compatible. Best of luck.

(comment deleted)
Reminds me a bit of the Surface Dial. Really liked that concept even if I’d never have the sort of setup that would benefit from it.
I was thinking about that too. I think logitech or someone else has a device or software too?
Logitech mouse driver had something similar — the middle button (which was configurable) used to show a 3x3 grid of icons that you could click or simply release the mouse button over. This allowed you to easily close or minimize windows (I never used anything else, so I don't remember what other functions it had).

However, a few years later, they removed it from the driver, and Windows 7 couldn't use the older driver. So, I made a AutoHotkey script that displayed the same grid as a plain jpeg and then activated some action depending on the mouse coordinates within that image.

Personally I‘m using BetterTouchTool‘s floating menus for this. These are very powerful because they are fully scriptable and can be triggered in many different ways (although the docs are still very basic, most useful info is on their community forum). Here is a nice window management preset I have been using for some time now: https://community.folivora.ai/t/mouse-window-menu-mwm-window...
(comment deleted)
This preset is great and gets really natural quite quickly. Just hold down the right mouse button and wait for the menu to appear, then release it at the desired option. I have adapted the window management menu to commands specific to whatever app I am using as well as global ones.
I was going to say that - this interaction would work better starting from the mouse itself. Can always use Steermouse mapped to a shortcut though..
Don't quite understand why not more mobile apps have a radial menu.

Seems like a reasonable choice for one-thumb controls.

Agree, it's very handy and natural .. also existed in many forms.

The lack of seeing this may be an patent issue where a patent for a radial menu needs to be invalidated. Pie menus existed back in the 60's, before the patents, lots of examples in this thread.

And for what it's wroth, I'm glad this thing exists, because people should be able to see it and say 'oh yeah, this is like the buttons on my remote control"

I'd guess one issue is the number of items. Radial probably only works for 6 or less. With a scrollable list, any number would work (And many popups have a variable number of options).
One downside is your thumb is always going to obscure at least one of the options.
You don't need to make it a full circle. Fan menus are also good. https://cuppalabs.github.io/angular-fan-menu/
This assumes the phone knows what angle your finger is coming in from. Even if you assume it is coming in from the bottom half that introduces problems when the hit point is near the top of the screen.
You can ask which hand is being used. It doesn't have to span the whole screen either. It's used in games and works just fine in practice.
Radial menu for some reason triggers my OCD. It feels out of place, where all the menus are square. If this was an option I would have that turned off. It is also obscuring whatever there is around the cursor. Reminds me of autocompletes where they cover the line below that has information I need to see whilst typing. So annoying.

It's a big no for me.

In the happy wild times of custom ROMs frenzy on Android (around versions 2.6-4), there was plenty of such attempts. Many devs included them directly in ROM by default.

Unfortunately, all I saw were rather dirty hacks that only kinda worked.

I used to use a similar app where you'd spin your mouse in a circle and it'd pop open a radial menu in the center of the circle you drew.

It was kinda neat, I forget the name of it.

It looks cool, this is not a critique of your work just something I have noticed about myself and curious if others have.

I don't know why but I have long struggled with using icons to mark a task. There are certain ones that are so engrained like a floppy disk to save, a plus mark for a new tab, reload symbol, home symbol, or other very obvious ones. Or ones that are just the logo for a brand, those are easy to remember.

But especially as we moved away from skeuomorphism (which thankfully bits and pieces of it are combing back, without it being bashed over the head with, like with the apple pencil UI) this got a lot harder for me.

And I see this, and and I just know that I am going to have to look at all 6 going in a circle to find the one I want every time.

I experienced this recently where I wanted to put a Shortcut (from the Mac App) on my toolbar in finder. My only option is to show icon only, text only, or both. I can't say, I want to have both for some things.

I am curious if anyone else has struggle with symbols. Basically it seems like for me, the only symbols I remember are the ones that are so obvious (I guess) that it couldn't possible be something else. Or its universal across most/all apps. Even apps that I use daily, if its a symbol unique to that app I am still going to go top to bottom or left to right mousing over until I find the one I am looking for.

Similar thoughts. I use a few of the apps listed on the site frequently and this would take me awhile to master. Super cool idea though.
No, you're most certainly not alone. Very few icons are intuitively understandable, although even the folks at Nielsen Norman have trouble backing that up with data (as linked below).

What immediately came to my mind was Autodesk Maya, where they have similar menus that use text only labels (see the screenshot from their manual). They have a lot of very abstract and complicated features, so every bit of usability counts.

https://www.nngroup.com/articles/icon-usability/

https://help.autodesk.com/view/MAYAUL/2022/ENU/?guid=GUID-8B...

The design fad of ultra-minimalism has set UI development back years. Non-visible controls, exceedingly vague iconography, elimination of the distinction between control and content, and more are all symptoms of developers chasing the trend without thinking about how people actually use their products. Plus back in the day people just put more effort into designing icons. Can you imagine Susan Kare putting a hamburger menu button on something? It's laughable. A complete iconography fail and yet you see it absolutely everywhere these days.
Agreed. Add colour and/or text to this pie menu and it is perfect.

The most well-known implementation of the concept was in the Sims 1, where actions for the active sim were clearly labelled. The menu was a nest of unlimited depth. Good to see someone bring it to the desktop, but it would be better if it were more like its forbearer.

I liked the preview feature on the website, but shift + z is a horrible shortcut on a German keyboard. Just thought I'd let you know.
Thanks! I’ve had a lot of doubts with the preview feature. Browsers won’t let you reliably use cmd/option for the same effect to preview it, so landed on shift + z. But in the app you can’t use that shortcut because it would trigger every time you write something with capital Z.
What’s the free tier like? I see no explanation of that but it’s free with in-app “unlimited access” purchases.
Free tier is 10 shortcut invocations a day before it resets next day.

You could also try a 7 day free trial if you pick the yearly subscription (you can then directly cancel in App store and not pay)

Here is more on the pricing: https://www.pie-menu.com/help/pricing

But as you say I haven’t written about the free tier there.

Uhm, isn't this what command (right) click is supposed to do?
Hi, I had some initial trouble where I kept selecting all the text on the website when I shift-z-clicked. This is easily fixed by making text unselectable on your site via CSS. I wouldn't recommend everyone use it for their entire site, but I think in your case it will make a better demo.

https://stackoverflow.com/questions/826782/how-to-disable-te...

Thanks! I haven’t noticed that problem! Will try it out!
Add the style only while the menu is up.

I had to do something similar a while ago to implement drag&drop while keeping text selectable.

Hey Marius, cool project! Would this work with just the middle mouse button click too?
Just a heads up, the marketing site has really bad scroll performance on Android Firefox.
Thanks! I should test it more thoroughly. Wrapping a couple of the blurs and masks in @supports will probably quickly fix a couple of the issues.
(comment deleted)
That's nice!

I wrote a Swift package that does a similar thing (but as an iOS widget): https://github.com/RiftValleySoftware/RVS_Spinner

My own experience, is that I keep on not using it in my projects. It's too much of an "in your face" widget. I was going to do a SwiftUI version of it, but stopped working on it, when I figured out that I probably wouldn't use it.

I suspect that MacOS, with the cursor-oriented navigation, is a better home for it.

Nice! I’ve noticed that I tend to use Pie Menu myself on apps where I frequently switch tools. Like Figma, Photoshop, Illustrator etc. Or for apps that have different modes: like Calendar (today, week, month), Things (today, inbox++), Obsidian (daily note, graph view, backlinks).

For other apps where the keyboard shortcuts acts more as other shortcuts I don’t use it as much.

This is nice, but one thing I immediately noticed that I think would improve the landing page is to make the shift and "z" keys look like Apple keyboard keys.

EDIT: I know a lot of Mac users have HHKBs or whatever, so they are not actually pressing Apple keys, but I think it would make the page seem more Apple-oriented.

Pie menus work quite well for selecting tools, as an alternative to the tool palette. Here are pie menus in SimCity for X11 (from around 1992):

X11 SimCity Demo:

https://www.youtube.com/watch?v=Jvi98wVUmQA

Here's a demo of a more recent version for Flash from around 2009, which demonstrates how the pie menus serve as a much quicker alternative to the tool palette:

Micropolis Online (SimCity) Web Demo:

https://www.youtube.com/watch?v=8snnqQSI0GE

And of course The Sims 1 uses pie menus too.

The Sims, Pie Menus, Edith Editing, and SimAntics Visual Programming Demo:

https://www.youtube.com/watch?v=-exdu4ETscs

I think you forgot to include the Flash link.
It doesn't work any more since Flash is no longer supported. But here's the OpenLaszlo source code for the Flash pie menus:

https://github.com/SimHacker/micropolis/blob/master/laszlo/m...

Here's a link to the WebAssembly / WebGL / HTML / SvelteKit development version of Micropolis (SimCity), but I haven't implemented most of the user interface or pie menus yet.

https://micropolisweb.com/

https://github.com/SimHacker/MicropolisCore

SvelteKit pie menus for Micropolis are my roadmap, and I've started implementing pie menus for SvelteKit by translating my old jQuery pie menus code, but jQuery and SvelteKit has vastly different architectures, so there's more work to do, and I'm working on it in my spare time, not as a full time job.

Old jQuery pie menus:

https://github.com/SimHacker/jquery-pie/blob/master/javascri...

New SvelteKit pie menus for Micropolis (SimCity), a work in progress, but I haven't written the rendering stuff yet:

https://github.com/SimHacker/MicropolisCore/blob/main/microp...

Also, here's a video of the Unity3D pie menus I implemented a dozen years or so ago (there's a link to the code in the description, but it's 12 years old and Unity's approach to user interfaces has changed a lot since then):

https://www.youtube.com/watch?v=sMN1LQ7qx9g

Nice idea! On German keyboards, Z and Y are swapped, so holding SHIFT-Z is not very convenient. You may want to allow both for your demo.
The things you learn! Good idea: easy fix to allow both on the website.
Nice job on the website! That’s sick!