Keyboard shortcut (almost) never works for Automator service

automatorkeyboardscreen capture

I have bash script that creates a screenshot in a given directory saved as an Automator service. I've then assigned ⇪⌘2 from System Preferences > Keyboard > Shortcuts > Services. The problem is that it doesn't work much at all. The only place I've found were it actually runs when using the macro is (how random) when click on the urlbar of Safari, and even then not without inconveniences, as it popups an error message saying "The “Take Screenshot” service could not be used because the “Take Screenshot” workflow did not provide valid data. – Try running the “Take Screenshot” workflow in Automator.", even though the process works fine and the screenshot is indeed captured and saved as intended. What's wrong?

fdate=`date`
screencapture "/Users/username/Unorganized/Studio/$fdate.png"

enter image description here

Best Answer

In summary you will need to use:

  • Automator to create a service that runs your bash script
  • System Preferences to assign a keyboard shortcut to the service

Below are the steps involved for each.

1. Create a service using Automator

  1. Launch Automator (usually found within your Applications folder)
  2. Go to File > New
  3. Select Service and click Choose
  4. In the top right hand of the window that appears, ensure that "No input" is selected from the Service receives drop-down list
  5. Ensure the In drop-down list is showing "Finder"
  6. In the second column containing the long list, find "Run Shell Script" and double-click on it
  7. This will add the Run Shell Script window on the right
  8. Within the Run Shell Script section ensure you have selected the "/bin/bash" option for your Shell
  9. Now add your code
  10. Save the service using a meaningful name (e.g. Take Reference Screenshot).

Now to the next step.

2. Creating your shortcut

  1. Go to System Preferences > Keyboard > Shortcuts
  2. Select Services from the sidebar
  3. Find your service (it'll be in the list on the right-hand side)
  4. Add a shortcut by double clicking on the service name
  5. Now go to System Preferences > Security & Privacy > Privacy
  6. Select Accessibility in the sidebar
  7. Click on the + sign (you may need to unlock the padlock if it's locked)
  8. Add Automator.
  9. Add Finder (to find this you will need to navigate to /System/Library/CoreServices/Finder.app).
  10. Exit your System Preferences.

Let me know how you go.