ログイン画面のデフォルトインジケーターとしてindicator-sysmonitorを作成する方法


10

Ubuntu 14.04の右上隅には、デフォルトのインジケーターとして、これらのインジケーターのシャットダウン、ロックボタン、カレンダー時間の詳細、バッテリーの詳細、入力形式(英語)があります。これらのデフォルトインジケーターの1つとしてindicator-sysmonitorを作成することは可能ですか?

これで、コンピューターにログインしたときにのみインジケーターsysmonitorが表示され、コンピューターからログアウトまたはロックすると、インジケーターsysmonitorがパネルから自動的に終了します。ロックされたコンピューターでの経験から、インジケーター-sysmonitorはバックグラウンドで動作しますが、パネルには表示されません。コンピューターをロックしたときに表示したい統計(CPU、MEM、カスタムなど)があります。

できますか?

PS私はメインのソフトウェアサイトでこの質問をしました。著者はこのサイトを推奨しました。


私はこの質問とその回答を見てきましたが、有望に見えますが、indicator-sysmonitorの回答を適応させる方法がわかりません。

回答:


18

グリーター/ログイン画面

どうやって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. リブート

    unity-greeterのindicator-sysmonitor(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

    lightdmロック画面のindicator-sysmonitor


遅ればせながら+1。Unity DEの終焉とともに、Ubuntu 18.04でのGDMの方が簡単でしょうか?
WinEunuuchs2Unix 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.