I'm trying to get used to a macOS development environment after years of being an i3 junkie and I want to be able to use keyboard shortcuts to launch applications. I learned that you can do this by writing simple Automator services and then making keyboard shortcuts to those services (under System Preferences -> Keyboard -> Shortcuts -> Services). I followed the instructions here and I now have the Automator service I need in place and I can also tell it to use a shortcut like ⌥+⌘+T to open it.
However, I don't want to use ⌥+⌘+T to open a terminal. I would like to use ⌘+return instead. When I try to do that, System Preferences acts as though I haven't specified any shortcut at all; I think it doesn't like to set up shortcuts involving the return key. It lets you use most other keys though, as far as I can tell. (aside: I played around and it looks like the only keys you aren't allowed to use in this menu are return, delete, caps lock and fn.)
Does anyone know a way to work around that?
- An ideal workaround would let me set it up directly in the System Preferences Menu. (that feels impossible to me so far but I have no idea why)
- Second place would be doing it using config files somewhere on the filesystem. (akin something like an
~/.xbindkeys
file under X11). - Least desirable to me are solutions involving installing third-party
keyboard automation tools. (I think I can figure out how to do that on
my own, I'd just like to avoid it.)
I'm using macOS Catalina.
Best Answer
In macOS Catalina, it's the ~Library/Preferences/pbs.plist file that stores information about the services listed at: System Preferences > Keyboard > Shortcuts > Services
This answer is mainly focused on applying the ⌘↩ (commandreturn) keyboard shortcut to a service listed at System Preferences > Keyboard > Shortcuts > Services and without concern to the issues with creating an Automator Service/Quick Action and assigning it a global keyboard shortcut in reference to System Preferences > Security & Privacy > Privacy.
Having created an Automator Service/Quick Action and assigned it a temporary global keyboard shortcut of ⌘] in System Preferences > Keyboard > Shortcuts > Services, I then did the following to change it to: ⌘↩
Note: The name of the target Automator Service/Quick Action is: New Terminal Window
Closed: System Preferences
Opened: Terminal
Then went to System Preferences > Keyboard > Shortcuts > Services and verified the target Automator Service/Quick Action had the ⌘↩ keyboard shortcut.
I then pressed the ⌘↩ keyboard shortcut, responded to the Security & Privacy dialog box, and now have a new Terminal window.
Notes:
If after running the
PlistBudy
command and then checking System Preferences > Keyboard > Shortcuts > Services to see that ⌘↩ was assigned to the target service's keyboard shortcut and testing... If the ⌘↩ keyboard shortcut doesn't work, try the following before rebooting:PlistBudy
command again while appending; killall cfprefsd
to the command. Then repeat the step above.PlistBudy
command again and immediately reboot.This was done from an Admin account.
This was done under macOS Catalina with Language & Region settings in System Preferences set to English (US) — Primary and worked for me without issue1.
The AppleScript code used in a Run AppleScript action of the Automator Service/Quick Action was coded to work whether or not Terminal was already running.