Я ищу способ автоматически установить мой Телефон Ubuntu на "тихий" режим в течение ночи и автоматически выключить "тихий" режим утром (я продолжаю забывать поворачивать его от меня). Я полагаю, что это могло быть сделано через некоторое задание крона, но чтобы сделать это, мне нужен некоторый способ изменить параметры настройки системы телефонов из командной строки, и я не могу понять это.
И gsettings и dconf, кажется, имеют связанные с "тихим" режимом настройки, но значение этих настроек, кажется, не связано вообще с реальными настройками. Изменение настроек с помощью gsettings/dconf не отражается в параметрах настройки системы, и изменение его в параметрах настройки системы не отражается в gsettings/dconf. Таким образом, я ищу способ изменить параметры настройки системы из командной строки.
Спасибо
, По-видимому, dbus является вещь, которая могла использоваться для изменения настроек. Короткая версия - то, что следующий сценарий Python, когда работал как корень, выключает "тихий" режим:
import dbus
session = dbus.SystemBus()
proxy = session.get_object('org.freedesktop.Accounts','/org/freedesktop/Accounts/User#####')
interface = dbus.Interface(proxy,'org.freedesktop.DBus.Properties')
interface.Set('com.ubuntu.touch.AccountsService.Sound','SilentMode',False)
немного более длительная версия:
qdbus --system
, Кажется, перечисляет все сервисы, связанные с системой dbus.
qdbus --system org.freedesktop.Accounts
, Кажется, перечисляет пути, связанные с тем сервисом.
qdbus --system org.freedesktop.Accounts /org/freedesktop/Accounts/User#####
, Кажется, перечисляет все методы и свойства, связанные с тем путем (в этом случае путь к определенному пользователю). Это имело следующие соответствующие методы:
method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface_name, QString property_name)
method QVariantMap org.freedesktop.DBus.Properties.GetAll(QString interface_name)
method void org.freedesktop.DBus.Properties.Set(QString interface_name, QString property_name, QDBusVariant value)
method QString org.freedesktop.DBus.Introspectable.Introspect()
Здесь GetAll и Методы установки требуют имени интерфейса, которое мы можем узнать путем вызывания Анализировать функции как это:
qdbus --system org.freedesktop.Accounts /org/freedesktop/Accounts/User##### org.freedesktop.DBus.Introspectable.Introspect
, Который печатает подобный xml документ экрану, показывающему интерфейсные определения. Получение значения "тихого" режима сделано следующим образом:
qdbus --system org.freedesktop.Accounts /org/freedesktop/Accounts/User##### org.freedesktop.DBus.Properties.Get com.ubuntu.touch.AccountsService.Sound SilentMode
проблема теперь состояла в том, что я не мог выяснить, как отформатировать его так qdbus
, интерпретирует аргумент как булево значение, которое является, почему я закончил тем, что использовал Python в качестве обходного решения.
Это, кажется, работает (с ОТОЙ 11, подключение с SSH):
amixer -q -D pulse sset Master toggle
Редактирование: От https://askubuntu.com/a/444183