diff --git a/butler-util.el b/butler-util.el index de45b10..435833f 100644 --- a/butler-util.el +++ b/butler-util.el @@ -67,6 +67,14 @@ "Face for disabled Butler jobs." :group 'butler) +(defface butler-notbuilt + '((((class color) (background light)) + :foreground "gray") + (((class color) (background dark)) + :foreground "gray")) + "Face for unbuilt Butler jobs." + :group 'butler) + (defun colorize-dot (color) (cond ((string= color "red") @@ -81,6 +89,8 @@ (propertize "●" 'face 'butler-aborted)) ((string= color "disabled") (propertize "●" 'face 'butler-disabled)) + ((string= color "notbuilt") + (propertize "●" 'face 'butler-notbuilt)) ((string= (subseq color -6) "_anime") (colorize-dot (subseq color 0 -6))) (t (concat "Unknown: " "'" color "' ")))) diff --git a/butler.el b/butler.el index 6809d10..c9c67ce 100644 --- a/butler.el +++ b/butler.el @@ -62,11 +62,23 @@ (defun butler-buffer () (get-buffer-create (butler-buffer-name))) +(defun open-butler-job () + (interactive) + (with-current-buffer (butler-buffer) + (let* ((job-name (find-current-job)) + (server-name (find-current-server job-name)) + (server (get-server server-name)) + (job (get-job server job-name)) + (url (gethash 'url job))) + (if (not (equal url "")) + (browse-url url))))) + (defvar butler-mode-map (let ((map (make-keymap))) (define-key map (kbd "a") 'butler-toggle-auto-refresh) (define-key map (kbd "g") 'butler-refresh) (define-key map (kbd "t") 'trigger-butler-job) + (define-key map (kbd "RET") 'open-butler-job) (define-key map (kbd "h") 'hide-butler-job) (define-key map (kbd "q") 'butler-quit) map))