Tengo un Alienware 13 R3 con pantalla OLED y por primera vez pude cambiar el brillo usando el comando xrandr. El problema era la ausencia de luz de fondo en las pantallas OLED, por lo que no podía cambiar el brillo ni con el teclado ni de ninguna otra manera. Ahora que sé que puedo cambiarlo, quiero poner una combinación de teclas para cambiar el brillo, digamos 0,1. Usé este comando para cambiar el brillo:
xrandr --output eDP-1-1 --brightness .5
¿Alguien sabe qué comando usar no para establecer el brillo, sino para aumentarlo o disminuirlo en algún valor, para poder vincularle una macro? ¡Gracias de antemano!
PD: Soy completamente nuevo en Linux, así que no seas duro conmigo :P
Respuesta1
Copie el script bash a continuación en un archivo llamadobright
Luego márcalo como ejecutable conchmod a+x bright
Guión de bash
#!/bin/bash
MON="DP-1-1" # Discover monitor name with: xrandr | grep " connected"
STEP=5 # Step Up/Down brightnes by: 5 = ".05", 10 = ".10", etc.
CurrBright=$( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
CurrBright="${CurrBright##* }" # Get brightness level with decimal place
Left=${CurrBright%%"."*} # Extract left of decimal point
Right=${CurrBright#*"."} # Extract right of decimal point
MathBright="0"
[[ "$Left" != 0 && "$STEP" -lt 10 ]] && STEP=10 # > 1.0, only .1 works
[[ "$Left" != 0 ]] && MathBright="$Left"00 # 1.0 becomes "100"
[[ "${#Right}" -eq 1 ]] && Right="$Right"0 # 0.5 becomes "50"
MathBright=$(( MathBright + Right ))
[[ "$1" == "Up" || "$1" == "+" ]] && MathBright=$(( MathBright + STEP ))
[[ "$1" == "Down" || "$1" == "-" ]] && MathBright=$(( MathBright - STEP ))
[[ "${MathBright:0:1}" == "-" ]] && MathBright=0 # Negative not allowed
[[ "$MathBright" -gt 999 ]] && MathBright=999 # Can't go over 9.99
if [[ "${#MathBright}" -eq 3 ]] ; then
MathBright="$MathBright"000 # Pad with lots of zeros
CurrBright="${MathBright:0:1}.${MathBright:1:2}"
else
MathBright="$MathBright"000 # Pad with lots of zeros
CurrBright=".${MathBright:0:2}"
fi
xrandr --output "$MON" --brightness "$CurrBright" # Set new brightness
# Display current brightness
printf "Monitor $MON "
echo $( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
- Cambie
MON="DP-1-1"
el nombre de su monitor, es decirMON="HDMI-1"
- Descubra los nombres de sus monitores usando
xrandr | grep " connected"
- Cambie
STEP=5
su valor de paso, por ejemplo,STEP=2
es menos perceptible
Llame al guión con:
bright Up
obright +
para aumentar el brillo por valor de pasobright Down
obright -
para disminuir el brillo por valor de pasobright
(sin parámetros) para obtener el nivel de brillo actual
Con suerte, los comandos bash/shell se pueden buscar fácilmente en Google con fines educativos, pero si tiene alguna pregunta, no dude en preguntar :)
8 minutos después de publicar la respuesta, se me ocurrió que podría haberlo usado bc
para matemáticas de punto flotante y haber guardado ~10 líneas de código y mucho tiempo de las 1,5 horas para escribirlo.se encoge de hombros.