obsidian-advanced-slides icon indicating copy to clipboard operation
obsidian-advanced-slides copied to clipboard

"Start presentation" command

Open Angush opened this issue 2 years ago • 2 comments

Is your feature request related to a problem? Please describe. The slides plugin built-in to Obsidian has a "Start presentation" command, allowing one to easily begin a presentation from their slides note. Switching to this plugin adds lots of other handy features, but makes presenting a multi-step process by forcing users to open the preview and then wrangle it into presentation mode.

Describe the solution you'd like. A "Start presentation" or "Present slides" command. It'd be nice if it opened the presentation full-screen in Obsidian itself, like the vanilla slides plugin does. But I imagine it would be simpler to have the "Start presentation" command just work identically to the "Open in browser" button in the preview mode.

The latter is all I personally need, but I imagine others would find the former to be a nice option; could be implemented later? Perhaps as two distinct commands: "Start presentation in Obsidian" vs. "Start presentation in browser"?

Other solutions.

Some other options that could serve a similar purpose:

  • A context menu command (under the "More options" overflow menu, top right in the toolbar of Obsidian 1.0), which the vanilla slides plugin also offers
  • A context menu command when right clicking files? Ehh
  • A toolbar button? (not sure if Obsidian lets you do this)

Those could be nice options too, but I think a command is the best option. Integrates nicely with the Buttons plugin, for instance.

Angush avatar Oct 26 '22 03:10 Angush

In the meantime, I did a build of the plugin for myself that implements this in an admittedly hacky manner:

this.addCommand({
  id: 'present-advanced-slides-in-browser',
  name: 'Start Presentation in Browser',
  hotkeys: [{ modifiers: ['Mod', 'Shift'], key: 'P' }],
  callback: async () => {
    await this.toggleView()
    window.open(this.revealServer.getUrl())
    setTimeout(() => {
      this.toggleView()
    }, 50)
  }
})

Angush avatar Oct 26 '22 05:10 Angush

Nice idea, i will look into it after 1.19

MSzturc avatar Nov 03 '22 18:11 MSzturc