class: center, middle # Controls & Keymaps ### Every way to navigate and control mdeck --- # Keyboard — Navigation | Key(s) | Action | |---|---| |
→
↓
Page↓
Space
| Next slide | |
←
↑
Page↑
Shift+Space
| Previous slide | |
J
| Next slide (Vim-style) | |
K
| Previous slide (Vim-style) | |
Home
| First slide | |
End
| Last slide | Type a slide **number** then
Enter
to jump directly — e.g. `5` +
Enter
. --- # Keyboard — Modes & overlays | Key | Action | |---|---| |
P
| Toggle **presenter mode** | |
C
| **Clone** the slideshow in a new window | |
F
| Toggle **fullscreen** | |
B
| Toggle **blackout** (blank the screen) | |
M
| Toggle **mirrored** mode | |
Esc
| Close/hide active overlay | |
H
or
?
| Toggle **help** overlay | --- # Keyboard — Timer | Key | Action | |---|---| |
S
| Start / pause the **presentation timer** | |
T
| **Reset** the timer to 00:00 | The timer is visible in **presenter mode** (
P
). --- # Mouse | Action | Result | |---|---| | **Left-click** | Next slide | | **Right-click** | Previous slide | | **Scroll down** | Next slide | | **Scroll up** | Previous slide | Click navigation is **off by default** — enable it with: ```javascript mdeck.createSlideshow({ navigation: { click: true } }); ``` Scroll navigation is **on by default** — disable it with: ```javascript mdeck.createSlideshow({ navigation: { scroll: false } }); ``` --- # Touch | Gesture | Result | |---|---| | **Swipe left** | Next slide | | **Swipe right** | Previous slide | | **Tap right half** | Next slide | | **Tap left half** | Previous slide | Touch is **on by default** — disable it with: ```javascript mdeck.createSlideshow({ navigation: { touch: false } }); ``` --- # URL / deep linking The current slide is tracked in the **URL hash**: ``` https://your-deck.com/#3 ``` - Bookmarking or sharing a URL opens the deck at that slide - The hash updates automatically as you navigate - Back/forward browser buttons work as expected --- # Presenter mode Press
P
to open presenter mode in the **same window**. Press
C
to **clone** the slideshow into a second window — both stay in sync via `postMessage`. Use one window on your laptop, show the other on the projector. Presenter view shows: - Current slide - **Speaker notes** (written after `???` in your Markdown) - Preview of the **next slide** - Presentation **timer** --- # Speaker notes syntax Add notes after `???` — they appear only in presenter mode: ````markdown # My slide Visible content here. ??? These notes are only shown in presenter mode. They support **Markdown** too. ```` --- # Disabling individual controls Pass a `navigation` object to opt in/out of specific inputs: ```javascript mdeck.createSlideshow({ navigation: { click: true, // left-click = next (off by default) scroll: false, // mousewheel navigation (on by default) touch: false, // swipe/tap (on by default) } }); ``` Keyboard shortcuts are always active and cannot be disabled via options. --- class: center, middle # That's all the controls! Press
H
or
?
at any time to see the help overlay.