Notify-отправлять уведомления, появляющиеся под окном

Notify-отправлять уведомления, появляющиеся под окном

Я написал скрипт оболочки, чтобы моя дочь не играла в Minecraft на своем Raspberry Pi больше 60 минут в неделю :). Часть скрипта использует notify-sendвсплывающие уведомления, предупреждающие об оставшемся времени. Однако оба notify-sendуведомления notify-send --urgency=criticalпоявляются под окном Minecraft, так что над заголовком окна виден только небольшой кусочек серого. Почему это происходит, и есть ли что-то еще, что я могу сделать, чтобы сделать видимое предупреждение (если есть альтернативы notify-send)?

решение1

При использовании «notify-send» внешний вид уведомления определяется двумя факторами:другойкомпоненты:

  • the сервер уведомленийкоторый создает всплывающие окна с определенным внешним видом (например, notification-daemon, notify-osd, xfce4-notifyd, dunst, dzenify, lxqt-notificationd);
  • оконный менеджер, который в конечном итоге определяет положение и z-порядок каждого окна на рабочем столе.
  • («notify-send» сам по себе ничего не показывает, он просто отправляет запрос «показать уведомление».)

Так что либо текущий сервер уведомлений недостаточно старается, чтобы всплывающие окна всегда отображались поверх остальных, либо менеджер окон решил, что полноэкранные окна имеют приоритет в любом случае, либо менеджер окон (или сам Xorg) немного глючит.

Вы можете поэкспериментировать, изменив сервер уведомлений — сначала завершите текущий процесс (и удалите его из «автозапуска» среды рабочего стола), затем установите и запустите новый (например, запустив /usr/lib/notify-osd/notify-osd &).

Чтобы определить, какой идентификатор процесса в данный момент действует как сервер уведомлений, используйте:

gdbus call -e -d org.freedesktop.DBus \
              -o /org/freedesktop/DBus \
              -m org.freedesktop.DBus.GetConnectionUnixProcessID \
                 "'org.freedesktop.Notifications'"

В качестве альтернативы notify-send в целом можно использовать программы, которые создают обычное окно с каким-то текстом – например, xmessage; gxmessage; или zenity. Они, возможно, более склонны вести себя правильно.

Связанный контент