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


10

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

在此处输入图片说明

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

我正在运行Ubuntu 13.10


它是lightdm登录管理器,因此您必须/usr/share直接编辑其文件。我认为有一个lightdm定制程序允许更改此背景并更改背景,但是我认为它仍然可以工作
。.– Wilf

1
我可以得到这张壁纸吗?

@Utkarsh我从谷歌图片搜索中下载了以上图片。
Avinash Raj 2014年

Answers:


14

我使用的是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列表中。在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

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+ ALT+ F1并还原您的备份gschemas.compiled文件。或者删除您的myoverride.gschema.override文件,然后sudo glib-compile-schemas /usr/share/glib-2.0/schemas再次运行。如果lighdtm陷入无休止的循环中,并且您无法切换到虚拟控制台,只需按ALT+ PrtSc+ E魔术键组合,这将杀死lightdm,然后您可以切换到虚拟控制台并进行修复。

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

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


您想说的是找到libmessaging.so文件然后将其复制粘贴到/usr/lib/indicators3/7目录中,对吗?
Avinash Raj

@AvinashRaj不,我的意思是,统一问候者查找指标的目录可能因版本而异。从源代码中,我只能得到2个目录,其中统一问候者在其中搜索指标。/usr/share/unity/indicators每个版本的外观相同,但/usr/lib/indicators3/7导演的版本可能不同。因此,我打算搜索已安装的默认指标,查看它们的存储位置,然后简单地在该目录中查看哪些指标可用,然后可以在列表中使用它们的名称。
falconer


@AvinashRaj您可以尝试使用这两个目录中的所有指标。如果您使用from usr/lib/...目录中的一个,那么上面我写的命名约定syncindicator就足够了,但是您也可以使用libsyncindicator.so。对于其他目录,您也可以使用文件的全名,也可以省略该com.canonical.indicator.部分。因此,在您的情况下,覆盖文件中的有效行将如下所示:indicators=['libsyncindicator.so', 'printersmenu', 'libapplication', 'com.canonical.indicator.sound', 'messages']
falconer 2013年

我不想陷入任何紧急情况,请在ubuntu 13.10上尝试并通知我是否可行。
Avinash Raj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.