是否可以将图标添加到登录屏幕顶部面板?

Avi*_*Raj 10 panel icons gnome-panel

是否可以将图标(默认值除外)添加到登录屏幕顶部面板?

在此处输入图片说明

如果是,那么除了默认设置(板载、声音、网络管理器等)之外,哪些应用程序图标将添加到登录屏幕顶部面板。我该如何添加?

我正在运行 Ubuntu 13.10

fal*_*ner 14

我在 12.04,但这也适用于 13.10。

是的,可以更改 unity-greeter 的指标。我们可以使用 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>
Run Code Online (Sandbox Code Playgroud)

,这些是我的默认设置。首先检查你的。

在 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>
Run Code Online (Sandbox Code Playgroud)

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']
Run Code Online (Sandbox Code Playgroud)

对于 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']
Run Code Online (Sandbox Code Playgroud)

在 12.04 版本中,我将消息指示器添加到 12.04 的默认列表中。在 13.10 版本中,我将消息指示器添加到 13.10 的默认列表中。我只是将它们添加到所示的默认列表STEP 1,你可以做到这一点,或从默认的指标去掉一些,如果你不希望他们出现在登录屏幕上。(注意撇号。)重要提示:在 12.04 上,您必须将“ug-keyboard”“session”指示器保留在列表中,因此如果默认行中有它们,请不要删除它们,否则 lightdm 会卡住在无限循环中。(就像这里

覆盖文件中的命名约定:对于目录中的/usr/lib/indicators3/7/文件,文件名前面的“lib”和结尾的“.so”并不重要,因此对于名为 libmessaging.so 的文件,我们可以使用“libmessaging.so”、“libmessaging”或'消息'。对于/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
Run Code Online (Sandbox Code Playgroud)

6. 检查结果

在此之后尝试注销并查看它是否有效。或者,如果您从终端尝试,也可以在不注销的情况下对登录屏幕进行测试:

lightdm --test-mode
Run Code Online (Sandbox Code Playgroud)

或者

unity-greeter --test-mode 
Run Code Online (Sandbox Code Playgroud)

对于 12.04 的我来说,消息指示器起作用了,而我的打印机菜单指示器不起作用。在 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
Run Code Online (Sandbox Code Playgroud)

在文件中进行此更改后,消息指示器也确实出现在 13.10 的登录屏幕上。

如果出现问题并且没有出现登录屏幕,只需切换到虚拟控制台CTRL+ ALT+F1并恢复您的备份gschemas.compiled文件。或者删除您的myoverride.gschema.override文件并sudo glib-compile-schemas /usr/share/glib-2.0/schemas再次运行。如果 lightdtm 卡在死循环中,并且您无法切换到虚拟控制台,只需按ALT+ PrtSc+E魔术键组合,这将杀死 lightdm,然后您可以切换到虚拟控制台并进行修复。

您可以使用哪些指标?我不知道,我只有默认设置,但我想您可以尝试将其自身安装到上面列出的目录中的任何设置。(或者您可以像往常一样编写自己的指标。)

所有这些的来源?我查看了代码:链接链接