Как отключить автоматическое приостановку временного (сбросить время ожидания)

в Ubuntu 20.04.2 LTS (DEPTTOP GNOME по умолчанию). Я включаю авто приостановить на рабочем столе Ubuntu Gnome, но, если только запустить мою программу, я хочу отключить Auto Suspend.

Моя программа работает через секунду, а цикла много цикла. Возможно, я обнаружил, что Auto Suspend смотрит на это значение:

org.gnome.Mutter.IdleMonitor

прекратить приостановить временное, я хочу, чтобы сбросить этот простой простой. Например:

#!/bin/bash

while :
do
  # <anything to reset idle time>  <- I WANT!
  ./myprogram
  sleep 1
done

Я не хочу более комфортно отключить AutoSusPend.

У вас есть хорошая команда?

2
задан 15 March 2021 в 08:58

2 ответа

Спасибо, какая-то информация!

Финала, я решил его по входной нулевой клавише с XDotool .

Ключ XDOTOOL 0x00

Я могу сбросить простое время просто.

0
ответ дан 18 March 2021 в 23:25

Введение в Mutter.IdleMonitor показывает нам, что существует метод ResetIdletime:

gdbus introspect --session --dest org.gnome.Shell --object-path /org/gnome/Mutter/IdleMonitor/Core
...
   interface org.gnome.Mutter.IdleMonitor {
     methods:
    GetIdletime(out t idletime);
    AddIdleWatch(in  t interval, out u id);
    AddUserActiveWatch(out u id);
    RemoveWatch(in  u id);
    ResetIdletime();

К сожалению, разработчики гномов решили оставить его использование при себе, смотрите meta-idle-monitor-dbus.c:

 handle_reset_idletime (...) ...
  if (!g_getenv ("MUTTER_DEBUG_RESET_IDLETIME"))
  ...
   "This method is for testing purposes only. MUTTER_DEBUG_RESET_IDLETIME
    must be set to use it");

Возможно, вы сможете узнать, как установить эту отладочную переменную в вашем окружении гномов.


Другая возможность - это использование механизма блокировки systemd. Это позволяет вам префиксовать команду с запросом на блокировку различных действий, таких как выключение, сон и холостой ход во время ее выполнения.

$ systemd-inhibit --mode=block --what=sleep --why='for me'  sleep 100 &
$ systemd-inhibit --list
   ...
    Who: sleep 100 (UID 1000/meuh, PID 3262/systemd-inhibit)
   What: sleep
    Why: for me
   Mode: block

Используйте это для вызова скрипта оболочки, и вы все еще можете прервать его. Смотрите man systemd-inhibit .

0
ответ дан 18 March 2021 в 23:25

Другие вопросы по тегам:

Похожие вопросы: