Hi Max,
Max Mikhanosha wrote:
Sven Bretfeld wrote:
The Sticky Agenda is something I have been waiting for since a long
time. Thank you very much!
Let me thank you for the sticky agenda as well. I can't say I'm using multiple
agendas in parallel -- while I'll surely make more use of it --, but the fact
that the agenda view comes almost instataneously is really great!
I want to write a function that creates a new frame with several
windows, each displaying a different Agenda Views. I fail to find a
function that creates special agenda views. Formerly I used
org-batch-agenda for similar purposes. But that doesn't work in the
sticky branch. This is what I have:
(defun my-gtd-frame ()
(interactive)
(save-excursion)
(make-frame '(
(name . gtd)
(active-alpha . 0.75)
(inactive-alpha. 0.8)
(top . 110)
(left . 2000)
(width . 80)
(height. 40)
(font .
-Adobe-Courier-Medium-R-Normal--18-180-75-75-M-110-ISO8859-1)))
(select-frame-by-name gtd)
(toggle-fullscreen)
(org-agenda-goto-today)
(delete-other-windows)
(split-window-horizontally)
(other-window 1)
(org-batch-agenda OFFICE/NEXT)
)
This is the same bug as Martyn Jago reported earlier, basically I
forgot that separate org agenda commands can be run individually
rather then through (org-agenda) function.
A temporary workaround in your specific case would be to wrap
(org-batch-agenda) call like this:
(catch 'exit
(org-batch-agenda OFFICE/NEXT))
I tested it and it seems to work.. The actual fix for the bug will be
similar and will be wrapping bodies of (org-todo-list) (org-tags-list)
and friends with (catch 'exit), but it needs to be done conditionally
as to only do it its called individually and not from (org-agenda)
I tried the updated version of Sven:
#+begin_src emacs-lisp
(defun my-gtd-frame ()
(interactive)
(save-excursion)
(make-frame '(
(name . gtd)
(active-alpha . 0.75)
(inactive-alpha. 0.8)
(top . 20)
(left . 20)
(width . 80)
(height. 40)))
(select-frame-by-name gtd)
(org-agenda-goto-today)
(delete-other-windows)
(split-window-horizontally)
(other-window 1)
(catch 'exit
(org-batch-agenda work)))
#+end_src
But I get the following error:
--8---cut here---start-8---
Debugger entered--Lisp error: (error Not allowed in nil-type agenda buffers)
signal(error (Not allowed in nil-type agenda buffers))
error(Not allowed in %s-type agenda buffers nil)
(if error (error Not allowed in %s-type agenda buffers org-agenda-type) nil)
(if (memq org-agenda-type types) t (if error (error Not allowed in %s-type
agenda buffers org-agenda-type) nil))
org-agenda-check-type(t timeline agenda)
org-agenda-goto-today()
my-gtd-frame()
call-interactively(my-gtd-frame)
(let* ((command (helm-comp-read M-x obarray :test (quote commandp)
:requires-pattern helm-M-x-requires-pattern :name Emacs Commands :buffer
*helm M-x* :persistent-action (quote pers-help) :persistent-help Describe
this command :history history :must-match t :candidates-in-buffer t
:fc-transformer (quote helm-M-x-transformer))) (sym-com (intern command)))
(unless current-prefix-arg (setq current-prefix-arg helm-current-prefix-arg))
(setq this-command sym-com) (call-interactively sym-com) (setq
extended-command-history (cons command (delete command history
(progn (fset (quote pers-help) (function* (lambda (candidate) (block
pers-help (let ((hbuf ...)) (if (and in-help ...) (progn ... ...)
(set-window-dedicated-p ... nil) (describe-function ...) (message nil) (setq
in-help t)) (setq help-cand candidate)) (let* ((command (helm-comp-read
M-x obarray :test (quote commandp) :requires-pattern
helm-M-x-requires-pattern :name Emacs Commands :buffer *helm M-x*
:persistent-action (quote pers-help) :persistent-help Describe this command
:history history :must-match t :candidates-in-buffer t :fc-transformer (quote
helm-M-x-transformer))) (sym-com (intern command))) (unless current-prefix-arg
(setq current-prefix-arg helm-current-prefix-arg)) (setq this-command sym-com)
(call-interactively sym-com) (setq extended-command-history (cons command
(delete command history)
(unwind-protect (progn (fset (quote pers-help) (function* (lambda (candidate)
(block pers-help (let (...) (if ... ... ... ... ... ...) (setq help-cand
candidate)) (let* ((command (helm-comp-read M-x obarray :test (quote
commandp) :requires-pattern helm-M-x-requires-pattern :name Emacs Commands
:buffer *helm M-x* :persistent-action (quote pers-help) :persistent-help
Describe this command :history history :must-match t