The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Управление десктоп приложениями из shell при помощи D-Bus
В качестве консольной утилиты для работы с D-Bus можно использовать "qdbus" из состава Qt4.

При выполнении без аргументов, утилита qdbus выведет список активных  шин:

   qdbus

   org.freedesktop.ScreenSaver
   org.freedesktop.Notifications
   org.freedesktop.PowerManagement
   org.freedesktop.DBus

Отобразим список объектов для шины ScreenSaver:

   qdbus org.freedesktop.ScreenSaver

   /
   /App
   /Interface
   /KBookmarkManager
   /KBookmarkManager/konqueror
   /KDebug
   /MainApplication
   /ManagerIface_contact
   /ScreenSaver

Просмотрим методы объекта "/ScreenSaver":

   qdbus org.freedesktop.ScreenSaver /ScreenSaver

   signal void org.freedesktop.ScreenSaver.ActiveChanged(bool)
   method bool org.freedesktop.ScreenSaver.GetActive()
   method uint org.freedesktop.ScreenSaver.GetActiveTime()
   method bool org.freedesktop.ScreenSaver.SetActive(bool e)
   method void org.freedesktop.ScreenSaver.Lock()
   method uint org.freedesktop.ScreenSaver.Inhibit(QString application_name, QString reason_for_inhibit)
   ...

Посмотрим значение текущего счетчика времени неактивности, после которого 
активируется хранитель экрана. Просмотрим текущее значение:

   qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime

   0

С момента последнего нажатия клавиши прошло 0 сек. Попробуем ничего не нажимать:

   sleep 5 ; qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime

   4

Попробуем активировать хранитель экрана через метод org.freedesktop.ScreenSaver.SetActive:
 
   qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive True

   true  

Блокируем экран:

   qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock

В случае когда нужно предотвратить запуск хранителя экрана, например, во время
просмотра видео, можно использовать:

   qdbus org.freedesktop.ScreenSaver /ScreenSaver \
      org.freedesktop.ScreenSaver.Inhibit "$$" "Testing D-Bus Interface"

   5822

где, "$$" - имя приложения запретившего активацию хранителя экрана, 
в нашем случае это PID текущего shell (5822).
второй аргумент - причина сдерживания хранителя экрана.

После того как хранитель экрана можно опять активировать, выполняем:

   qdbus org.freedesktop.ScreenSaver /ScreenSaver \
     org.freedesktop.ScreenSaver.UnInhibit 5822


Другие примеры.
Просмотрим список заметок из Tomboy.

   qdbus org.gnome.Tomboy /org/gnome/Tomboy/RemoteControl org.gnome.Tomboy.RemoteControl.ListAllNotes

   note://tomboy/5e900d91-bd77-4f41-89d8-e71baaafd364
   note://tomboy/f647c681-b1b9-4eca-bdab-fd4b04cb37f6

Отобразим содержимое одной из них:

   qdbus org.gnome.Tomboy /org/gnome/Tomboy/RemoteControl \
     org.gnome.Tomboy.RemoteControl.GetNoteContents note://tomboy/5e900d91-bd77-4f41-89d8-e71baaafd364
 
24.12.2008 , Источник: http://foss-boss.blogspot.com/2008/...
Раздел:    Корень / Пользователю / Файлы, копирование, архивация

Обсуждение [ RSS ]
 
  • 1, charon, 11:19, 26/12/2008 [ответить] [смотреть все]
  • +/
    org.freedesktop.Notifications
    у меня на Федоре 9 такого нет.
    А можно через эту штуку отображать уведомления на рабочем столе?
     
  • 2, fozz, 14:39, 26/12/2008 [ответить] [смотреть все]
  • +/
    send-notify(1)
     
  • 3, xasm, 14:34, 27/12/2008 [ответить] [смотреть все]
  • +/
    лучшеб CIM к линуксу нормально прикрутили, ведь уже есть стандарт чем он плох
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList