;;; dzen.el --- Control DZEN2 from emacs ;; Copyright (C) 2012 Tom Willemsen ;; Author: Tom Willemsen ;; Keywords: convenience ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;;; Code: (require 'newst-backend) (require 'sawfish) (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))))) (strr (format "jabber: %s ryu: %d gm: %d aet: %d 9n: %d rss: %d\n" (oni:current-jabber-status) (get-mail-count "ryuslash.org") (get-mail-count "gmail") (get-mail-count "aethon") (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)))) (defun dzen-stop () (interactive) (kill-process "dzen2")) (provide 'dzen) ;;; dzen.el ends here