Я на 12.04, но это будет работать и на 13.10.
Да, можно изменить индикаторы для единителя. Мы могли бы использовать GSettings для изменения настроек, но так как агрегатор единства запускается только пользователем lightdm (так что настройки ни на кого не влияют), проще всего написать .override
файл.
1. Проверьте показатели по умолчанию
Вы можете увидеть ваши стандартные показатели в dconf-editor
или в /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-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 индикатор сообщений работал, мой индикатор printersmenu - нет. 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, и после этого вы можете переключиться на виртуальную консоль и выполнить ремонт.
Какие показатели вы можете использовать? Я не знаю, у меня есть только значения по умолчанию, но я думаю, вы можете попробовать любой, который устанавливает себя в те каталоги, перечисленные выше. (Или вы можете написать собственный индикатор, как всегда.)
Источник для всего этого? Я посмотрел в коде: ссылка и ссылка
/usr/share
напрямую. Я думаю, что был настройщик lightdm, который позволял это и изменять фон, но я не делаю, если это все еще работает ..