Предотвратить укладку «notify-send» в стек

Это совершенно точно. Вы не можете установить что-либо через SSH или что-либо за пределами Installitron на CPanel w / GoDaddy из-за общего хостинга. Они заявляют, что для этого требуется слишком много ресурсов, и вам нужен VPS или выделенный сервер, чтобы делать что-либо на этом уровне.

2
08.07.2017, 02:27
1 ответ

В API-интерфейсе уведомлений есть средства для указания идентификатора текущего уведомления, которое следует обновить вместо создания нового всплывающего окна, но notify-sendэтого не предусмотрено. Если вы хотите использовать небольшое количество python, вы можете получить идентификатор уведомления при его создании, а затем попытаться обновить этот идентификатор позже. Поместите следующий код python2 в файл в каталоге, который находится в вашем PATH, скажем mynotify-sendи выполнитеchmod +x mynotify-send:

#!/usr/bin/python
import argparse, gi
#gi.require_version('Notify', '0.7')
from gi.repository import Notify

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('-m', '--message', default="body")
    parser.add_argument('-i', '--id', type=int)
    return parser.parse_args()

def run(myid,message):
    Notify.init("mynote")
    obj = Notify.Notification.new("my summary", message)
    obj.set_timeout(60*1000)
    if myid:
        obj.set_property('id', myid)
        obj.show()
        newid = obj.get_property('id')
        print newid
    else:
        obj.show()
        myid = obj.get_property('id')
        print myid

def main():
    options = parse_args()
    run(options.id, options.message)

main()

Необходимо также установить python-gobject. Когда вы бежите

mynotify-send -m 'message 1'

должно появиться всплывающее уведомление, а также вывод идентификатора на стандартный вывод. Часто это просто небольшое число, считая количество уведомлений, например 6. Затем вы можете изменить сообщение в существующем всплывающем окне, добавив этот идентификатор:

mynotify-send --id 6 -m 'message 2'

Вы можете делать это, пока существует всплывающее окно. После того, как всплывающее окно исчезнет, ​​следующее сообщение получит новый идентификатор, например 7,который программа напечатает, и вам придется использовать его в последующих сообщениях. Таким образом, в сценарии оболочки вы просто запоминаете вывод программы и каждый раз используете его повторно.

3
27.01.2020, 22:09

Теги

Похожие вопросы