Skip to content
 
 

Repository files navigation

PieMenu v2

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.

the preferences dialog

What's different from v1

  • 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:

    nothing selected a face selected

    When several tools match, a small chooser pops up under the slot, and it remembers which one you picked last.

    the chooser on an overloaded slot

  • 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:

    a two-ring pie with conditional slots

  • 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:

a constraints pie

Command names can be shown under the buttons, and the layout spreads so nothing overlaps:

command names on

the gesture arrow

Install

git clone https://github.com/imadnyc/PieMenu ~/PieMenu
ln -s ~/PieMenu ~/.local/share/FreeCAD/v1-1/Mod/PieMenu

Restart 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.py

Preferences are under Tools > Accessories > PieMenu preferences.

The starter keys

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)

Hacking on it

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-snaps

IMPLEMENTATION.md has the schema notes, UI-FEEDBACK.md the design decisions, and mockups/ the HTML mockups the UI was designed in.

Credits and license

Based on PieMenu by microelly (2015), looo, triplus, mdkus, Grubuntu, Pgilfernandez, hasecilu and Ben-PH. LGPL-2.1-or-later, same as the original.

About

Fork of PieMenu, with some improvements

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages