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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RRect Select
EEllipse Select
FFree Select
ZFuzzy Select
Shift + OSelect By Color
IScissors
BPaths
OColor Picker
MMove
Shift + CCrop and Resize
Shift + RRotate
Shift + TScale
Shift + SShear
Shift + PPerspective
Shift + FFlip
TText
Shift + BBucket Fill
LBlend
NPencil
PPaintbrush
Shift + EEraser
AAirbrush
KInk
CClone
Shift + UBlur/Sharpen
SSmudge
Shift + DDodge/Burn
Context
XSwap Colors
DDefault Colors
+ + File + + + + + + + + + + + + + + + + + + +
Ctrl + NNew image
Ctrl + OOpen image
Ctrl + Alt + OOpen image as new layer
Ctrl + DDuplicate
Ctrl + 1Open recent image #1
Ctrl + 2Open recent image #2
Ctrl + 3Open recent image #3
Ctrl + 4Open recent image #4
Ctrl + 5Open recent image #5
Ctrl + 6Open recent image #6
Ctrl + 7Open recent image #7
Ctrl + 8Open recent image #8
Ctrl + 9Open recent image #9
Ctrl + 0Open recent image #10
Ctrl + SSave image
Shift + Ctrl + SSave under a new name
Ctrl + QQuit
+ + + + Dialogs + + + + + + + + + + + + + + + + + + + +
Dockable Dialogs
Ctrl + LLayers
Shift + Ctrl + BBrushes
Shift + Ctrl + PPatterns
Ctrl + GGradients
Within a Dialog
Alt + F4, Ctrl + WClose the window
TabJump to next widget
Shift + TabJump to previous widget
EnterSet the new value
Space, EnterActivate current button or list
Ctrl + Alt + PgUp, Ctrl + Alt + PgDnIn a multi-tab dialog, switch tabs
Within a File Dialog
Shift + LOpen Location
Alt + UpUp-Folder
Alt + DownDown-Folder
Alt + HomeHome-Folder
EscClose Dialog
+
+ +
+ View + + + + + + + + + + + + + + + + + +
Window
F10Main Menu
Shift + F10, right clickDrop-down Menu
F11Toggle fullscreen
Shift + QToggle quickmask
Ctrl + WClose document window
Zoom
+Zoom in
-Zoom out
1Zoom 1:1
Ctrl + EShrink wrap
Rulers and Guides
mouse dragDrag off a ruler to create guide
Ctrl + mouse dragDrag a sample point out of the rulers
Shift + Ctrl + RToggle rulers
Shift + Ctrl + TToggle guides
+ + Edit + + + + + + + + + + + + + + + + +
Undo/redo
Ctrl + ZUndo
Ctrl + YRedo
Clipboard
Ctrl + CCopy selection
Ctrl + XCut selection
Ctrl + VPaste clipboard
DelErase selection
Shift + Ctrl + CNamed copy selection
Shift + Ctrl + XNamed cut selection
Shift + Ctrl + VNamed paste clipboard
Fill
Ctrl + ,Fill with FG Color
Ctrl + .Fill with BG Color
Ctrl + ;Fill with Pattern
+ + Layers + + + + + + + +
PgUp, Ctrl + TabSelect the layer above
PgDn, Shift + Ctrl + TabSelect the layer below
HomeSelect the first layer
EndSelect the last layer
Ctrl + MMerge visible layers
Ctrl + HAnchor layer
+ + Selections + + + + + + + +
Ctrl + TToggle selections
Ctrl + ASelect all
Shift + Ctrl + ASelect none
Ctrl + IInvert selection
Shift + Ctrl + LFloat selection
Shift + VPath to selection
+ + Filters + + + +
Ctrl + FRepeat last filter
Shift + Ctrl + FReshow last filter
+ + Zoom tool + + + + +
clickZoom in
Ctrl + clickZoom out
mouse dragZoom into the area
+ + Help + + + +
F1Help
Shift + F1Context 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; +