Heads up: this rewrite was first and foremost generated with AI, and so is this README. I use it daily and it works for me, but I haven't vetted the code too carefully. Back up your config before trying it.
Pie menus for FreeCAD. Press a key, flick toward a tool, let go. This is a fork of Grubuntu/PieMenu with the internals redone from scratch.
-
Shortcuts are per workbench. The same key can mean different pies in PartDesign and Sketcher, with an "Any workbench" binding as the fallback.
-
One key can carry up to four pies: tap, double-tap, hold, and double-tap-then-hold. Hold gives you the marking-menu flow: the pie follows your aim with an arrow and firing happens on release. A quick tap on a hold binding does nothing instead of leaving a menu behind. When a key is ambiguous (a hold pie waiting out a possible double-tap), moving the mouse settles it instantly: motion means you're gesturing, so the pie opens right away, anchored where you pressed — your movement already counts toward the aim.
-
Slots can have selection conditions (a face, two objects, an edge...). The same pie with nothing selected and with a face selected:
When several tools match, a small chooser pops up under the slot, and it remembers which one you picked last.
-
Slots can open other pies. Hovering one glides straight into it at the cursor, and a back button appears in the middle.
-
There's a Smart pie that fills itself with your most-used tools for whatever workbench you're in. Counts decay over time so it tracks what you're doing now, not last month. Bind it to a key and forget about it.
-
Layouts: circles with multiple rings (uniform, auto-fit by circumference, or custom counts like 8,16), or grids hanging off any side of the cursor with per-block offsets. Here's a two-ring pie and its slot rules in the editor:
-
Plus: number keys 1-9 fire slots, Shift keeps the pie open so you can chain tools, right-click a slot in a live pie to edit it, macros as slot targets, per-part colors, single-pie export/import as JSON, new pie from any toolbar, a stats panel, optional auto-open when your selection matches a conditional slot.
Icons come from FreeCAD's own command registry, so a pie full of Sketcher tools looks right even if you've never opened Sketcher this session:
Command names can be shown under the buttons, and the layout spreads so nothing overlaps:
git clone https://github.com/imadnyc/PieMenu ~/PieMenu
ln -s ~/PieMenu ~/.local/share/FreeCAD/v1-1/Mod/PieMenuRestart FreeCAD. An existing v1 PieMenu config gets migrated automatically; the v1 data itself is left alone.
If you want a ready-made set of pies on F3-F9 (including the Smart pie), this merges them into your profile without touching anything you already have:
freecadcmd ~/PieMenu/dev/install_seed.pyPreferences are under Tools > Accessories > PieMenu preferences.
| Key | Anywhere | PartDesign | Sketcher |
|---|---|---|---|
| F3 tap | Main | ||
| F3 hold | Modelling | Sketching | |
| F3 double-hold | Patterns | ||
| F4 tap / double | Modelling / Patterns | ||
| F6 | View | ||
| F7 tap / hold | Booleans | Constraints | |
| F8 | Datums | ||
| F9 | Smart (your most used) |
There's a Nix dev environment with FreeCAD 1.1.1 pinned. Everything runs against a throwaway profile in /tmp, so your real config is never touched.
nix run .#launch # isolated FreeCAD with this repo as the addon
nix run .#watch # relaunch on save
nix run .#smoke # headless test suite
nix run .#e2e # end-to-end in a real offscreen GUI
nix run .#snap # screenshot the widgets to /tmp/piemenu-snapsIMPLEMENTATION.md has the schema notes, UI-FEEDBACK.md the design decisions, and mockups/ the HTML mockups the UI was designed in.
Based on PieMenu by microelly (2015), looo, triplus, mdkus, Grubuntu, Pgilfernandez, hasecilu and Ben-PH. LGPL-2.1-or-later, same as the original.






