diff --git a/lib/DDG/Goodie/GimpCheatSheet.pm b/lib/DDG/Goodie/GimpCheatSheet.pm
new file mode 100644
index 00000000000..9d02695aa96
--- /dev/null
+++ b/lib/DDG/Goodie/GimpCheatSheet.pm
@@ -0,0 +1,54 @@
+package DDG::Goodie::GimpCheatSheet;
+# ABSTRACT: Some GIMP keyboard and mouse shortcuts
+
+# Adapted from CrontabCheatSheet.pm
+
+use DDG::Goodie;
+
+zci answer_type => "gimp_cheat";
+
+name "GimpCheatSheet";
+description "GIMP shortcut cheat sheet";
+code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/GimpCheatSheet.pm";
+category "cheat_sheets";
+topics "computing";
+
+primary_example_queries "gimp help", "gimp cheat sheet", "gimp shortcuts";
+
+triggers startend => (
+ "gimp cheat sheet", "cheat sheet gimp",
+ "gimp cheatsheet", "cheatsheet gimp",
+ "gimp help", "help gimp",
+ "gimp quick reference", "quick reference gimp",
+ "gimp reference", "reference gimp",
+ "gimp shortcut", "shortcut gimp",
+ "gimp shortcuts", "shortcuts gimp"
+);
+
+attribution github => ["elebow", "Eddie Lebow"];
+
+handle remainder => sub {
+ return
+ heading => "GIMP Shortcut Cheat Sheet",
+ html => html_cheat_sheet(),
+ answer => text_cheat_sheet(),
+};
+
+my $HTML;
+
+sub html_cheat_sheet {
+ $HTML //= share("gimp_cheat_sheet.html")
+ ->slurp(iomode => "<:encoding(UTF-8)");
+ return $HTML;
+}
+
+my $TEXT;
+
+sub text_cheat_sheet {
+ $TEXT //= share("gimp_cheat_sheet.txt")
+ ->slurp(iomode => "<:encoding(UTF-8)");
+ return $TEXT;
+}
+
+1;
+
diff --git a/share/goodie/gimp_cheat_sheet/gimp_cheat_sheet.html b/share/goodie/gimp_cheat_sheet/gimp_cheat_sheet.html
new file mode 100644
index 00000000000..301db62fd81
--- /dev/null
+++ b/share/goodie/gimp_cheat_sheet/gimp_cheat_sheet.html
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+
Tools
+
+ R | Rect Select |
+ E | Ellipse Select |
+ F | Free Select |
+ Z | Fuzzy Select |
+ Shift + O | Select By Color |
+ I | Scissors |
+ B | Paths |
+ O | Color Picker |
+ M | Move |
+ Shift + C | Crop and Resize |
+ Shift + R | Rotate |
+ Shift + T | Scale |
+ Shift + S | Shear |
+ Shift + P | Perspective |
+ Shift + F | Flip |
+ T | Text |
+ Shift + B | Bucket Fill |
+ L | Blend |
+ N | Pencil |
+ P | Paintbrush |
+ Shift + E | Eraser |
+ A | Airbrush |
+ K | Ink |
+ C | Clone |
+ Shift + U | Blur/Sharpen |
+ S | Smudge |
+ Shift + D | Dodge/Burn |
+
+ Context |
+
+ X | Swap Colors |
+ D | Default Colors |
+
+
+
File
+
+ Ctrl + N | New image |
+ Ctrl + O | Open image |
+ Ctrl + Alt + O | Open image as new layer |
+ Ctrl + D | Duplicate |
+ Ctrl + 1 | Open recent image #1 |
+ Ctrl + 2 | Open recent image #2 |
+ Ctrl + 3 | Open recent image #3 |
+ Ctrl + 4 | Open recent image #4 |
+ Ctrl + 5 | Open recent image #5 |
+ Ctrl + 6 | Open recent image #6 |
+ Ctrl + 7 | Open recent image #7 |
+ Ctrl + 8 | Open recent image #8 |
+ Ctrl + 9 | Open recent image #9 |
+ Ctrl + 0 | Open recent image #10 |
+ Ctrl + S | Save image |
+ Shift + Ctrl + S | Save under a new name |
+ Ctrl + Q | Quit |
+
+
+
+
+
Dialogs
+
+ Dockable Dialogs |
+ Ctrl + L | Layers |
+ Shift + Ctrl + B | Brushes |
+ Shift + Ctrl + P | Patterns |
+ Ctrl + G | Gradients |
+ Within a Dialog |
+ Alt + F4 , Ctrl + W | Close the window |
+ Tab | Jump to next widget |
+ Shift + Tab | Jump to previous widget |
+ Enter | Set the new value |
+ Space , Enter | Activate current button or list |
+ Ctrl + Alt + PgUp , Ctrl + Alt + PgDn | In a multi-tab dialog, switch tabs |
+ Within a File Dialog |
+ Shift + L | Open Location |
+ Alt + Up | Up-Folder |
+ Alt + Down | Down-Folder |
+ Alt + Home | Home-Folder |
+ Esc | Close Dialog |
+
+
+
+
+
View
+
+ Window |
+ F10 | Main Menu |
+ Shift + F10 , right click | Drop-down Menu |
+ F11 | Toggle fullscreen |
+ Shift + Q | Toggle quickmask |
+ Ctrl + W | Close document window |
+ Zoom |
+ + | Zoom in |
+ - | Zoom out |
+ 1 | Zoom 1:1 |
+ Ctrl + E | Shrink wrap |
+ Rulers and Guides |
+ mouse drag | Drag off a ruler to create guide |
+ Ctrl + mouse drag | Drag a sample point out of the rulers |
+ Shift + Ctrl + R | Toggle rulers |
+ Shift + Ctrl + T | Toggle guides |
+
+
+
Edit
+
+ Undo/redo |
+ Ctrl + Z | Undo |
+ Ctrl + Y | Redo |
+ Clipboard |
+ Ctrl + C | Copy selection |
+ Ctrl + X | Cut selection |
+ Ctrl + V | Paste clipboard |
+ Del | Erase selection |
+ Shift + Ctrl + C | Named copy selection |
+ Shift + Ctrl + X | Named cut selection |
+ Shift + Ctrl + V | Named paste clipboard |
+ Fill |
+ Ctrl + , | Fill with FG Color |
+ Ctrl + . | Fill with BG Color |
+ Ctrl + ; | Fill with Pattern |
+
+
+
Layers
+
+ PgUp , Ctrl + Tab | Select the layer above |
+ PgDn , Shift + Ctrl + Tab | Select the layer below |
+ Home | Select the first layer |
+ End | Select the last layer |
+ Ctrl + M | Merge visible layers |
+ Ctrl + H | Anchor layer |
+
+
+
Selections
+
+ Ctrl + T | Toggle selections |
+ Ctrl + A | Select all |
+ Shift + Ctrl + A | Select none |
+ Ctrl + I | Invert selection |
+ Shift + Ctrl + L | Float selection |
+ Shift + V | Path to selection |
+
+
+
Filters
+
+ Ctrl + F | Repeat last filter |
+ Shift + Ctrl + F | Reshow last filter |
+
+
+
Zoom tool
+
+ click | Zoom in |
+ Ctrl + click | Zoom out |
+ mouse drag | Zoom into the area |
+
+
+
Help
+
+ F1 | Help |
+ Shift + F1 | Context Help |
+
+
+
diff --git a/share/goodie/gimp_cheat_sheet/gimp_cheat_sheet.txt b/share/goodie/gimp_cheat_sheet/gimp_cheat_sheet.txt
new file mode 100644
index 00000000000..fdd5bb3cc0d
--- /dev/null
+++ b/share/goodie/gimp_cheat_sheet/gimp_cheat_sheet.txt
@@ -0,0 +1,179 @@
+Help
+
+F1 Help
+Shift + F1 Context Help
+
+
+
+Tools
+
+R Rect Select
+E Ellipse Select
+F Free Select
+Z Fuzzy Select
+Shift + O Select By Color
+I Scissors
+B Paths
+O Color Picker
+M Move
+Shift + C Crop and Resize
+Shift + R Rotate
+Shift + T Scale
+Shift + S Shear
+Shift + P Perspective
+Shift + F Flip
+T Text
+Shift + B Bucket Fill
+L Blend
+N Pencil
+P Paintbrush
+Shift + E Eraser
+A Airbrush
+K Ink
+C Clone
+Shift + U Blur/Sharpen
+S Smudge
+Shift + D Dodge/Burn
+
+Context
+
+X Swap Colors
+D Default Colors
+
+
+
+File
+
+Ctrl + N New image
+Ctrl + O Open image
+Ctrl + Alt + O Open image as new layer
+Ctrl + D Duplicate
+Ctrl + 1 Open recent image #1
+Ctrl + 2 Open recent image #2
+Ctrl + 3 Open recent image #3
+Ctrl + 4 Open recent image #4
+Ctrl + 5 Open recent image #5
+Ctrl + 6 Open recent image #6
+Ctrl + 7 Open recent image #7
+Ctrl + 8 Open recent image #8
+Ctrl + 9 Open recent image #9
+Ctrl + 0 Open recent image #10
+Ctrl + S Save image
+Shift + Ctrl + S Save under a new name
+Ctrl + Q Quit
+
+
+
+Dialogs
+
+Dockable Dialogs
+
+Ctrl + L Layers
+Shift + Ctrl + B Brushes
+Shift + Ctrl + P Patterns
+Ctrl + G Gradients
+
+Within a Dialog
+
+Alt + F4, Ctrl + W Close the window
+Tab Jump to next widget
+Shift + Tab Jump to previous widget
+Enter Set the new value
+Space, Enter Activate current button or list
+Ctrl + Alt + PgUp, Ctrl + Alt + PgDn In a multi-tab dialog, switch tabs
+
+Within a File Dialog
+
+Shift + L Open Location
+Alt + Up Up-Folder
+Alt + Down Down-Folder
+Alt + Home Home-Folder
+Esc Close Dialog
+
+
+
+View
+
+Window
+
+F10 Main Menu
+Shift + F10, right click Drop-down Menu
+F11 Toggle fullscreen
+Shift + Q Toggle quickmask
+Ctrl + W Close document window
+
+Zoom
+
++ Zoom in
+- Zoom out
+1 Zoom 1:1
+Ctrl + E Shrink wrap
+
+Rulers and Guides
+
+mouse drag Drag off a ruler to create guide
+Ctrl + mouse drag Drag a sample point out of the rulers
+Shift + Ctrl + R Toggle rulers
+Shift + Ctrl + T Toggle guides
+
+
+
+Edit
+
+Undo/redo
+
+Ctrl + Z Undo
+Ctrl + Y Redo
+
+Clipboard
+
+Ctrl + C Copy selection
+Ctrl + X Cut selection
+Ctrl + V Paste clipboard
+Del Erase selection
+Shift + Ctrl + C Named copy selection
+Shift + Ctrl + X Named cut selection
+Shift + Ctrl + V Named paste clipboard
+
+Fill
+
+Ctrl + , Fill with FG Color
+Ctrl + . Fill with BG Color
+Ctrl + ; Fill with Pattern
+
+
+
+Layers
+
+PgUp, Ctrl + Tab Select the layer above
+PgDn, Shift + Ctrl + Tab Select the layer below
+Home Select the first layer
+End Select the last layer
+Ctrl + M Merge visible layers
+Ctrl + H Anchor layer
+
+
+
+Selections
+
+Ctrl + T Toggle selections
+Ctrl + A Select all
+Shift + Ctrl + A Select none
+Ctrl + I Invert selection
+Shift + Ctrl + L Float selection
+Shift + V Path to selection
+
+
+
+Filters
+
+Ctrl + F Repeat last filter
+Shift + Ctrl + F Reshow last filter
+
+
+
+Zoom tool
+
+click Zoom in
+Ctrl + click Zoom out
+mouse drag Zoom into the area
diff --git a/t/GimpCheatSheet.t b/t/GimpCheatSheet.t
new file mode 100644
index 00000000000..1bf1673b2c0
--- /dev/null
+++ b/t/GimpCheatSheet.t
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use DDG::Test::Goodie;
+
+zci answer_type => "gimp_cheat";
+
+# This goodie always returns the same answer whenever its triggered
+my $test_zci = test_zci(
+ qr/^Help.*Tools.*File.*Edit.*Zoom tool.*/s,
+ heading => "GIMP Shortcut Cheat Sheet",
+ html => qr#$#s,
+);
+
+ddg_goodie_test(
+ [ 'DDG::Goodie::GimpCheatSheet' ],
+ "gimp cheat sheet" => $test_zci,
+ "gimp cheatsheet" => $test_zci,
+ "gimp help" => $test_zci,
+ "gimp quick reference" => $test_zci,
+ "gimp reference" => $test_zci,
+ "gimp shortcut" => $test_zci,
+ "gimp shortcuts" => $test_zci
+);
+
+done_testing;
+