gnome-shell-extension: JS, который работает в зеркале, не расширяется

Ниже приведен пример чтения температуры процессора. скопируйте значок с именем temp-icon.png / svg в каталог сценария

from gi.repository import Gtk, GLib
from gi.repository import AppIndicator3 as appindicator
import os

def cb_exit(w, data):
   Gtk.main_quit()

def cb_readcputemp(ind_app):
# get CPU temp
   fileh = open(
      '/sys/devices/platform/thinkpad_hwmon/subsystem/devices/coretemp.0/temp1_input',
    'r')
  ind_app.set_label(fileh.read(2), '')
  fileh.close()
  return 1


ind_app = appindicator.Indicator.new_with_path (
  "cputemp-indicator",
   "temp-icon",
   appindicator.IndicatorCategory.APPLICATION_STATUS,
    os.path.dirname(os.path.realpath(__file__)))
ind_app.set_status (appindicator.IndicatorStatus.ACTIVE)

# create a menu
menu = Gtk.Menu()
menu_items = Gtk.MenuItem("Exit")
menu.append(menu_items)
menu_items.connect("activate", cb_exit, '')
menu_items.show()
ind_app.set_menu(menu)
GLib.timeout_add(500, cb_readcputemp, ind_app)
Gtk.main()
2
задан 22 April 2012 в 17:33

1 ответ

Я спросил об этом в списке рассылки gnome-shell - выясняется, что расширения загружаются довольно рано в куске, прежде чем пользовательские контакты будут правильно загружены.

Добавление 5 -задержка на второй фрагмент кода, который извлекает список контактов (чтобы система могла загружать все контакты) работает прелесть.

2
ответ дан 25 May 2018 в 12:30
  • 1
    thedailywtf.com/Articles/Too-Much-Sleep.aspx Сон для синхронизации - очень плохое решение. – deadalnix 2 February 2013 в 12:31
  • 2
    конечно, но можете ли вы предложить альтернативу в этом случае? соответствующие библиотеки не предоставляют сигналов, указывающих, что контакты загружены, поэтому я не могу подключиться к сигналу с обратным вызовом. – mathematical.coffee 3 February 2013 в 19:10
  • 3
    Я должен сказать, что я никогда не касался этой части API, поэтому я не уверен. Хакерный способ может найти некоторый побочный эффект инициализации контакта и полагаться на это. Например, путем обезглавливания функции, вызываемой инициализацией. – deadalnix 3 February 2013 в 19:54

Другие вопросы по тегам:

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