captureShortcut(callback) {
    const subid = subKey(RPCEvents.CAPTURE_SHORTCUT_CHANGE);
    const stop = () => {
      this._subscriptions.delete(subid);
      return this.request(RPCCommands.CAPTURE_SHORTCUT, { action: 'STOP' });
    };
    this._subscriptions.set(subid, ({ shortcut }) => {
      callback(shortcut, stop);
    });
    return this.request(RPCCommands.CAPTURE_SHORTCUT, { action: 'START' })
      .then(() => stop);
  }
Capture a shortcut using the client
The callback takes (key, stop) where `stop` is a function that will stop capturing.
This `stop` function must be called before disconnecting or else the user will have
to restart their client.
@param {Function} callback Callback handling keys
@returns {Promise<Function>}