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?

  • 7890yuiop@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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). See C-h i g (elisp)Mode Line Data and/or C-h i g (elisp)Properties in Mode.

    • tms9918@alien.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      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

      • 7890yuiop@alien.topB
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        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 and C-h i g (elisp)Output from Processes. (n.b. I’ve added a couple of other notes to my initial reply, too.)