3

When I use olivetti-mode I'd like to have grey margins and the fringe indicators close to the window text, like in this picture:

enter image description here The problem is that when the fringes are wide the indicators end up being far from the text

enter image description here Is there a way to move them close to the window text?

Another approach would be to keep the fringes's width to the usual narrow size and paint the margins the same grey as the fringes background, but as far as I understand that can't be done, because the margins take their background colour from the default face, so it's bound to be the same as the text's background.

Arch Stanton
  • 1,525
  • 9
  • 22
  • What's the value of `fringes-outside-margins`? If it is `nil` which is the default, the fringe is supposed to appear between the margin and the text according to the doc string of the variable. – NickD Jan 24 '22 at 22:09
  • @NickD It is `nil`, but if I use wide margins instead of wide fringes (i.e., if I set `olivetti-style` to `nil`) I get these wide white bands on the outside and the grey narrow fringes around the text area. I’d like to have a uniform grey margin à la pdf reader. – Arch Stanton Jan 24 '22 at 22:20
  • Try `(set-face-attribute 'fringe nil :background nil)`. That's what I use. – jagrg Jan 25 '22 at 02:10
  • @jagrg I use `(set-face-attribute 'olivetti-fringe nil :foreground "grey80" :background (face-attribute 'default :background))` (called from `olivetti-mode-hook` so it adjusts to theme changes), which makes the fringes background "trasparent" like your setting but only while `olivetti-mode` is on. I'd like to see the borders of the text area though, while both these solutions blend it with the fringes and the margins. – Arch Stanton Jan 25 '22 at 06:45
  • You want a thin gray (non-transparent) fringe close to the text? I tried olivetti-mode with emacs -Q and that's what I see by default. – jagrg Jan 26 '22 at 14:36
  • 1
    @jagrg Nope, I want either wide grey fringes or thin grey fringes *and* grey margins. Like in the first image in the question. – Arch Stanton Jan 26 '22 at 14:41

1 Answers1

0

I ran into the same issue and found the following solution to one specific case of your problem. (I am posting it here in case it is useful to someone.) Try including this snippet in your olivetti-mode configuration:

(setq olivetti-style 'fancy
      olivetti-margin-width 3)

(defun custom-olivetti-mode-on-hook ()
  (setq-local flycheck-indication-mode 'left-margin))

(defun custom-olivetti-mode-off-hook ()
  (kill-local-variable 'flycheck-indication-mode))

(add-hook 'olivetti-mode-on-hook 'custom-olivetti-mode-on-hook)
(add-hook 'olivetti-mode-off-hook 'custom-olivetti-mode-off-hook)

This solves the problem for Flycheck indicators but not for the line continuation indicators in your question.

The bottom buffer below shows the result after enabling olivetti-mode (using the above configuration): enter image description here

Emre Yolcu
  • 196
  • 4