Приветствие/Экран входа в систему

Приветствие/Экран входа в систему

В настоящее время в Ubuntu 14.04 в правом верхнем углу есть следующие индикаторы: выключение, кнопка блокировки, сведения о времени календаря, сведения о батарее, формат ввода (английский) в качестве индикаторов по умолчанию. Возможно ли сделатьиндикатор-системный мониторкак один из таких индикаторов по умолчанию.

Теперь, что происходит, только когда мы вошли в систему на компьютере, indicator-sysmonitor будет показан, а когда вы выйдете из системы или заблокируете наш компьютер, indicator-sysmonitor автоматически выйдет из панели. Я знаю по опыту работы с заблокированными компьютерами, indicator-sysmonitor работает в фоновом режиме, но не будет отображаться на панели. У меня есть некоторая статистика (включая cpu,mem и некоторые пользовательские), которую я хочу видеть, когда я блокирую свой компьютер.

можно ли это сделать?

P.S. Я задал этот вопрос на основном сайте программного обеспечения, и автор порекомендовал этот сайт.


Я посмотрел наэтот вопроси его ответы, и это выглядит многообещающе - но я не знаю, как адаптировать ответы для indicator-sysmonitor.

решение1

Приветствие/Экран входа в систему

В итоге я смотрю, как это nm-appletработает. Я отследил это, так как это, похоже, жестко закодировано в unity-greeter.

Эта модификация позволяет отображать его на экране приветствия после загрузки или выхода из системы (но не на экране блокировки).

  1. Загрузите исходный код и соберите зависимости

    sudo apt-get build-dep unity-greeter
    apt-get source unity-greeter
    
  2. Добавить функцию спавна дляindicator-sysmonitor

    cd unity-greeter-*/
    vim src/unity-greeter.vala +590
    

    Там вы найдете Process.spawn_command_line_async ("nm-applet");оригинальный код, который порождает nm-appletэкран приветствия. Сделайте его копию с полной try..catchоберткой и измените его, чтобы он indicator-sysmonitorтоже порождал.

        /* Make nm-applet hide items the user does not have permissions to interact with */
        Environment.set_variable ("NM_APPLET_HIDE_POLICY_ITEMS", "1", true);
    
        try
        {
            Process.spawn_command_line_async ("nm-applet");
        }
        catch (Error e)
        {
            warning ("Error starting nm-applet: %s", e.message);
        }
    
        /* I added these for sysmonitor, from here */
        try
        {
            Process.spawn_command_line_async ("indicator-sysmonitor");
        }
        catch (Error e)
        {
            warning ("Error starting indicator-sysmonitor: %s", e.message);
        }
        /* to here */
    
    }
    
  3. Строить

    ./autogen.sh
    ./configure --prefix=/usr
    make -j2
    
  4. Установить

    sudo cp src/unity-greeter /usr/local/sbin/unity-greeter
    
  5. Перезагрузить

    indicator-sysmonitor на unity-greeter (экран приветствия Ubuntu)


Экран блокировки

В любом случае, это покажет все индикаторы приложений (обратите внимание на nm-applet на скриншоте), это может быть недостатком безопасности и конфиденциальности. Можно заранее определить список индикаторов только для режима экрана блокировки, у меня просто нет времени сделать это и протестировать.

  1. Загрузите исходный код и соберите зависимости

    sudo apt-get build-dep unity
    apt-get source unity
    
  2. Измените unity-panel-service для загрузки индикаторов приложений даже в режиме экрана блокировки.

    cd unity-7*/
    vim services/panel-service.c +893
    

    if (!lockscreen_mode)ниже предотвращают загрузку индикаторов в режиме блокировки экрана.

    static void
    initial_load_default_or_custom_indicators (PanelService *self, GList *indicators)
    {
      GList *l;
    
      suppress_signals = TRUE;
    
      if (!indicators)
        {
          /* comment these lines
            if (!lockscreen_mode)
            {
              load_indicators (self);
            }
          */
          // add this line
          load_indicators (self);
    
          load_indicators_from_indicator_files (self);
          sort_indicators (self);
        }
    ...
    
  3. Строить

    mkdir build
    cd build/
    cmake ../
    make
    
  4. Установить

    sudo mv /usr/lib/unity/unity-panel-service /usr/lib/unity/unity-panel-service.orig
    sudo cp services/unity-panel-service /usr/lib/unity/unity-panel-service
    

    Попробуй это:CtrlAltL

    индикатор-sysmonitor на экране блокировки lightdm

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