3

When running emacs maximized on my new screen, a black shadow at the bottom, that for normal viewing angles is just a few pixels wide, interfers with the readability of the minibuffer / echo area.

Is it possible to add some margin at the bottom of the minibuffer / echo area? This would act as a workaround to the problem.

Source of the Issue (cannot be solved)

My new (glossy) LCD/LED TV shows a pronounced black shadow at the bottom of the screen whose change as I look from a lower or higher angle -- it vanishes when I look vertically at the bottom edge -- makes it look as if there is a visible border behind the plane of the pixels. My guess is that this is caused by a significant (looks like some mm) distance between pixel plane and backlight plane. The same effect appears for my office screens but is much weaker there as they are smaller and matte, so I never noticed it until explicitly looking for it.

From this I conclude that it is (1) an unavoidable property of all (non-IPS?) LCD screens (2) normally not noticable unless abusing a TV as large computer monitor. Therefore I consider the hardware-issue unsolvable and need a workaround.

An attempt to illustrate the problem

ScreenPhoto

  • 1. Can you show a screenshot of what you see, possibly faking it to give the right impression? 2. You can use a separate frame for the minibuffer (and echo area), and you can specify its height (using minibuffer-frame-alist). But this changes a lot of the interaction with Emacs, so it is probably not what you want to do, just to fix your problem. – Drew Aug 18 '15 at 14:45
  • I added an image manipulated to illustrate the issue. Sadly I can't quite get the disturbing effect on readability across though. Maybe that the bar has no fixed size but varies when I move my head in thickness and intensity adds to the issue. – kdb Aug 18 '15 at 21:06
  • kdb: I can't see any image? Anyway, I was going to ask whether using a vertical resolution slightly smaller than the available physical pixels would help? (obviously only applicable if it can be displayed in a non-stretched form). I'm not sure whether the issue is restricted to the bottom of the physical screen, or if it will occur wherever the visual display stops. – phils Aug 18 '15 at 21:35
  • 2
    I can't say I've ever seen that. I'd call your monitor defective. Anyway, Emacs is the wrong place to solve this: tell your system not to use the bottom N pixels. Any decent GUI environment should let you place a window with mandatory avoidance at the bottom of the screen (even Windows: the task bar). – Gilles Aug 18 '15 at 21:39
  • @Gilles Sadly I use a vertical taskbar, as I need the vertical space for content more than the horizontal space (thanks to 16:9). – kdb Aug 18 '15 at 22:20
1

First calculate your frame width and add margin to minibuffer.

(defun add-margin-to-mb ()
   (setq minibuffer-temporary-goal-position (* 2 (frame-width))))
(add-hook 'minibuffer-setup-hook 'add-margin-to-mb)

Now if you run M-x, it will be like this

enter image description here

  • For me this has no effect. – kdb Sep 6 '15 at 19:27
0

OK, try this. You can change the value of the (buffer-local) variable line-spacing. To exaggerate, I chose 2 character heights extra. See C-h v line-spacing -- you can specify pixels to add or a decimal multiple of char heights to add.

(add-hook 'minibuffer-setup-hook (lambda () (setq line-spacing 2.0)))

Unfortunately, that doesn't seem to work. It seems that line-spacing affects only the text between lines -- it adds the extra space after each line. You can make it add space above the line also, but apparently only by putting text property line-spacing on a newline char.

  • Sadly it not only doesn't work, it also has straight undesirable effects. The minibuffer does not always use only a single line -- input and some messages cause it to use two or more lines (in which case this breaks more than it fixes). – kdb Aug 19 '15 at 11:44
  • The extra lines were what I tried to add, which is why I said "to exaggerate, I chose 2 char heights extra." But yes, that "works" only some of the time. Why it "works" at all I don't know, since line-spacing supposedly applies only after each line (or on a newline char). Sorry I don't have a real solution. Consider asking at help-gnu-emacs@gnu.org if you do not get a helpful answer here. My guess is that there is no solution for now, in which case (i.e., if true) you might want to request something using M-x report-emacs-bug (that's for enhancement requests too, not just bugs). – Drew Aug 19 '15 at 14:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.