是否可以在登录屏幕顶部面板添加图标(默认图标除外)?
如果是,那么除了默认图标之外,还有哪些应用程序图标将添加到登录屏幕顶部面板(板载、声音、网络管理器等)我该如何添加它?
我正在运行 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.compiled
myoverride.gschema.override
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
ALTPrtScE
您可以使用哪些指标?我不知道,我只有默认设置,但我想你可以尝试任何可以自行安装到上述目录中的程序。(或者你可以编写自己的指标一如既往。)