Catalina introduced a lot of security changes and the most intrusive is probably all the popups asking to give permission for apps to access directories under Home, like Documents. Worse still, apps which weren't written to handle the new security measures might just fail silently with no clues for the user.
A solution is to give apps like Emacs "Full Disk Access" under "Security & Privacy" in Preferences, to give unfettered access to your files and avoid all the popups and silent failures.
Sounds good, but that doesn't actually work for Emacs because "Emacs" in the app bundle is actually a Ruby script which
decides which flavour of Emacs executable to run. This never mattered before, but it does under Catalina because MacOS
thinks the executable is /usr/bin/ruby
.
Conventional wisdom is therefore to give "Full Disk Access" to Ruby. While this does work, I've always been uncomfortable giving all Ruby scripts full access, particularly as I never write Ruby scripts myself.
I also recently realised the Ruby launcher causes other problems on Catalina:
- Opening a file associated with Emacs from the Finder doesn't work if Emacs is already running.
- Opening Emacs with Spotlight (e.g. with
Cmd-Space e
) doesn't work if Emacs is already running.
After some investigation, I was able to remove the dependency on the launcher and everything is now working fine.
Here are the steps:
- Use the Emacs executable rather than the Ruby launcher
$ cd /Applications/Emacs.app/Contents/MacOS $ mv Emacs Emacs-launcher $ ln -s Emacs-x86_64-10_14 Emacs
- Use the correct versions of bin & libexec
$ rm bin $ ln -s bin-x86_64-10_14 bin $ rm libexec $ ln -s libexec-x86_64-10_14 libexec
Of course, this will have to be redone after upgrading Emacs.app to a different version.
Giving Emacs.app Full Disk Access |
Comments
Post a Comment