JanKoWeb: Produktivita - Spuštění svého skriptu aplikací Workrave
"Nemusí pršet, stačí když kape..."
JanKoWeb - návody, postřehy a rady ze světa softwaru pro každého.
Recenze knih a humorná tvorba pro chvíle oddechu...
Mezinárodní den biologické rozmanitosti.

Do východu slunce 6 hodin a 18 minut (vyjde 08:09, zapadne 16:00).

"Nezbytným krokem k tomu, abyste od života získali věci, po kterých toužíte, je rozhodnout se, co vlastně chcete."

B. Stein
Galerie nemohla být načtena.
Jméno:
Číselně: nula a devět je
Potřebujete vytvořit web? Nabízím tvorbu webu na míru, mrkněte na mé webové projekty!
Při každém obnovení stránky se zde vypíše zpráva skriptu.

Skript je zdrojový kód interpretovaného programu.

Pohání celý tento web a rád komunikuje s návštěvníky.-)
RSS RSS zdroj článků a novinek

Spuštění svého skriptu aplikací Workrave

Aplikace Workrave slouží k připomínání přestávek na počítači. Já si k ní ještě skriptem přidělal spouštění stránky toggl.com (sledování času na projektu) po každém uknčení přestávky. Stačí mít nainstalovaný Python a Google Chrome a následující kód by měl fungovat.

Do souboru ~/Šablony/workrave.py jsem uložil následující kód:

#!/usr/bin/python
import os
import sys
import pwd
import dbus
import dbus.decorators
import dbus.glib
import time
import gobject

class WorkraveDBus:

    def __init__(self):

        bus = dbus.SessionBus()
        obj = bus.get_object("org.workrave.Workrave", "/org/workrave/Workrave/Core")

        workrave = dbus.Interface(obj, "org.workrave.CoreInterface")

        workrave.connect_to_signal("MicrobreakChanged",
                                   self.microbreak_signal, sender_keyword='sender')
        workrave.connect_to_signal("RestbreakChanged",
                                   self.restbreak_signal, sender_keyword='sender')
        workrave.connect_to_signal("DailylimitChanged",
                                   self.dailylimit_signal, sender_keyword='sender')

    def microbreak_signal(self, progress, sender=None):
        self.break_signal("microbreak", progress)
        
    def restbreak_signal(self, progress, sender=None):
        self.break_signal("restbreak", progress)

    def dailylimit_signal(self, progress, sender=None):
        self.break_signal("dailylimit", progress)

    def break_signal(self, breakid, progress, sender=None):
        
        if progress == "prelude":
            print "Break warning %s" % breakid
        elif progress == "break":
            print "Break %s started" % breakid
            os.system("if ! (wmctrl -lx | grep 'crx_egaghgmhhgalogmaniappfofmnlfhioe.Google-chrome'); then /opt/google/chrome/google-chrome --app-id=egaghgmhhgalogmaniappfofmnlfhioe --profile-directory=Default; fi;")
        elif progress == "none":
            print "Break %s idle" % breakid
        else:
            print "Unknown progress for %s: %s" % (breakid, progress)

if __name__ == '__main__':

    d = WorkraveDBus()

    loop = gobject.MainLoop()
    loop.run()
    
    

Poté jsem do Startup Application (z menu Linux Mintu) přidal "python ~/Šablony/workrave.py", čímž se skript pustí po startu počítače.

Výsledkem je, že po každé pauze se mi připomene, kolik času jsem již strávil na dané úloze.

Reference workrave/backend/src/dbus-example.py at master · rcaelers/workrave · GitHub.

Rubrika Produktivita | Tagy Linux | St 12.03.2014 | 992x

Náhodné články

© 2008-2025 JK, kontakt, právní upozornění
Powered by Janko's RS| XHTML, CSS, RSS, analýza kódu, SEO servis, dostupnost, hosting, líbí se Vám tu?
Požadavek: 0.4212 s, generování: 0.0553 s, paměť: 1.21 MB, sql dotazů: 8, CPU: 11.87

.