positron-solutions / dslide

Present anything Emacs can do with programmable, extensible, configurable slides made from org mode headings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Consider disabling the cursor while in presentation mode

terlar opened this issue · comments

Now when running a presentation, I will always see my cursor at the top and it also tends to glitch out a bit, leaving a trail along the title overlay.

Setting this fixes it:

(setq cursor-type nil)

image

Now that there is a dslide-develop command, I agree this makes sense as a default. I want to add a dslide-present command that can create a frame if there are multiple screens and will also disable the mode line. I almost added it already. I just need to think about multiple screens.

For now such things can easily be done with hooks or extra commands as needed.

I had a brainstorm about one of the first things we need for dslide-present.

The problem is when presenting, lots of time you are using some external projector or sharing a specific desktop. You want to look at the notes while showing the audience the contents. You need to be able to put a frame on the correct display. This is not the kind of thing we can do with hooks because the situations change. So, for the user, at the worst time to be interrupted, suddenly we need to use some new commands or click around manually.

So to solve this, I will use a transient interface to create a presentation frame. It will have a UI for placing the frame. The presentation frame and base frame will be able to swap positions. The presentation frame will move between screens using the transient.

Finally, I will add some customization options to add arbitrary commands typically useful for this situation.

There will be separate hooks for dslide-present, dslide-start, and dslide-develop. I'm not sure about whether I will restart the presentation or not. The current interpolation only goes to root headings.

Makes sense, perhaps it is not that given, but as you say, it depends on what the purpose of the buffer is.

I think it is fine to leave this up to the user, I currently have added this to the dslide-start-hook and it works well.

(define-minor-mode hide-cursor-mode
    "Toggle hiding of the cursor."
    :lighter " Hide Cursor"
    (if hide-cursor-mode
        (setq cursor-type nil)
      (kill-local-variable 'cursor-type)))
(add-hook 'dslide-start-hook #'hide-cursor-mode)

Feel free to close, if you don't intend this or feel it is up to the user to control this.