camera-control :
{
    // movement
    'forward'               : { 'W' }
    'backward'              : { 'S' }
    'left'                  : { 'A' }
    'right'                 : { 'D' }
    'down'                  : { 'Q' }
    'up'                    : { 'E' }

    // drag left mouse button
    'span'                  : { 'space' }
    'zoom'                  : { 'Z' }
    'focus'                 : { 'X' }
    'rotate'                : { 'K' }
}

global :
{
    // command
    'cmd undo'              : { 'Z'        'ctrl' 'repeat' }
    'cmd redo'              : { 'Y'        'ctrl' 'repeat' }
    'cmd redo'              : { 'Z'        'ctrl' 'shift' 'repeat' }
    
    // project
    'new'                   : { 'P'        'ctrl' }
    'dup'                   : { 'P'        'ctrl' 'shift' }
    'open'                  : { 'O'        'ctrl' }
    'save'                  : { 'S'        'ctrl' }
    'saveas'                : { 'S'        'ctrl' 'shift' }
    
    'cmd console'           : { 'F1' } // activate console
    'set pt 2'              : { 'F2' } // switch between modeler and renderer
    'reset'                 : { 'F12' }
    
    // prev/next color
    'index -1'				: { '1' 'repeat' }
    'index -2'				: { '2' 'repeat' }
    
    // prev/next pattern
    'set pattlib -1'        : { '3' 'repeat' }
    'set pattlib -2'        : { '4' 'repeat' }

    // camera
    'cam focus'             : { '5' }
    'cam face'              : { '5'        'ctrl' }
    
    // screenshot
    'snap scene'            : { '6' } 
    'snap'                  : { '6'        'ctrl' }
    
    'cam save'              : { '7' } 
    'cam load'              : { '8' }
    
    'cam slot 0'            : { 'NUMPAD0' }
    'cam slot 1'            : { 'NUMPAD1' }
    'cam slot 2'            : { 'NUMPAD2' }
    'cam slot 3'            : { 'NUMPAD3' }
    'cam slot 4'            : { 'NUMPAD4' }
    'cam slot 5'            : { 'NUMPAD5' }
    'cam slot 6'            : { 'NUMPAD6' }
    'cam slot 7'            : { 'NUMPAD7' }
    'cam slot 8'            : { 'NUMPAD8' }
    'cam slot 9'            : { 'NUMPAD9' }
    
    // ui
    'ui inc -0.25'          : { 'MINUS'    'ctrl' 'repeat' }
    'ui inc +0.25'          : { 'PLUS'     'ctrl' 'repeat' }
}

model-editor :
{
    // brush mode
    'set b_mode vox'        : { 'V' }
    'set b_mode face'       : { 'F' }
    'set b_mode box'        : { 'B' }
    'set b_mode geo' 	    : { 'L' }
    'set b_mode code'	    : { 'C' }
    'set b_mode pattern'    : { 'P' } 
    
    // brush type
    'set b_type attach'     : { 'T' }
    'set b_type erase'      : { 'R' } 
    'set b_type paint'      : { 'G' }    
    'set b_type msel'       : { 'M' } // marquee select
    'set b_type asel'       : { 'N' } // region select 
     
    // brush mirror
    'mirror x 2'            : { 'F5' }
    'mirror y 2'            : { 'F6' }
    'mirror z 2'            : { 'F7' }

    // selection
    'sel_inv'               : { 'I'        'ctrl' }
    'sel_none'              : { 'D'        'ctrl' }
    'sel_all'               : { 'A'        'ctrl' }

    // clipboard
    'copy'                  : { 'C'        'ctrl' }
    'paste'                 : { 'V'        'ctrl' }
    'cut'                   : { 'X'        'ctrl' } 

    // edit
    'full'                  : { 'U' }
    'fill'                  : { 'I' }
    'zero'                  : { 'BACK' }
    'zero'                  : { 'DELETE' }

    // view
    'set rm_show edge 2'    : { 'E'        'ctrl' }
    'set rm_show grid 2'    : { 'G'        'ctrl' }
    'set rm_show frame 2'   : { 'F'        'ctrl' }
    'set rm_show bo 2'      : { 'B'        'ctrl' }
    'set rm_show sw 2'      : { 'W'        'ctrl' }

    // scene graph level
    'olevel -2'             : { 'TAB' }
    'olevel -1'             : { 'TAB'      'shift' }
}

world-editor :
{
    // brush mode
    'set b_obj msel'        : { 'M' }
    'set b_obj wrap'        : { 'N' }
    'set b_obj patt'        : { 'P' }
    
    // object
    'onew'                  : { 'N'        'ctrl' }
    'odel'                  : { 'BACK' }
    'odel'                  : { 'DELETE' }
    'ogroup'                : { 'R'        'ctrl' } 
    'oungroup'              : { 'R'        'ctrl' 'shift' }

    // scene graph level
    'olevel -2'             : { 'TAB' }
    'olevel -1'             : { 'TAB'      'shift' }

    // selection
    'osel_inv'              : { 'I'        'ctrl' } 
    'osel_none'             : { 'D'        'ctrl' } 
    'osel_all'              : { 'A'        'ctrl' } 

    // clipboard
    'ocopy'                 : { 'C'        'ctrl' } 
    'ocopy ref'             : { 'C'        'ctrl' 'shift' }
    'opaste'                : { 'V'        'ctrl' }
    'ocut'                  : { 'X'        'ctrl' } 
    'oref2obj 0'            : { 'T'        'ctrl' } 
    'oref2obj 1'            : { 'T'        'ctrl' 'shift' } 

    // edit
    'ounion'                : { 'U' }

    // move
    'omove x -1'            : { 'LEFT'      'repeat' } 
    'omove x +1'            : { 'RIGHT'     'repeat' } 
    'omove y -1'            : { 'DOWN'      'repeat' } 
    'omove y +1'            : { 'UP'        'repeat' } 
    'omove z -1'            : { 'PAGEDOWN'  'repeat' }
    'omove z +1'            : { 'PAGEUP'    'repeat' }
    'omove g'               : { 'G' } 

    // rotate
    'orot z -1'             : { 'PLUS' } 
    'orot z +1'             : { 'MINUS' } 
    'orot x -1'             : { '9' }
    'orot x +1'             : { '0' } 

    // hide
    'ohide 1'               : { 'H'        'ctrl' } 
    'ohide 0'               : { 'H'        'ctrl' 'shift' }

    // view
    'set rm_show edge 2'    : { 'E'        'ctrl' }
    'set rm_show grid 2'    : { 'G'        'ctrl' } 
    'set rm_show bo 2'      : { 'B'        'ctrl' } 
    'set rm_show wire 2'    : { 'M'        'ctrl' }
}

renderer :
{
    // material clipboard
    'mtl_reset'             : { 'R'        'ctrl' }
    'mtl_copy'              : { 'C'        'ctrl' }
    'mtl_paste'             : { 'V'        'ctrl' }

    // view
    'set pt_show edge 2'    : { 'E'        'ctrl' }
    'set pt_show grid 2'    : { 'G'        'ctrl' }
    'set pt_show gd 2'      : { 'U'        'ctrl' }
    'set pt_show sw 2'      : { 'W'        'ctrl' }
    'set pt_show bg_c 2'    : { 'B'        'ctrl' }
}