Для начала вам понадобится способ планировать задачи. Если вы не знакомы cron
и используете Ubuntu / GNOME, тогда sudo apt-get install gnome-schedule
. Затем вы можете открыть « Запланированные задачи» из меню «Система» >> «Настройки» и использовать графический интерфейс, чтобы установить конкретное время для выполнения команды.
Самый простой способ запланировать время подключения и отключения Empathy - это просто запланировать задания для запуска и остановки программы (просто используйте команды empathy
и killall empathy
). Проблема в том, что если мы убьём Empathy без выхода из системы, вы по-прежнему будете оставаться в системе в течение нескольких минут, пока Google не обнаружит, что у вас истекло время ожидания.
Чтобы обойти эту проблему, мы можем использовать D-Bus для отправки сигнала на сервер Empathy, который просит его отключиться. Есть много способов сделать это, в том числе dbus-send
из командной строки, но так как я более знаком с Python, я использовал это.
Вместо того, чтобы настраивать свою задачу выхода для вызова killall empathy
, сохраните где-нибудь следующий скрипт (например ~/empathy_signout.py
), а затем запланируйте свою задачу для вызова этой функции ( python ~/empathy_signout.py
). Перед сохранением файла замените строку EXAMPLE
в четвертой строке именем вашей учетной записи Google Talk.
#!/usr/bin/env python # Disconnect Empathy from Google Talk and kill the program. # Replace EXAMPLE below with your account name (whatever is before @gmail.com) google_acct_name = 'EXAMPLE' import os try: import dbus except ImportError: exit('You need the Python dbus bindings,' ' type "sudo apt-get install python-dbus".') wkname = ('org.freedesktop.Telepathy.Connection.gabble.jabber.' + google_acct_name + '_40gmail_2ecom_2fTelepathy') pathname = '/' + wkname.replace('.', '/') bus = dbus.SessionBus() conn_obj = bus.get_object(wkname, pathname) conn_obj.Disconnect(dbus_interface='org.freedesktop.Telepathy.Connection') os.system('killall empathy')
Этот сценарий можно настроить, чтобы избежать ошибочного предположения о компоненте пути к имени учетной записи или также войти в систему (если выход из программы является проблемой). Взгляните на интерфейс ConnectionManager в документах Telepathy D-Bus, если это вас не пугает.