Allow stopping the cursor from blinking

Use case or problem

I found this thread that lets you stop the cursor from blinking in vim when in normal mode.

But this will still make the cursor blink when in insert mode.

After conversations in Discord, I found out there is no way to make the cursor from blinking because of this change:

This is a deal breaker issue for me as I am used to writing long form texts without any movement on my screen. And the blinking cursor is incredibly distracting.

Proposed solution

Allow users to set a setting to stop the cursor from blinking.

Current workaround (optional)

There is none.

15 Likes

I agree this cursor situation sucks. The change should have been an optional toggle. For a dedicated writing application with extensive customizability this is a step backwards on desktop.

1 Like

Is there a way to change cursor settings at the operating system level (since Obsidian is now using the native cursor)? For example, Mac and iOS have a “reduce animations” setting in Accessibility (I don’t know if it stops cursors from blinking, but it’s an example of the sort of thing you might look for).

I looked into it but there is none I could find. There is one that supposed to work on NSText inputs which Obsidian doesn’t use. So no, there is no way to get around this blinking cursor currently.

@nikivi thanks a lot for your explanation.
So this means I can’t change a thing in regarding to cursor style settings via css snippets?
I spent numerous hours going through the obsidian forum to find a solution for at least a minor change that’d work but nothing changed the cursor style.

1 Like

Obsidian 1.0.0

Post for fellow not blinkers searching for the solution. Add this line to a file on Appearance/CSS snippets.

.cm-cursorLayer {animation: none !important;}

(only tested on linux for Normal Mode)

For Insert Mode, I change the config on the OS, I don’t have a snippet for it.

4 Likes

By chance, in case you still recall: How did you configure the blink config in the OS? I guessed Obsidian uses Electron uses GTK, so I tried

gsettings set org.gnome.desktop.interface cursor-blink false

but that had no effect on Obsidian, even after a reboot. Any advice is appreciated!

Nevermind, I figured it out. Somehow Electron doesn’t seem to respect what’s in gsettings (probably due to Obsidian running under Xwayland on my system for now) and just uses $XDG_CONFIG_DIR/gtk-3.0/settings.ini instead, where you can put this line anywhere under [Settings]:

gtk-cursor-blink=false
1 Like

That CSS works on Mac for me.
I still can’t figure out how to turn off the cursor in insert mode.

Caret blinking can stop me from focusing when I’m trying to write something, and this is made worse by the fact that selecting text does not even hide the caret like it does in other applications.

I want blink in other applications, so I can’t turn it off system-wide, but in Obsidian the caret blinking is obnoxious and attention-demanding and stops me from properly focusing on the actual text.

Right now, I can enable the “legacy” editor and use this CSS snippet:

.CodeMirror-focused .CodeMirror-cursors {
	visibility: visible !important;
}

but this likely won’t work in future updates when the “legacy” editor is removed.

Not like I’m going to update Obsidian until I’m sure that future versions will have the accessibility features I need, but it would be a shame for this to be the deal breaker.

If the native caret can’t be controlled at all then please at least provide a setting to turn it off and add back an artificial caret that can be controlled by CSS.

1 Like

Still works for me, thanks!

The following CSS snippet disabled the cursor from blinking (in Vim normal mode) on Obsidian 1.1.16.

.cm-cursorLayer {
    animation: none !important;
}

credits

2 Likes

On Linux Mint Cinnamon, to disable blinking cursor (for all apps), including obsidian

  1. Install dconf editor (its on flathub)
  2. Open dconf editor
  3. Navigate to org/cinnamon/desktop/interface
  4. Toggle cursor-blink off

i think instructions are similarlish for different linux distros

1 Like

None of the listed solutions are working with Obsidian 1.5.3 Linux XFCE4 :frowning:

Are there some new ways to do it?

2 Likes

If you have Obsidian installed as a Flatpak, you have to put this into ~/.var/app/md.obsidian.Obsidian/config/gtk-3.0/settings.ini

[Settings]
gtk-cursor-blink=false
1 Like

@multisn8 already answered the same.

btw it works for me under X11 using obsidian installed with pacman

Does any of the mentioned solutions work for you guys in the newest obsidian version? It does not for me. (Linux AppImage)

I have hope for caret-animation - CSS | MDN once Obsidian/Electron upgrades to Chrome 140 :crossed_fingers:

(Inspecting the DOM using ctrl-shift-i I see that they use a contenteditable div and I assume this what renders the cursor/caret)

(Small rant: it really make me furious and depressed when such a basic system settings is not respected by applications)

(Also tried the flatpak version with the custom settings.ini file and it does not work)