summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-12-14 00:24:55 +0100
committerGravatar Tom Willemsen2012-12-14 00:24:55 +0100
commit86741f9a101b43e3700af56d4d74cbdf8672768f (patch)
treef2e1776d9332d6e0a06f76ec80394fc7602b904a
parente124f8b7f4c44aa87edc1fab1b7a0b291d2ec181 (diff)
downloaddotfiles-86741f9a101b43e3700af56d4d74cbdf8672768f.tar.gz
dotfiles-86741f9a101b43e3700af56d4d74cbdf8672768f.zip
Update dzen code to handle weirder cases better
-rw-r--r--.emacs.d/site-lisp/dzen.el49
1 files changed, 36 insertions, 13 deletions
diff --git a/.emacs.d/site-lisp/dzen.el b/.emacs.d/site-lisp/dzen.el
index a28418b..2d43f95 100644
--- a/.emacs.d/site-lisp/dzen.el
+++ b/.emacs.d/site-lisp/dzen.el
@@ -27,20 +27,19 @@
(require 'newst-backend)
(require 'sawfish)
+(defvar dzen-process nil
+ "Dzen2's process.")
+
+(defvar dzen-timer nil
+ "Timer used to update the dzen line.")
+
(defun get-mail-count (account)
(length (directory-files (concat "/home/slash/documents/mail/"
account "/inbox/new") nil "^[^.]")))
-(defun dzen-start ()
- (interactive)
- (let ((proc (start-process "dzen2" "*dzen2*" "dzen2"
- "-w" "1920"
- "-fn" "Monaco-12"
- "-bg" "#222224"
- "-fg" "#eeeeec"))
- (strl (format
- "%s"
- (sawfish-eval-expression '(window-name (input-focus)))))
+(defun dzen-update ()
+ (let ((strl "")
+ (strc metal-express-radio-currently-playing)
(strr (format
"jabber: %s ryu: %d gm: %d aet: %d 9n: %d rss: %d\n"
(oni:current-jabber-status)
@@ -50,12 +49,36 @@
(get-mail-count "ninthfloor")
(newsticker--stat-num-items-total 'new))))
(process-send-string
- proc (format "^p(_LEFT)%s^p(_RIGHT)^p(-%d)%s"
- strl (+ 9 (* 9 (length strr))) strr))))
+ "dzen2" (format "%s^p(_CENTER)^p(-%d)%s^p(_RIGHT)^p(-%d)%s"
+ strl
+ (* (floor (/ (length strc) 2)) 8) strc
+ (+ 8 (* 8 (length strr))) strr))))
+
+(defun dzen-start ()
+ (interactive)
+ (if (or (null dzen-process) (not (process-live-p dzen-process)))
+ (progn
+ (setq dzen-process
+ (start-process "dzen2" "*dzen2*" "dzen2"
+ "-w" "1920"
+ "-fn" "Monaco-10"
+ "-bg" "#222224"
+ "-fg" "#eeeeec"
+ "-y" "1060"))
+ (dzen-update)
+ (setq dzen-timer (run-with-timer 1 1 #'dzen-update)))
+ (message "Dzen2 already running")))
(defun dzen-stop ()
(interactive)
- (kill-process "dzen2"))
+ (if (and dzen-process (process-live-p dzen-process))
+ (progn
+ (when dzen-timer
+ (cancel-timer dzen-timer))
+ (kill-process "dzen2"))
+ (message "Dzen2 is not running"))
+ (setq dzen-process nil
+ dzen-timer nil))
(provide 'dzen)
;;; dzen.el ends here