Есть ли способ отключить сообщение «диск не был извлечен должным образом»?
Я использую KVM, и мне нужно переключаться между двумя системами и иметь карту памяти, которая находится в KVM. Проблема в том, что очень раздражает получать сообщение каждый раз, когда я переключаюсь с одного компьютера на другой. Я знаю, размонтировать могу (и наверное должен), но я постоянно переключаюсь, поэтому размонтировать неудобно, а на флешке нет ничего чувствительного.
обновлен новый лучший метод
Как упоминал Рассел в комментариях:
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.DiskArbitration.diskarbitrationd.plist DADisableEjectNotification -bool YES && sudo pkill diskarbitrationd
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.UserNotificationCenter.plist
sudo rm /usr/libexec/USBAgent
sudo pkill diskarbitrationd
кажется, убивает его навсегда или, по крайней мере, делает так, чтобы диски не монтировались, пока я не перезагружусь. Использование sudo launchctl kickstart -k system/com.apple.diskarbitrationd
, похоже, не имеет этой проблемы.Этот яблочный скрипт закроет их для вас. Вставьте его в редактор сценариев, а затем сохраните как приложение. Затем предоставьте доступ к этому приложению в (Системные настройки> Безопасность и конфиденциальность> Доступность). Затем вы можете использовать приложение, такое как ControlPlane https://www.controlplaneapp.com/ , чтобы запускать приложение после пробуждения, автоматически закрывая их все! ** Примечание. Вам также потребуется предоставить доступ к ControlPlane.
tell application "System Events"
tell process "NotificationCenter"
set numwins to (count windows)
repeat with i from numwins to 1 by -1
tell window i
set temp to value of static text 1
end tell
if temp contains "Disk Not Ejected Properly" then
click button "Close" of window i
end if
end repeat
end tell
end tell
Конечно, это не элегантный ответ, но вы можете отключить UserNotificationCenter.app, найденный в /system/library/coreservices, — замените его другим приложением или файлом с тем же именем. Это предотвратит появление любых предупреждений (в том числе о том, что ваш диск заполнен), так что следите за этим, но, по моему опыту, это делает то, что вы ищете.
На самом деле я сделал это со своим Mac давным-давно и забыл об этом, пока вы не задали вопрос. Кредит Macpadawon на http://macosx.com/forums/mac-os-x-system-mac-software/297194-disable-device-removal-message.html для ответа - там же, где я нашел свой ответ пару лет назад.
Работает с macOS Big Sur.
Этот AppleScript отклоняет все уведомления о неправильном извлечении диска.
tell application "System Events"
tell process "Notification Center"
set group_index to 1
repeat
try
set the_window to group group_index of UI element 1 of scroll area 1 of window "Notification Center"
set notification to value of static text of the_window
set notification_title to item 1 of notification
if notification_title = "DISK NOT EJECTED PROPERLY" then
set the_actions to actions of the_window
repeat with the_action in the_actions
if description of the_action is "Close" then
tell the_window
perform the_action
end tell
end if
end repeat
# Wait for the notification to disappear so that the indexes of the remaining notifications are updated accordingly.
delay 0.25
# Do not increment `group_index` because all remaining notifications have their index decremented by 1 since this notification was dismissed. We do not need to worry about the notifications before the one just dismissed because we already know that they are not notifications about disk ejection.
else
# This is not a disk ejection notification, so skip it and look at the next notification.
set group_index to group_index + 1
end if
on error error_message
# There are no more notifications to process.
exit repeat
end try
end repeat
end tell
end tell
Вы можете запускать этот AppleScript каждые 10 секунд с помощью PLIST запуска ниже. Не забудьте изменить его для работы с вашей собственной установкой. Затем поместите PLIST ~/Library/LaunchAgents
и запустите launchctl load ~/Library/LaunchAgents/file.plist
(заменив file.plist
имя файла) в Терминале.
Что действительно здорово в launchd, так это то, что если задание не запускается из-за того, что компьютер спит (например, когда ваш ноутбук закрыт), launchd запустит задание, как только компьютер снова проснется (и если задание должно было выполняться несколько раз, когда компьютер находился в спящем режиме, несколько запусков будут объединены в один запуск после пробуждения). Это действительно полезно при отключении закрытого ноутбука от домашней док-станции с подключенным жестким диском, а затем при использовании ноутбука на ходу.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.YourName.DismissNotifications</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>/path/to/script</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>10</integer>
</dict>
</plist>
Это можно сделать, изменив тип этого системного уведомления с оповещения на баннер . К сожалению, это невозможно сделать с помощью графического интерфейса, но можно сделать с помощью скрипта. суть
Суть сценария состоит в том, чтобы очистить бит предупреждения & ~0b00010000
и установить баннер и измененные биты | 0b01001000
в _SYSTEM_CENTER_:com.apple.DiskArbitration.DiskArbitrationAgent
файле .~/Library/Preferences/com.apple.ncprefs.plist
После этой модификации уведомления по-прежнему будут появляться, но через несколько секунд исчезнут сами по себе.
Взято из блога adafruit и успешно протестировано на macOS 12.6 Monterey.
ваш ответ здесь. Просто замените файл на файл, упомянутый в конце этой статьи, и работа будет выполнена. Ни в Сьерре, ни в Высокой Сьерре ничего не изменилось.
Отключение предупреждений об удалении устройств OS-X в Yosemite
ОБНОВИТЬ!
МОЙ БОГ! QuantumG - гений! Вот хак ( и я имею в виду реальный лайфхак ) для отключения только этого надоедливого сообщения и сохранения остальной системы уведомлений нетронутой...
http://quantumg.blogspot.com/2015/04/disabling-os-x-device-removal-warnings.html
Предупреждение : это профессиональный совет, а не для слабонервных! Это требует взлома системных файлов Mac OSX и может привести к поломке вашего Mac.
Отредактировано для ясности.
Проблема с флешками или другими USB-накопителями заключается в следующем; всякий раз, когда вы записываете данные на диск... ЛЮБОЙ диск в вашей системе, данные сначала записываются в буфер в памяти. Позже, когда компьютер доберется до него, он сбросит буферы на устройство (жесткий диск, SSD или любое USB-устройство). Это может произойти мгновенно (по крайней мере, для нас, простых смертных), а может занять несколько секунд. Возможная задержка означает, что если вы извлечете USB-устройство до того, как буферы будут очищены, вы можете получить поврежденный диск или набор поврежденных файлов на диске.
Если вы только читаете с устройства, то НЕТ НУЖНОСТИ очищать буферы записи перед тем, как вы дергаете содержимое своего сердца, потому что они пусты и их не нужно сбрасывать на устройство.
Итак ... Раздражающее предупреждение MAC OS X, скорее всего, НЕ актуально. Это важно делать только в том случае, если вы недавно выполняли запись на устройство и не дали ему достаточно времени для очистки буферов (макс. несколько секунд). НИКОГДА не нужно ждать очистки буферов, если вы читаете только с USB-устройства.
Поэтому Apple НЕОБХОДИМО предоставить способ отключения отдельных сообщений для опытных пользователей. Не относитесь ко всем как к n00b, на которых нельзя положиться, чтобы знать, как работает их компьютер.
А те, кто жалуется, что я не прав, и что есть способ отключить сообщения, отключив ВСЮ ПОДСИСТЕМУ УВЕДОМЛЕНИЯ, просто не правы. Отключение всей подсистемы уведомлений — неприемлемое решение, так же как извлечение аккумулятора из мобильного телефона — НЕ приемлемое решение, если вы получаете слишком много телемаркетинговых звонков. Подсистема уведомлений важна, и ее не следует отключать только потому, что OP считает одно из множества сообщений раздражающим.
Это проблема, которая может быть адекватно решена только в том случае, если Apple предоставит пользователям возможность отказаться от определенных сообщений.
ДерМайк
Синдре Сорхус
Дори
Майкл Стам
Кейт
Роберт Чаччо
Роберт Чаччо
Роберт Чаччо
Адам
анонимный
Профессор Хастер