L’idée est bonne, mais utiliser des outils moins limités que bash permet d’obtenir un ajustement du contraste en temps réel.
La complexité légèrement plus importante de la création de l’interface graphique est compensée par le fait qu’on n’en est pas réduit à appeler des programmes externes avec deux niveaux de quotes pour faire de simples calculs.
#!/usr/bin/perl -wusestrict;# Modification basique du contraste de l’affichage sous X.org# Vous pouvez utiliser ce programme au choix selon les termes# de la GNU General Public License version 2 ou ultérieure# ou de la Perl Artistic License.useTk;usePOSIXqw(log10);# Le paramètre gamma semble plutôt exponentiel, donc on utilisera une échelle# logarithmique. Le logarithme décimal n’est probablement pas l’idéal, mais il# est pratique.# Arbitrairement, l’échelle choisie ira de 0.1 à 10, affichée de -100 pour 10−1# à 100 pour 101.# Récupération des valeurs de contraste actuelles (trois valeurs décimales# précédées par des caractères qui ne sont pas des chiffres).`xgamma 2>&1`=~ /^\D+(\d+\.\d+)\D+(\d+\.\d+)\D+(\d+\.\d+)\D*$/ordie"Impossible de lire le contraste actuel avec xgamma\n";# On initialise le contraste avec la moyenne des contrastes rouge, vert et bleu.# C’est un pis aller, mais apparemment, xgamma ne prend pas en compte les# valeurs différenciées au niveau de xrandr qu’a pu apporter par exemple# Redshift, donc n’interfère pas avec celui-ci.# Idéalement, il faudrait utiliser xrandr et permettre de modifier les trois ou# conserver la proportionnalité.my$contraste=log10((1ドル+2ドル+3ドル)/3)*100;# Changement du contrastesubchng_contraste{system'xgamma','-gamma',10**($contraste/100);# Note : on laisse les valeurs s’afficher sur la sortie d’erreur, mais est-ce# plus gênant qu’utile ?}# Interface graphiquemy$fen=MainWindow->new('-title'=>'Affichage');my$etiq=$fen->Label('-text'=>'Contraste')->pack();my$ech=$fen->Scale('-orient'=>'horizontal','-length'=>300,'-from'=>-100,'-to'=>100,'-resolution'=>1,'-variable'=>\$contraste,'-command'=>\&chng_contraste)->pack();my$bout=$fen->Button('-text'=>'Fermer','-command'=>sub{exit0;})->pack();MainLoop;
# En Perl/Tk, avec ajustement du contraste en temps réel
Posté par _Laurent_ (site web personnel) . En réponse au journal Réglage du contraste sur ordinateur portable. Évalué à 10. Dernière modification le 21 avril 2020 à 03:54.
Bonjour,
L’idée est bonne, mais utiliser des outils moins limités que bash permet d’obtenir un ajustement du contraste en temps réel.
La complexité légèrement plus importante de la création de l’interface graphique est compensée par le fait qu’on n’en est pas réduit à appeler des programmes externes avec deux niveaux de quotes pour faire de simples calculs.
Prendre une bonne disposition : beop.free.fr