Pour sauver les yeux la nuit, l’ajout de plus de rouge et/ou de soustraction de bleu devient populaire dans Windows 1 (filtre bleu) et dans Linux; Gnome Desktop (Veilleuse) et Ubuntu Unity Desktop avec des add-ons tels que Red Shift ou f.Lux .
Je me demande comment accomplir la même chose avec la fonction xrandr <monitor> --gamma 1:1:1
intégrée à la ligne de commande d'Ubuntu. Le 1:1:1
représente un pourcentage de rouge : vert : bleu . Je présume 1
= 100%. Je ne sais pas si les packages ci-dessus ajoutent plus de rouge (1.2:1:1
) pour une augmentation de 20% environ ou une réduction de bleu (1:1:0.8
) pour une diminution de ~ 20% ou les deux pour un changement de ~ 40%.
Selon OMG Ubunt , dans Night Light de Gnome, vous pouvez utiliser ces valeurs numériques:
Pour tester ces valeurs numériques, comment pourrait-on les traduire pour remplacer le code --gamma 1:1:1
par défaut?
documentation de Xorg ne dit pas grand chose à propos des contrôles --gamma
:
−−gamma rouge: vert: bleu
- Définissez les valeurs en virgule flottante spécifiées comme correction gamma sur la commande crt actuellement associée à cette sortie. Notez que vous ne pouvez pas obtenir deux valeurs différentes pour les sorties clonées (c'est-à-dire qui partagent le même crtc) et que le passage d'une sortie à un autre crtc ne modifie pas du tout les corrections gamma de crtc.
Des points décimaux flottants seront utiles car le script que je souhaite mettre à nivea définit la luminosité de xbacklight
une fois par minute sur une période de transition de 90 à 120 minutes à l'aube et au crépuscule. Je souhaite améliorer le script à l'aide du support logiciel xrandr --brightness
pour les moniteurs externes et de OLED écrans intégrés et de la prise en charge xrandr --gamma
pour les filtres de lumière rouge/bleue. Xorg ne dit pas combien de positions décimales sont prises en charge, mais je pense que je définirai bc
name__. Les calculs doivent être effectués à 3 ou 4 positions décimales pour assurer la lisibilité/précision.
J'espère imiter ce que "les grands" de Microsoft et de Gnome font avec leurs techniques "plus rouges" et/ou "moins bleues". Je n'ai pas encore exploré Wayland, mais les réponses utilisant ce système seront également appréciées, car ce sera sans aucun doute une préoccupation future.
--gamma 1:1:1
convient-il pour la nuit? J'ai trouvé le code source du programme sct
qui permet à l'utilisateur de définir la température de couleur. Il a "écrit le code" de redshift
et fournit un mappage pour les valeurs rouge, verte et bleue:
/* cribbed from redshift, but truncated with 500K steps */
static const struct { float r; float g; float b; } whitepoints[] = {
{ 1.00000000, 0.18172716, 0.00000000, }, /* 1000K */
{ 1.00000000, 0.42322816, 0.00000000, },
{ 1.00000000, 0.54360078, 0.08679949, },
{ 1.00000000, 0.64373109, 0.28819679, },
{ 1.00000000, 0.71976951, 0.42860152, },
{ 1.00000000, 0.77987699, 0.54642268, },
{ 1.00000000, 0.82854786, 0.64816570, },
{ 1.00000000, 0.86860704, 0.73688797, },
{ 1.00000000, 0.90198230, 0.81465502, },
{ 1.00000000, 0.93853986, 0.88130458, },
{ 1.00000000, 0.97107439, 0.94305985, },
{ 1.00000000, 1.00000000, 1.00000000, }, /* 6500K */
{ 0.95160805, 0.96983355, 1.00000000, },
{ 0.91194747, 0.94470005, 1.00000000, },
{ 0.87906581, 0.92357340, 1.00000000, },
{ 0.85139976, 0.90559011, 1.00000000, },
{ 0.82782969, 0.89011714, 1.00000000, },
{ 0.80753191, 0.87667891, 1.00000000, },
{ 0.78988728, 0.86491137, 1.00000000, }, /* 10000K */
{ 0.77442176, 0.85453121, 1.00000000, },
};
Les trois colonnes ci-dessus sont des valeurs pour rouge , vert et Bleu .
J'ai écrit une collection de scripts bash pour ajuster graduellement la luminosité et le gamma à l'aube et au crépuscule sur une période de 90 à 120 minutes. Le réglage de la luminosité totale est:
xrandr --output DP-1-1 --gamma 1:1:1 --brightness 1.0
Le réglage de nuit est:
xrandr --output DP-1-1 --gamma 1.1:0.8:0.7 --brightness 0.55
Enfin trouvé une réponse: PLUS DE XRANDR OR EXPOSITION À LA LUMIÈRE BLEUE Ce script est présenté:
#!/bin/sh
night_mode() {
for disp in $(xrandr | sed -n 's/^\([^ ]*\).*\<connected>.*/\1/p'); do
xrandr --output $disp --gamma $1 --brightness $2
done }
case $1 in
off) night_mode 1:1:1 1.0 ;;
*) night_mode 1:1:0.5 0.7 ;;
esac
Le script réduit la composante de lumière bleue et la luminosité de tous les écrans Xorg connectés. Enregistrez-le simplement dans votre répertoire bin
name__, chmod +x
it et, si vous le souhaitez, ajoutez un travail cron
ou un raccourci clavier pour appeler la fonction.
Comment ça marche? Tapez simplement le nom du script sans aucun paramètre pour réduire la lumière bleue. Pour revenir au réglage normal, ajoutez le paramètre off
après la commande.