24

After reading this article from the the New York Times and others like it, I would like to make my screen black and white/grayscale. I am on Ubuntu 17.10 with Gnome 3.26.2 without X11. I am also on a ThinkPad x220.

I have tried a few things so far:

  • Change my monitor settings. I am on a laptop so it isn't possible.
  • Looking online. All the help seems to be for X11.
  • Compiz and other tools for X11. The new versions of Ubuntu are using Wayland instead now, so of course these wouldn't work.
  • Messing with color profiles. After spending time tinkering around with these, I don't think it is possible to create a color profile that would take a color display and make it grayscale.
  • Using the universal access's "magnifier" tool. With it I can effectively make my screen grayscale. I have the "Magnifier Improvements" extension installed because it makes it smoother, but I whether it is installed or not I have a few problems.
    1. It seems to take a fair bit of power
    2. My mouse disappears with the magnifier on.
    3. Even though it remembers the saturation value I set it every time I log in, I have to go through the settings menu to change the saturation. It remembers, but doesn't reapply.
    4. It has some odd bugs at times. The cross hair can be stuck in the middle of the screen or vanish entirely. Overall the magnifier isn't meant to just make the screen grayscale.

It would be great if there were someway to make the screen grayscale. Not only does it have the (probable) benefits the NYTimes described, but grayscale makes Night Light better!

I use a very low Night Light temperature (1000k, basically only the red pixels are on), so it can make it nearly impossible to read some text on the screen. When I make my screen grayscale with the magnifier, and then have Night Light on a top of that, I can read text far more clearly, and look at pictures/diagrams far more clearly.

So... Is there a good way to make my screen grayscale?

Pablo Bianchi
  • 15,657
  • 2
    Intel? Nvidia? Reducing colors (ie, saturation) with CCSM was answered here. Try xcalib, this X setup. Maybe your video device support gddccontrol. Maybe changing color temperature with Redshift is enough for you. – Pablo Bianchi Mar 08 '18 at 02:24
  • @PabloBianchi, there seems to be an issue with xcalib currently : Error - unsupported ramp size 0 – Robert Riedl Mar 08 '18 at 12:56
  • @PabloBianchi, I am not on X, the Ubuntu 17.10 is on Wayland. The gddccontrol may work, I don't know, but I found a solution. –  Mar 08 '18 at 23:39
  • This came up in my search, and what I settled on was xrandr-invert-colors to use black-on-white on e-ink display and white-on-black with Redshift for regular. – mcp Nov 15 '22 at 17:09

5 Answers5

16

Install the following extension: https://github.com/laerne/desaturate_all

To do this copy the files into a folder called .local/share/gnome-shell/extensions/desaturate_all@nicolas.brack.mail.be

Logout and log back in, then you should be able to enable the extension through gnome-tweak-tool or by browsing to https://extensions.gnome.org/local

Once enabled, grayscale can be quickly turned on and off with the art pallet in the top right coner.

I think you will agree that a grayscale screen with Night Light works better than better Night Light by itself (if you use a color tempeture that is super low). Some things to look for: the scroll bar, the picture of colored penciles, Firefox logo, and the plant in the bottom left.

Here are some comparison screenshots:

Full Color Full Color

Grayscale Grayscale

Night Light/Redshift with Full Color Night Light with Full Color

Night Light/Redshift with Grayscale Night Light/Redshift with Grayscale

  • Terrific guide. I enabled the extendions using the gnome-tweaks settings (Extensions tab, flipping the Desaturate all extension to ON. and then tapping the new "art pallete" icon to toggle between monogchrome/color. – yuvilio Sep 29 '18 at 20:15
  • Thank you. It works fine with GNOME 3.34 – gtirloni Nov 18 '19 at 23:17
  • The folder name should exactly match desaturate_all@nicolas.brack.mail.be – Gayan Weerakutti Nov 26 '20 at 16:10
4

There’s a gnome extension named Tint All which provides a quick option to change your GNOME desktop to these colors: amber, green, cyan, sepia and gray. Follow these steps:

  1. Enable gnome extension in your browser (for chrome its called gnome shell integration) : https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep
  2. Run this command: sudo apt install chrome-gnome-shell
  3. Open this link : https://extensions.gnome.org/extension/1471/tint-all/ and make this extension "On" . After "Onning" the Tint-all extension, you can see a small icon at the top bar. Simply click it to choose among the color profiles.

Full reference: https://www.debugpoint.com/2018/09/colorize-gnome-desktop-ubuntu/

4

I use Ubuntu mate 20.04.4 LTS and I apply this setting to the screen for grayscale color effect. Although it’s not completely black-and-white, it’s close.

xgamma -rgamma 0.500 -ggamma 2.000 -bgamma 1.000

However, this setting is my favorite:

xgamma -rgamma 0.500 -ggamma 2.000 -bgamma 2.000

Use this command to reset:

xgamma -gamma 1.0

Occasionally, I use these settings to protect my eyes from a white background

xgamma -rgamma 0.400 -ggamma 2.000 -bgamma 1.000

redshift -O 4444

to reset the redshift, use this command

redshift -x

This is how I try to blur the white and black background using xgamma and redshift to protect my eyes. You can change the setting according to your needs

N.Ahmed
  • 131
0

There is a simple and easy to use extension. You can even create a schedule to turn grayscale on and off. https://extensions.gnome.org/extension/4012/gnome-bedtime/

Kirubel
  • 3
  • 2
0

If you have nvidia-settings, an easy script to goggle grayscale (-1024) or almost grayscale-but-git-diffs-are-still-readable (-800) is:

#!/bin/bash

Check the current value of DigitalVibrance

current_value=$(nvidia-settings --query 0/DigitalVibrance[DP-2] -t)

-800 leaves git diff colors usable

gray=-800

Toggle between 0 and -1024

if [ "$current_value" -eq 0 ]; then new_value="${gray}" else new_value=0 fi

Assign the new value to DigitalVibrance

nvidia-settings --assign 0/DigitalVibrance[DP-2]=$new_value

Print the updated value

echo "DigitalVibrance[DP-2] is now set to $new_value"