Est-il possible d'ajuster la luminosité du moniteur de bureau comme sur les ordinateurs portables?
Oui, tous les moniteurs de bureau ont un menu distinct pour cela.
Mais est-il possible de changer cela en quelque chose comme Winkey + (F1..F12)?
Le moniteur est connecté via un câble VGA ou DVI.
Avec le script ci-dessous, vous pouvez régler la luminosité de l'écran de 0.1
à 1.0
, en 9 étapes, sur tout système qui "obéit" xrandr
.
Il suffit de l'exécuter avec l'argument "up" ou "down" pour augmenter/diminuer la luminosité actuelle d'un pas.
#!/usr/bin/env python3
import subprocess
import sys
arg = sys.argv[1]
# get the data on screens and current brightness, parsed from xrandr --verbose
current = [l.split() for l in subprocess.check_output(["xrandr", "--verbose"]).decode("utf-8").splitlines()]
# find the name(s) of the screen(s)
screens = [l[l.index("connected")-1] for l in current if "connected" in l]
# find the current brightness
currset = (round(float([l for l in current if "Brightness:" in l][0][1])*10))/10
# create a range of brightness settings (0.1 to 1.0)
sets = [n/10 for n in list(range(11))][1:]
# get the current brightness -step
step = len([n for n in sets if currset >= n])
if arg == "up":
if currset < 1.0:
# calculte the first value higher than the current brightness (rounded on 0.1)
nextbright = (step+1)/10
if arg == "down":
if currset > 0.1:
# calculte the first value lower than the current brightness (rounded on 0.1)
nextbright = (step-1)/10
try:
for scr in screens:
# set the new brightness
subprocess.Popen(["xrandr", "--output", scr, "--brightness", str(nextbright)])
except NameError:
pass
set_brightness.py
Testez-le par les commandes:
python3 /path/to/set_brightness.py up
et
python3 /path/to/set_brightness.py down
Si tout fonctionne bien, ajoutez les deux commandes aux touches de raccourci: choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez les deux commandes ci-dessus à deux touches de raccourci différentes.
L'explication sur le code est à peu près dans le script :)
Dans l'état actuel des choses, les scripts définissent la luminosité de la même manière pour le ou les écrans "principaux" et éventuellement supplémentaires.