Sign up ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

White background color is harm to eyes. How to change pdf background color in evince? Now I use evince 3.4.0 in ubuntu 12.04 x64.

share|improve this question

3 Answers 3

I have have been fighting this issue for quite a while now. The best solution I have come up with is to use the xcalib command via two easily accessible application launchers on my tool/app bar. I have named them "Screen Mode" and "Paper Mode".

With the help of xcalib I can activate on-the-fly two different screen configurations without profiles and other bloat. Note that xcalib is the smallest bit of software and won't take any space or memory as it passes the configurations to the display adapter and exits. You can forget about the heavy specialist software like argyll+dispcalgui etc.

Firstly install xcalib with:

sudo apt-get install xcalib

Then set your two launchers with these commands:

To set the "Paper Mode" use:

xcalib -red 1.7 1 64 -green 1.7 1 57 -blue 1.7 1 28 -alter

To (re)set back to "Screen Mode" use:

xcalib -clear

As you can probably tell I am adjusting the parameters per-channel and my effort was to produce a Kindle like result. Obviously you can and should adjust these according to your preferences and screens. Of course this adjusts the screen as a whole but, for me at least, this has been a blessing for those all white IDEs. It will take you a couple of minutes to get used to it, but you'll never go back. It's a true Eye-Saver!

The command usage is xcalib -ChannelName Gamma Brightness Contrast and are all separated with a single space. The -alter feeds the signal to the adapter. The -clear send a "Clear" message to the adapter to clear all adjustments back to normal.

IMPORTANT TIP: In order not to loose the blackness of letters always keep Brightness to 1 as shown above. Play around only with Gamma and Contrast. Gamma will produce a darker/lighter result and playing with the Contrast between channels will adjust the resulting color.

Another TIP: Set the "Paper Mode" shortcut to first reset and then set the color (e.g., "xcalib -clear && xcalib -red 1.7 1 64 -green 1.7 1 57 -blue 1.7 1 28 -alter"), so that if accidentally use it multiple times it does not change you display color to black.

I hope this will prove handy to many of you!

share|improve this answer
As I noticed that the 1.7 gamma was just about cracking the font anti-aliasing (as well as the fact that I used some really funny numbers above), a more appropriate command for "Paper Mode" would be... xcalib -red 1.5 0 65 -green 1.5 0 60 -blue 1.5 0 25 -alter – GRE2608 Oct 28 '12 at 18:53

I am sure that you can invert the color but I am not sure whether you can use a different color of your choice as a background color.

To invert the color.

Goto: View -> Inverted Colors (Ctrl+I)

Hope this helps.

share|improve this answer
I want to change back color to others like light green. I think this is easy to implement for developer of evince. – waterloo2005 Sep 23 '12 at 5:49
Yes it is very much possible. After your comment I just went through the evince source code and found this. ev-document-misc.c holds the inverted color section if (inverted_colors) cairo_set_source_rgb (cr, 0, 0, 0); else. So by changing this i think we can achieve our desired color but i haven't compiled and tested this. You can try your luck. – devav2 Sep 23 '12 at 6:15
Then how to change back color to light green. I am newbie. – waterloo2005 Sep 26 '12 at 14:55

Thanks for Evan's invitation. Here is what I did to achieve the light green background in Evince 2.30.3.

As mentioned in a thread( posted by me several years ago, I replaced the source code from Line 327 to 329 of libdocument/ev-document-misc.c with the following snippet:

// make sure that we just turn the near "white" back ground to light green
if ((245 <= p[0] && p[0] <= 255) &&
    (245 <= p[1] && p[1] <= 255) &&
    (245 <= p[2] && p[2] <= 255)) {
    p[0] = 204; /* cc */
    p[1] = 232; /* e8 */
    p[2] = 207; /* cf */

Note that the code position may vary for different versions of Evince.

Then re-compile Evince:

$ ./configure --prefix=/usr --enable-nls --disable-scrollkeeper --disable-dbus --disable-debug --disable-tests --disable-nautilus --disable-thumbnailer --disable-previewer --disable-comics --without-keyring --without-gconf --without-gtk-unix-print
$ make

After compilation, DONOT run make install, because this may change your locale settings of Evince. Just backup the original /usr/lib/, and replace it with the modified libdocument/.libs/ manually.

Then re-launch Evince, open a .pdf file(or other supported formats, whatever), and use the "Inverted Color" option to change the background color into light green.

May this be helpful :)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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