(Note: I plan to merge this only after we cut the Emacs 30 release branch, since it seems a bit too substantial a change to sneak in right near the end. However, I think the patch is mostly done aside from one remaining issue, so any feedback is very welcome.) 'visual-wrap-prefix-mode' has one small issue: since the wrap prefix is just a string, the wrapped text may not line up for variable-width fonts. This is mainly in cases like so: * here is some text that got visually wrapped If the "* " is variable-width, the second line will probably be indented wrong by a few pixels. The attached patch adds a display spec in this case so that the text lines up perfectly. There's currently one problem though: I'm not sure how to regenerate the wrap prefix automatically if the face changes. It's not hard to handle for 'text-scale-adjust', but I don't know how to handle 'global-text-scale-adjust' (or other things that could change the face[1]). Does anyone have any ideas for this part? [1] There's 'after-setting-font-hook', but that doesn't cover everything either.