I would like to write something to have emacs listen on dbus for notifications and update the color of a char on the mode line as telega does. Do you have any suggestions on how to do the above?
I would like to write something to have emacs listen on dbus for notifications and update the color of a char on the mode line as telega does. Do you have any suggestions on how to do the above?
Tell us how you run that external program outside of Emacs, and we can show you how to run it inside Emacs.
Then it’s just a matter of timers and a variable in your mode-line-format. Note that your variable will need the
risky-local-variable
in order to show text properties (for the colour). SeeC-h i g (elisp)Mode Line Data
and/orC-h i g (elisp)Properties in Mode
.Thank you! I am going to write the program, so I can write it in a way that makes it easy to interface with emacs. I was thinking about making it a publisher on the dbus and make my emacs code a subscriber so I do not need to care of the running time of the program. Any alternative suggestion is welcome. The program would periodically access a webpage, check its content and notify if changes match a bunch of criteria
If Emacs will start a long-running process and react whenever there’s new output, then you’ll want to see
C-h i g (elisp)Asynchronous Processes
andC-h i g (elisp)Output from Processes
. (n.b. I’ve added a couple of other notes to my initial reply, too.)