Showcase of very personal Moi

 From:  Metin Seven (METINSEVEN)
8122.4 
Wow, nice work Marco! I haven't customized MoI yet, but I know from my ever-evolving custom ZBrush UI how a customized interface can be a never-ending journey towards perfection.

The only part of MoI I've customized is the keyboard shortcuts. Here they are:

[Shortcut Keys]
/=script: /* Isolate selection */ moi.geometryDatabase.isolate();
0=script: /* 3D view (perspective or isometric) */ moi.ui.mainWindow.viewpanel.mode = '3D';
1=script: /* Front view */ var vname = 'Front'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
3=script: /* Right view */ var vname = 'Right'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
5=script: /* Toggle between Parallel and Perspective view */ var vp = moi.ui.mainWindow.viewpanel.getViewport('3D'); vp.projection = (vp.projection == 'Perspective' ? 'Parallel': 'Perspective');
7=script: /* Top view */ var vname = 'Top'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
A=ArrayDir
B=Blend
Backspace=Delete
C=script: /* CPlane */ moi.view.setCPlaneInteractive();
Cmd+A=script:moi.geometryDatabase.selectAll();
Cmd+C=CopyClipboard
Cmd+E=Export
Cmd+I=script: /* Invert selection */ moi.geometryDatabase.invertSelection();
Cmd+N=New
Cmd+O=Open
Cmd+R=Randomize
Cmd+S=Save
Cmd+V=Paste
Cmd+X=Cut
Cmd+Z=script:moi.command.undo();
Ctrl+1=script: /* Back view */ var vname = 'Back'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
Ctrl+3=script: /* Left view */ var vname = 'Left'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
Ctrl+7=script: /* Bottom view */ var vname = 'Bottom'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
Ctrl+A=ArrayCurve
Ctrl+C=cMorph
Ctrl+D=DistortCurves
Ctrl+E=Scale2D
Ctrl+F=AddPoint
Ctrl+I=Isocurve
Ctrl+K=script: /* Select naked edges (open borders) */ var gd = moi.geometryDatabase; gd.deselectAll(); var breps = gd.getObjects().getBreps(); for ( var i = 0; i < breps.length; ++i ) breps.item(i).getNakedEdges().setProperty( 'selected', true );
Ctrl+M=Merge
Ctrl+N=New
Ctrl+O=Orient
Ctrl+P=script: /* Copy PDF format to clipboard */ moi.geometryDatabase.copyToClipboardPDF();
Ctrl+R=RailRevolve
Ctrl+S=Separate
Ctrl+Shift+A=ArrayGem
Ctrl+Shift+C=CopyClipboardWithOrigin
Ctrl+Shift+D=Copy
Ctrl+Shift+R=Rebuild
Ctrl+Shift+S=script:/* Shrink selection 1.0 */ function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',0);}} var gd = moi.geometryDatabase; gd.invertSelection(); var so = gd.getSelectedObjects(), sf=so.getFaces(), i; gd.invertSelection(); for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges());
Ctrl+Shift+V=PastePart
Ctrl+Shift+X=script:/* Expand selection 1.0 */ function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',1);}} var so = moi.geometryDatabase.getSelectedObjects(), sf=so.getFaces(), i; for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges()); es(so.getEdges());
Ctrl+V=Paste
Ctrl+X=Cut
Ctrl+Y=script:moi.command.redo();
Ctrl+Z=script:moi.command.undo();
D=BooleanDifference
Delete=Delete
DownArrow=Nudge Down
E=Scale
F=script: /* Show all in viewports */ moi.view.resetAll();
F1=script:moi.launchHelp();
H=script: /* Hide selection */ moi.geometryDatabase.hide();
I=BooleanIntersection
J=Join
K=script: /*Edge loop selection*/ moi.geometryDatabase.selectLoop();
L=Loft
LeftArrow=Nudge Left
M=Mirror
N=NSided
O=Offset
P=PlanarSrf
PageDown=Nudge ZDown
PageUp=Nudge ZUp
R=Rotate
RightArrow=Nudge Right
S=Sweep
Shift+A=ArrayCircular
Shift+B=BoundingBoxCenter
Shift+C=script: /* Reset CPlane to default */ moi.view.resetCPlane();
Shift+Cmd+C=CopyClipboardWithOrigin
Shift+Cmd+S=SaveAs
Shift+Cmd+V=PastePart
Shift+Cmd+Z=script:moi.command.redo();
Shift+D=DelCorners
Shift+DownArrow=Nudge Down Small
Shift+E=Scale1D
Shift+F=ShowPoints
Shift+H=script: /* Select objects to unhide */ moi.geometryDatabase.showSubset();
Shift+I=Inset
Shift+K=script: /* Select edges v1.4 */ var gd=moi.geometryDatabase, so=gd.getSelectedObjects(); function ss(o,v){o.setProperty("selected",v)} function sl(o){ for ( var i=0; i<o.length; ++i ) o.item(i).getEdges().invertProperty("selected");} gd.selectLoop(); sl(so.getFaces()); sl(so.getSolids()); sl(so.getOpenBReps()); sl(so.getSingleFaceBReps()); ss(so.getBReps(),0); ss(so.getFaces(),0);
Shift+L=script: /* Lock selection toggle */ moi.geometryDatabase.lock();
Shift+LeftArrow=Nudge Left Small
Shift+M=BooleanMerge
Shift+N=Network
Shift+O=FatLines
Shift+P=Project
Shift+PageDown=Nudge ZDown Small
Shift+PageUp=Nudge ZUp Small
Shift+R=Revolve
Shift+RightArrow=Nudge Right Small
Shift+S=Shell
Shift+U=UnwrapCurve
Shift+UpArrow=Nudge Up Small
Shift+V=Chamfer
Shift+Z=script: /* Toggle edge display */ var breps = moi.geometryDatabase.getObjects().getBReps(); var hide = true; for ( var i = 0; i < breps.length; ++i ) { var edges = breps.item(i).getEdges(); if ( i == 0 ) hide = !edges.item(0).hidden; edges.setProperty( 'hidden', hide ); }
Space=script: /* Toggle quad view */ if ( moi.ui.mainWindow.viewpanel.mode != 'split' ) { moi.ui.mainWindow.viewpanel.mode = 'split' } else { var viewport = moi.ui.getViewportUnderMouse(); if ( viewport ) { viewport.viewPanel.mode = viewport.name } }
T=Trim
U=BooleanUnion
UpArrow=Nudge Up
V=Fillet
W=Move
X=Extrude
Z=script: /* Toggle visibility of all curves */ var objs = moi.geometryDatabase.getObjects().getCurves(); var ishidden = objs.length> 0 ? objs.item(0).hidden : false; objs.setProperty( 'hidden', !ishidden );

A number of key bindings correspond with either Blender or ZBrush, for convenience.

I decided to start a discussion for sharing your keyboard shortcuts here:

http://moi3d.com/forum/messages.php?webtag=MOI&msg=8123.1

All the best,

Metin

EDITED: 5 Oct 2016 by METINSEVEN