Получайте уведомления о низком заряде батареи для мыши раньше

Можно ли настроить процент предупреждений о низком заряде батареи для Magic Mouse 2?

В настоящее время я получаю только 2%, и в этот момент он очень близок к смерти, поэтому мне нужно прекратить то, что я делаю, и подключить его. Напоминание о 10-15% позволит мне подключить его в следующий раз, когда у меня будет естественный перерыв.

Ответы (3)

Для тех, кто хочет скопировать и запустить сценарий bash и добавить задание cron, вот полное решение, бесплатное и актуальное (начиная с macOS Catalina 10.15.3) и не требующее программирования (эту часть я сделал за вас), просто небольшое системное администрирование:

Сохраните это в скрипт bash~/.mouse-battery-check.sh , например :

#!/usr/bin/env bash
PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin

# actual battery level
BATT=`ioreg -c AppleDeviceManagementHIDEventService -r -l | grep -i mouse -A 20 | grep BatteryPercent | cut -d= -f2 | cut -d' ' -f2`

# defaults to warn at 20%; accepts other number as 1st argument (useful for testing)
COMPARE=${1:-20}

if [ -z "$BATT" ]; then
  echo 'No mouse found.'
  exit 0
fi

if (( BATT < COMPARE )); then
  osascript -e "display notification \"Mouse battery is at ${BATT}%.\" with title \"Mouse Battery Low\""
fi

Откройте терминал и сделайте скрипт исполняемым:

chmod +x ~/.mouse-battery-check.sh

Теперь вы можете проверить, что скрипт отправляет уведомление на рабочий стол, запустив его, когда ваша мышь BlueTooth подключена (это проверяет заряд батареи менее 101%, поэтому он всегда должен отправлять уведомление):

~/.mouse-battery-check.sh 101

Для повторного тестирования с настройкой по умолчанию (20%):

~/.mouse-battery-check.sh

Если мышь BlueTooth не обнаружена, сценарий вернет сообщение «Мышь не найдена».

Автоматическая проверка

Теперь, чтобы периодически тестировать и автоматически уведомлять вас, добавьте новое задание cron :

env EDITOR=nano crontab -e

Добавьте запись типа проверять каждые 15 минут:

*/15 * * * * cd ~ && bash ~/.mouse-battery-check.sh

(Здесь вы снова можете передать процент заряда батареи в качестве параметра сценария.)

Нажмите Control+Xзатем Y, Enterчтобы выйти из редактора и сохранить задание cron.

Совместимость

Это было протестировано на:

  • Каталина 10.15.3
  • Мохаве 10.14.6
  • High Sierra 10.13.x в июне 2018 г.

Благодарности

Для проверки батареи этот ответ:

настроить уровень предупреждения о батарее волшебной мыши

Для уведомления этот ответ:

Как я могу активировать уведомление Центра уведомлений из сценария AppleScript или оболочки?

Для заданий cron этот блог:

https://ole.michelsen.dk/blog/schedule-jobs-with-crontab-on-mac-osx.html

Пользователь sirclesam для тестирования совместимости.

Улучшение - также проверьте клавиатуру (и, возможно, трекпад)

Я изменил приведенный выше сценарий, чтобы проверить и Apple Magic Mouse, и клавиатуру. Добавив одно слово, он может проверить трекпады или любые другие папы Apple Magic с завышенной ценой. У меня есть только мышь и клавиатура, поэтому я начал с этого. Я также изменил значение по умолчанию на 10%, что дает мне еще несколько дней, чтобы подключить его. Трекпад следует тому же синтаксису.

#!/usr/bin/env bash
# Check battery level of Apple Magic Mouse and Keyboard and Notify if low

PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin

# Warn at 10% or according to first parameter.  Pass in 101 for testing.
COMPARE=${1:-10}

# Check each device.  
# If you have a Trackpad please add the suitable token to this list and test it.
for HIDThingy in Keyboard Mouse; do
    # Determine battery level of Apple Magic Thingy
    BATT=`ioreg -c AppleDeviceManagementHIDEventService -r -l \
         | grep -i $HIDThingy -A 20 | grep BatteryPercent | sed -e 's/.* //'`

    if [ -z "$BATT" ]; then
      echo "No $HIDThingy found."
    elif (( BATT < COMPARE )); then
      osascript -e "display notification \"$HIDThingy battery is at ${BATT}%.\" with title \"$HIDThingy Battery\""
    fi
done
Это отлично работает для меня, тогда как у меня никогда не работал BTT, большое спасибо за отличный ответ. Я не уверен, должен ли я сделать это принятым ответом только потому, что это немного сложнее, чем простая настройка параметров или решение с графическим интерфейсом.
Кстати, аналогичный подход должен работать и для Magic Keyboard.
Проверено, что это решение все еще работает для Catalina 10.15.3. Спасибо Уилл!
Спасибо, что поделились результатами теста, @sirclesam. Я подозреваю, что первой частью, которая, скорее всего, в конечном итоге сломается, будет команда ioreg или конвейерные команды, которые анализируют ее вывод.
Я изменил приведенный выше скрипт, чтобы проверить и мышь, и клавиатуру, и он также может проверять трекпад с одним очень небольшим изменением, но у меня нет его для тестирования. Где лучше всего опубликовать мою модификацию? Написать и ответить на новый вопрос? Отредактировать этот ответ и добавить его в конец? Это слишком долго, чтобы уместиться в комментарии.
@ jay613 это классная идея и хороший вопрос. Поскольку это немного выходит за рамки вопроса OP, я думаю, что идея написать и ответить на новый вопрос - хороший выбор. Но если вы опубликуете предложенное изменение в моем ответе, я думаю, что у меня будет возможность просмотреть его, прежде чем оно вступит в силу. Вы получите +2 кредита как редактор против +10 за голосование, если вы написали ответ. Вы можете просто добавить ответ здесь ; если так, я был бы признателен за упоминание моего вклада (если таковой имеется), но это действительно зависит от вас. ;) Ваше здоровье.
@WillCain Я попробую добавить к твоему ответу. Отчасти для опыта, так как я никогда этого не делал. В основном из-за того, что вы предоставляете так много подробностей о сквозном процессе, мой новый вопрос и ответ должны были либо копировать (плагиат?) большую часть его дословно, либо просто быть частичным ответом (только мой код) и отсылать людей сюда для всех идиотская деталь.
Проверено, отлично работает с macOS Big Sur, спасибо.

Есть выход!

К сожалению, для этого вам понадобится BTT (Better Touch Tools) . BTT был бесплатным, но для поддержки текущей разработки теперь существует модель лицензии «плати сколько хочешь», начиная с 5 долларов США. Но на самом деле вы можете протестировать его бесплатно в течение нескольких дней.

Как настроить уведомление:

  1. Запустить BTT → Строка меню → Настройки → Основные настройки → Установите флажок «Запускать BTT при запуске».
  2. Перейдите в Дополнительные настройки (верхний левый угол)
  3. Перейдите в настройки мыши (верхний правый угол)
  4. В разделе «Общие» внизу есть «Предупреждать, если уровень заряда батареи ниже X%».
  5. Отметьте опцию и установите свой уровень.

бтт скриншот

Спасибо, только что установил его сейчас, похоже, приложение делает гораздо больше, с чем я могу покопаться.
Да, приложение для меня must have! Привязка окон, пользовательские команды нажатия клавиш и многое другое!
Если у вас есть Magic Trackpad, BTT абсолютно необходим. Я не мог жить без него в эти дни.

вы всегда можете скачать битбар и просто добавить какой-нибудь скрипт для запуска, например этот https://github.com/kkunkel/OSX-Nagios .

Добро пожаловать в Ask Different и найдите время, чтобы опубликовать ответ! Полезно расширить свой ответ, чтобы дополнительно объяснить / уточнить, что вы пытаетесь сообщить. Также лучше включить соответствующие пункты в этот ответ, а не просто ссылаться на другой.
Это проверяет аккумулятор компьютера, а не аккумулятор волшебной мыши.