emacs-anywhere icon indicating copy to clipboard operation
emacs-anywhere copied to clipboard

On invoking the shortcut, I receive an error popup reporting 'The action “Run Shell Script” encountered an error.'

Open Reefersleep opened this issue 6 years ago • 19 comments

On invoking the shortcut, I receive an error popup reporting 'The action “Run Shell Script” encountered an error.'

The popup has the options "OK" (dismissing the poup) and "Show Workflow", which opens "/Users/ree/Library/Services/", showing Emacs Anywhere.workflow. If I try to open it and run it in Automator, I get an error popup showing

The action “Run Shell Script” encountered an error.

161:177: execution error: System Events got an error: osascript is not allowed assistive access. (-25211)
52:64: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)
emacsclient: could not get terminal name
emacsclient: error executing alternate editor """"

With only an "OK" button.

After some googling, I found that the osascript error had been experienced by people in other contexts. In particular, I reviewed this stack overflow issue: https://apple.stackexchange.com/questions/291574/osascript-is-not-allowed-assistive-access-1728

Following that, I tried giving the Emacs Anywhere.workflow file a checkmark in Security & Privacy > Allow the apps below to control your computer. It didn't make any difference.

Reefersleep avatar May 20 '18 13:05 Reefersleep

Apparently, there were a few popups hiding behind all of my other windows, prompting me to allow Firefox and Automator to control my computer. I did so, and now, the error message I get is somewhat reduced:

emacsclient: could not get terminal name
emacsclient: error executing alternate editor """"

Reefersleep avatar May 20 '18 13:05 Reefersleep

Hi @Reefersleep 👋

I'm loving the username! I'm thinking my username should have been Reefercode 😄

I believe the answers you're looking for are in the README, albeit a garbled mess:

  • Be sure your Emacs server is running. Run this command in the terminal to fire it up 🔥 : emacs --daemon

  • If Emacs still doesn't launch when you invoke the shortcut, you either have errors in your init files, or more likely still, emacsclient is not being found in $PATH. The easy solution to this is to simply tell Emacs Anywhere where it is and how you want to run it like this.

  • You don't add permissions for Emacs Anywhere, rather the application you are using it with, namely Firefox for the example you've given. I'll reword this to avoid confusion in the README. And to be clear, permissions are not mandatory for Emacs Anywhere to launch Emacs.

I hope this helps! If not, let me know.

zachcurry avatar May 20 '18 20:05 zachcurry

Hello 👋

Thanks! Sorry for being a bit curt when writing the issue. I had postponed it and wanted to get it out of the way, so it ended up very matter-of-factly :)

I normally use emacs --daemon and emacsclient without hitches. I tried with export EA_EDITOR='emacsclient -a "" -c', and it didn't seem to make a difference.

I tried giving Accessibility permissions to Firefox, but it made no difference.

Reefersleep avatar Jun 03 '18 12:06 Reefersleep

Does the following command create a new Emacs frame in your environment? emacsclient -a "" -c

zachcurry avatar Jun 04 '18 20:06 zachcurry

It does :) Both with the daemon running and not.

Reefersleep avatar Jun 05 '18 18:06 Reefersleep

Excellent! I think if you add the absolute path to the EA_EDITOR export, it will work. On Mac I have to rebuild the PATH variable because osascript doesn’t run shell commands interactively. It’s possible the executable is not being found and simply prefixing the path to the command in your export will solve the problem.

Be sure you’ve got the latest version of Emacs Anywhere, a fully qualified path in your exported var, and be sure to put the export in your .bash_profile.

zachcurry avatar Jun 07 '18 16:06 zachcurry

I tried putting export EA_EDITOR='/usr/local/bin/emacsclient -a "" -c' in my ~/.bash_profile, source ~/.bash_profile, and triggering the shortcut in Firefox - same error as before. Firefox has Accessability permissions.

Reefersleep avatar Jul 01 '18 18:07 Reefersleep

It dawned on me that sourceing the file is not enough to the exported path in a global context, so I logged out and in and checked once again. This time I got the same error popup plus a popup saying that System Events.app needed permissions in Security & Privacy > Accessibility > Allow the apps below to control your computer.. I gave it permissions, which removed the new popup, but the same old error persists.

Reefersleep avatar Jul 01 '18 18:07 Reefersleep

I'm not sure how to proceed...

My emacsclient file is in the same directory as yours and when I get the emacsclient: error executing alternate editor """" message I fix it by running emacs --daemon.

Questions

Does Emacs Anywhere work with any other applications in your environment?

Have you tried tinkering with the source code?

Solve a similar problem

Perhaps you could write a tiny, separate workflow that just invokes emacsclient to open a new fame. If you can get it to work, it will shed some light on this issue.

zachcurry avatar Jul 01 '18 19:07 zachcurry

I decided to try Emacs Anywhere on a whim. It's not that important to me to get it working, so I'm going to let the issue rest for now. If it works for everyone else, great :)

Cheers for trying to help out! 👍

Reefersleep avatar Jul 23 '18 12:07 Reefersleep

I'm little late to the party, @Reefersleep you can checkout https://github.com/zachcurry/emacs-anywhere/pull/67 as might be having a different osascript error

d1egoaz avatar Apr 22 '20 18:04 d1egoaz

I tried doing as in #67, @d1egoaz , but it didn't make a difference in my case; I still get the same error.

Reefersleep avatar Apr 30 '20 16:04 Reefersleep

I was seeing the same error and had tried everything suggested here. I was running the server from my main Emacs instance so I eventually tried:

export EA_EDITOR='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -a "" -c'

I had to also restart the server but now it works!

So make sure you are using an emacsclient that corresponds to your emacs.

The only remaining problem is that my main Emacs instance gets the focus instead of the new frame that comes up. This seems to be a separate issue with multiple displays.

mrcnski avatar Sep 17 '20 15:09 mrcnski

I am experiencing the same problem.

I have tried @m-cat approach but it didn't work. Specifically, my emacsclient is invoking /usr/local/bin/emacsclient, so I have replaced EA_EDITOR='emacsclient -a "" -c' in ~/.emacs_anywhere/bin/emacstask with the equivalent with the full path, and I added

export EA_EDITOR='/usr/local/bin/emacsclient -a "" -c'

in my ~/.bash_profile. Nothing changed. When I invoke the emacs anywhere service I get the following pop-up:

Screen Shot 2020-10-01 at 02 27 55

LucaMarconato avatar Oct 01 '20 00:10 LucaMarconato

Any news on this? I am still stuck

LucaMarconato avatar Nov 29 '20 20:11 LucaMarconato

Solved:

  1. I needed to add the permission for every app I want to use
  2. I changed EA_EDITOR to export EA_EDITOR='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -a "" -c -d $DISPLAY'

LucaMarconato avatar Nov 29 '20 20:11 LucaMarconato

I use emacs-plus via homebrew along with zsh. I had to create a .bash_profile file with this line:

export EA_EDITOR='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -a "" -c -d $DISPLAY'

benlind avatar Dec 11 '20 19:12 benlind

I was having again the same issue, this time this worked for me:

https://apple.stackexchange.com/a/394983

Just open a terminal and run osascript -e 'tell application "System Events"' -e 'keystroke "echo hi"' -e end tell that will add system events to the list, even though I added it manually before 🤷

d1egoaz avatar Jan 27 '21 17:01 d1egoaz