Edit Hardcoded Finder Menus
Finder has many contextual menu options, some only show for folders, others only show when you have more than one item selected, etc. Unfortunately there is no option to remove or edit these menu entries under
System Preferences, as they are "hardcoded" into
But this doesn't mean you can't modify them! Don't attempt this this little hack unless you know what you are doing, this is not a tip for the average Mac user. MAKE BACKUPS! You've been warned!
Anyway, these are Finder's original contextual menus (for El Capitan).
After removing a lot of useless and redundant things these are the "new" menus.
Below is a list of options I've removed from Finder's file and desktop context menus, and the reason I did it.
- Open [ Same as
CMD + Oor double click ]
- Move To Trash [ Same as Drag to Trash, or
CMD + DELETE]
- Rename [ Same as
- Burn to Disc [ I use Toast for burning ]
- Duplicate [ Same as
OPTION + Drag]
- Make Alias [ Same as
OPTION + CMD + Drag. And I use
lnmore often ]
- Quick Look [ Same as
Space Barwith item selected ]
- Copy [ Same as
CMD + C]
- Clean Up Selection [ I never use this, I do my own cleaning! But left one just in case. ]
- Show View Options [ Same as
CMD + J(removed from file and desktop menus) ]
- Compress X Item [ Changed to "Deflate .zip" to match my .7z and .tar.gz services ]
- Change Desktop Background... [ Changed to something shorter, as this very_long_long_useless_phrase was widening the menu. So I've changed to "Background..." ]
Modding the Menu
First things first, if you are using El Capitan or any newer macOS you need to disable SIP or you won't be able to edit the files that need to be edited, I am guessing you know how to do that, if not, Google it.
Terminal.app and any decent text editor. I like Sublime.
The trick is done by neutering (erasing) the desired values for some entries inside the
.string file. This
.string localization file resides inside the
Finder.app. You have to edit the one inside the folder of the language you are using as display language.
For instance if your display language is French, you have to edit the .strings file that is inside the
French.lproj folder (instead of English.lproj).
(1) Make the Backup!
Open Terminal and
cd into the directory where the strings file for your language is located:
The file we want to edit is called
We need to make a backup of this file:
sudo cp Localizable.strings Localizable.strings.bkp
(2) Convert from Binary to XML
Convert the file from binary to xml so is editable by any (decent) text editor:
sudo plutil -convert xml1 Localizable.strings
(3) Open the File as Root
You can open the file editor as root using your favorite editor if you invoke the binary of the app directly, like this:
sudo /Application/Sublime.app/Contents/MacOS/Sublime\ Text
sudo /Applications/PlistEdit\ Pro.app/Contents/MacOS/PlistEdit\ Pro
Then open the
Localizable.strings file as you normally would, with
File > Open. You can use the regular
CMD + SHIFT + G to reach the file's path in the open dialog, and
CMD + S to save it too.
(4) Editing the Localizable.strings File
This can be tricky as names for stuff we want to remove can occur more than once. So my advise is to make one change at a time and check the results by reloading finder. Also do not delete the entire key just it's strong value. If the key is missing the system will display the key's name instead, like BN50_V1.
To help identify the entry to be edited, instead of removing the name right away add something to the name, reload Finder to identify it in the GUI.
For example if I want to remove the option
Show View Options I change that to
Show View Options MEH and reload Finder. If the option changed in the GUI then that entry is the one, if not I revert back to it's original value and try the next occurrence.
Here are some portions of the xml file. We'll use the entry
Burn to Disc… as an example and remove it.
<key>BN50_V1</key> <string>Burn to Disc…</string> <key>BN50_V2</key> <string>Burn “^1” to Disc…</string>
<key>BN50_V1</key> <string></string> <key>BN50_V2</key> <string></string>
I've used this particular key as an example because it has a fallback. In the absence of the
BN50_V1 string it displays the
BN50_V2 one, so I had remove both of them. Some other keys will have a fallback too, and you'll have to trial and error this through.
Additionally you can edit things too. One thing that always bugged me is the template name for a new folder. The name
untitled folder is not cool at all! So I've changed that one too.
<key>N2</key> <string>untitled folder</string>
(5) Reloading Finder.app
As advised before, after each change reload Finder and check the results. To reload Finder issue this command:
killall -HUP Finder
(6) Convert Back to Binary
The system will process the file faster when is in binary format, so once you're satisfied with the changes convert the file back.
sudo plutil -convert binary1 Localizable.strings
Undo the Hack
Keep in mind that your original backup file is inside Finder itself, as we issued the
cp command while in that directory.
If you need to revert back just copy the backup .strings.bkp file to .strings and kill Finder one last time.
First cd into it:
Then restore from the backup:
sudo cp Localizable.strings.bkp Localizable.strings
killall -HUP Finder
After this all should be back as it was.
Last Note - Permissions
A final note, that file has a 644 permission (
-rw-r--r--) and is owned by
root with group
If that messed up the fix is:
sudo chmod 644 /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Localizable.strings sudo chown root:wheel /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/Localizable.strings