Cursor Blink Cannot Be Disabled via Plugin or CSS on macOS 15.5

Environment:

  • Obsidian Version: 1.8.10 (installer 1.4.16)
  • macOS Version: 15.5 (Catalina)
  • Electron: As bundled with the Obsidian app

:red_exclamation_mark:Issue Summary:

I am unable to disable the blinking text cursor (caret) in the editor. I’ve tried all known plugin and CSS methods, but none of them prevent the cursor from blinking, even when opacity and animation are forcibly disabled.

This seems to be a rendering or CodeMirror integration issue specific to macOS 15.5.


:microscope: Steps to Reproduce:

  1. Create a plugin or use CSS like this:

css

CopyEdit

.cm-cursor, .cm-cursor-primary {
  animation: none !important;
  opacity: 0 !important;
}
.cm-editor {
  caret-color: transparent !important;
}
  1. Enable the snippet or load the plugin.
  2. Observe that the cursor continues to blink regardless of these settings.

:white_check_mark: What I’ve Tried (all failed):

  • Plugin with EditorView.cursorBlinkRate.of(0)
  • CSS snippet in .obsidian/snippets/
  • DOM patch with caretColor = "transparent"
  • MutationObserver to patch cursor nodes
  • Overriding animation and opacity
  • Periodic style reapplication via plugin interval
  • Running from a clean vault
  • Testing in Safe Mode (plugins disabled)

:test_tube: What Seems to Be Happening:

  • CodeMirror 6 re-renders the cursor on every frame.
  • Any injected styles or cursor configuration are ignored or overwritten by internal rendering.
  • Possibly using a shadow DOM or canvas-based draw that makes external CSS ineffective.
  • Issue appears specific to macOS 15.5, especially with the version of Electron bundled with Obsidian 1.8.10.

:paperclip: Expected Behavior:

Setting cursorBlinkRate to 0 or overriding cursor styles should result in a non-blinking or invisible cursor.


:paperclip: Actual Behavior:

The cursor continues to blink even after:

  • Injecting CodeMirror extensions
  • Overriding CSS and DOM
  • Observing and patching newly created DOM nodes

:folded_hands: Request:

Please investigate whether:

  • The rendering method for the cursor can be exposed for plugin control.
  • CSS overrides are intentionally or accidentally sandboxed on macOS 15.5.
  • A toggle can be added in Settings to disable cursor blink globally.
3 Likes