web-dev-qa-db-ja.com

ログイン画面のトップパネルにアイコンを追加することは可能ですか?

ログイン画面のトップパネルにアイコン(デフォルト以外)を追加することは可能ですか?

enter image description here

「はい」の場合、デフォルト(onboard、sound、network-manager、etc)以外のアプリケーションアイコンがログイン画面のトップパネルに追加されますが、どのように追加しますか?

buntu 13.10を実行しています

10
Avinash Raj

私は12.04にいますが、これは13.10でも動作します。

はい、統一グリッターのインジケータを変更することは可能です。 GSettingsを使用して設定を変更できますが、Unity-greeterはlightdmユーザーによってのみ実行されるため(設定が他の人に影響を与えないように)、.overrideファイルを記述するのが最も簡単です。

1.デフォルトのインジケータを確認します

dconf-editorまたはint /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xmlファイルでデフォルトのインジケーターを確認できます。後者のファイルでは、次のようなキーが表示されます。

 <key name="indicators" type="as">
  <default>['ug-keyboard', 'ug-accessibility', 'session', 'datetime', 'power', 'soundmenu', 'application']</default>
  <summary>Which indicators to load</summary>
</key>

、これらは私のデフォルトです。あなたの最初を確認してください。

13.10では、このキーは次のようになります。

<key name="indicators" type="as">
  <default>['ug-accessibility', 'com.canonical.indicator.keyboard', 'com.canonical.indicator.session', 'com.canonical.indicator.datetime', 'com.canonical.indicator.power', 'com.canonical.indicator.sound', 'application']</default>
  <summary>Which indicators to load</summary>
</key>

2。 利用可能なインジケータを確認してください

/usr/lib/indicators3/7/ディレクトリーまたは/usr/share/unity/indicators/ディレクトリーで使用可能なインジケーターを確認できます。

3.オーバーライドファイルを書き込みます

同様の内容のファイルを作成し、/usr/share/glib-2.0/schemas/myoverride.gschema.overrideとして保存するだけです

12.04の場合

[com.canonical.unity-greeter]
indicators=['ug-keyboard', 'ug-accessibility', 'session', 'datetime', 'power', 'soundmenu', 'application', 'messaging']

13.10の場合

[com.canonical.unity-greeter]
indicators=['ug-accessibility', 'com.canonical.indicator.keyboard', 'com.canonical.indicator.session', 'com.canonical.indicator.datetime', 'com.canonical.indicator.power', 'com.canonical.indicator.sound', 'application', 'messages']

12.04バージョンでは、12.04のデフォルトリストにmessagingインジケータを追加しました。 13.10バージョンでは、13.10のデフォルトリストにmessagesインジケータを追加しました。 STEP 1に示されているデフォルトのリストにそれらを追加しました。それもできます。または、必要ない場合はデフォルトのインジケータからいくつかを削除します。ログイン画面に表示されます。 (アポストロフィに注意してください。)重要:12.04では、'ug-keyboard'を保持する必要があります。リスト内の'session'インジケータ。したがって、DO NOTデフォルト行にある場合は削除します。またはlightdm無限ループに陥ります。 ( here のように)

オーバーライドファイルの命名規則:/usr/lib/indicators3/7/ディレクトリ内のファイルの場合、ファイル名の前にある「lib」と末尾の「.so」は重要ではないため、 libmessaging.soという名前のファイル。「libmessaging.so」、「libmessaging」、または「messaging」を使用できます。 /usr/share/unity/indicators/ディレクトリ内のファイルの場合、ファイル名の前にある「com.canonical.indicator」。重要ではないため、「com.canonical.indicator.bluetooth」ファイルには「com.canonical.indicator.bluetooth」または単に「bluetooth」を使用できます。

4.バックアップ(念のため)

/usr/share/glib-2.0/schemas/gschemas.compiledファイルのバックアップを作成します。

5.コンパイル

このすべての実行後

Sudo glib-compile-schemas /usr/share/glib-2.0/schemas

6.結果を確認する

この後、ログアウトして、動作するかどうかを確認してください。または、ターミナルから試行する場合、ログアウトせずにログイン画面のテストを行うこともできます。

lightdm --test-mode

または

unity-greeter --test-mode 

12.04のメッセージインジケータは機能しましたが、printersmenuインジケータは機能しません。 13.10では、メッセージインジケーターでテストしましたが、表示されませんでしたが、エラーが発生しませんでしたので、グリッター画面に表示されないように設計されていると推測しました。そこで、/usr/share/unity/indicators/com.canonical.indicator.messagesファイルを確認し、セッションインジケーターにあるような[desktop_greeter]セクションがないことを確認しました。そのため、メッセージインジケーター(または[desktop_greeter]セクションのない別のインジケーター)をログイン画面に表示したくない場合(それがほとんど役に立たない場合でも)、/usr/share/unity/indicators/ディレクトリ内のファイルを編集する必要もあります。そのファイルの[desktop]セクションのコピーを作成し、コピーの名前を[desktop_greeter]セクションに変更します。たとえば、メッセージインジケータの場合、/usr/share/unity/indicators/com.canonical.indicator.messagesのこのファイルになりました:

[Indicator Service]
Name=indicator-messages
ObjectPath=/com/canonical/indicator/messages
Position=50

[desktop]
ObjectPath=/com/canonical/indicator/messages/desktop

[phone]
ObjectPath=/com/canonical/indicator/messages/phone

[desktop_greeter]
ObjectPath=/com/canonical/indicator/messages/desktop

ファイルでこの変更を行った後、13.10のログイン画面にもメッセージインジケータが表示されました。

問題が発生した場合、ログイン画面が表示されない場合は、仮想コンソールに切り替えてください CTRL+ALT+F1 バックアップのgschemas.compiledファイルを復元します。または、myoverride.gschema.overrideファイルを削除して、Sudo glib-compile-schemas /usr/share/glib-2.0/schemasを再度実行します。 lighdtmが無限ループに陥り、仮想コンソールに切り替えられない場合は、 ALT+PrtSc+E マジックキーコンボ、これはlightdmを殺し、この後、仮想コンソールに切り替えて修復を行うことができます。

どのインジケータを使用できますか?わかりません。デフォルトしかありませんが、上記のディレクトリにそれ自体をインストールするものを試すことができると思います。 (または 独自のインディケーターを書く いつものように。)

これらすべてのソース?コードを調べました: link and link

14
falconer