mm_source является локальным для функции2. Когда функция 2 завершает работу, она выходит из области видимости и собирает мусор. Это приведет к быстрому добавлению и удалению из меню, прежде чем вы сможете его увидеть.
Чтобы остановить это, просто верните объект mm_source в вызывающий код и сохраните его в переменной. Вероятно, вы захотите сделать то же самое с вашим миллиметром. Как показано ниже:
import gtk
def show_window_function(x, y):
print x
print y
# get the indicate module, which does all the work
import indicate
def function1():
# Create a server item
mm = indicate.indicate_server_ref_default()
# If someone clicks your server item in the MM, fire the server-display signal
mm.connect("server-display", show_window_function)
# Set the type of messages that your item uses. It's not at all clear which types
# you're allowed to use, here.
mm.set_type("message.im")
# You must specify a .desktop file: this is where the MM gets the name of your
# app from.
mm.set_desktop_file("/usr/share/applications/nautilus.desktop")
# Show the item in the MM.
mm.show()
return mm
def function2():
# Create a source item
mm_source = indicate.Indicator()
# Again, it's not clear which subtypes you are allowed to use here.
mm_source.set_property("subtype", "im")
# "Sender" is the text that appears in the source item in the MM
mm_source.set_property("sender", "Unread")
# If someone clicks this source item in the MM, fire the user-display signal
mm_source.connect("user-display", show_window_function)
# Light up the messaging menu so that people know something has changed
mm_source.set_property("draw-attention", "true")
# Set the count of messages in this source.
mm_source.set_property("count", "15")
# If you prefer, you can set the time of the last message from this source,
# rather than the count. (You can't set both.) This means that instead of a
# message count, the MM will show "2m" or similar for the time since this
# message arrived.
# mm_source.set_property_time("time", time.time())
mm_source.show()
return mm_source
my_mm = function1()
my_mm_source = function2()
gtk.mainloop()
Да, рабочий стол LTS получает обновления для серверных пакетов через три года. Например, если у вас есть openssh-сервер, установленный на вашем рабочем столе, то он будет поддерживаться в течение пяти лет, потому что это серверный пакет. Настольные приложения по-прежнему не поддерживаются через три года. Когда выпущено 12.04LTS, период поддержки LTS обновляется с трех лет на рабочем столе до пяти лет на все.
Вы можете использовать команду ubuntu-support-status для получения обзора.
Для версий до 12.04LTS я ожидал, что ядро рабочего стола не будет поддерживаться через три года. Рабочий стол действительно не поддерживается через три года, даже если некоторые из пакетов будут. Опять же, это изменяется при выпуске 12.04LTS.