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

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

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

在此处输入图片描述

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

我正在运行 Ubuntu 13.10

答案1

我使用的是 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>

,这些是我的默认设置。请先检查一下你的设置。

在 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 的默认列表。在 13.10 版本中,我添加了消息指示器添加到默认列表 13.10。我只是将它们添加到显示的默认列表中步骤1,您也可以这样做,或者如果您不想让它们显示在登录屏幕上,可以从默认指示器中删除一些指示器。(注意撇号。)重要的:在 12.04 你必须保留‘ug-键盘’'会议'列表中的指标,因此不要如果默认行中有它们,请删除它们,否则 lightdm 将陷入无限循环。(例如这里

覆盖文件中的命名约定:对于目录中的文件,/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 上,消息指示器可以工作,但我的打印机菜单指示器不工作。在 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并恢复您的备份文件。或者删除您的文件并再次运行。如果lighdtm陷入无限循环,并且您无法切换到虚拟控制台,只需按下++魔术键组合,这将杀死lightdm,之后您可以切换到虚拟控制台并进行修复。ALTF1gschemas.compiledmyoverride.gschema.overridesudo glib-compile-schemas /usr/share/glib-2.0/schemasALTPrtScE

您可以使用哪些指标?我不知道,我只有默认设置,但我想你可以尝试任何可以自行安装到上述目录中的程序。(或者你可以编写自己的指标一如既往。)

所有这些的来源是什么?我查看了代码:关联关联

相关内容