# ๐Ÿ”ด Laser Pointer **Author:** Alessandro Vettorel **Version:** 1.0.2 **For:** Obsidian (min. v1.13.0) --- ## ๐ŸŽฏ What it does ![Laser Pointer](Laser-Pointer.jpg) **Laser Pointer** is an Obsidian plugin designed for anyone who shares their screen, teaches, presents, records videos, or simply wants to **highlight and guide attention** to content inside their notes. ![Screenshot](Screenshot01.jpg) When you are on a call, recording a tutorial, or showing your vault to someone, the laser pointer lets you: - **Highlight** words, sentences, and key concepts with a glowing dot - **Draw lines** to connect ideas, circle important elements, or underline text - **Guide the viewer's eye** without the native mouse cursor getting in the way - **Annotate freely** with persistent or auto-fading trails - **Save and resume** your drawings across laser sessions It is your virtual laser pointer, right inside Obsidian. --- ## ๐ŸŽฌ Demo ![Laser Pointer Demo](Demo_laser_pointer.gif) --- ## โœจ Features ### 1. Glowing laser pointer A bright, colored dot follows your mouse everywhere. The system cursor is automatically hidden, leaving only the laser visible โ€” clean, professional, and distraction-free. ### 2. Draw trails on the fly Hold down the **left mouse button** and move: you draw a glowing line that follows your path. Perfect for: - Underlining text - Circling concepts - Tracing connections between ideas - Highlighting areas of the interface The text underneath is **never selected** while you draw, so your notes stay clean. ### 3. Self-fading trails Release the left button and the line stays visible for a configurable duration, then **fades away slowly** with an elegant fade effect. No manual cleanup needed. ### 4. Persist trails mode Enable **"Persist"** from the floating toolbar. When active, every line you draw **stays on screen permanently** until you exit laser mode. Ideal for building up a full diagram, annotation layer, or complex illustration during a presentation. ### 5. Remember drawings Enable **"Remember"** from the floating toolbar or settings. When active, all your drawn trails are **saved when you exit laser mode** and **automatically restored** when you re-enter. Perfect for resuming a presentation or tutorial without redrawing everything. ### 6. Auto reading mode When activated, the plugin can **automatically switch the current note to reading mode** so you can draw freely without entering edit mode. When you turn the laser off, the original mode is restored. ### 7. Quick deactivation Turn the laser off instantly using any of these methods: - **Right-click** anywhere on the screen - Press the **ESC** key on your keyboard - Click the **๐ŸŽฏ icon** in the sidebar No need to hunt for buttons when you are done. ### 8. Floating toolbar (draggable & customizable) When the laser is on, a **compact horizontal toolbar** appears at the bottom center of the screen. You can **drag it anywhere** by grabbing the header. It gives you instant access to all controls without opening Settings. You can also **customize which controls appear** on the toolbar from Settings, making it as minimal or as complete as you like. ### 9. Customizable preset colors Switch colors instantly from the toolbar. Out of the box it ships with 11 presets: ๐Ÿ”ด Red ยท ๐ŸŸ  Orange ยท ๐ŸŸก Yellow ยท ๐ŸŸข Green ยท ๐Ÿ”ต Blue ยท ๐ŸŸฃ Purple ยท ๐Ÿฉท Pink ยท ๐ŸŸค Brown ยท โšช Gray ยท โšซ Black ยท โฌœ White These are just the defaults โ€” go to **Settings โ†’ Preset colors** to add, remove, or recolor entries. The toolbar always shows exactly the colors listed there: keep only 4 if that's all you need, or add as many as you like. A **Reset to default colors** button brings back the original 11 at any time. ### 10. Custom color picker Click the **๐ŸŽจ** button on the toolbar to open the browser's native color picker and choose any color you want. ### 11. Adjustable trail width Move the **Width slider** on the toolbar to change the stroke thickness on the fly โ€” from an ultra-thin hairline (0.5 px) up to a bold, heavy stroke (40 px). ### 12. Stroke hardness (opacity) Move the **Hardness slider** to control how opaque or transparent the trail is: - **Low** โ†’ faint, semi-transparent line (delicate highlights) - **High** โ†’ solid, bold stroke (strong markers) ### 13. Rectangle tool Click the **โ–ญ** button on the toolbar to switch from freehand trails to a **draggable rectangle**: click and drag anywhere to draw a rectangle from corner to corner. It follows the same color, width, hardness, and persist/fade behavior as regular trails. Click **โ–ญ** again (or enter eraser mode) to go back to freehand drawing. ### 14. Straight line tool Click the **โ•ฑ** button on the toolbar to switch to the **straight line** tool: click and drag to draw a perfectly straight segment from the starting point to wherever you release the mouse. It follows the same color, width, hardness, and persist/fade behavior as regular trails. Click **โ•ฑ** again (or enter eraser mode) to go back to freehand drawing. Like the rectangle tool, it's mutually exclusive with the rectangle tool โ€” turning one on turns the other off. ### 15. Filled or outline rectangles The **โฌœ / ๐Ÿ”ณ** button sits right next to the rectangle tool button and only appears on the toolbar while the **rectangle tool is active**. It switches new rectangles between **filled** and **outline-only**, can be flipped at any time, and the current choice is also saved as the default in Settings. Like every other control, it can be hidden from the toolbar via **Toolbar visibility** in Settings (it also requires the rectangle tool button itself to be enabled there). ### 16. Eraser mode Click the **๐Ÿงฝ** button to enter eraser mode. The pointer changes to a ring cursor. Click on any existing trail, rectangle, or line to delete it individually. Click ๐Ÿงฝ again to return to drawing mode. ### 17. Clear All Click the **๐Ÿ—‘๏ธ** button to delete **all** drawn trails, rectangles, and lines instantly โ€” both persistent and saved ones. ### 18. Full settings panel Go to **Settings โ†’ Community Plugins โ†’ Laser Pointer** to set your defaults: - **Laser color** โ€” default color of the pointer and trails - **Trail width (px)** โ€” default stroke thickness (0.5 to 40 px) - **Stroke hardness** โ€” opacity of the trail (5% to 100%, in 5% steps) - **Trail duration (seconds)** โ€” how long trails stay visible before fading (1 to 10 seconds) - **Persist trails** โ€” when on, trails remain until laser mode is exited - **Remember drawings** โ€” when on, trails, rectangles, and lines are saved and restored across sessions - **Auto reading mode** โ€” automatically switch to reading mode when laser is on - **Rectangles filled by default** โ€” whether the rectangle tool starts filled or outline-only - **Preset colors** โ€” add, remove, or recolor the dots shown on the toolbar; starts out matching the 11 built-in colors, with a button to reset back to them - **Toolbar visibility** โ€” choose exactly which controls appear on the floating toolbar All settings are saved automatically. --- ## ๐Ÿš€ Installation ### Manual 1. Extract the package into a folder on your computer. 2. Open a terminal in that folder and run: ```bash npm install npm run build ``` 3. Copy the generated files `manifest.json`, `main.js`, and `styles.css` into: ``` .obsidian/plugins/laser-pointer/ ``` inside your vault. 4. In Obsidian, go to **Settings โ†’ Community Plugins**, find **Laser Pointer**, and enable it. ### Via GitHub Releases (recommended) Download the latest release from the GitHub releases page and extract the three files (`main.js`, `manifest.json`, `styles.css`) into `.obsidian/plugins/laser-pointer/`. --- ## ๐ŸŽฎ How to use | Action | Result | |---|---| | Click the ๐ŸŽฏ icon in the sidebar | Toggle laser on / off | | `Ctrl+P` โ†’ "Laser Pointer" | Toggle from the Command Palette | | Move the mouse | The laser dot follows you | | Hold **left mouse button** | Draw a glowing trail | | Release the left button | Trail fades after X seconds (or stays if Persist is on) | | **Right-click** anywhere | Instantly turn the laser off | | Press **ESC** key | Instantly turn the laser off | | Drag the **toolbar header** | Move the floating toolbar anywhere | | Click a **color dot** on the toolbar | Change laser color instantly | | Click **๐ŸŽจ** on the toolbar | Open the full color picker | | Move the **Width slider** on the toolbar | Adjust trail thickness live | | Move the **Hardness slider** on the toolbar | Adjust trail opacity live | | Click **โ–ญ** on the toolbar | Switch between freehand trails and the draggable rectangle tool | | Click **โ•ฑ** on the toolbar | Switch between freehand trails and the straight line tool | | Click **โฌœ / ๐Ÿ”ณ** on the toolbar | Switch new rectangles between outline-only and filled | | Check **"Persist"** on the toolbar | Trails stay until you exit laser mode | | Check **"Remember"** on the toolbar | Trails are saved and restored across sessions | | Click **๐Ÿงฝ** on the toolbar | Enter eraser mode โ€” click trails to delete them | | Click **๐Ÿ—‘๏ธ** on the toolbar | Delete all trails at once | --- ## ๐Ÿ’ก Use cases - **Teaching & tutorials** โ€” guide students to key concepts in your notes - **Work calls** โ€” show colleagues exactly what you are referring to - **Video & screen recordings** โ€” make your explanations clearer and more dynamic - **Presentations** โ€” replace a physical laser pointer, directly inside your vault - **Code / note reviews** โ€” highlight bugs, tasks, or ideas to remember - **Diagramming on the fly** โ€” enable Persist + Remember to sketch full diagrams that survive across sessions - **Live annotation** โ€” underline, circle, and connect ideas in real time --- ## ๐Ÿ“ Technical notes - The plugin uses an SVG overlay with `pointer-events: none`, so it **does not interfere** with normal Obsidian use (clicking links, selecting text, using menusโ€ฆ) - The mouse cursor is hidden only while the laser is active - Obsidian's context menu is temporarily disabled in laser mode to allow quick right-click deactivation - Drawing calls `preventDefault()` so text underneath is never selected while you trace - The floating toolbar ignores laser drawing events โ€” you can click its buttons safely - The laser pointer is hidden while dragging the toolbar to avoid visual clutter - When Persist trails is enabled, all trails are automatically cleared when laser mode is exited (unless Remember drawings is also on) - Remember drawings saves trail geometry, color, width, opacity, and glow data to disk and restores it on re-entry - The eraser mode temporarily enables `pointer-events: auto` on the SVG overlay to allow trail selection - Auto reading mode saves the original view state (source/preview) and restores it on deactivation --- ## ๐Ÿ“‹ Changelog ### 1.0.2 - **Customizable preset colors** โ€” add, remove, or recolor the dots shown on the toolbar from Settings; starts out matching the built-in colors, with a button to reset back to them - **Rectangle tool** with a filled/outline toggle - **Straight line tool** - **Lower stroke hardness floor** โ€” the hardness slider now goes down to 5% in 5% steps (previously 10% in 10% steps) - **Minimum Obsidian version raised to 1.13.0** (from 1.0.0), required by the declarative settings list used for the new preset color editor ### 1.0.1 - **Preset colors** โ€” 11 fixed color dots on the toolbar - **Persist trails** โ€” trails can stay on screen until laser mode is exited instead of always fading - **Remember drawings** โ€” trails, rectangles, and lines can be saved on exit and restored on re-entry ### 1.0.0 - Freehand trail drawing that fades after a set duration - Floating toolbar - Eraser mode - Clear All button --- ## ๐Ÿ“„ License MIT