[Ml-yokadi] Process title + non-kde compatibility
Fabien Devaux
fdev31 at gmail.com
Mon Jul 26 14:07:33 CEST 2010
Bonjour,
j'utilise yokadi pour la liste de tâches perso et un peu à mon travail.
Je suis amené à le modifier de temps à autres, pour faire des tests etc...
Voilà deux patches "quick & dirty" permettant à yokadi d'avoir un nom de
process convenable (et de se faire killer avec pkill etc...),
ainsi qu'un patch qui permet d'utiliser yokadi sans rien configurer dans des
environnements autres que KDE.
Dites-moi si ce genre de contribution est bienvenue, et n'hésitez pas à me
dire si la ML doit être écrite en anglais :)
Cordialement,
Fabien Devaux.
diff --git a/src/yokadi/db.py b/src/yokadi/db.py
index 585d206..3dd5e02 100644
--- a/src/yokadi/db.py
+++ b/src/yokadi/db.py
@@ -276,9 +276,9 @@ def connectDatabase(dbFileName, createIfNeeded=True,
memoryDatabase=False):
def setDefaultConfig():
"""Set default config parameter in database if they (still) do not
exist"""
defaultConfig = {
- "ALARM_DELAY_CMD" : ('''kdialog --passivepopup "task {TITLE} ({ID})
is due for {DATE}" 180 --title "Yokadi: {PROJECT}"''', False,
+ "ALARM_DELAY_TEMPLATE" : ('''Yokadi: {PROJECT}. Task {TITLE} ({ID})
is due for {DATE}''', False,
"Command executed by Yokadi Daemon when a
tasks due date is reached soon (see ALARM_DELAY"),
- "ALARM_DUE_CMD" : ('''kdialog --passivepopup "task {TITLE} ({ID})
should be done now" 1800 --title "Yokadi: {PROJECT}"''', False,
+ "ALARM_DUE_TEMPLATE" : ('''Yokadi: {PROJECT}. Task {TITLE} ({ID})
should be done now!''', False,
"Command executed by Yokadi Daemon when a
tasks due date is reached soon (see ALARM_DELAY"),
"ALARM_DELAY" : ("8", False, "Delay (in hours) before due date
to launch the alarm (see ALARM_CMD)"),
"ALARM_SUSPEND" : ("1", False, "Delay (in hours) before an alarm
trigger again"),
diff --git a/src/yokadi/yokadi.py b/src/yokadi/yokadi.py
index 406c471..c784225 100755
--- a/src/yokadi/yokadi.py
+++ b/src/yokadi/yokadi.py
@@ -56,6 +56,12 @@ sys.setdefaultencoding(tui.ENCODING)
class YokadiCmd(TaskCmd, ProjectCmd, KeywordCmd, ConfCmd, AliasCmd, Cmd):
def __init__(self):
+ try:
+ import setproctitle
+ except ImportError:
+ print "Can't set process title (setproctitle not found)"
+ else:
+ setproctitle.setproctitle('yokadi')
Cmd.__init__(self)
TaskCmd.__init__(self)
ProjectCmd.__init__(self)
diff --git a/src/yokadi/yokadid.py b/src/yokadi/yokadid.py
index 925d5b9..0135fc9 100755
--- a/src/yokadi/yokadid.py
+++ b/src/yokadi/yokadid.py
@@ -21,6 +21,7 @@ from sqlobject import AND
import tui
from yical import YokadiIcalServer
+from .gui import backends
# Force default encoding to prefered encoding
reload(sys)
@@ -58,8 +59,8 @@ def eventLoop():
"""Main event loop"""
delta = timedelta(hours=float(Config.byName("ALARM_DELAY").value))
suspend = timedelta(hours=float(Config.byName("ALARM_SUSPEND").value))
- cmdDelayTemplate = Config.byName("ALARM_DELAY_CMD").value
- cmdDueTemplate = Config.byName("ALARM_DUE_CMD").value
+ cmdDelayTemplate = Config.byName("ALARM_DELAY_TEMPLATE").value
+ cmdDueTemplate = Config.byName("ALARM_DUE_TEMPLATE").value
# For the two following dict, task id is key, and value is (duedate,
triggerdate)
triggeredDelayTasks = {}
triggeredDueTasks = {}
@@ -74,8 +75,8 @@ def eventLoop():
*activeTaskFilter))
dueTasks = Task.select(AND(Task.q.dueDate < now,
*activeTaskFilter))
- processTasks(delayTasks, triggeredDelayTasks, cmdDelayTemplate,
suspend)
- processTasks(dueTasks, triggeredDueTasks, cmdDueTemplate, suspend)
+ processTasks(delayTasks, triggeredDelayTasks,
backends[0](cmdDelayTemplate), suspend)
+ processTasks(dueTasks, triggeredDueTasks,
backends[0](cmdDueTemplate), suspend)
def processTasks(tasks, triggeredTasks, cmdTemplate, suspend):
"""Process a list of tasks and trigger action if needed
@@ -155,6 +156,12 @@ def main():
# Make the event list global to allow communication with main event
loop
global event
+ try:
+ import setproctitle
+ except ImportError:
+ print "Can't set process title (setproctitle not found)"
+ else:
+ setproctitle.setproctitle('yokadid')
(options, args) = parseOptions()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sequanux.org/pipermail/ml-yokadi/attachments/20100726/421275d7/attachment.htm>
More information about the Ml-yokadi
mailing list