Кто-нибудь знает, как я могу удалить элементы, которые я никогда не использую из контекстного меню?
Например: записать "Ядда Ядда" на диск ...
Кто-нибудь знает, как я могу удалить элементы, которые я никогда не использую из контекстного меню?
Например: записать "Ядда Ядда" на диск ...
Ответы:
На самом деле вы можете удалить нативные элементы MacOS из контекстного меню .... но, к сожалению, не получается удалить те, которые вы указали выше. Независимо от того, если вы хотите посмотреть, голова к
Системные настройки> Клавиатура> Сочетания клавиш> Сервисы
а затем снимите флажки с пунктов, которые вы не хотите в меню.
К сожалению, вы не можете удалить их все. Но это может по крайней мере помочь вам избавиться от некоторых беспорядков.
Я разработал решение для этого, которое (пока) работает для стандартных элементов контекстного меню Finder, таких как Burn to disk
и Burn "^1" to disc
. Это как раз и есть цель запроса ОП.
Существует еще одна разновидность контекстного меню, которая возникает при установке Служб в форме Applescript или исполняемых плагинов.
От них просто избавиться. Как бы они ни назывались, просто поищите на вашем диске эту строку. то есть Inject Potatos!
сервис в конечном итоге будет найден в файле с именем Inject Potatos!.<something>
. Могут быть и другие формы и размеры, но их легко решить и вывести их из публикации ОП.
Для неанглийских пользователей: Это решение не зависит от языка. Мы используем функции локализации, которые преобразуют строки по умолчанию + аргументы в локализованные строки с расширенными переменными.
Я не уверен насчет внутренних объектов Objective-C, но я подозреваю, что происходит нечто подобное ...
snprintf(str, 0, "", var1, var2, ..);
Там нет строки формата (то есть ""), так что вы всегда будете str
иметь нулевую длину.
Если str имеет нулевую длину, распознаватель локализации будет идти вверх по дереву, чтобы найти работающий шаблон формата предка. Пока вы обнуляете всех предков этого класса сообщений - он в конечном итоге исчерпает шаблоны и вернет строку нулевой длины запросчику локализации.
Средство визуализации контекстного меню распознает его нулевую длину и пропускает его из пунктов списка контекстного меню, и вы получаете более тонкое контекстное меню.
Я знаю, что форматирование NSString отличается от C, но если вы не являетесь пользователем Objective-C и должны думать об этом с точки зрения printf, следующие примеры также в основном совпадают для целей этого упражнения.
"Throw ^1 into the ^2"
"Throw %s into the %s", arg1, arg2
.Если вы вносите изменения и после перезапуска Finder это, похоже, не вступает в силу - возможно, вы изменяете строку локализации в какой-то другой области, кроме контекстного меню, вызываемого правой кнопкой мыши. Отмените изменения, перезапустите Finder и попробуйте снова. Если вы пропустите этот шаг, вы можете в конечном итоге изменить что-то, кроме контекстного меню, и не осознавать это, пока несколько дней спустя.
Поймите, что это по сути взлом, он может работать не так, как вы хотите или ожидаете. Что бы это ни стоило, я бегал с этими изменениями (и больше) по крайней мере пару недель и не испытал никаких побочных эффектов.
Сначала давайте посмотрим на изображение «до», взятое из поста ОП, которое показывает нам типичное контекстное меню Finder по умолчанию, полное раздувания.
Ужасно!
Большинство устройств Apple даже не поставляются с пишущими DVD-дисками, но они Burn "^1" to disc
занимают ценную недвижимость.
Не говоря уже о столь же бесполезно Quick Look
, Duplicate
, Make Alias
, Copy ^1
и т.д.
Раздетый, насколько я мог получить это. Имейте в виду, что если бы мы выбирали файл, у нас были бы пункты по умолчанию
Open
иOpen with..
пункты меню.
Вы ничего не потеряете, если не пропустите это.
Вещи могут быть сделаны довольно разреженными, если вы хотите.
cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
plutil -convert xml1 Localizable.strings
, чтобы преобразовать Localizable.strings в обычный XML-файл plistОткройте Localizable.strings в текстовом редакторе / редакторе кода (vi, pico, emacs, jed и т. Д. - TextEdit.app не может сохранять файлы * .txt и его следует избегать)
Найдите значение, которое вы хотите скрыть. В моем случае это был «Записать« ^ 1 »на диск», который является ключом BC50_V2.
<key>BN50_V1</key> <string>Burn to Disc…</string> <key>BN50_V2</key> <string>Burn “^1” to Disc…</string>
Моя первая попытка состояла в том, чтобы полностью удалить пару ключ-значение, но это привело к появлению строки BC50_V1 в моем меню.
Некоторые строки формата возвращаются к более общим шаблонам, если они существуют. В этом случае вам придется обнулить несколько значений.
Вы можете увидеть это поведение с BC50_V2, который возвращается к BC50_V1.
Так как я хотел полностью избавиться от любых Burn...
пунктов меню, мне также пришлось обнулить BC50_V1.
Существуют и другие пары «ключ-значение», которые имеют несколько запасных вариантов, но их обычно довольно легко идентифицировать, так как они будут иметь одинаковый префикс BC50_
и численно увеличивающиеся суффиксы._V1, _V2, _V..
Вы можете аннотировать свои изменения, сохраняя копию исходного XML-фрагмента ключ / значение внутри XML-комментария.
Я делаю копию фрагмента для изменения, закомментирую старый фрагмент с описанием и делаю мои изменения в копии. Таким образом, я могу легко вернуться и не использовать контроль версий или иметь несколько копий файла.
<!-- OLD Burn.*to Disc... <key>BN50_V1</key> <string>Burn to Disc…</string> <key>BN50_V2</key> <string>Burn “^1” to Disc…</string> --> <!-- NEW Burn.*to Disc --> <key>BN50_V1</key> <string></string> <key>BN50_V2</key> <string></string>
^<number>
. Тогда число представляет n-й аргумент. Если вы чувствуете себя особенно pimpy вы могли бы изменить Burn "^1" to Disc
к Archive "^1" forever utilizing an optical disk!
.killall -HUP Finder
перезапустить Finderopen .
открыть окно Finder в вашем текущем рабочем каталоге. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню, убедитесь, что все выглядит хорошо.