Как сделать индикатор-sysmonitor в качестве индикатора по умолчанию на экране входа в систему

10

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

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

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

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

Я просмотрел

задан potholiday 27.05.2015 в 03:21
источник

1 ответ

18

Экран Greeter / Login

В итоге я посмотрю, как работает 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 wrap и измените его, чтобы создать 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. Перезагрузка

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

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

  1. Загрузите зависимости источника и сборки

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

    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
    

    Попробуйте: Ctrl Alt L

ответ дан user.dz 09.10.2015 в 08:05