<?xml version="1.0"?>
<keys name="Macromedia Freehand">

<!--  
This is an alternative set of keyboard shortcuts for Inkscape, 
in the style of Macromedia Freehand.  
This set is intended to help experienced Freehand users get 
started with Inkscape.  It is not intended for long term use.  

Users are encouraged to learn how to use Inkscape which has more 
comprehensive keyboard shortcuts for all kind of features.  Also 
users advised to get directly involved and provide feedback to 
developers on how best to improve the default settings for all users.  

Use the Preferences dialog to choose these shortcuts or 
if it doesn't exist yet be sure to check the request tracker and 
encourage the developers to add the option to the user interface.  
In the meantime to manually enable these keyboard shortcuts replace the file 
inkscape/share/keys/default.xml with this file.  
-->

<!-- 
Macromedia Freehand MX toplevel menus: 
File, Edit, View, Modify, Text, Xtras, Window, Help.  
-->

<!-- Tools -->

  <!-- Selector (Inkscape).  Pointer (Freehand).  -->
  <bind key="F10" modifiers="Shift" action="ToolSelector" />
  <!-- Holding down the Control (Ctrl) key also toggles back to the Pointer --> 

  <!-- Node (Inkscape).  Subselect (Freehand).  No key shortcut.  -->
  <bind key="" modifiers="" action="ToolNode" display="false"/>

  <bind key="F1" modifiers="Shift" action="ToolRect" display="true"/>

  <!-- Freehand has seperate tools for Ellipse and Arc unlike Inkscape.  -->
  <bind key="F3" modifiers="Shift" action="ToolArc" display="true"/>

  <!-- Star (Inkscape).  Polygon (Freehand) inlcudes star options.  -->
  <bind key="F8" modifiers="Shift" action="ToolStar" />

  <!-- Freehand does not use a keybinding for the Spiral tool.  
  Freehand uses F9 for the Reflect Tool.  Including anyway for now.  -->
  <bind key="F9" action="ToolSpiral" display="true"/>

  <bind key="F5" modifiers="Shift" action="ToolPencil" display="true"/>

  <bind key="F6" modifiers="Shift" action="ToolPen" display="true"/>
  <!-- Freehand does not use a keybinding for the Calligraphic Pen tool.  
  The Calligraphic Pen is hidden under the Pencil tool -->

  <bind key="F9" modifiers="Ctrl,Shift" action="ToolText" display="true"/>
  
  <!-- Freehand does not include equivalent tool.  Fireworks oddly enough 
  has a more advanced gradient tool similar to Inkscape.  -->
  <bind key="g" action="ToolGradient" />
  <bind key="G" action="ToolGradient" />

  <!-- Freehand includes a Connector tool but no keybinding for it.  -->
  <bind key="" modifiers="" action="ToolConnector" display="true"/>

  <!-- Freehand includes an Eyedropper tool but no keybinding for it.  -->
  <bind key="" action="ToolDropper" display="true"/>

<!-- File -->

  <bind key="n" modifiers="Ctrl" action="FileNew" display="true"/>
  <bind key="N" modifiers="Ctrl" action="FileNew" />

  <bind key="o" modifiers="Ctrl" action="FileOpen" display="true"/>
  <bind key="O" modifiers="Ctrl" action="FileOpen" />

  <bind key="w" modifiers="Ctrl" action="FileClose" display="true"/>
  <bind key="W" modifiers="Ctrl" action="FileClose" display="true"/>

  <bind key="" modifiers="" action="FileRevert" />

  <bind key="s" modifiers="Ctrl" action="FileSave" display="true"/>
  <bind key="S" modifiers="Ctrl" action="FileSave" />

  <bind key="s" modifiers="Ctrl,Shift" action="FileSaveAs" display="true"/>
  <bind key="S" modifiers="Ctrl,Shift" action="FileSaveAs" />

  <bind key="p" modifiers="Ctrl" action="FilePrint" display="true"/>
  <bind key="P" modifiers="Ctrl" action="FilePrint" />

  <bind key="r" modifiers="Ctrl" action="FileImport" display="true"/>
  <bind key="R" modifiers="Ctrl" action="FileImport" />

  <bind key="r" modifiers="Ctrl,Shift" action="FileExport" display="true"/>
  <bind key="R" modifiers="Ctrl,Shift" action="FileExport" />

  <bind key="q" modifiers="Ctrl" action="FileQuit" display="true"/>
  <bind key="Q" modifiers="Ctrl" action="FileQuit" display="true"/>
  <!-- Alt+F4 included, do not assume the Window Manager provides it.  -->
  <bind key="F4" modifiers="Alt" action="FileQuit" display="true"/>

<!-- Zoom (Inkscape).  View, Magnification (Freehand).  -->

  <!-- Not included in Freehand but including here anyway for sanity.  
  Fireworks does use Ctrl+= for Zoom In and Ctrl+- for Zoom Out.  -->
  <bind key="plus" action="ZoomIn" display="true"/>
  <bind key="plus" modifiers="Shift" action="ZoomIn" />
  <bind key="equal" action="ZoomIn" />
  <bind key="KP_Add" action="ZoomIn" />

  <bind key="minus" action="ZoomOut" display="true"/>
  <bind key="KP_Subtract" action="ZoomOut" />

  <!-- Fit Selection  Ctrl+Alt+0 --> 
  <bind key="0" modifiers="Ctrl,Alt" action="ZoomSelection" display="true"/>
  <!-- Fit to Page  Ctrl+Shift+W -->
  <bind key="w" modifiers="Ctrl,Shift" action="ZoomPage" display="true"/>
  <bind key="W" modifiers="Ctrl,Shift" action="ZoomPage" display="true"/>
  <bind key="" action="ZoomPageWidth" />
  <!-- Fit All  Ctrl+0 -->
  <bind key="0" modifiers="Ctrl" action="ZoomDrawing" display="true"/>

  <!-- Magnification 50%  Ctrl+5-->
  <bind key="5" modifiers="Ctrl" action="Zoom1:2" display="true"/>
  <!-- Magnification 100%  Ctrl+1 -->
  <bind key="1" modifiers="Ctrl" action="Zoom1:0" display="true"/>
  <!-- Magnification 200%  Ctrl+2 -->
  <!-- Magnification 400%  Ctrl+4 -->
  <!-- Magnification 800%  Ctrl+8 -->

<!-- View -->

  <!-- Freehand has no direct equivalent.  F11 used by Library palette.  -->
  <bind key="" action="FullScreen" display="true"/> 

  <!-- Freehand has a menu item "Toolbars  Ctrl+Alt+T" to hide all Toolbars -->
  <bind key="t" modifiers="Ctrl,Alt" action="ToggleToolbox" display="true"/>
  <bind key="T" modifiers="Ctrl,Alt" action="ToggleToolbox" />

  <!-- Freehand  "View, Panels  F4"  also Ctrl+Shift+H  
  Fireworks uses "Window, Hide Panels  F4" to hide both Panels and Toolbox --> 
  <bind key="F4" action="DialogsToggle" display="true"/>
  <bind key="h" modifiers="Ctrl,Shift" action="DialogsToggle" />
  <bind key="H" modifiers="Ctrl,Shift" action="DialogsToggle" />

  <!-- No menu items in Freehand but these do cycle through Windows as expected -->
  <bind key="Tab" modifiers="Ctrl" action="NextWindow" />
  <bind key="ISO_Left_Tab" modifiers="Ctrl,Shift" action="NextWindow" />
  <bind key="Tab" modifiers="Ctrl,Shift" action="PrevWindow" />
  <bind key="ISO_Left_Tab" modifiers="Ctrl" action="PrevWindow" />

  <!-- Rulers off by default.  Looks better and cleaner that way, less busy.  -->
  <bind key="r" modifiers="Ctrl,Alt" action="ToggleRulers" display="true"/>
  <bind key="R" modifiers="Ctrl,Alt" action="ToggleRulers" />

  <!-- No keybinding or option to toggle Scrollbars.  Ctrl+B used for Bold text.  -->
  <bind action="ToggleScrollbars" />

  <!-- TODO: Freehand "View, Guides, Show  Ctrl+;" -->
  <bind key="" modifiers="Ctrl" action="ToggleGuides" display="true"/> 

  <!-- View, Grid, Show  Ctrl+Alt+G.  -->
  <bind key="g" modifiers="Ctrl,Alt" action="ToggleGrid" /> 
  <bind key="G" modifiers="Ctrl,Alt" action="ToggleGrid" /> 
  <!-- TODO: View, Grid, Snap to Grid Ctrl+Alt+Shift+G.  -->

  <!-- New View in Inkscape is equivalent to New Window in Freehand.  -->
  <bind key="n" modifiers="Shift,Alt" action="ViewNew"/>
  <bind key="N" modifiers="Shift,Alt" action="ViewNew"/>

  <bind action="ViewNewPreview"/>
  <bind action="ViewIconPreview"/>

  <bind action="ViewModeNormal"/>
  <!-- Wireframe View (Inkscape).  Keyline View Ctrl+K  (Freehand).  -->
  <bind key="K" modifiers="Ctrl" action="ViewModeOutline"/>

  <!-- Freehand also has a Fast Mode  Ctrl+Shift+K  
  which can be used in combination with Keyline.  --> 

<!-- Edit -->

  <bind key="z" modifiers="Ctrl" action="EditUndo" display="true"/>
  <bind key="Z" modifiers="Ctrl" action="EditUndo" />

  <bind key="z" modifiers="Ctrl,Shift" action="EditRedo" />
  <bind key="Z" modifiers="Ctrl,Shift" action="EditRedo" />
  <bind key="y" modifiers="Ctrl" action="EditRedo" />
  <bind key="Y" modifiers="Ctrl" action="EditRedo" display="true" />

  <bind key="x" modifiers="Ctrl" action="EditCut" display="true"/>
  <bind key="X" modifiers="Ctrl" action="EditCut" />

  <bind key="c" modifiers="Ctrl" action="EditCopy" display="true"/>
  <bind key="C" modifiers="Ctrl" action="EditCopy" />

  <bind key="v" modifiers="Ctrl" action="EditPaste" display="true"/>
  <bind key="V" modifiers="Ctrl" action="EditPaste" />

  <!-- TODO -->
  <!-- Special: Paste Attributes  Ctrl+Alt+Shift+V  -->
  <!-- Cut Contents  Ctrl+shift+X   -->
  <!-- Paste Contents  Ctrl+shift+V  -->

  <bind key="Delete" action="EditDelete" display="true"/>
  <bind key="KP_Delete" action="EditDelete" />
  <bind key="BackSpace" action="EditDelete" />

  <bind key="d" modifiers="Ctrl,Alt" action="EditDuplicate" display="true"/>
  <bind key="D" modifiers="Ctrl,Alt" action="EditDuplicate" />

  <bind key="d" modifiers="Ctrl,Shift" action="EditClone" display="true"/>
  <bind key="D" modifiers="Ctrl,Shift" action="EditClone" />

  <bind key="a" modifiers="Ctrl" action="EditSelectAll" display="true"/>
  <bind key="A" modifiers="Ctrl" action="EditSelectAll" />

  <!-- Freehand  "Edit, Select None  Ctrl+D"  -->
  <bind key="d" modifiers="Ctrl" action="EditDeselect" display="true"/>
  <bind key="D" modifiers="Ctrl" action="EditDeselect" />

  <!-- Freehand  "Edit, Select All in Document None  Ctrl+Shift+A"  -->
  <bind key="a" modifiers="Ctrl,Shift" action="EditSelectAllInAllLayers" display="true"/>
  <bind key="A" modifiers="Ctrl,Shift" action="EditSelectAllInAllLayers" />

  <bind action="EditInvert" />
  <bind action="EditInvertInAllLayers" />
  <bind action="EditClearAll" /> 

<!-- Objects/selection -->

  <bind key="h" action="ObjectFlipHorizontally" display="true"/>
  <bind key="H" action="ObjectFlipHorizontally" />

  <bind key="v" action="ObjectFlipVertically" display="true"/>
  <bind key="V" action="ObjectFlipVertically" />

  <bind key="Home" action="SelectionToFront" display="true"/>
  <bind key="KP_Home" action="SelectionToFront" />

  <bind key="End" action="SelectionToBack" display="true"/>
  <bind key="KP_End" action="SelectionToBack" />

  <bind key="Page_Up" action="SelectionRaise" display="true"/>
  <bind key="KP_Page_Up" action="SelectionRaise" />

  <bind key="Page_Down" action="SelectionLower" display="true"/>
  <bind key="KP_Page_Down" action="SelectionLower" />

  <bind key="g" modifiers="Ctrl" action="SelectionGroup" display="true"/>
  <bind key="G" modifiers="Ctrl" action="SelectionGroup" />
  <bind key="g" modifiers="Ctrl,Shift" action="SelectionUnGroup" display="true"/>
  <bind key="G" modifiers="Ctrl,Shift" action="SelectionUnGroup" />

  <bind key="b" modifiers="Alt" action="SelectionCreateBitmap" display="true"/>
  <bind key="B" modifiers="Alt" action="SelectionCreateBitmap" />

  <bind key="b" modifiers="Alt,Shift" action="SelectionTrace" display="true"/>
  <bind key="B" modifiers="Alt,Shift" action="SelectionTrace" />

  <bind key="i" modifiers="Alt" action="ObjectsToPattern" display="true"/>
  <bind key="I" modifiers="Alt" action="ObjectsToPattern" />

  <bind key="i" modifiers="Alt,Shift" action="ObjectsFromPattern" display="true"/>
  <bind key="I" modifiers="Alt,Shift" action="ObjectsFromPattern" />

  <bind action="ObjectSetMask" />
  <bind action="ObjectUnSetMask" />

  <bind action="ObjectSetClipPath" />
  <bind action="ObjectUnSetClipPath" />

  <!-- FIXME: currently these bypass the verbs, so the verbs are not bound to ctrl+[] as they should be -->
  <bind action="ObjectRotate90" /> 
  <bind action="ObjectRotate90CCW" /> 

  <bind action="ObjectRemoveTransform" /> 

<!-- Path -->

  <bind key="c" modifiers="Ctrl,Shift" action="ObjectToPath" display="true"/>
  <bind key="C" modifiers="Ctrl,Shift" action="ObjectToPath" />

  <bind key="c" modifiers="Ctrl,Alt" action="StrokeToPath" display="true"/>
  <bind key="C" modifiers="Ctrl,Alt" action="StrokeToPath" />

  <bind key="k" modifiers="Ctrl" action="SelectionCombine" display="true"/>
  <bind key="K" modifiers="Ctrl" action="SelectionCombine" />

  <bind key="k" modifiers="Ctrl,Shift" action="SelectionBreakApart" display="true"/>
  <bind key="K" modifiers="Ctrl,Shift" action="SelectionBreakApart" />

  <bind key="plus" modifiers="Ctrl" action="SelectionUnion" display="true"/>
  <bind key="KP_Add" modifiers="Ctrl" action="SelectionUnion" />
  <bind key="plus" modifiers="Ctrl,Shift" action="SelectionUnion" />

  <bind key="asterisk" modifiers="Ctrl" action="SelectionIntersect" display="true"/>
  <bind key="KP_Multiply" modifiers="Ctrl" action="SelectionIntersect" />
  <bind key="asterisk" modifiers="Ctrl,Shift" action="SelectionIntersect" />

  <bind key="minus" modifiers="Ctrl" action="SelectionDiff" display="true"/>
  <bind key="underscore" modifiers="Ctrl" action="SelectionDiff" />
  <bind key="underscore" modifiers="Ctrl,Shift" action="SelectionDiff" />
  <bind key="KP_Subtract" modifiers="Ctrl" action="SelectionDiff" />
  <bind key="minus" modifiers="Ctrl,Shift" action="SelectionDiff" />

  <bind key="asciicircum" modifiers="Ctrl" action="SelectionSymDiff" display="true"/> <!-- ^ -->
  <bind key="asciicircum" modifiers="Ctrl,Shift" action="SelectionSymDiff" />

  <bind key="slash" modifiers="Ctrl,Alt" action="SelectionCutPath" display="true"/>
  <bind key="slash" modifiers="Ctrl,Alt,Shift" action="SelectionCutPath" />

  <bind key="slash" modifiers="Ctrl" action="SelectionDivide" display="true"/>
  <bind key="slash" modifiers="Ctrl,Shift" action="SelectionDivide" />

  <bind key="parenright" modifiers="Ctrl" action="SelectionOffset" display="true"/>
  <bind key="parenright" modifiers="Ctrl,Shift" action="SelectionOffset" />
  <bind key="0" modifiers="Ctrl,Shift" action="SelectionOffset" />

  <bind key="parenright" modifiers="Alt" action="SelectionOffsetScreen" display="true"/>
  <bind key="0" modifiers="Alt" action="SelectionOffsetScreen" />

  <bind key="parenright" modifiers="Alt,Shift" action="SelectionOffsetScreen10" display="true"/>
  <bind key="0" modifiers="Alt,Shift" action="SelectionOffsetScreen10" />

  <bind key="parenleft" modifiers="Ctrl" action="SelectionInset" display="true"/>
  <bind key="parenleft" modifiers="Ctrl,Shift" action="SelectionInset" />
  <bind key="9" modifiers="Ctrl,Shift" action="SelectionInset" />

  <bind key="parenleft" modifiers="Alt" action="SelectionInsetScreen" display="true"/>
  <bind key="9" modifiers="Alt" action="SelectionInsetScreen" />

  <bind key="parenleft" modifiers="Alt,Shift" action="SelectionInsetScreen10" display="true"/>
  <bind key="9" modifiers="Alt,Shift" action="SelectionInsetScreen10" />

  <bind key="j" modifiers="Ctrl" action="SelectionDynOffset" display="true"/>
  <bind key="J" modifiers="Ctrl" action="SelectionDynOffset" />

  <bind key="j" modifiers="Ctrl,Alt" action="SelectionLinkedOffset" display="true"/>
  <bind key="J" modifiers="Ctrl,Alt" action="SelectionLinkedOffset" />

  <bind key="l" modifiers="Ctrl" action="SelectionSimplify" display="true"/>
  <bind key="L" modifiers="Ctrl" action="SelectionSimplify" />

  <bind action="SelectionReverse" />

<!-- Text -->

  <!-- Text, Font, Size, Smaller  key="comma" modifiers="Ctrl,Shift" -->
  <!-- Text, Font, Size, Larger  key="period" modifiers="Ctrl,Shift" -->

  <bind key="w" modifiers="Alt" action="ObjectFlowText" display="true"/>
  <bind key="W" modifiers="Alt" action="ObjectFlowText" />

  <bind key="w" modifiers="Alt,Shift" action="ObjectUnFlowText" display="true"/>
  <bind key="W" modifiers="Alt,Shift" action="ObjectUnFlowText" />

  <bind action="SelectionTextToPath" />
  <bind action="SelectionTextFromPath" />

  <bind action="ObjectFlowtextToText" />
  <bind action="SelectionTextRemoveKerns" />

<!-- Layers -->

  <!-- Freehand provides only a limited a Layers palette, 
  no menus, no keybindings.  -->  
  <bind action="LayerNew" />
  <bind action="LayerRename" />
  <bind action="LayerNext" />
  <bind action="LayerPrev" />
  <bind action="LayerDelete" />
  <bind action="LayerRaise" />
  <bind action="LayerLower" />
  <bind action="LayerToTop" />
  <bind action="LayerToBottom" />
  <bind action="LayerMoveToNext" />
  <bind action="LayerMoveToPrev" />

<!-- Dialogs.  Freehand has a Window menu listing the various palettes/panels.  -->

  <!-- Nothing even remotely equivalent -->
  <bind action="DialogXMLEditor" /> 
  <!-- Equivalent exists but no key binding -->
  <bind action="DialogDocumentProperties" /> 

  <bind key="a" modifiers="Ctrl,Alt" action="DialogAlignDistribute" display="true"/>
  <bind key="A" modifiers="Ctrl,Alt" action="DialogAlignDistribute" />

  <!-- No equivalent.  Various dialogs.  
  Inkscape will probably move this to Tool options bar anyway.  -->
  <bind action="DialogText" />

  <bind key="u" modifiers="Ctrl" action="DialogPreferences" display="true"/>
  <bind key="U" modifiers="Ctrl" action="DialogPreferences" />

  <!-- Object Panel is the closest equivalent in Freehand -->
  <bind key="F3" modifiers="Ctrl" action="DialogFillStroke" display="true"/>
  <bind action="DialogObjectProperties" />

  <!-- Freehand has a seperate find and replace for Text and Graphics -->
  <!-- Edit, Find And Replace, Graphics    Ctrl+F  -->
  <bind key="f" modifiers="Ctrl" action="DialogFind" display="true"/>
  <bind key="F" modifiers="Ctrl" action="DialogFind" />
  <!-- Edit, Find And Replace, Text  Ctrl+Shift+F  -->
  <bind key="f" modifiers="Ctrl,Shift" action="DialogFind" />
  <bind key="F" modifiers="Ctrl,Shift" action="DialogFind" />

  <bind key="m" modifiers="Ctrl" action="DialogTransform" display="true"/>
  <bind key="M" modifiers="Ctrl" action="DialogTransform" />

  <!-- Swatches in Freehand is a sub-tab of the Assets Panel.  -->
  <bind key="F9" modifiers="Ctrl" action="DialogSwatches" display="true"/>

  <bind action="DialogMetadata" />
  <bind action="DialogClonetiler" />
  <bind action="DialogArrange" />
  <bind action="DialogDebug" />
  <bind action="DialogInput" />

  <!-- DialogsToggle (Hide Panels), see above in the View menu section -->

<!-- Help -->

  <!-- This is a useful help section section to link to but it might be 
  better to later link to an introductory beginners guide.  -->
  <bind key="F1" action="HelpKeys" display="true"/>

<!-- Effects (Inkscape).  Xtras (Freehand) -->

  <!-- Freehand repeats the last Effect without any prompting.  -->
  <bind key="equal" modifiers="Ctrl,Shift" action="EffectLast" display="true"/> 
  <bind action="EffectLastPref" /> 

</keys>
