Цикл в bash - синтаксис

Приложения Linux запрещают приостановку через D -Bus вызовorg.gnome.SessionManager.Inhibit

Противопоставление ингибированию и предотвращению

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

Как определенные приложения запрещают приостановку работы

Трансмиссия

Передача имеет флажок для запрета сна в:Preferences-> Desktopвкладка -> Inhibit hibernation when torrents are active.

Я скачал исходный код Transmission и увидел, что он вызывает метод D -Bus(org.gnome.SessionManager.Inhibit)для сеанса Cinnamon D -Bus.

Фаерфокс

Я использовал dbus -монитор , чтобы выяснить, что делает Firefox при воспроизведении видео. Когда видео начинает воспроизводиться, Firefox отправляет два вызова:

$ dbus-monitor
...
# disable screensaver
method call time=1523976795.844938 sender=:1.104 ->
destination=org.freedesktop.ScreenSaver serial=9 path=/ScreenSaver;
interface=org.freedesktop.ScreenSaver; member=Inhibit
  string "firefox"
  string "video-playing"
# disable sleeping
method call time=1523976795.893407 sender=:1.21 -> destination=:1.3
serial=61 path=/org/gnome/SessionManager;
interface=org.gnome.SessionManager; member=Inhibit
  string "firefox"
  uint32 0
  string "video-playing"
  uint32 8
...

После вызова последнего метода был создан следующий ингибитор:

$ dbus-send --session --type=method_call --print-reply
--dest=org.gnome.SessionManager /org/gnome/SessionManager
org.gnome.SessionManager.GetInhibitors
method return time=1523969881.311742 sender=:1.3 -> destination=:1.188
serial=491 reply_serial=2
  array [
     object path "/org/gnome/SessionManager/Inhibitor6"
  ]

Когда видео было остановлено, блокировка удаляется:

$ dbus-send --session --type=method_call --print-reply
--dest=org.gnome.SessionManager /org/gnome/SessionManager
org.gnome.SessionManager.GetInhibitors
method return time=1523969881.311742 sender=:1.3 -> destination=:1.188
serial=493 reply_serial=2
  array [
  ]

ВЛК

VLC запрещает сон/приостановку так же, как Firefox:

$ dbus-monitor
...
method call time=1523977809.526716 sender=:1.8017 ->
destination=org.freedesktop.ScreenSaver serial=3 path=/ScreenSaver;
interface=org.freedesktop.ScreenSaver; member=Inhibit
  string "vlc"
  string "Playing some media."
method call time=1523977809.527152 sender=:1.21 -> destination=:1.3
serial=91 path=/org/gnome/SessionManager;
interface=org.gnome.SessionManager; member=Inhibit
  string "vlc"
  uint32 0
  string "Playing some media."
  uint32 8
...

$ dbus-send --session --type=method_call --print-reply
--dest=org.gnome.SessionManager /org/gnome/SessionManager
org.gnome.SessionManager.GetInhibitors
method return time=1523977813.424421 sender=:1.3 ->
destination=:1.8018 serial=85789 reply_serial=2
  array [
     object path "/org/gnome/SessionManager/Inhibitor7750"
  ]

Средство просмотра

Когда вы воспроизводите слайд-шоу, Xviewer вызывает метод -шины D, аналогичный приведенным выше программам.

Как запретить приостановку вручную

Существует два популярных апплета для запрета сна/приостановки:Caffeineи Inhibit Applet (, встроенный -в Cinnamon applet:Щелкните правой кнопкой мыши на нижней панели ->Add Applets to Panel-> Inhibit Applet. Но эти апплеты вручную включают и выключают функцию приостановки, а не автоматически включают и выключают ее при работе определенных приложений.

-1
14.03.2020, 17:35
1 ответ

Точка с запятой стоит не на том месте. Попробуйте:

for file in ffn*; do
    rename 's/ffn//' "$file"
done

или, поскольку renameможет принимать много файлов одновременно, попробуйте:

rename 's/ffn//' ffn*
2
28.04.2021, 23:20

Теги

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