Моя цель - разрешить пользователю только перезагружать систему и запретить любое завершение работы (приостановка, спящий режим). Я бегу единство-2d.
Мне удалось отрицать приостановку и спящий режим с помощью файлов политик polkit, как описано в Как отключить выключение / перезагрузку / приостановить / спящий режим?
Я заметил, что это как-то отключает выключение способности, но не удалил запись «shutdown» из меню панели индикаторов, равно как и кнопку «shutdown ...» из диалога shutdown. Нажатие кнопки выключения в этот момент перезапускает lightdm, возвращаясь к экрану входа в систему.
Моя цель - убрать любое действие и кнопку «Завершение работы».
Итак, я добавил файл ovveride в /usr/share/glib-2.0/schemas, который содержит некоторые правила:
[com.canonical.indicator.session]
suppress-shutdown-menuitem = true
(all suppress - * - menuitem имеет значение «false» по умолчанию в схеме)
Компиляция, перезапуск X, теперь в меню панели индикаторов есть запись «закрыть сеанс ...»: это не то, что я хочу.
В этот момент, если я установил еще один элемент suppress-logout-menu в true, у меня не будет записи в меню панели индикаторов.
Попытка подобной комбинации «все» не дает возможности удалить ссылки / кнопки «выключения» без удаления опции перезапуска.
Все, что я хочу, это удалить любую ссылку на «выключение», но оставить опцию «перезапустить» где-нибудь в меню индикатора ...
Спасибо!
ОБНОВЛЕНИЕ! У меня все еще недостаточно данных для решения моей проблемы. Новые данные - это сопровождающий Ubuntu ( https://bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1015558 ) признает это как проблему, которая решена в 12.10 и является не будет решаться в ветке LTS! С моей точки зрения, это чистая регрессия, так как у меня не было никаких проблем сделать это в 10.04.
На этом этапе, даже если мне удастся изменить код сеанса индикатора, любое обновление из основного репозитория Ubuntu нарушит его: /
Если интеграция с меню индикатора не является обязательным условием, мы всегда можем определить пользовательский модуль запуска или пользовательский индикатор приложения, вызывающий следующую команду, чтобы разрешить только перезагрузку системы:
/usr/lib/indicator-session/gtk-logout-helper -r
См. Также: ] Что такое команда для открытия диалога выключения?
Единица - 2-е использование названное представление declaritive
GioDefaultApplication {
id: defaultApplication
}
Application {
id: application
desktop_file: defaultApplication.desktopFile
}
visible: application.desktop_file != ""
onClicked: dash.activateApplication(application)
icon: "image://icons/" + application.icon
}
"Приложение" для запуска файла на рабочем столе, таким образом, можно сделать несколько вещей. 1) удалите файлы на рабочем столе под/usr/share/applications/, Они идут, как сопровождается
Выход из системы = indicator-session-logout.desktop
Приостановите = indicator-session-lock-screen.desktop
Перезапуск = indicator-session-restart.desktop
Выключите = indicator-session-shutdown.desktop
Или редактирующий эти файлы и или удаляющий их (копируют 1-й) совершит ошибку индикатора
Другая вещь, которую можно сделать, открыть источник для 2-й единицы и сделать его так всеми вещами нажатый = файл на рабочем столе, который Вы любите.
Надеюсь, что это помогает