Update dzen code to handle weirder cases better

This commit is contained in:
Tom Willemsen 2012-12-14 00:24:55 +01:00
parent e124f8b7f4
commit 86741f9a10

View file

@ -27,20 +27,19 @@
(require 'newst-backend) (require 'newst-backend)
(require 'sawfish) (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) (defun get-mail-count (account)
(length (directory-files (concat "/home/slash/documents/mail/" (length (directory-files (concat "/home/slash/documents/mail/"
account "/inbox/new") nil "^[^.]"))) account "/inbox/new") nil "^[^.]")))
(defun dzen-start () (defun dzen-update ()
(interactive) (let ((strl "")
(let ((proc (start-process "dzen2" "*dzen2*" "dzen2" (strc metal-express-radio-currently-playing)
"-w" "1920"
"-fn" "Monaco-12"
"-bg" "#222224"
"-fg" "#eeeeec"))
(strl (format
"%s"
(sawfish-eval-expression '(window-name (input-focus)))))
(strr (format (strr (format
"jabber: %s ryu: %d gm: %d aet: %d 9n: %d rss: %d\n" "jabber: %s ryu: %d gm: %d aet: %d 9n: %d rss: %d\n"
(oni:current-jabber-status) (oni:current-jabber-status)
@ -50,12 +49,36 @@
(get-mail-count "ninthfloor") (get-mail-count "ninthfloor")
(newsticker--stat-num-items-total 'new)))) (newsticker--stat-num-items-total 'new))))
(process-send-string (process-send-string
proc (format "^p(_LEFT)%s^p(_RIGHT)^p(-%d)%s" "dzen2" (format "%s^p(_CENTER)^p(-%d)%s^p(_RIGHT)^p(-%d)%s"
strl (+ 9 (* 9 (length strr))) strr)))) 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 () (defun dzen-stop ()
(interactive) (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) (provide 'dzen)
;;; dzen.el ends here ;;; dzen.el ends here