1

I made a modification in org-pomodoro to send the mode line to a pipe which I use in xmobar, but it keeps spamming my *Messages* buffer, thus making the line which displays it almost useless.

(write-region
 (concat "\ue003 "
         (org-pomodoro-format-seconds)
         (org-clock-get-clock-string)
         "\n")
 nil
 "/tmp/.todo-pipe")

I inserted the expression above in the "tick" function and everything is working as expected. Initially I made a shell script, but I think implementing the logic inside Emacs is a better solution, since I'm using org-pomodoro.

3

it keeps spamming my *Messages* buffer

I assume you're referring to the "Wrote FILENAME" message that write-region emits. This message can be inhibited by giving it a non-boolean, non-string value as the 5th VISIT argument. From the docstring of write-region:

If VISIT is neither t nor nil nor a string, or if Emacs is in batch mode,
  do not display the "Wrote file" message.

This is also documented in the Elisp manual under (elisp) Writing to Files.

So, you could write something like the following:

(write-region (concat "\ue003 "
                      (org-pomodoro-format-seconds)
                      (org-clock-get-clock-string)
                      "\n")
              nil "/tmp/.todo-pipe"
              nil 'quiet)
  • Thanks! That's it, I didn't noticed that when I was reading the documentation. – Sean Uchida Mar 21 at 13:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.