Відповіді:
Ви можете фактично видалити нативні елементи MacOS з контекстного меню .... але, на жаль, це не відображається, ви можете видалити ті, які ви вказали вище. Незалежно від того, якщо ви хочете поглянути, зверніться до
Налаштування системи> Клавіатура> Комбінації клавіш> Послуги
а потім зніміть прапорець у меню пунктів, які вам не потрібні.
Прикро, що ви не можете їх усіх видалити. Але це, принаймні, може допомогти вам позбутися деяких затруднень.
Я розробив для цього рішення, яке (до цих пір) працює для елементів контекстного меню «Пошук Finder» за замовчуванням, таких як Burn to disk
і Burn "^1" to disc
. Це саме мета запиту ОП.
Існує ще одна різновид розширення контекстного меню, що надходить від встановлення Сервісів у вигляді Applescript або виконуваних плагінів.
Це просто позбутися. Як би вони не назвали, просто шукайте на диску цей рядок. тобто Inject Potatos!
сервіс в кінцевому рахунку буде знайдений у файлі з ім’ям Inject Potatos!.<something>
. Можливо, є деякі інші форми та розміри, але їх легко вирішити та вийти за рамки посади ОП.
Для користувачів, які не є англійськими: це рішення є мовним. Ми використовуємо функції локалізації, які перетворюють рядки + аргументи за замовчуванням у локалізовані рядки з розширеними змінними.
Я не впевнений у внутрішніх цілях Objective-C, але я підозрюю, що щось подібне до цього відбувається.
snprintf(str, 0, "", var1, var2, ..);
Немає рядка формату (тобто ""), тому ви завжди 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-плістуВідкрийте 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 у вашому поточному робочому каталозі. Клацніть правою кнопкою миші, щоб відкрити контекстне меню, переконайтесь, що все виглядає добре.