Skip to content

Instantly share code, notes, and snippets.

@dive
Created September 29, 2019 09:55
Show Gist options
  • Star 60 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save dive/f64c645a9086afce8e5dd2590071dbf9 to your computer and use it in GitHub Desktop.
Save dive/f64c645a9086afce8e5dd2590071dbf9 to your computer and use it in GitHub Desktop.
Fix Emacs permissions on macOS Catalina
;;; package --- Fix permissions for Emacs.app on macOS Catalina
;;; Author: Artem Loenko
;;; Mail-To: <artyom.loenko@mac.com>
;;; Commentary:
;;; Code:
(defconst _default-emacs-app-plist-path "/Applications/Emacs.app/Contents/Info.plist")
(defconst _temp-buffer-name "*fixing Emacs permissions*")
(defconst _temp-buffer (get-buffer-create _temp-buffer-name))
(with-current-buffer _temp-buffer (erase-buffer))
(defun add-description-if-needed (description_key description)
"DESCRIPTION_KEY - DESCRIPTION."
(defconst read-args (list "read" _default-emacs-app-plist-path description_key))
(if (equal 1 (with-temp-buffer (apply 'call-process "defaults" nil (current-buffer) nil read-args)))
(progn
(princ (format "Missing: %s. Adding...\n" description_key) _temp-buffer)
(defconst write-args (list "write" _default-emacs-app-plist-path description_key "-string" description))
(apply 'call-process "defaults" nil (current-buffer) nil write-args))
(princ (format "Existed: %s. Skipping.\n" description_key) _temp-buffer)))
(add-description-if-needed
"NSDesktopFolderUsageDescription"
"Emacs requires permission to access the Desktop folder.")
(add-description-if-needed
"NSDocumentsFolderUsageDescription"
"Emacs requires permission to access the Documents folder.")
(add-description-if-needed
"NSDownloadsFolderUsageDescription"
"Emacs requires permission to access the Downloads folder.")
(add-description-if-needed
"NSRemovableVolumesUsageDescription"
"Emacs requires permission to access files on Removable Volumes.")
(switch-to-buffer-other-window _temp-buffer)
;;; fix-emacs-permissions-catalina.el ends here
@leonardoce
Copy link

Same for me... (As suggested by @waqarsaleem, thanks). Giving Full Disc access to /usr/bin/ruby in System Preferences > Security > Full Disc Access helped. https://gist.github.com/dive/f64c645a9086afce8e5dd2590071dbf9?permalink_comment_id=3049341#gistcomment-3049341

Same for me too!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment