Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Canvas Read-Only Copy

JJ60 downloads

Copies selected text from read-only Obsidian Canvas cards.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates6

A small, standalone Obsidian plugin with one purpose: copy highlighted text from Markdown and text cards while a Canvas is in read-only mode.

Installation

Automatic installation

Install Canvas Read-Only Copy from Obsidian's Community Plugins browser:

  1. In Obsidian, go to Settings -> Community plugins.
  2. Select Browse and search for Canvas Read-Only Copy.
  3. Select Install, then Enable.

Alternatively, open the plugin's Obsidian Community Plugins page, select Add to Obsidian, and approve the installation in Obsidian.

Manual installation

  1. Close Obsidian.
  2. Create this folder inside your vault: <your-vault>/.obsidian/plugins/canvas-readonly-copy-fix/
  3. Copy main.js and manifest.json into that folder.
  4. Open Obsidian.
  5. Go to Settings -> Community plugins and enable Canvas Read-Only Copy.

If an earlier version is already installed, replace its main.js and manifest.json, then restart Obsidian or reload the plugin.

Use

  1. Open a Canvas and switch it to read-only mode.
  2. Highlight text inside a Markdown or text card.
  3. Press the normal copy shortcut (Ctrl+C on Windows/Linux or Cmd+C on macOS).

Choose the copy format under Settings -> Canvas Read-Only Copy -> Copy format:

  • Markdown (with formatting) copies Markdown syntax such as **bold**. This is the default and also provides rich HTML to applications that support it.
  • Rendered text (plain) copies only the visible text, without syntax such as **, _, or backticks and without rich formatting.
  • Rendered text (rich formatting) copies visible text without Markdown syntax and embeds the rendered HTML so compatible applications retain bold, italics, links, lists, and similar formatting.

Copy actions outside the selected read-only Canvas retain Obsidian's normal clipboard behavior. Body-targeted copy events only use a selection from the active Canvas, and inputs, text areas, and other editable controls inside a Canvas retain their native copy behavior.

Compatibility and limitations

  • The plugin deliberately does nothing in Canvas edit mode.
  • Canvas views in separate Obsidian windows are supported. Per-window copy listeners are removed when their Canvas views close.
  • Cross-origin web-page cards are not supported because browser security blocks access to selections inside embedded external sites.
  • Obsidian does not expose Canvas read-only state through its public plugin API. This plugin uses the Canvas view's internal readonly flag and may need a small update if Obsidian changes that internal field.

Development

The plugin is intentionally distributed as a single hand-written main.js file. There is no build step and there are no runtime dependencies.

Run the dependency-free checks with:

node --check main.js
node --check plugin.test.js
node --unhandled-rejections=strict plugin.test.js

The checks cover all copy formats, clipboard event scoping across multiple Canvas views, native copy behavior for editable controls, read-only versus edit mode, and listener cleanup when Canvas documents close or reopen.

HealthExcellent
ReviewPassed
About
Copy highlighted text from Markdown and text cards while a Canvas is in read-only mode. Put Markdown into the plain-text clipboard and rendered content into the HTML clipboard, while keeping normal copy behavior outside the read-only Canvas and inside editable controls.
CanvasMarkdown
Details
Current version
1.1.2
Last updated
Last month
Created
2 months ago
Updates
6 releases
Downloads
60
Compatible with
Obsidian 1.1.9+
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Author
JJjeffreyl-3
GitHubjeffreyl-3
  1. Community
  2. Plugins
  3. Canvas
  4. Canvas Read-Only Copy

Related plugins

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Custom Frames

Turn web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.

Consistent Attachments and Links

Move note attachments and update links automatically.

Outliner

Work with your lists like in Workflowy or Roam Research.

Flashcards

Anki integration.

Image Captions

Add captions to images with inline Markdown and link support. The caption format is compatible with the Commonmark spec and other Markdown applications.

Various Complements

Complete words similar to auto-completion in an IDE.

Typewriter Mode

Typewriter scroll, writing focus, current line highlight, paragraph dimming, and more!

ZettelFlow

Create and manage your notes in a Zettelkasten way via Canvas.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.