[Volunteers welcome] Refactoring the keyboard shortcuts

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
openBrain
Veteran
Posts: 9041
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

[Volunteers welcome] Refactoring the keyboard shortcuts

Post by openBrain »

Hi all,

Keyboard shortcuts in FreeCAD are often trouble source (mainly because some overlap).
This is quite a huge work, but I think it's time to start tackling this at its root.
To do this, I created a dedicated wikipage so we can more easily share the work.
I propose that this thread holds the discussion about anything related to this.

ATM, this would be good to find volunteers to :
  • List existing commands in FreeCAD
  • Help define the global guidelines
Any thought welcome. :)
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by sgrogan »

bejants work might help
https://github.com/FreeCAD/FreeCAD/rele ... e.Guide.7z
List most known keyboard shortcuts at the original 0.18 release
"fight the good fight"
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by Kunda1 »

openBrain wrote: Mon Apr 06, 2020 10:54 am ATM, this would be good to find volunteers to :
  • List existing commands in FreeCAD
  • Help define the global guidelines
Word! This is super important and I'm glad you mentioned it.
I was thinking that @triplus's https://github.com/triplus/ShortCuts code could be of use here.
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
openBrain
Veteran
Posts: 9041
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by openBrain »

Kunda1 wrote: Mon Apr 06, 2020 12:27 pm Word! This is super important and I'm glad you mentioned it.
I was thinking that @triplus's https://github.com/triplus/ShortCuts code could be of use here.
I had a look at this too, and actually found it would be a lot of work to modify it to get exactly what's needed.
ATM it's more efficient to manually list the commands from the different menus & toolbars, especially if it could be a community effort. :)
However, I think it can later be used to check the list is complete, which can be really great. ;)
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by Kunda1 »

openBrain wrote: Mon Apr 06, 2020 12:54 pm
Kunda1 wrote: Mon Apr 06, 2020 12:27 pm Word! This is super important and I'm glad you mentioned it.
I was thinking that @triplus's https://github.com/triplus/ShortCuts code could be of use here.
I had a look at this too, and actually found it would be a lot of work to modify it to get exactly what's needed.
ATM it's more efficient to manually list the commands from the different menus & toolbars, especially if it could be a community effort. :)
However, I think it can later be used to check the list is complete, which can be really great. ;)
Gotcha. That makes sense.
An aside, it would be awesome to also as a side-effort, create one of these for FC: https://github.com/waldobronchart/ShortcutMapper
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
openBrain
Veteran
Posts: 9041
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by openBrain »

Kunda1 wrote: Mon Apr 06, 2020 1:01 pm Gotcha. That makes sense.
An aside, it would be awesome to also as a side-effort, create one of these for FC: https://github.com/waldobronchart/ShortcutMapper
Once wiki page is here, this shouldn't be a big effort as it basically is only presenting shortcuts in a JSON format. ;)
TheMarkster
Veteran
Posts: 5513
Joined: Thu Apr 05, 2018 1:53 am

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by TheMarkster »

I added a command in Gui:

Gui.getShortcut(command name)

Example: Gui.getShortcut('Sketcher_ConstrainDistanceX')

output: SHIFT+H

Then I opened up many workbenches to get their commands loaded and ran this macro:

Code: Select all

cmds = Gui.listCommands()
for c in cmds:
    s = Gui.getShortcut(c)
    if len(s)==0:
        s = "None"
    Msg(c + "-->" + s + "\n")
Output from macro:

Code: Select all

AlignerTools-->None
Arch_3Views-->None
Arch_Add-->None
Arch_Axis-->A, X
Arch_AxisSystem-->X, S
Arch_AxisTools-->None
Arch_Building-->B, U
Arch_BuildingPart-->B, P
Arch_Check-->None
Arch_CloneComponent-->C, C
Arch_CloseHoles-->None
Arch_Component-->C, M
Arch_CutLine-->None
Arch_CutPlane-->None
Arch_Equipment-->E, Q
Arch_Fence-->None
Arch_Floor-->L, V
Arch_Frame-->F, R
Arch_Grid-->A, X
Arch_IfcSpreadsheet-->I, P
Arch_Material-->M, T
Arch_MaterialTools-->None
Arch_MergeWalls-->None
Arch_MeshToShape-->None
Arch_MultiMaterial-->M, T
Arch_Nest-->N, E
Arch_Panel-->P, A
Arch_PanelTools-->None
Arch_Panel_Cut-->P, C
Arch_Panel_Sheet-->P, S
Arch_Pipe-->P, I
Arch_PipeConnector-->P, C
Arch_PipeTools-->None
Arch_Project-->P, O
Arch_Rebar-->R, B
Arch_Reference-->E, X
Arch_Remove-->None
Arch_RemoveShape-->None
Arch_Roof-->R, F
Arch_Schedule-->None
Arch_SectionPlane-->S, E
Arch_SelectNonSolidMeshes-->None
Arch_Site-->S, I
Arch_Space-->S, P
Arch_SplitMesh-->None
Arch_Stairs-->S, R
Arch_Structure-->S, T
Arch_Survey-->None
Arch_ToggleIfcBrepFlag-->None
Arch_ToggleSubs-->Ctrl+Space
Arch_Wall-->W, A
Arch_Window-->W, N
CaliperTools-->None
DF_SelectLoop-->None
DefeatShapeFeature-->None
DefeaturingTools-->None
Draft_AddConstruction-->None
Draft_AddToGroup-->None
Draft_ApplyStyle-->None
Draft_Arc-->A, R
Draft_ArcTools-->None
Draft_Arc_3Points-->A,T
Draft_Array-->None
Draft_ArrayTools-->None
Draft_AutoGroup-->None
Draft_BSpline-->B, S
Draft_BezCurve-->B, Z
Draft_BezierTools-->None
Draft_Circle-->C, I
Draft_CircularArray-->None
Draft_Clone-->C,L
Draft_CloseLine-->None
Draft_CubicBezCurve-->None
Draft_Dimension-->D, I
Draft_Downgrade-->D, N
Draft_Draft2Sketch-->None
Draft_Drawing-->D, D
Draft_Edit-->D, E
Draft_Ellipse-->E, L
Draft_Facebinder-->F,F
Draft_Fillet-->None
Draft_FinishLine-->None
Draft_FlipDimension-->None
Draft_Heal-->None
Draft_Join-->J, O
Draft_Label-->D, L
Draft_Layer-->None
Draft_Line-->L,I
Draft_LinkArray-->None
Draft_Mirror-->M, I
Draft_Move-->M, V
Draft_Offset-->O, S
Draft_OrthoArray-->None
Draft_PathArray-->None
Draft_PathLinkArray-->None
Draft_Point-->None
Draft_PointArray-->None
Draft_PolarArray-->None
Draft_Polygon-->P, G
Draft_Rectangle-->R, E
Draft_Rotate-->R, O
Draft_Scale-->S, C
Draft_SelectGroup-->None
Draft_SelectPlane-->W, P
Draft_SetWorkingPlaneProxy-->None
Draft_Shape2DView-->None
Draft_ShapeString-->S, S
Draft_ShowSnapBar-->None
Draft_Slope-->None
Draft_Snap_Angle-->None
Draft_Snap_Center-->None
Draft_Snap_Dimensions-->None
Draft_Snap_Endpoint-->None
Draft_Snap_Extension-->None
Draft_Snap_Grid-->None
Draft_Snap_Intersection-->None
Draft_Snap_Lock-->Shift+S
Draft_Snap_Midpoint-->None
Draft_Snap_Near-->None
Draft_Snap_Ortho-->None
Draft_Snap_Parallel-->None
Draft_Snap_Perpendicular-->None
Draft_Snap_Special-->None
Draft_Snap_WorkingPlane-->None
Draft_Split-->S, P
Draft_Stretch-->S, H
Draft_SubelementHighlight-->H, S
Draft_Text-->T, E
Draft_ToggleConstructionMode-->C, M
Draft_ToggleContinueMode-->None
Draft_ToggleDisplayMode-->Shift+Space
Draft_ToggleGrid-->G,R
Draft_Trimex-->T, R
Draft_UndoLine-->None
Draft_Upgrade-->U, P
Draft_Wire-->P, L
Draft_WireToBSpline-->None
FuzzyCommon-->None
FuzzyCut-->None
FuzzyUnion-->None
Image_CreateImagePlane-->None
Image_Open-->None
Image_Scaling-->None
Lattice2_PDPattern-->None
Manipulator-cheat-sheet.pdf-->None
Mesh_AddFacet-->None
Mesh_BoundingBox-->None
Mesh_BuildRegularSolid-->None
Mesh_CrossSections-->None
Mesh_CurvatureInfo-->None
Mesh_Difference-->None
Mesh_EvaluateFacet-->None
Mesh_EvaluateSolid-->None
Mesh_Evaluation-->None
Mesh_Export-->None
Mesh_FillInteractiveHole-->None
Mesh_FillupHoles-->None
Mesh_FlipNormals-->None
Mesh_FromGeometry-->None
Mesh_FromPartShape-->None
Mesh_HarmonizeNormals-->None
Mesh_Import-->None
Mesh_Intersection-->None
Mesh_Merge-->None
Mesh_PolyCut-->None
Mesh_PolySegm-->None
Mesh_PolySplit-->None
Mesh_PolyTrim-->None
Mesh_RemeshGmsh-->None
Mesh_RemoveCompByHand-->None
Mesh_RemoveComponents-->None
Mesh_Scale-->None
Mesh_SectionByPlane-->None
Mesh_Segmentation-->None
Mesh_SegmentationBestFit-->None
Mesh_Smoothing-->None
Mesh_TrimByPlane-->None
Mesh_Union-->None
Mesh_VertexCurvature-->None
MoverTools-->None
OpenSCAD_AddOpenSCADElement-->None
OpenSCAD_ColorCodeShape-->None
OpenSCAD_Edgestofaces-->None
OpenSCAD_ExpandPlacements-->None
OpenSCAD_ExplodeGroup-->None
OpenSCAD_Hull-->None
OpenSCAD_IncreaseToleranceFeature-->None
OpenSCAD_MeshBoolean-->None
OpenSCAD_Minkowski-->None
OpenSCAD_RefineShapeFeature-->None
OpenSCAD_RemoveSubtree-->None
OpenSCAD_ReplaceObject-->None
PartDesign_AdditiveLoft-->None
PartDesign_AdditivePipe-->None
PartDesign_Body-->None
PartDesign_Boolean-->None
PartDesign_Chamfer-->None
PartDesign_Clone-->None
PartDesign_CompPrimitiveAdditive-->None
PartDesign_CompPrimitiveSubtractive-->None
PartDesign_CoordinateSystem-->None
PartDesign_Draft-->None
PartDesign_DuplicateSelection-->None
PartDesign_Fillet-->None
PartDesign_Groove-->None
PartDesign_Hole-->None
PartDesign_InvoluteGear-->None
PartDesign_Line-->None
PartDesign_LinearPattern-->None
PartDesign_Migrate-->None
PartDesign_Mirrored-->None
PartDesign_MoveFeature-->None
PartDesign_MoveFeatureInTree-->None
PartDesign_MoveTip-->None
PartDesign_MultiTransform-->None
PartDesign_NewSketch-->None
PartDesign_Pad-->None
PartDesign_Plane-->None
PartDesign_Pocket-->None
PartDesign_Point-->None
PartDesign_PolarPattern-->None
PartDesign_Revolution-->None
PartDesign_ShapeBinder-->None
PartDesign_SubShapeBinder-->None
PartDesign_SubtractiveLoft-->None
PartDesign_SubtractivePipe-->None
PartDesign_Thickness-->None
Part_Boolean-->None
Part_BooleanFragments-->None
Part_Box-->None
Part_BoxSelection-->None
Part_Builder-->None
Part_Chamfer-->None
Part_CheckGeometry-->None
Part_ColorPerFace-->None
Part_Common-->None
Part_CompCompoundTools-->None
Part_CompJoinFeatures-->None
Part_CompOffset-->None
Part_CompSplitFeatures-->None
Part_Compound-->None
Part_CompoundFilter-->None
Part_Cone-->None
Part_CrossSections-->None
Part_Cut-->None
Part_Cylinder-->None
Part_Defeaturing-->None
Part_EditAttachment-->None
Part_ElementCopy-->None
Part_ExplodeCompound-->None
Part_Export-->None
Part_Extrude-->None
Part_Fillet-->None
Part_Fuse-->None
Part_Import-->None
Part_ImportCurveNet-->None
Part_JoinConnect-->None
Part_JoinCutout-->None
Part_JoinEmbed-->None
Part_Loft-->None
Part_MakeFace-->None
Part_MakeSolid-->None
Part_MakeTube-->None
Part_Measure_Angular-->None
Part_Measure_Clear_All-->None
Part_Measure_Linear-->None
Part_Measure_Refresh-->None
Part_Measure_Toggle_3d-->None
Part_Measure_Toggle_All-->None
Part_Measure_Toggle_Delta-->None
Part_Mirror-->None
Part_Offset-->None
Part_Offset2D-->None
Part_PickCurveNet-->None
Part_PointsFromMesh-->None
Part_Primitives-->None
Part_RefineShape-->None
Part_ReverseShape-->None
Part_Revolve-->None
Part_RuledSurface-->None
Part_Section-->None
Part_ShapeFromMesh-->None
Part_ShapeInfo-->None
Part_SimpleCopy-->None
Part_SimpleCylinder-->None
Part_Slice-->None
Part_SliceApart-->None
Part_Sphere-->None
Part_Sweep-->None
Part_Thickness-->None
Part_Torus-->None
Part_TransformedCopy-->None
Part_XOR-->None
Part_projectionOnSurface-->None
Path_Adaptive-->None
Path_Area-->None
Path_Area_Workplane-->None
Path_Array-->None
Path_Comment-->None
Path_Compound-->None
Path_Contour-->None
Path_Custom-->None
Path_Deburr-->None
Path_DressupAxisMap-->None
Path_DressupDogbone-->None
Path_DressupDragKnife-->None
Path_DressupLeadInOut-->None
Path_DressupPathBoundary-->None
Path_DressupRampEntry-->None
Path_DressupTag-->None
Path_DressupZCorrect-->None
Path_Drilling-->None
Path_Engrave-->None
Path_EngraveTools-->None
Path_ExportTemplate-->None
Path_Fixture-->None
Path_Helix-->None
Path_Hop-->None
Path_Inspect-->P, I
Path_Job-->P, J
Path_MillFace-->None
Path_OpActiveToggle-->P, X
Path_OperationCopy-->None
Path_Pocket_3D-->None
Path_Pocket_Shape-->None
Path_Post-->P, P
Path_Probe-->None
Path_Profile_Edges-->None
Path_Profile_Faces-->None
Path_Sanity-->P, S
Path_SelectLoop-->P, L
Path_SetStartPoint-->None
Path_Shape-->None
Path_SimpleCopy-->None
Path_Simulator-->P, M
Path_Stop-->None
Path_ToolBitCreate-->None
Path_ToolBitLibraryLoad-->None
Path_ToolBitLibraryOpen-->None
Path_ToolBitLoad-->None
Path_ToolBitSave-->None
Path_ToolBitSaveAs-->None
Path_ToolController-->None
Path_ToolLibraryEdit-->P, T
Robot_AddToolShape-->None
Robot_Create-->None
Robot_CreateTrajectory-->None
Robot_Edge2Trac-->None
Robot_ExportKukaCompact-->None
Robot_ExportKukaFull-->None
Robot_InsertKukaIR125-->None
Robot_InsertKukaIR16-->None
Robot_InsertKukaIR210-->None
Robot_InsertKukaIR500-->None
Robot_InsertWaypoint-->A
Robot_InsertWaypointPreselect-->W
Robot_RestoreHomePos-->None
Robot_SetDefaultOrientation-->None
Robot_SetDefaultValues-->None
Robot_SetHomePos-->None
Robot_Simulate-->None
Robot_TrajectoryCompound-->None
Robot_TrajectoryDressUp-->None
Sketcher_BSplineComb-->None
Sketcher_BSplineConvertToNURB-->None
Sketcher_BSplineDecreaseKnotMultiplicity-->None
Sketcher_BSplineDegree-->None
Sketcher_BSplineIncreaseDegree-->None
Sketcher_BSplineIncreaseKnotMultiplicity-->None
Sketcher_BSplineKnotMultiplicity-->None
Sketcher_BSplinePolygon-->None
Sketcher_CarbonCopy-->C,C
Sketcher_Clone-->None
Sketcher_CloseShape-->CTRL+SHIFT+S
Sketcher_CompBSplineShowHideGeometryInformation-->None
Sketcher_CompConstrainRadDia-->SHIFT+R
Sketcher_CompCopy-->CTRL+C
Sketcher_CompCreateArc-->None
Sketcher_CompCreateBSpline-->None
Sketcher_CompCreateCircle-->None
Sketcher_CompCreateConic-->None
Sketcher_CompCreateRegularPolygon-->None
Sketcher_CompModifyKnotMultiplicity-->None
Sketcher_ConnectLines-->CTRL+SHIFT+K
Sketcher_ConstrainAngle-->A
Sketcher_ConstrainBlock-->None
Sketcher_ConstrainCoincident-->C
Sketcher_ConstrainDiameter-->None
Sketcher_ConstrainDistance-->SHIFT+D
Sketcher_ConstrainDistanceX-->SHIFT+H
Sketcher_ConstrainDistanceY-->SHIFT+V
Sketcher_ConstrainEqual-->E
Sketcher_ConstrainHorizontal-->H
Sketcher_ConstrainInternalAlignment-->Ctrl+A
Sketcher_ConstrainLock-->None
Sketcher_ConstrainParallel-->SHIFT+P
Sketcher_ConstrainPerpendicular-->N
Sketcher_ConstrainPointOnObject-->SHIFT+O
Sketcher_ConstrainRadius-->None
Sketcher_ConstrainSnellsLaw-->None
Sketcher_ConstrainSymmetric-->S
Sketcher_ConstrainTangent-->T
Sketcher_ConstrainVertical-->V
Sketcher_Copy-->None
Sketcher_Create3PointArc-->None
Sketcher_Create3PointCircle-->None
Sketcher_CreateArc-->None
Sketcher_CreateArcOfEllipse-->None
Sketcher_CreateArcOfHyperbola-->None
Sketcher_CreateArcOfParabola-->None
Sketcher_CreateBSpline-->None
Sketcher_CreateCircle-->None
Sketcher_CreateEllipseBy3Points-->None
Sketcher_CreateEllipseByCenter-->None
Sketcher_CreateFillet-->F
Sketcher_CreateHeptagon-->None
Sketcher_CreateHexagon-->None
Sketcher_CreateLine-->L
Sketcher_CreateOctagon-->None
Sketcher_CreatePentagon-->None
Sketcher_CreatePeriodicBSpline-->None
Sketcher_CreatePoint-->None
Sketcher_CreatePolyline-->None
Sketcher_CreateRectangle-->R
Sketcher_CreateRegularPolygon-->None
Sketcher_CreateSlot-->None
Sketcher_CreateSquare-->None
Sketcher_CreateTriangle-->None
Sketcher_DeleteAllConstraints-->None
Sketcher_DeleteAllGeometry-->None
Sketcher_EditSketch-->None
Sketcher_Extend-->T,E
Sketcher_External-->X
Sketcher_LeaveSketch-->None
Sketcher_MapSketch-->None
Sketcher_MergeSketches-->None
Sketcher_MirrorSketch-->None
Sketcher_Move-->CTRL+M
Sketcher_NewSketch-->None
Sketcher_ProfilesHexagon1-->None
Sketcher_RectangularArray-->None
Sketcher_ReorientSketch-->None
Sketcher_RestoreInternalAlignmentGeometry-->CTRL+SHIFT+E
Sketcher_SelectConflictingConstraints-->CTRL+SHIFT+E
Sketcher_SelectConstraints-->CTRL+SHIFT+C
Sketcher_SelectElementsAssociatedWithConstraints-->CTRL+SHIFT+E
Sketcher_SelectElementsWithDoFs-->None
Sketcher_SelectHorizontalAxis-->CTRL+SHIFT+H
Sketcher_SelectOrigin-->CTRL+SHIFT+O
Sketcher_SelectRedundantConstraints-->CTRL+SHIFT+R
Sketcher_SelectVerticalAxis-->CTRL+SHIFT+V
Sketcher_StopOperation-->None
Sketcher_SwitchVirtualSpace-->None
Sketcher_Symmetry-->None
Sketcher_ToggleActiveConstraint-->None
Sketcher_ToggleConstruction-->C,M
Sketcher_ToggleDrivingConstraint-->None
Sketcher_Trimming-->T,R
Sketcher_ValidateSketch-->None
Sketcher_ViewSection-->None
Sketcher_ViewSketch-->None
Spreadsheet_AlignBottom-->None
Spreadsheet_AlignCenter-->None
Spreadsheet_AlignLeft-->None
Spreadsheet_AlignRight-->None
Spreadsheet_AlignTop-->None
Spreadsheet_AlignVCenter-->None
Spreadsheet_CreateSheet-->None
Spreadsheet_Export-->None
Spreadsheet_Import-->None
Spreadsheet_MergeCells-->None
Spreadsheet_SetAlias-->Ctrl+Shift+A
Spreadsheet_SplitCell-->None
Spreadsheet_StyleBold-->None
Spreadsheet_StyleItalic-->None
Spreadsheet_StyleUnderline-->None
Std_About-->None
Std_AboutQt-->None
Std_ActivateNextWindow-->Ctrl+Tab
Std_ActivatePrevWindow-->Ctrl+Shift+Backtab
Std_AddonMgr-->None
Std_Alignment-->None
Std_ArrangeIcons-->None
Std_AxisCross-->None
Std_BoxElementSelection-->Shift+E
Std_BoxSelection-->Shift+B
Std_CascadeWindows-->None
Std_CloseActiveWindow-->Ctrl+W
Std_CloseAllWindows-->None
Std_CommandLine-->None
Std_Copy-->Ctrl+C
Std_Cut-->Ctrl+X
Std_Delete-->Del
Std_DemoMode-->None
Std_DlgCustomize-->None
Std_DlgMacroExecute-->None
Std_DlgMacroExecuteDirect-->Ctrl+F6
Std_DlgMacroRecord-->None
Std_DlgParameter-->None
Std_DlgPreferences-->None
Std_DockViewMenu-->None
Std_DrawStyle-->None
Std_DuplicateSelection-->None
Std_Edit-->None
Std_Export-->Ctrl+E
Std_ExportGraphviz-->None
Std_Expressions-->None
Std_FreeCADFAQ-->None
Std_FreeCADForum-->None
Std_FreeCADPowerUserHub-->None
Std_FreeCADUserHub-->None
Std_FreeCADWebsite-->None
Std_FreezeViews-->Shift+F
Std_Group-->None
Std_HideObjects-->None
Std_HideSelection-->None
Std_Import-->Ctrl+I
Std_LinkActions-->None
Std_LinkImport-->None
Std_LinkImportAll-->None
Std_LinkMake-->None
Std_LinkMakeGroup-->None
Std_LinkMakeRelative-->None
Std_LinkReplace-->None
Std_LinkSelectActions-->None
Std_LinkSelectAllLinks-->None
Std_LinkSelectLinked-->S, G
Std_LinkSelectLinkedFinal-->S, D
Std_LinkUnlink-->None
Std_MDITest1-->None
Std_MDITest2-->None
Std_MDITest3-->None
Std_MacroAttachDebugger-->None
Std_MacroStartDebug-->F6
Std_MacroStepInto-->F11
Std_MacroStepOver-->F10
Std_MacroStopDebug-->Shift+F6
Std_MacroStopRecord-->None
Std_Macro_0-->none
Std_Macro_1-->tidak ada
Std_Macro_2-->?
Std_Macro_3-->none
Std_Macro_4-->none
Std_Macro_5-->none
Std_MainFullscreen-->Alt+F11
Std_MeasureDistance-->None
Std_MergeProjects-->None
Std_New-->Ctrl+N
Std_OnlineHelp-->F1
Std_OnlineHelpWebsite-->None
Std_Open-->Ctrl+O
Std_OrthographicCamera-->V, O
Std_Part-->None
Std_Paste-->Ctrl+V
Std_PerspectiveCamera-->V, P
Std_Placement-->None
Std_Print-->Ctrl+P
Std_PrintPdf-->None
Std_PrintPreview-->None
Std_ProjectInfo-->None
Std_ProjectUtil-->None
Std_PythonHelp-->None
Std_PythonWebsite-->None
Std_Quit-->Alt+F4
Std_RandomColor-->None
Std_RecentFiles-->None
Std_Recompute-->Ctrl+R
Std_Redo-->Ctrl+Shift+Z
Std_Refresh-->Ctrl+R
Std_Revert-->None
Std_Save-->Ctrl+S
Std_SaveAll-->None
Std_SaveAs-->Ctrl+Shift+S
Std_SaveCopy-->None
Std_SceneInspector-->None
Std_SelBack-->S, B
Std_SelBoundingBox-->None
Std_SelForward-->S, F
Std_SelectAll-->None
Std_SelectVisibleObjects-->None
Std_SendToPythonConsole-->Ctrl+Shift+P
Std_SetAppearance-->Ctrl+D
Std_ShowObjects-->None
Std_ShowSelection-->None
Std_Test1-->Ctrl+T
Std_Test2-->None
Std_Test3-->None
Std_Test4-->None
Std_Test5-->None
Std_Test6-->None
Std_TestCmdFuncs-->None
Std_TestConsoleOutput-->None
Std_TestProgress1-->None
Std_TestProgress2-->None
Std_TestProgress3-->None
Std_TestProgress4-->None
Std_TestProgress5-->None
Std_TestQM-->None
Std_TestReloadQM-->None
Std_TextDocument-->None
Std_TextureMapping-->None
Std_TileWindows-->None
Std_ToggleBreakpoint-->F9
Std_ToggleClipPlane-->None
Std_ToggleNavigation-->Esc
Std_ToggleObjects-->None
Std_ToggleSelectability-->None
Std_ToggleVisibility-->Space
Std_ToolBarMenu-->None
Std_Transform-->None
Std_TransformManip-->None
Std_TreeCollapse-->None
Std_TreeCollapseDocument-->None
Std_TreeDrag-->T,D
Std_TreeExpand-->None
Std_TreeMultiDocument-->None
Std_TreePreSelection-->T,4
Std_TreeRecordSelection-->T,5
Std_TreeSelectAllInstances-->None
Std_TreeSelection-->T,G
Std_TreeSingleDocument-->None
Std_TreeSyncPlacement-->T,3
Std_TreeSyncSelection-->T,2
Std_TreeSyncView-->T,1
Std_TreeViewActions-->None
Std_Undo-->Ctrl+Z
Std_UnitsCalculator-->None
Std_UserInterface-->None
Std_ViewBottom-->5
Std_ViewBoxZoom-->Ctrl+B
Std_ViewCreate-->None
Std_ViewDimetric-->None
Std_ViewDock-->V, D
Std_ViewDockUndockFullscreen-->None
Std_ViewExample1-->None
Std_ViewExample2-->None
Std_ViewExample3-->None
Std_ViewFitAll-->V, F
Std_ViewFitSelection-->V, S
Std_ViewFront-->1
Std_ViewFullscreen-->F11
Std_ViewIsometric-->0
Std_ViewIvIssueCamPos-->None
Std_ViewIvStereoInterleavedColumns-->None
Std_ViewIvStereoInterleavedRows-->None
Std_ViewIvStereoOff-->None
Std_ViewIvStereoQuadBuff-->None
Std_ViewIvStereoRedGreen-->None
Std_ViewLeft-->6
Std_ViewRear-->4
Std_ViewRight-->3
Std_ViewRotateLeft-->Shift+Left
Std_ViewRotateRight-->Shift+Right
Std_ViewScreenShot-->None
Std_ViewStatusBar-->None
Std_ViewTop-->2
Std_ViewTrimetric-->None
Std_ViewUndock-->V, U
Std_ViewVR-->None
Std_ViewZoomIn-->Ctrl++
Std_ViewZoomOut-->Ctrl+-
Std_WhatsThis-->Shift+F1
Std_Windows-->None
Std_WindowsMenu-->None
Std_Workbench-->None
Surface_CurveOnMesh-->None
Surface_ExtendFace-->None
Surface_Filling-->None
Surface_GeomFillSurface-->None
TechDraw_2LineCenterLine-->None
TechDraw_2PointCenterLine-->None
TechDraw_3PtAngleDimension-->None
TechDraw_ActiveView-->None
TechDraw_AngleDimension-->None
TechDraw_Annotation-->None
TechDraw_ArchView-->None
TechDraw_Balloon-->None
TechDraw_CenterLineGroup-->None
TechDraw_ClipGroup-->None
TechDraw_ClipGroupAdd-->None
TechDraw_ClipGroupRemove-->None
TechDraw_CosmeticEraser-->None
TechDraw_CosmeticVertex-->None
TechDraw_CosmeticVertexGroup-->None
TechDraw_DecorateLine-->None
TechDraw_DetailView-->None
TechDraw_DiameterDimension-->None
TechDraw_Dimension-->None
TechDraw_DraftView-->None
TechDraw_ExportPageDXF-->None
TechDraw_ExportPageSVG-->None
TechDraw_ExtentGroup-->None
TechDraw_FaceCenterLine-->None
TechDraw_GeometricHatch-->None
TechDraw_Hatch-->None
TechDraw_HorizontalDimension-->None
TechDraw_HorizontalExtentDimension-->None
TechDraw_Image-->None
TechDraw_LandmarkDimension-->None
TechDraw_LeaderLine-->None
TechDraw_LengthDimension-->None
TechDraw_LinkDimension-->None
TechDraw_Midpoints-->None
TechDraw_PageDefault-->None
TechDraw_PageTemplate-->None
TechDraw_ProjectionGroup-->None
TechDraw_Quadrants-->None
TechDraw_RadiusDimension-->None
TechDraw_RedrawPage-->None
TechDraw_RichTextAnnotation-->None
TechDraw_SectionView-->None
TechDraw_ShowAll-->None
TechDraw_SpreadsheetView-->None
TechDraw_Symbol-->None
TechDraw_ToggleFrame-->None
TechDraw_VerticalDimension-->None
TechDraw_VerticalExtentDimension-->None
TechDraw_View-->None
TechDraw_WeldSymbol-->None
ViewIsometricCmd-->None
ViewOrthographicCmd-->None
ViewPerspectiveCmd-->None
ViewZoomToFit-->None
View_Measure_Clear_All-->None
View_Measure_Toggle_All-->None
refineFeatureTool-->None
Edit: https://github.com/FreeCAD/FreeCAD/pull/3319
Last edited by TheMarkster on Mon Apr 06, 2020 8:40 pm, edited 1 time in total.
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by Kunda1 »

TheMarkster wrote: Mon Apr 06, 2020 8:13 pm I added a command in Gui
Fantastic skills! Thanks for this!
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
User avatar
HakanSeven12
Veteran
Posts: 1481
Joined: Wed Feb 06, 2019 10:30 pm

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by HakanSeven12 »

TheMarkster wrote: Mon Apr 06, 2020 8:13 pm I added a command in Gui:
This is nice. Can you do similar thing for icon, text, shortcut, triggered and statustip? I'm trying to create new menu system. But I'm calling this functions from button objects in toolbar. If you can do that it will help to use this functions directly.

My thread: https://forum.freecadweb.org/viewtopic.php?f=34&t=44937
TheMarkster
Veteran
Posts: 5513
Joined: Thu Apr 05, 2018 1:53 am

Re: [Volunteers welcome] Refactoring the keyboard shortcuts

Post by TheMarkster »

I've made a couple changes to the PR:

1) renamed getShortcut to getCommandShortcut
2) added getCommandInfo

getCommandInfo(string)

returns a list of strings

Usage example:

Code: Select all

menuText,tooltipText,whatsThisText,statustipText,pixmapText,shortcutText = getCommandInfo('Std_Transform')
Post Reply