logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 03-07-2020 13:36:34

Debeee
Membre
Distrib. : Bullseye 64
Noyau : 5.10.0-10
(G)UI : mate
Inscription : 11-02-2015

Réglage luminosité écran annexe

Bonjour,
voilà mon pb : j'ai un portable sous testing / mate, avec une sortie écran VGA et une HDMI, et un écran auxiliaire (HansG 5/4 1280x1024) avec une entrée VGA et une DVI.
J'ai trouvé un coupleur HDMI/DVI qui me permet de passer directement mon signal en numérique, et j'ai ainsi une très bonne image sur le HansG. Le hic, c'est que le réglage de luminosité via les touches du portable n'ont pas d'effet sur l'écran auxiliaire (on voit la jauge augmenter ou diminuer sur l'écran quand on veut faire le réglage, mais la luminosité ne bouge pas), et les touches de réglage de cet écran sont bloquées à partir du moment où le signal passe par le port DVI.
Bref, luminosité non modifiable.

Y'a une possibilité de régler ça ?

Merci et à bientôt j'espère !

Dernière modification par Debeee (03-07-2020 16:09:15)

Hors ligne

#2 03-07-2020 14:17:28

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Réglage luminosité écran annexe

Bonjour
De ce j'ai pu constater les appelts d'environnement de bureau qui s'ajoute au tableau de bord ne fonctionne que pour la luminosité des portables
Je n'ai jamais eu aucun résultat sous XFCE et Mate (l’icône est bien la mais aucune action quand je bouge le curseur)
Du coup comme je suis sur un ordi de bureau j'ai trouvé un script sympa qui gère la luminosité et éventuellement la température de couleur
a récupérer ici
https://github.com/philippnormann/xrand … ghtness.sh
il suffit de copier/coller les lignes de code dans un fichier brightness.sh

le rendre exécutable

chmod +x brightness.sh



après on utilise le script avec un paramètre suivant se que on désire
exemple :

$ ./brightness.sh + DVI-0               Increase brightness of DVI-0 display by 0.1
$ ./brightness.sh - DVI-0               Decrease brightness of DVI-0 display by 0.1

$ ./brightness.sh + DVI-0 --temp        Increase color temperature of DVI-0 display by 0.1
$ ./brightness.sh - DVI-0 --temp        Decrease color temperature of DVI-0 display by 0.1

$ ./brightness.sh + DVI-0 0.2           Increase brightness of DVI-0 display by 0.2
$ ./brightness.sh - DVI-0 0.2           Decrease brightness of DVI-0 display by 0.2

$ ./brightness.sh + DVI-0 0.2 --temp    Increase color temperature of DVI-0 display by 0.2
$ ./brightness.sh - DVI-0 0.2 --temp    Decrease color temperature of DVI-0 display by 0.2

$ ./brightness.sh = DVI-0               Reset brightness of DVI-0 display to 1.0
$ ./brightness.sh = DVI-0 0.5           Set brightness of DVI-0 display to 0.5

$ ./brightness.sh = DVI-0 --temp        Reset color temperature of DVI-0 display to 0.6
$ ./brightness.sh = DVI-0 0.4 --temp    Set color temperature of DVI-0 display to 0.4

 



le pas par défaut de 0.1 fonctionne bien , j'ai donc affecté un raccourci clavier pour augmenter et réduire la luminosité (Ctrl++ et Ctrl+-)
pour repérer l'appelation de l'écran utilise

xrandr


j'utilise que les 2 premiers exemple qui me conviennent très bien

./brightness.sh + DVI-0            
./brightness.sh - DVI-0  

   
voila donc DVI-0 a remplacer d’après ce que verra avec xrandr

edit: important il ne faut désactiver Redshift si jamais tu l'utilise
important il faut désactiver Redshift

Dernière modification par Croutons (04-07-2020 10:00:31)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#3 03-07-2020 16:08:19

Debeee
Membre
Distrib. : Bullseye 64
Noyau : 5.10.0-10
(G)UI : mate
Inscription : 11-02-2015

Re : Réglage luminosité écran annexe

Salut Croutons,
merci, ça s'annonce pas mal ta solution !
J'ai récupéré le script, je vais tester ça dans la soirée, mais d'ores et déjà, j'ai quelques questions :
- le fichier brightness.sh, je le mets où ?
- je suppose que vu la syntaxe pour les modifes, ça n'impacte que le réglage du moniteur cité dans la commande (DVI-0 dans tes exemples), et pas le réglage du portable ?
- est-ce que quand tu éteins l'ordi et que tu le rallumes le lendemain le réglage précédent reste actif, ou il se cale par défaut à une valeur std et il faut refaire le réglage à chaque allumage de la machine ?
- dans la syntaxe ./brightness.sh : pourquoi le ./ ?
- je suppose que la plage de réglage est 0-1 ?

Croutons a écrit :

edit: important il ne faut désactiver Redshift si jamais tu l'utilise


pas pigé, y'a un "ne" qui gêne ou un "pas" qui manque : il faut le désactiver ou pas ? Par défaut, il n'est pas installé sur ma machine
Je ne connaissais pas ce truc, très intéressant le réglage de température de couleur, ça m'intéresse autant que la luminosité

Hors ligne

#4 03-07-2020 19:49:10

Debeee
Membre
Distrib. : Bullseye 64
Noyau : 5.10.0-10
(G)UI : mate
Inscription : 11-02-2015

Re : Réglage luminosité écran annexe

Bon, j'ai juste laissé dans le dossier téléchargements, mis les droits d'exécution et tapé ma 1e commande :

./brightness.sh - HDMI-1


xrandr: --gamma: invalid argument '1,0:1,0:1,0'
Try 'xrandr --help' for more information.



Exactement la même réponse si je mets un + à la place du -

Je dois installer redshift ?
[edit]installé redshift, refait la commande : pareil[/edit]

Dernière modification par Debeee (03-07-2020 19:53:16)

Hors ligne

#5 04-07-2020 09:52:29

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Réglage luminosité écran annexe

Hello
Oui j'ai un peu cafouillé dans ma phrase , il ne faut pas utiliser Redshift pour que le script fonctionne

- le fichier brightness.sh, je le mets où ?


laisse le dans ton dossier personnel, a moins que tu ais plusieurs utilisateurs

- je suppose que vu la syntaxe pour les modifs, ça n'impacte que le réglage du moniteur cité dans la commande (DVI-0 dans tes exemples), et pas le réglage du portable ?


oui tu modifies que la luminosité de l'écran que tu as entré en paramètre 0 étant le minimum et 1 le maximum

par contre le réglage ne reste pas actif après un redémarrage
il y a toujours la possibilité de lancer le script au démarrage du portable pour lui affecté une valeur de luminosité
dans l'idéale il faudrait créer un autre petit script qui test si l'écran externe est branché avant de lancé le script histoire de ne pas avoir de message d'erreur au cas ou celui ci est déconnecté

- dans la syntaxe ./brightness.sh : pourquoi le ./ ?

dans l'écriture du script tu veux dire ? je ne saurais te dire ce n'est pas moi qui ai écrit ce script

donne moi le résultat de

xrandr


quand l'écran externe est branché

edit:Vérifie que tu as bien toutes les lignes du script (147)

cat -n brightness.sh

Dernière modification par Croutons (04-07-2020 10:03:46)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#6 04-07-2020 20:40:20

Debeee
Membre
Distrib. : Bullseye 64
Noyau : 5.10.0-10
(G)UI : mate
Inscription : 11-02-2015

Re : Réglage luminosité écran annexe

Salut Croutons,
journée grosse bouffe bien arrosée => je ne suis pas très réactif !
Merci pour les infos complémentaires. J'ai désinstallé redshift.

xrandr



Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 16384 x 16384
eDP-1 connected (normal left inverted right x axis y axis)
   1366x768      60.00 +
   1360x768      59.80    59.96  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   800x512       60.17  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   720x450       59.89  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   680x384       59.80    59.96  
   640x400       59.88    59.98  
   576x432       60.06  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024     60.02 +  75.02*
   1280x960      60.00  
   1152x864      75.00  
   1280x720      60.00  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
DP-1 disconnected (normal left inverted right x axis y axis)


eDP-1 est l'écran de mon portable que j'ai éteint, le moniteur externe est le seul en fonctionnement.
Donc normal que tu voie DP-1 disconnected en fin de réponse.
VGA aussi, y'a une sortie VGA sur le portable qui n'est pas connectée.
Reste donc la sortie HDMI-1 qui va sur l'écran externe à entrée DVI via un adaptateur.
Le script, je l'ai téléchargé via un bouton de téléchargement sur le site, je suppose qu'il est entier, sinon...
Y'a bien les 147 lignes :

cat -n brightness.sh


     1  #!/usr/bin/env bash
     2  set -e
     3 
     4  get_display_info() {
     5      xrandr --verbose | grep -m 1 -w "$1 connected" -A8 | grep "$2" | cut -f2- -d: | tr -d ' '
     6  }
     7 
     8  # cribbed from redshift, https://github.com/jonls/redshift/blob/master/README-colorramp
     9  GAMMA_VALS=('1.0:0.7:0.4'  # 3000K
    10              '1.0:0.7:0.5'  # 3500K
    11              '1.0:0.8:0.6'  # 4000K
    12              '1.0:0.8:0.7'  # 4500K
    13              '1.0:0.9:0.8'  # 5000K
    14              '1.0:0.9:0.9'  # 6000K
    15              '1.0:1.0:1.0'  # 6500K
    16              '0.9:0.9:1.0'  # 7000K
    17              '0.8:0.9:1.0'  # 8000K
    18              '0.8:0.8:1.0'  # 9000K
    19              '0.7:0.8:1.0') # 10000K
    20 
    21  get_gamma_index() {
    22      for i in "${!GAMMA_VALS[@]}"; do
    23          [[ "${GAMMA_VALS[$i]}" = "$1" ]] && echo "$i" && break
    24      done
    25  }
    26 
    27  get_temp_for_gamma() {
    28      idx=$(get_gamma_index "$1")
    29      awk '{printf "%.1f", $1 / 10}' <<< "$idx"
    30  }
    31 
    32  get_gamma_for_temp() {
    33      idx=$(awk '{printf "%d", $1 * 10}' <<< "$1")
    34      echo "${GAMMA_VALS[$idx]}"
    35  }
    36 
    37  # gamma values returned by xrandr --verbose are somehow inverted
    38  # https://gitlab.freedesktop.org/xorg/app/xrandr/issues/33
    39  # this function corrects this bug by reverting the calculation
    40  invert_gamma() {
    41      inv_r=$(cut -d: -f1 <<< "$1")
    42      inv_g=$(cut -d: -f2 <<< "$1")
    43      inv_b=$(cut -d: -f3 <<< "$1")
    44      r=$(awk '{printf "%.1f", 1/$1}' <<< "$inv_r" 2>/dev/null)
    45      g=$(awk '{printf "%.1f", 1/$1}' <<< "$inv_g" 2>/dev/null)
    46      b=$(awk '{printf "%.1f", 1/$1}' <<< "$inv_b" 2>/dev/null)
    47      echo "$r:$g:$b"
    48  }
    49 
    50  get_gamma() {
    51      invert_gamma "$(get_display_info "$1" 'Gamma: ')"
    52  }
    53 
    54  get_brightness() {
    55      get_display_info "$1" 'Brightness: '
    56  }
    57 
    58  list_displays() {
    59      echo 'displays:'
    60      displist=''
    61      connected=$(xrandr | grep -w connected | cut -f1 -d' ')
    62      for display in $connected; do
    63          brightness=$(get_brightness "$display")
    64          gamma=$(get_gamma "$display")
    65          temp=$(get_temp_for_gamma "$gamma")
    66          displist+="$display brightness: $brightness gamma: $gamma temp: $temp"
    67          displist+=$'\n'
    68      done
    69      echo "$displist" | column -t | sed 's/^/  /'
    70  }
    71 
    72  display_usage() {
    73      script_name=$(basename "$0")
    74      echo "Usage: $script_name op display [stepsize|value] [--temp]"
    75      echo
    76      echo 'arguments:'
    77      echo '  op:             '-' to decrease or '+' to increase brightness'
    78      echo '                  '=' to set brightness to a specific value'
    79      echo '  display:        name of a connected display to adjust'
    80      echo '  stepsize:       size of adjustment step (default 0.1)'
    81      echo '  value:          value to set (default 1.0 for brightness, 0.6 for color temperature)'
    82      echo '  --temp:         adjusts color temperature instead of brightness'
    83      echo
    84      list_displays
    85  }
    86 
    87  exec_op() {
    88      if [ "$1" = '+' ]; then
    89          NEWVAL=$(echo "$3 + $2" | bc)
    90      elif [ "$1" = '-' ]; then
    91          NEWVAL=$(echo "$3 - $2" | bc)
    92      elif [ "$1" = '=' ]; then
    93          NEWVAL=$2
    94      fi
    95      if [ "$(echo "$NEWVAL < 0.0" | bc)" -eq 1 ]; then
    96          NEWVAL='0.0'
    97      fi
    98      if [ "$(echo "$NEWVAL > 1.0" | bc)" -eq 1 ]; then
    99          NEWVAL='1.0'
   100      fi
   101      echo "$NEWVAL"
   102  }
   103 
   104  if [[ "$1" = '+'  ||  "$1" = '-' || "$1" = '=' ]] && [[ -n "$2" ]]; then
   105      OP=$1; DISP=$2; shift; shift
   106  else
   107      display_usage; exit 1
   108  fi
   109 
   110  if [[ "$1" =~ ^[0-9]+(.[0-9]+)?$ ]]; then
   111      OPVAL=$1; shift
   112  else
   113      if [[ "$OP" = '=' ]]; then
   114          if [[ "$1" = '--temp' ]]; then
   115              OPVAL='0.6'
   116          else
   117              OPVAL='1.0'
   118          fi
   119      else
   120          OPVAL='0.1'
   121      fi
   122  fi
   123 
   124  CURRBRIGHT=$(get_brightness "$DISP")
   125  if [[ ! "$CURRBRIGHT" =~ ^[0-9]+.[0-9]+$ ]]; then
   126      echo "Error: Selected display $DISP has no brightness value!"
   127      echo; list_displays; exit 1
   128  fi
   129 
   130  CURRGAMMA=$(get_gamma "$DISP")
   131  if [[ ! "$CURRGAMMA" =~ ^[0-9].[0-9]:[0-9].[0-9]:[0-9].[0-9]$ ]]; then
   132      echo "Error: Selected display $DISP has no gamma value!"
   133      echo; list_displays; exit 1
   134  fi
   135 
   136  NEWBRIGHT="$CURRBRIGHT"
   137  NEWGAMMA="$CURRGAMMA"
   138 
   139  if [ "$1" = '--temp' ]; then
   140      CURRTEMP=$(get_temp_for_gamma "$CURRGAMMA")
   141      NEWTEMP=$(exec_op "$OP" "$OPVAL" "$CURRTEMP")
   142      NEWGAMMA=$(get_gamma_for_temp "$NEWTEMP")
   143  else
   144      NEWBRIGHT=$(exec_op "$OP" "$OPVAL" "$CURRBRIGHT")
   145  fi
   146 
   147  xrandr --output "$DISP" --brightness "$NEWBRIGHT" --gamma "$NEWGAMMA"
 



sinon, j'ai refait la commande de réduction d'un cran de la luminosité, il a été plus bavard dans sa réponse :

./brightness.sh + HDMI-1


Error: Selected display HDMI-1 has no gamma value!

displays:
  eDP-1   brightness:  gamma:  inf:inf:inf  temp:        0,0    
  HDMI-1  brightness:  1.0     gamma:       inf:inf:1,0  temp:  0,0



C'est bien la commande de gamma qui merde, elle n'a pas l'air compatible avec mon écran (il date d'avant 2010, peut-être 2007 ou 2008)

J'ai une LMDE4 sur cet ordi, je ne me rappelle plus si hier j'ai tapé la commande depuis la LMDE ou la testing (d'où la réponse différente)
En tous cas, sur la LMDE, il y a possibilité de modifier les profils de couleur => ça marche très bien sur l'écran intégré du portable, par contre, ce n'est pas actif sur l'écran externe, il me dit que ce n'est pas pris en charge...
Est-ce que ces deux problèmes ont la même source ?

Le fait que mes boutons de réglage sur l'écran soient bloqués me gonfle un peu aussi, je ne sais pas si c'est pareil sur tous les écrans externes câblés en numérique (la plupart en HDMI ou displayport aujourd'hui, le mien date d'avant 2010, d'où DVI). De mémoire, ils fonctionnaient quand je branchais le moniteur en VGA (mais l'image est clairement moins propre).

Sinon, même si le script ne marche pas, on ne va pas se prendre la tête, j'ai testé cette commande et ça marche nickel :

xrandr --output "HDMI-1" --brightness 0.5



J'essaierai de bidouiller le gamma pareil histoire de voir, et après, un raccourci clavier ou deux et basta
[edit] testé le gamma avec xrandr, ça marche aussi :

xrandr --output "HDMI-1" --gamma "0.7:0.8:1"


Si j'en crois les données du script, ça me met l'écran à 10000K (et c'est dégueu !)
Donc vu que les commandes passées via xrandr marchent, ça doit être un pb de script[/edit]

Mais bon, si on peut régler le pb, ça peut intéresser du monde, je n'ai rien vu d'autre là dessus sur le forum (mal cherché ?)

Dernière modification par Debeee (04-07-2020 20:59:49)

Hors ligne

#7 05-07-2020 07:55:48

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Réglage luminosité écran annexe

Je n'ai rien touché coté gamma, si je lance le script sans paramètre j'ai

displays:
  DVI-0  brightness:  1.0  gamma:  1.0:1.0:1.0  temp:  0.6



ce cas est prévu dans le script ligne 130 d'ou le message d'erreur


Le fait que mes boutons de réglage sur l'écran soient bloqués me gonfle un peu aussi


Je n'ai jamais rencontré se genre de soucis, le réglage de l'écran se fait depuis le menu OSD et n'a rien a voir avec la carte graphique ou le système installé
étrange

sinon j'utilisais un autre script aussi je n'ai pas retesté sur cette nouvelle installation
https://github.com/LordAmit/Brightness/ … /README.md
BrightnessController.gif
l'archive https://github.com/lordamit/Brightness/ … master.zip

le fichier desktop que j'avais créé

[Desktop Entry]
Name=Réglage luminosité
Comment=Desactivé Redshift
Icon=/home/stephane/Brightness-master/img/brightness.svg
Exec=/home/stephane/Brightness-master/src/init.py
Terminal=false
Type=Application
Categories=Utility
StartupNotify=true
Name[en_US]=Brightness Controller
Path=



edit: je n'utilisais plus ce script car quand j'ai fais ma migration de Stretch a Buster il ne fonctionnait plus je n'ai pas poussé plus loin

Dernière modification par Croutons (05-07-2020 08:02:07)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#8 05-07-2020 20:58:46

Debeee
Membre
Distrib. : Bullseye 64
Noyau : 5.10.0-10
(G)UI : mate
Inscription : 11-02-2015

Re : Réglage luminosité écran annexe

Salut Croutons,
je suis moins matinal que toi big_smile
Bon, j'ai pas mal investigué avant de revenir...
Visiblement, y'a un pb avec le script.

- je commence avec cette commande :

xrandr --output "eDP-1" --gamma 0.8:0.8:0.8 --brightness 0.9


Mon écran change d'aspect => la commande a bien marché.

- ensuite :

./brightness.sh


Usage: brightness.sh op display [stepsize|value] [--temp]

arguments:
  op:             - to decrease or + to increase brightness
                  = to set brightness to a specific value
  display:        name of a connected display to adjust
  stepsize:       size of adjustment step (default 0.1)
  value:          value to set (default 1.0 for brightness, 0.6 for color temperature)
  --temp:         adjusts color temperature instead of brightness

displays:
  eDP-1  brightness:  0.90  gamma:  1,0:1,0:1,0  temp:  0,0


Visiblement, il a bien pris la valeur de la luminosité, mais pas le gamma. Or, si je passe un ordre avec xrandr pour remettre tous mes gamma à 1, je vois un changement à l'écran. xrandr a bien modifié le gamma, mais le script n'intègre pas ce changement.

- enfin :

./brightness.sh - eDP1


Error: Selected display eDP1 has no brightness value!

displays:
  eDP-1  brightness:  0.90  gamma:  1,0:1,0:1,0  temp:  0,0



Gloups ???

Bref, je laisse béton ce script, mais au final, tu m'as mis sur la piste xrandr (je découvre) => je vais faire avec et des raccourcis clavier pour régler mon moniteur.
En prime, en creusant sur d'autre sujets du forum, je suis tombé sur la commande xcalib, le truc improbable que je cherchais depuis un certain temps. J'avais chargé toute l'appli DisplayCal (plein de trucs qui ne me servent pas) pour juste charger un profil, alors que je fais ça simplement avec xcalib.
Bref, je me suis fait un fichier éxécutable mixte avec xrand pour régler finement le gamma des 3 canaux et xcalib pour charger un profil qui marche pas trop mal => j'ai maintenant un écran très regardable sur mon portable, il n'est plus bleu comme les écrans w$ et je peux enfin regarder des photos sans que ça me pique les yeux.
En fait j'ai 2 fichiers, un pour mettre la calibration on, et l'autre off :

xrandr --output "eDP-1" --gamma 0.85:0.88:0.85
xcalib  '/home/domeee/.config/color/icc/devices/display/Maison 3.icc'


xcalib -c
xrandr --output "eDP-1" --gamma 1.0:1.0:1.0



J'ai mis des raccourcis clavier là dessus et hop.
Je vais bientôt revenir vous embêter pour faire un seul fichier avec une bascule cool

Quant à mon écran externe, je vais faire un truc similaire, + 2 ou 3 raccourcis pour régler la luminosité à la grosse (genre photos / bureautique, ça suffira à ce que je ne me tue pas les yeux sur une page blanche de texte). Pareil, je vise à faire un script qui me mettra direct sur l'écran externe, car passer par le tableau de bord à chaque démarrage, c'est relou.

En tous cas, merci beaucoup de ton aide, et à la prochaine, pour les scripts !

Hors ligne

#9 10-07-2020 15:32:35

Debeee
Membre
Distrib. : Bullseye 64
Noyau : 5.10.0-10
(G)UI : mate
Inscription : 11-02-2015

Re : Réglage luminosité écran annexe

Bonjour à tou(te)s

donc, si on récapitule, Croutons a fourni une solution (la 1e, le script) qui ne fonctionne pas bien sur ma machine.
Mais, ce script est une mine d'infos, et m'a permis de bâtir ma propre solution (qui marche !)

Alors, les pb du script ci-dessus :

- il teste toutes les machines "connectées". Or, connecté ne veut pas dire "allumé" ! Dans mon cas, j'ai un petit portable 11" clavier et écran trop petits, donc je veux les brancher sur clavier/souris et moniteur externe sur un bureau. Je déclare le moniteur externe actif (primaire), et je coupe le moniteur du portable. Le pb, c'est que bien qu'éteint, cet écran est déclaré "connected" (il l'est...). Mais comme il est éteint, il n'y a pas dans le compte rendu de xrandr --verbose de valeurs pour la luminosité et le gamma, ce qui arrête le script et empêche tout réglage.

- le 2e problème vient du gamma. xrandr a un fonctionnement chelou : en entrée, pour régler un moniteur, on lui donne 3 valeurs comprises entre 0 et 1 (pour R, V, B), sous forme par ex 0.8:0.75:0.82. Si on lis le compte rendu de sortie (xrandr --verbose), les valeurs pour le gamma sont les inverse (1/x) des valeurs rentrées, ceci en plus avec une seule décimale ! Le script récupère ces valeurs altérées et imprécises et les réinverse pour les remettre en paramètres d'entrée quand on veut changer par ex la luminosité. Bilan, avec deux approximations, la valeur d'origine n'est plus trop respectée. Et si on descend et monte la luminosité de 4 crans, les erreurs se cumulent, et le gamma d'arrivée a bien changé...

Le pb de xrandr, c'est que si on veut juste changer la luminosité, si on ne passe pas le gamma en paramètre, il réinitialise celui-ci à 1:1:1
D'où la manip du script.

Voilà, deux pb sur ce script.

Alors...

Ben alors, j'en ai profité pour me plonger dans le shell et j'ai fait mon 1er script.
Je vais rouvrir une autre discussion pour le présenter, sachant qu'il a plusieurs fonctionnalités :
- basculer l'affichage d'un écran à l'autre par combi de touches clavier (bascule, une seule commande)
- réglage de la luminosité de l'écran externe (touches de mon portable non fonctionnelles, et menu de l'écran verrouillé quand il est connecté en HDMI), avec deux combinaisons de touches.
- changement de profil icc par combinaison de touches via xcalib. En fait, ça boucle sur autant de profils qu'on veut avec la même combi de touches. En prime, le réglage est complété par un réglage fin du gamma via xrandr. C'est une solution idéale quand on n'a pas de sonde de calibration, on peut récupérer un profil "standard" de l'écran et peaufiner derrière.

Et ça marche !!

Je rédige ça et je reviens

Hors ligne

Pied de page des forums