about summary refs log tree commit diff
path: root/Functions
diff options
context:
space:
mode:
Diffstat (limited to 'Functions')
-rw-r--r--Functions/Calendar/calendar_show14
1 files changed, 12 insertions, 2 deletions
diff --git a/Functions/Calendar/calendar_show b/Functions/Calendar/calendar_show
index 13fc6a491..5be589945 100644
--- a/Functions/Calendar/calendar_show
+++ b/Functions/Calendar/calendar_show
@@ -9,11 +9,21 @@ zmodload -i zsh/parameter || return
 
 # Use xmessage to display the message if the start and stop time
 # are the same, indicating we have been scheduled to display it.
-# Don't do this if there's already an xmessage for the same user.
+# Don't do this if there's already an notification/message for the same user.
 # HERE: this should be configurable and we should be able to do
 # better if xmessage isn't available, e.g. wish.
 if [[ -n $DISPLAY &&  $start -eq $stop ]]; then
-  if [[ -n ${commands[xmessage]} ]]; then
+  if [[ -n ${commands[kdialog]} && -n $KDE_SESSION_UID ]] && dcop >&/dev/null
+  then
+    # We're in a KDE session, most probably.
+    # Simple:
+    cmd=(kdialog --msgbox)
+    # Alternative:
+    #  calendar_knotify_show() {
+    #    dcop knotify default notify calendar zsh "$*" '' '' 2 0
+    #  }
+    #  cmd=(calendar_knotify_show)
+  elif [[ -n ${commands[xmessage]} ]]; then
     cmd=(xmessage -center)
   fi
   if [[ -n $cmd[1] ]] &&