Команда приостановки экрана под Gnome

3253
Jason Owen

Я ищу способ легко приостановить монитор в Ubuntu 9.10. Я xscreensaverнастроил, и он корректно выключает монитор после показа заставок на некоторое время. В большинстве случаев это правильно, но когда я покидаю свой компьютер, я бы хотел немедленно приостановить его с помощью кнопки на панели.

Я попытался использовать xset, как предложено в Ubuntuforms . Это работает ненадолго, но через мгновение экран снова включается. В ошибке Debian # 552506 говорится, что xsetона не очень хорошо работает gnome-power-manager, и, как в этом отчете об ошибках, xsetработает, когда gnome-power-managerне работает. Предположительно, есть интерфейс dbus для gnome-power-managerпереключения режимов.

Некоторый поиск привел к FAQ по gpm, в котором предлагается следующая команда:

dbus-send --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply \ --reply-timeout=2000 /org/gnome/PowerManager \ org.gnome.PowerManager.SetDpmsMode string:suspend 

Однако, когда я пытаюсь это сделать, я получаю ошибку

Error org.freedesktop.DBus.Error.UnknownMethod: Method "SetDpmsMode" with signature "s" on interface "org.gnome.PowerManager" doesn't exist 

Есть способ просмотреть методы, поддерживаемые интерфейсом:

dbus-send --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply \ --reply-timeout=2000 /org/gnome/PowerManager \ org.freedesktop.DBus.Introspectable.Introspect 

Но единственный способ специфичны для org.gnome.PowerManagerявляется GetPreferencesOptions:

<interface name="org.gnome.PowerManager"> <method name="GetPreferencesOptions"> <arg name="capability" type="i" direction="out"/> </method> </interface> 

Я посмотрел /usr/share/dbus-1/servicesи /usr/share/dbus-1/system-services, и ничего очевидного не представилось.

Я использую Ubuntu 9.10 с настройками по умолчанию. Gnome-power-manager - версия 2.28.1. Какие-либо предложения?

РЕДАКТИРОВАТЬ:

Как я уже сказал в комментариях, я пытался использовать xset force dpms . На моем конкретном оборудовании все три режима DPMS работают одинаково. Из режима гашения экрана под X эти режимы:

  • Время ожидания
    • В ЭЛТ это отключает электронную пушку, но оставляет все остальное включенным, чтобы экран мог быстро восстановиться. Время ожидания по умолчанию составляет 20 минут.
  • Время приостановки
    • Это отключает питание монитора в дополнение к электронной пушке. По умолчанию этот тайм-аут установлен на 30 минут.
  • Время отключения
    • Это отключает питание монитора и является наиболее экономичным режимом питания. По умолчанию это происходит через 40 минут.

Ваше оборудование может обрабатывать эти режимы по-разному и, соответственно, gnome-power-managerможет не отслеживать каждый из этих режимов. Это означает, что предлагаемое xsetрешение должно работать для всех трех режимов вашего оборудования, а не только для одного или двух режимов.

Учитывая это, я считаю, что xsetэто не сработает, и мне либо нужен способ сообщить gnome-power-managerо приостановке дисплея, либо что-то совсем другое.

2
Имея ту же проблему. Я хочу заблокировать и приостановить свои мониторы из командной строки. Но что-то вроде: `#! / Bin / bash; gnome-screensaver-command --lock; xset dpms force suspend; `приведет к тому, что мониторы перейдут в режим ожидания, но они вернутся через несколько секунд. Есть также ошибка гнома: https://bugzilla.gnome.org/show_bug.cgi?id=631625 Также я не на Ubuntu, поэтому я думаю, что это не ошибка, связанная с Ubuntu или Ubuntu-9.10. Flow 13 лет назад 0

1 ответ на вопрос

1
djhowell

Команда

# xset dpms force standby 

работает для меня. Это тот, который возвращается через несколько секунд для вас?

Редактировать: похоже, что если я использую Suspend вместо этого, то он ведет себя так, как вы описали, и возвращается через несколько минут.

Same behavior for all three modes (standby, suspend, off). This is on a laptop, and afaict the three modes all have the same effect. Jason Owen 15 лет назад 0
Standby works on my Thinkpad, suspend does not. I'll play around with dbus. djhowell 15 лет назад 0
И «xset dpms принудительное ожидание», и «xset dpms принудительное приостановление» работают для меня на ноутбуке Dell Latitude E6500. Джейсон, может быть, у тебя включен режим "пробуждение по сети" или что-то подобное? pbr 14 лет назад 0
pbr: Насколько я понимаю, функция Wake on LAN применяется, когда _system_ приостановлена ​​или выключена, а не _display_. Кроме того, тот факт, что xset работает должным образом, когда gnome-power-manager не работает (как в отчете об ошибках Debian, о котором я упоминал во втором абзаце), похоже, игнорирует эту теорию. Jason Owen 14 лет назад 0