如何在登录界面中添加或操作应用程序/系统指示器?

我想删除通常出现在登录屏幕右上角的几个指示器。特别是,我想删除无障碍、键盘布局、电源和声音指示器,尽管知道如何一般性地添加或删除指示器会很好。我该怎么做?

你正在使用Unity-greeter吗?在/etc/lightdm/目录下应该有一个配置文件,但我不记得是哪个文件了,而且我现在正坐在一台Windows机器上无法查看。请阅读所有文件 - 至少有一个文件应该包含关于你提到的指示器的部分。将该文件复制为备份并找出如何编辑它。或者将其内容发布出来(作为对你问题的编辑!),我会帮你查看。你必须给我留下评论(@ByteCommander)... - Byte Commander
1你使用的是什么系统?14.04吗? - Sergiy Kolodyazhnyy
@Serg,是的,我正在使用14.04版本。 - fouric
@ByteCommander,我的/etc/lightdm目录下有四个欢迎界面的配置文件:lightdm.conflightdm-gtk-greeter.conflightdm-gtk-greeter-ubuntu.conflightdm-webkit-greeter.conf。我不知道它们之间的区别,但我尝试通过每个文件禁用登录界面的时钟,但都没有成功。 - fouric
我现在使用的是15.04版本,但恐怕我好像没有这些配置文件了...你能否上传你的四个配置文件(例如到http://pastebin.com/),并分享链接?我可以查看它们,看看它们是否与我记得的差不多。 - Byte Commander
@ByteCommander,这里是(大部分的)文件:http://pastebin.com/zZ6KjPNR - fouric
在文件lightdm-gtk-greeter.conf中,行show-indicators=~host;~spacer;~a11y;~session;~language;~a11y;~clock;~power;应该负责显示哪些指示器。你可以尝试从列表中删除项目,看看哪些指示器会消失。我的意思是,“clock”很明显,但不知道“a11y”代表什么...我再做一些研究。 - Byte Commander
2个回答

在Ubuntu 14.04中,我尝试过一种方法,使用LightDM(默认);使用存储在/usr/share/unity/indicators/目录下的一些配置文件。
假设你想隐藏键盘指示器:
  1. 打开对应的文件进行编辑

    sudo nano /usr/share/unity/indicators/com.canonical.indicator.keyboard
    
  2. 为你想要隐藏的模式注释掉对象路径,例如这将在欢迎界面和锁定屏幕中隐藏它

    [Indicator Service]
    Name=indicator-keyboard
    ObjectPath=/com/canonical/indicator/keyboard
    Position=80
    
    [desktop]
    ObjectPath=/com/canonical/indicator/keyboard/desktop
    
    #[desktop_greeter]
    #ObjectPath=/com/canonical/indicator/keyboard/desktop_greeter
    
    #[desktop_lockscreen]
    #ObjectPath=/com/canonical/indicator/keyboard/desktop_lockscreen
    
    [ubiquity]
    ObjectPath=/com/canonical/indicator/keyboard/desktop
    
  3. 重启或只是重新启动显示管理器

    sudo service lightdm restart
    

1啊!这是我尝试过的第一件有效的事情!但是,我没有看到无线或辅助功能指示器,这两个我都想隐藏。你知道它们在哪里吗? - fouric
我确认,网络指示器是由nm-applet创建的,至于辅助功能指示器,我不确定。 - user.dz

采用不同的方法:
$ pstree
init─┬─...
     ├─lightdm─┬─Xorg
     │         ├─lightdm─┬─lightdm-greeter───unity-greeter───4*[{unity-greeter}]
     ...

$ dpkg -L unity-greeter
...
/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
...

$ more /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml

...
    <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>
...

unity-greeter是由lightdm用户运行的!而不是四处寻找更改那个幽灵用户的dconf设置的方法。我覆盖了默认设置。在Ubuntu 14.04 64位(VirtualBox)中进行了测试。

  1. 创建新的 dconf 覆盖文件

    sudo nano /usr/share/glib-2.0/schemas/90_unity-greeter.gschema.override
    

    在其中添加以下两行,指定你想要保留的指示器:

    [com.canonical.unity-greeter]
    indicators=['com.canonical.indicator.session']
    

    默认值为:

    ['ug-accessibility', 'com.canonical.indicator.keyboard', 'com.canonical.indicator.session', 'com.canonical.indicator.datetime', 'com.canonical.indicator.power', 'com.canonical.indicator.sound', 'application']
    
  2. 重新编译 glib schemas

    sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
    
  3. 重启显示管理器

    sudo service lightdm restart
    

1这个允许我移除辅助功能(ug-accessibility)和无线(应用程序)指示器。在这个答案和你之前的答案之间,现在可以移除所有预安装的指示器。 - fouric
@InkBlend,实际上这个设置点涵盖了所有指示器。不需要我之前提到的其他部分解决方案 - user.dz