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:      
    Заголовок:
    Текст:

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

    Последние заметки
    - 05.02 Проброс 802.1q/access порта в Linux через IP-сеть
    - 25.01 Использование systemtap для устранения уязвимости в реализации /proc/pid/mem
    - 24.01 Мониторинг загрузки многоядерного сервера по каждому ядру в отдельности в Linux
    - 23.01 Осуществление ОGSM/SMS/USSD вызовов с использованием утилиты mdbus
    - 13.01 Интерактивный firewall в Linux
    - 08.01 Советы по увеличению автономной работы ноутбука с Debian/Ubuntu
    - 31.12 Бэкап и восстановление данных из БД memcachedb и других хранилищ на базе BerkeleyDB
    - 28.12 Получение инкрементальных diff-файлов для subversion
    - 27.12 Решение проблемы поддержки php-zip-extension в Fedora-16
    - 25.12 Настройка сетевого доступа в окружениях QEMU
    RSS | Следующие 15 записей >>


    АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

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

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

    Подробнее о проведении акции вы можете прочитать на странице сайта.


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