Browse Source

Aseprite template tools mapped

Krzysztof Krysiński 2 years ago
parent
commit
ebec8fb4c7

+ 800 - 103
src/PixiEditor/Data/ShortcutActionMaps/AsepriteShortcutMap.json

@@ -1,105 +1,802 @@
 {
 {
-    "" : "PixiEditor.Shortcuts.Provider.ImportDefault",
-    "" : "PixiEditor.Shortcuts.Provider.ImportInstallation",
-    "" : "PixiEditor.Shortcuts.Reset",
-    "" : "PixiEditor.Shortcuts.Export",
-    "" : "PixiEditor.Shortcuts.Import",
-    "" : "PixiEditor.Shortcuts.OpenTemplatePopup",
-    "" : "PixiEditor.Clipboard.Cut",
-    "" : "PixiEditor.Clipboard.Paste",
-    "" : "PixiEditor.Clipboard.PasteColor",
-    "" : "PixiEditor.Clipboard.Copy",
-    "" : "PixiEditor.Colors.ReplaceColors",
-    "" : "PixiEditor.Colors.OpenPaletteBrowser",
-    "" : "PixiEditor.Colors.ImportPalette",
-    "" : "PixiEditor.Colors.SelectFirstPaletteColor",
-    "" : "PixiEditor.Colors.SelectSecondPaletteColor",
-    "" : "PixiEditor.Colors.SelectThirdPaletteColor",
-    "" : "PixiEditor.Colors.SelectFourthPaletteColor",
-    "" : "PixiEditor.Colors.SelectFifthPaletteColor",
-    "" : "PixiEditor.Colors.SelectSixthPaletteColor",
-    "" : "PixiEditor.Colors.SelectSeventhPaletteColor",
-    "" : "PixiEditor.Colors.SelectEighthPaletteColor",
-    "" : "PixiEditor.Colors.SelectNinthPaletteColor",
-    "" : "PixiEditor.Colors.SelectTenthPaletteColor",
-    "" : "PixiEditor.Colors.Swap",
-    "" : "PixiEditor.Colors.RemoveSwatch",
-    "" : "PixiEditor.Colors.SelectColor",
-    "" : "PixiEditor.File.New",
-    "" : "PixiEditor.File.Open",
-    "" : "PixiEditor.File.OpenRecent",
-    "" : "PixiEditor.File.Save",
-    "" : "PixiEditor.File.SaveAsNew",
-    "" : "PixiEditor.File.Export",
-    "" : "PixiEditor.Layer.DeleteSelected",
-    "" : "PixiEditor.Layer.DeleteAllSelected",
-    "" : "PixiEditor.Layer.NewFolder",
-    "" : "PixiEditor.Layer.NewLayer",
-    "" : "PixiEditor.Layer.ToggleLockTransparency",
-    "" : "PixiEditor.Layer.OpacitySliderDragStarted",
-    "" : "PixiEditor.Layer.OpacitySliderDragged",
-    "" : "PixiEditor.Layer.OpacitySliderDragEnded",
-    "" : "PixiEditor.Layer.DuplicateSelectedLayer",
-    "" : "PixiEditor.Layer.CreateMask",
-    "" : "PixiEditor.Layer.DeleteMask",
-    "" : "PixiEditor.Layer.MoveSelectedMemberUpwards",
-    "" : "PixiEditor.Layer.MoveSelectedMemberDownwards",
-    "" : "PixiEditor.Layer.MergeSelected",
-    "" : "PixiEditor.Layer.MergeWithAbove",
-    "" : "PixiEditor.Layer.MergeWithBelow",
-    "" : "PixiEditor.Links.OpenDocumentation",
-    "" : "PixiEditor.Links.OpenWebsite",
-    "" : "PixiEditor.Links.OpenRepository",
-    "" : "PixiEditor.Links.OpenLicense",
-    "" : "PixiEditor.Links.OpenOtherLicenses",
-    "" : "PixiEditor.Search.Toggle",
-    "" : "PixiEditor.Selection.SelectAll",
-    "" : "PixiEditor.Selection.Clear",
-    "" : "PixiEditor.Selection.TransformArea",
-    "" : "PixiEditor.Stylus.TogglePenMode",
-    "" : "PixiEditor.Stylus.StylusOutOfRange",
-    "" : "PixiEditor.Stylus.StylusSystemGesture",
-    "" : "PixiEditor.Stylus.StylusDown",
-    "" : "PixiEditor.Stylus.StylusUp",
-    "" : "PixiEditor.Tools.ApplyTransform",
-    "" : "PixiEditor.Tools.SelectTool",
-    "" : "PixiEditor.Tools.IncreaseSize",
-    "" : "PixiEditor.Tools.DecreaseSize",
-    "" : "PixiEditor.Undo.Redo",
-    "" : "PixiEditor.Undo.Undo",
-    "" : "PixiEditor.Restart",
-    "" : "PixiEditor.View.ToggleGrid",
-    "" : "PixiEditor.View.ZoomIn",
-    "" : "PixiEditor.View.Zoomout",
-    "" : "PixiEditor.Window.CreateNewViewport",
-    "" : "PixiEditor.Window.OpenSettingsWindow",
-    "" : "PixiEditor.Window.OpenStartupWindow",
-    "" : "PixiEditor.Window.OpenShortcutWindow",
-    "" : "PixiEditor.Window.OpenNavigationWindow",
-    "" : "PixiEditor.Document.ClipCanvas",
-    "" : "PixiEditor.Document.ToggleVerticalSymmetryAxis",
-    "" : "PixiEditor.Document.ToggleHorizontalSymmetryAxis",
-    "" : "PixiEditor.Document.DragSymmetry",
-    "" : "PixiEditor.Document.StartDragSymmetry",
-    "" : "PixiEditor.Document.EndDragSymmetry",
-    "" : "PixiEditor.Document.DeletePixels",
-    "" : "PixiEditor.Document.ResizeDocument",
-    "" : "PixiEditor.Document.ResizeCanvas",
-    "" : "PixiEditor.Document.CenterContent",
-    "" : "PixiEditor.Tools.Select.BrightnessToolViewModel",
-    "" : "PixiEditor.Tools.Select.ColorPickerToolViewModel",
-    "" : "PixiEditor.Tools.Select.EllipseToolViewModel",
-    "" : "PixiEditor.Tools.Select.EraserToolViewModel",
-    "" : "PixiEditor.Tools.Select.FloodFillToolViewModel",
-    "" : "PixiEditor.Tools.Select.LassoToolViewModel",
-    "" : "PixiEditor.Tools.Select.LineToolViewModel",
-    "" : "PixiEditor.Tools.Select.MagicWandToolViewModel",
-    "" : "PixiEditor.Tools.Select.MoveToolViewModel",
-    "" : "PixiEditor.Tools.Select.MoveViewportToolViewModel",
-    "" : "PixiEditor.Tools.Select.PenToolViewModel",
-    "" : "PixiEditor.Tools.Select.RectangleToolViewModel",
-    "" : "PixiEditor.Tools.Select.RotateViewportToolViewModel",
-    "" : "PixiEditor.Tools.Select.SelectToolViewModel",
-    "Tools.zoom" : "PixiEditor.Tools.Select.ZoomToolViewModel"
+    "": {
+      "Command": "PixiEditor.Shortcuts.Provider.ImportDefault",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Shortcuts.Provider.ImportInstallation",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Shortcuts.Reset",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Shortcuts.Export",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Shortcuts.Import",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Shortcuts.OpenTemplatePopup",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Clipboard.Cut",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Clipboard.Paste",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "Color": {
+      "Command": "PixiEditor.Clipboard.PasteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Clipboard.Copy",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.ReplaceColors",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.OpenPaletteBrowser",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.ImportPalette",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectFirstPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectSecondPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectThirdPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectFourthPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectFifthPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectSixthPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectSeventhPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectEighthPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectNinthPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectTenthPaletteColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.Swap",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.RemoveSwatch",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Colors.SelectColor",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.File.New",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.File.Open",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "Recent": {
+      "Command": "PixiEditor.File.OpenRecent",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.File.Save",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "AsNew": {
+      "Command": "PixiEditor.File.SaveAsNew",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.File.Export",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.DeleteSelected",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.DeleteAllSelected",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.NewFolder",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.NewLayer",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.ToggleLockTransparency",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.OpacitySliderDragStarted",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.OpacitySliderDragged",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.OpacitySliderDragEnded",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.DuplicateSelectedLayer",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.CreateMask",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.DeleteMask",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.MoveSelectedMemberUpwards",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.MoveSelectedMemberDownwards",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.MergeSelected",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.MergeWithAbove",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Layer.MergeWithBelow",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Links.OpenDocumentation",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Links.OpenWebsite",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Links.OpenRepository",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Links.OpenLicense",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Links.OpenOtherLicenses",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Search.Toggle",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Selection.SelectAll",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Selection.Clear",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Selection.TransformArea",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Stylus.TogglePenMode",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Stylus.StylusOutOfRange",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Stylus.StylusSystemGesture",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Stylus.StylusDown",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Stylus.StylusUp",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Tools.ApplyTransform",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Tools.SelectTool",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Tools.IncreaseSize",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Tools.DecreaseSize",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Undo.Redo",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Undo.Undo",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Restart",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.View.ToggleGrid",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.View.ZoomIn",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.View.Zoomout",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Window.CreateNewViewport",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Window.OpenSettingsWindow",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Window.OpenStartupWindow",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Window.OpenShortcutWindow",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Window.OpenNavigationWindow",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.ClipCanvas",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.ToggleVerticalSymmetryAxis",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.ToggleHorizontalSymmetryAxis",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.DragSymmetry",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.StartDragSymmetry",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.EndDragSymmetry",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.DeletePixels",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.ResizeDocument",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.ResizeCanvas",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "": {
+      "Command": "PixiEditor.Document.CenterContent",
+      "DefaultShortcut": {
+        "key": "None",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "eyedropper": {
+      "Command": "PixiEditor.Tools.Select.ColorPickerToolViewModel",
+      "DefaultShortcut": {
+        "key": "I",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "ellipse": {
+      "Command": "PixiEditor.Tools.Select.EllipseToolViewModel",
+      "DefaultShortcut": {
+        "key": "U",
+        "modifiers": [ "Shift" ]
+      },
+      "Parameters": []
+    },
+    "eraser": {
+      "Command": "PixiEditor.Tools.Select.EraserToolViewModel",
+      "DefaultShortcut": {
+        "key": "E",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "paint_bucket": {
+      "Command": "PixiEditor.Tools.Select.FloodFillToolViewModel",
+      "DefaultShortcut": {
+        "key": "G",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "lasso": {
+      "Command": "PixiEditor.Tools.Select.LassoToolViewModel",
+      "DefaultShortcut": {
+        "key": "Q",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "line": {
+      "Command": "PixiEditor.Tools.Select.LineToolViewModel",
+      "DefaultShortcut": {
+        "key": "L",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "magic_wand": {
+      "Command": "PixiEditor.Tools.Select.MagicWandToolViewModel",
+      "DefaultShortcut": {
+        "key": "W",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "move": {
+      "Command": "PixiEditor.Tools.Select.MoveToolViewModel",
+      "DefaultShortcut": {
+        "key": "V",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "hand": {
+      "Command": "PixiEditor.Tools.Select.MoveViewportToolViewModel",
+      "DefaultShortcut": {
+        "key": "H",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "pencil": {
+      "Command": "PixiEditor.Tools.Select.PenToolViewModel",
+      "DefaultShortcut": {
+        "key": "B",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "rectangle": {
+      "Command": "PixiEditor.Tools.Select.RectangleToolViewModel",
+      "DefaultShortcut": {
+        "key": "U",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "rectangular_marquee": {
+      "Command": "PixiEditor.Tools.Select.SelectToolViewModel",
+      "DefaultShortcut": {
+        "key": "M",
+        "modifiers": null
+      },
+      "Parameters": []
+    },
+    "zoom": {
+      "Command": "PixiEditor.Tools.Select.ZoomToolViewModel",
+      "DefaultShortcut": {
+        "key": "Z",
+        "modifiers": null
+      },
+      "Parameters": []
     }
     }
-    
+  }

+ 13 - 1
src/PixiEditor/Models/Commands/ShortcutsTemplate.cs

@@ -1,6 +1,7 @@
 using System.Drawing;
 using System.Drawing;
 using System.IO;
 using System.IO;
 using System.Windows.Input;
 using System.Windows.Input;
+using PixiEditor.Models.Commands.Templates.Parsers;
 using PixiEditor.Models.DataHolders;
 using PixiEditor.Models.DataHolders;
 
 
 namespace PixiEditor.Models.Commands;
 namespace PixiEditor.Models.Commands;
@@ -14,6 +15,17 @@ public sealed class ShortcutsTemplate
     {
     {
         Shortcuts = new List<Shortcut>();
         Shortcuts = new List<Shortcut>();
     }
     }
+
+    public static ShortcutsTemplate FromKeyDefinitions(List<KeyDefinition> keyDefinitions)
+    {
+        ShortcutsTemplate template = new ShortcutsTemplate();
+        foreach (KeyDefinition keyDefinition in keyDefinitions)
+        {
+            template.Shortcuts.Add(new Shortcut(keyDefinition.DefaultShortcut.ToKeyCombination(), keyDefinition.Command));
+        }
+
+        return template;
+    }
 }
 }
 
 
 [Serializable]
 [Serializable]
@@ -22,7 +34,7 @@ public sealed class Shortcut
     public KeyCombination KeyCombination { get; set; }
     public KeyCombination KeyCombination { get; set; }
     public List<string> Commands { get; set; }
     public List<string> Commands { get; set; }
     
     
-    public Shortcut() {}
+    public Shortcut() { }
 
 
     public Shortcut(KeyCombination keyCombination, List<string> commands)
     public Shortcut(KeyCombination keyCombination, List<string> commands)
     {
     {

+ 73 - 2
src/PixiEditor/Models/Commands/Templates/Providers/Parsers/AsepriteKeysParser.cs

@@ -40,12 +40,83 @@ public class AsepriteKeysParser : KeysParser
         return LoadAndParse(path);
         return LoadAndParse(path);
     }
     }
 
 
-    private static ShortcutsTemplate LoadAndParse(string path)
+    private ShortcutsTemplate LoadAndParse(string path)
     {
     {
         XmlDocument doc = new XmlDocument();
         XmlDocument doc = new XmlDocument();
         doc.Load(path);
         doc.Load(path);
         
         
-        ShortcutsTemplate template = new ShortcutsTemplate();
+        List<KeyDefinition> keyDefinitions = new List<KeyDefinition>(); // DefaultShortcut is actually mapped shortcut.
+
+        LoadTools(doc, keyDefinitions);
+        
+        ShortcutsTemplate template = ShortcutsTemplate.FromKeyDefinitions(keyDefinitions);
         return template;
         return template;
     }
     }
+
+    /// <summary>
+    ///     Tools are stored in keyboard > tools section of aseprite-keys file.
+    /// Each tool entry is a key XML node with command attribute under 'tool' parameter and shortcut under 'shortcut' parameter.
+    /// </summary>
+    /// <param name="keyDefinitions">Definitions to write to</param>
+    private void LoadTools(XmlDocument document, List<KeyDefinition> keyDefinitions)
+    {
+        XmlNodeList tools = document.SelectNodes("keyboard/tools/key");
+        if(tools == null)
+        {
+            ApplyDefaults(keyDefinitions, "PixiEditor.Tools");
+            return;
+        }
+        
+        foreach (XmlNode tool in tools)
+        {
+            if(tool.Attributes == null) continue;
+            
+            XmlAttribute command = tool.Attributes["tool"];
+            XmlAttribute shortcut = tool.Attributes["shortcut"];
+
+            if(command == null || shortcut == null) continue;
+            
+            string commandName = command.Value;
+            string shortcutValue = shortcut.Value;
+
+            if (!Map.ContainsKey(commandName))
+            {
+                continue;
+            }
+
+            string asepriteCommand = commandName;
+            
+            var mappedEntry = Map[commandName];
+            commandName = mappedEntry.Command;
+
+            HumanReadableKeyCombination combination;
+            
+            XmlAttribute removed = tool.Attributes["removed"];
+            if (removed is { Value: "true" })
+            {
+                combination = new HumanReadableKeyCombination("None");
+            }
+            else
+            {
+                combination = HumanReadableKeyCombination.FromStringCombination(shortcutValue);
+            }
+
+            // We should override existing entry, because aseprite-keys file can contain multiple entries for the same tool.
+            // Last one is the one that should be used.
+            keyDefinitions.RemoveAll(x => x.Command == commandName);
+            
+            keyDefinitions.Add(new KeyDefinition(commandName, combination));
+        }
+    }
+
+    private void ApplyDefaults(List<KeyDefinition> keyDefinitions, string commandGroup)
+    {
+        foreach (var mapEntry in Map)
+        {
+            if (mapEntry.Value.Command.StartsWith(commandGroup))
+            {
+                keyDefinitions.Add(mapEntry.Value);
+            }
+        }
+    }
 }
 }

+ 84 - 0
src/PixiEditor/Models/Commands/Templates/Providers/Parsers/KeyDefinition.cs

@@ -0,0 +1,84 @@
+using System.Windows.Input;
+using Newtonsoft.Json;
+using PixiEditor.Models.DataHolders;
+
+namespace PixiEditor.Models.Commands.Templates.Parsers;
+
+[Serializable]
+public class KeyDefinition
+{
+    public string Command { get; set; }
+    public HumanReadableKeyCombination DefaultShortcut { get; set; }
+    public string[] Parameters { get; set; }
+    
+    public KeyDefinition() { }
+    public KeyDefinition(string command, HumanReadableKeyCombination defaultShortcut, params string[] parameters)
+    {
+        Command = command;
+        DefaultShortcut = defaultShortcut;
+        Parameters = parameters;
+    }
+}
+
+public record HumanReadableKeyCombination(string key, string[] modifiers = null)
+{
+    public KeyCombination ToKeyCombination()
+    {
+        Key parsedKey = Key.None;
+        ModifierKeys parsedModifiers = ModifierKeys.None;
+        if (Enum.TryParse(key, out parsedKey))
+        {
+            parsedModifiers = ParseModifiers(modifiers);
+        }
+        else
+        {
+            throw new ArgumentException($"Invalid key: {key}");
+        }
+        
+        return new KeyCombination(parsedKey, parsedModifiers);
+    }
+
+    private ModifierKeys ParseModifiers(string[] strings)
+    {
+        if(strings == null || strings.Length == 0)
+        {
+            return ModifierKeys.None;
+        }
+        
+        ModifierKeys modifiers = ModifierKeys.None;
+
+        for (int i = 0; i < strings.Length; i++)
+        {
+            switch (strings[i].ToLower())
+            {
+                case "ctrl": 
+                    modifiers |= ModifierKeys.Control;
+                    break;
+                case "alt":
+                    modifiers |= ModifierKeys.Alt;
+                    break;
+                case "shift":
+                    modifiers |= ModifierKeys.Shift;
+                    break;
+                case "win":
+                    modifiers |= ModifierKeys.Windows;
+                    break;
+            }
+        }
+        
+        return modifiers;
+    }
+
+    public static HumanReadableKeyCombination FromStringCombination(string shortcutCombination)
+    {
+        if (!shortcutCombination.Contains('+'))
+        {
+            return new HumanReadableKeyCombination(shortcutCombination, null);
+        }
+        
+        string[] split = shortcutCombination.Split('+');
+        string key = split[^1];
+        string[] modifiers = split[..^1];
+        return new HumanReadableKeyCombination(key, modifiers);
+    }
+}

+ 6 - 4
src/PixiEditor/Models/Commands/Templates/Providers/Parsers/KeysParser.cs

@@ -9,8 +9,8 @@ public abstract class KeysParser
 
 
     private static string _fullMapFilePath;
     private static string _fullMapFilePath;
 
 
-    public Dictionary<string, string> Map => _cachedMap ??= LoadKeysMap();
-    private Dictionary<string, string> _cachedMap;
+    public Dictionary<string, KeyDefinition> Map => _cachedMap ??= LoadKeysMap();
+    private Dictionary<string, KeyDefinition> _cachedMap;
 
 
     public KeysParser(string mapFileName)
     public KeysParser(string mapFileName)
     {
     {
@@ -25,10 +25,12 @@ public abstract class KeysParser
     
     
     public abstract ShortcutsTemplate Parse(string filePath);
     public abstract ShortcutsTemplate Parse(string filePath);
     
     
-    private Dictionary<string, string> LoadKeysMap()
+    private Dictionary<string, KeyDefinition> LoadKeysMap()
     {
     {
         string text = File.ReadAllText(_fullMapFilePath);
         string text = File.ReadAllText(_fullMapFilePath);
-        var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(text);
+        var dict = JsonConvert.DeserializeObject<Dictionary<string, KeyDefinition>>(text);
+        if(dict == null) throw new Exception("Keys map file is empty.");
+        if(dict.ContainsKey("")) dict.Remove("");
         return dict;
         return dict;
     }
     }
 }
 }

+ 17 - 5
src/PixiEditor/ViewModels/SubViewModels/Main/DebugViewModel.cs

@@ -2,9 +2,11 @@
 using System.IO;
 using System.IO;
 using System.Reflection;
 using System.Reflection;
 using Microsoft.Win32;
 using Microsoft.Win32;
+using Newtonsoft.Json;
 using PixiEditor.Helpers;
 using PixiEditor.Helpers;
 using PixiEditor.Models.Commands.Attributes;
 using PixiEditor.Models.Commands.Attributes;
 using PixiEditor.Models.Commands.Attributes.Commands;
 using PixiEditor.Models.Commands.Attributes.Commands;
+using PixiEditor.Models.Commands.Templates.Parsers;
 using PixiEditor.Models.Dialogs;
 using PixiEditor.Models.Dialogs;
 using PixiEditor.Models.UserPreferences;
 using PixiEditor.Models.UserPreferences;
 
 
@@ -78,15 +80,25 @@ internal class DebugViewModel : SubViewModel<ViewModelMain>
             var commands = Owner.CommandController.Commands;
             var commands = Owner.CommandController.Commands;
 
 
             using StreamWriter writer = new StreamWriter(dialog.FileName);
             using StreamWriter writer = new StreamWriter(dialog.FileName);
-            writer.WriteLine("{");
+            Dictionary<string, KeyDefinition> keyDefinitions = new Dictionary<string, KeyDefinition>();
             foreach (var command in commands)
             foreach (var command in commands)
             {
             {
-                if(command.IsDebug) continue;
-                writer.WriteLine($"\"\" : \"{command.InternalName}\",");
+                if(command.IsDebug)
+                    continue;
+                keyDefinitions.Add($"(provider).{command.InternalName}", new KeyDefinition(command.InternalName, new HumanReadableKeyCombination("None"), Array.Empty<string>()));
+            }
+
+            writer.Write(JsonConvert.SerializeObject(keyDefinitions, Formatting.Indented));
+            writer.Close();
+            string file = File.ReadAllText(dialog.FileName);
+            foreach (var command in commands)
+            {
+                if(command.IsDebug)
+                    continue;
+                file = file.Replace($"(provider).{command.InternalName}", "");
             }
             }
             
             
-            writer.WriteLine("}");
-            
+            File.WriteAllText(dialog.FileName, file);
             ProcessHelpers.ShellExecuteEV(dialog.FileName);
             ProcessHelpers.ShellExecuteEV(dialog.FileName);
         }
         }
     }
     }