Как вы меняете яркость, цвет и резкость из командной строки?


32

Я управляю своим ПК с помощью SSH и скриптов. Как я могу изменить яркость, цвет и резкость из командной строки?

Попытка 1: не удалось

$ sudo redshift -t 5000:5000 -g .5
Cannot list GNOME panel applets.
Initialization of gnome-clock failed.
Trying next provider...
Latitude and longitude must be set.

Попробуйте 2: не удалось

$ cat brightness 
20
$ cat max_brightness 
20
$ echo 1 | sudo tee /sys/class/backlight/acpi_video0/brightness 
1
$ echo 20 | sudo tee /sys/class/backlight/acpi_video0/brightness 

Любой альтернативный способ сделать?

Последующие действия : http://jonls.dk/redshift/

[command]     [1000K to 10000K]       [effects 0.1 to 10.0]
|       |     /      /                /
^       ^     ^      ^                ^
redshift  -t  1000:1000   -l 0:0  -g .1; Dark
redshift  -t  1000:1000   -l 0.0  -g  5; Bright

Смотрите askubuntu.com/questions/57236/… для изменения яркости
Lekensteyn

@Lekensteyn: пожалуйста, смотрите размещенный комментарий. Не сработало, я использую 11.04 и попробовал эхо от 0 до 20, остается тем же.

Обратите внимание, что применение гамма-коррекции ( -gаргумент для красного смещения) - это не то же самое, что регулировка яркости ( -b)
Дзамо Нортон,

Ответы:


43

Если драйвер вашей видеокарты это поддерживает, то вы можете использовать xrandr.

Следующая команда перечисляет текущую конфигурацию:

xrandr --current --verbose

Если вы хотите изменить конфигурацию вывода, то вам нужно имя выхода. Это имя является частью вывода xrandr --current, например LVDS1.

Яркость можно изменить следующим образом:

xrandr --output <outputname> --brightness 0.8

Гамма:

xrandr --output <outputname> --gamma 0.5:1.0:1.0

1
это работает, к вашему сведению: новые ноутбуки используют eDP
nwgat

Я обнаружил, что мне не нужно использовать эту verboseопцию.
Дэвид Оливер

2
Было бы полезно увидеть пример вывода для "xrandr --output <outputname> --brightness 0.8"
hydroxide

17

xrandr не будет увеличивать яркость экрана на аппаратном уровне (тот, который изменяется клавишами яркости дисплея ноутбука). Как сказано в руководстве xrandr:

--brightness яркость

Умножьте значения гаммы на crtc, в данный момент прикрепленные к выходу, на указанное плавающее значение. Полезно для слишком ярких или слишком тусклых выходов. Тем не менее, это только программная модификация, если ваше оборудование имеет поддержку для изменения яркости, вы, вероятно, предпочтете использовать xbacklight.

Вместо этого используйте xbacklightдля изменения яркости:

xbacklight -get #get the current level
xbacklight -set *percent* #set brightness to a given percentage
xbacklight -inc *percent* #increase by a given percentage
xbacklight -dec *percent* #decrease by a given percentage

Однако, поскольку это то же самое, что использование клавиш яркости ноутбука, оно не может выходить за пределы 0-100%. Если вы хотите сделать ваш экран ярче / темнее, чем этот предел, вы можете использовать xrandr для принудительной установки программных уровней яркости:

xrandr --output LVDS1 --brightness 0.5

Обратите внимание, что xrandrпринимает дроби (0,0-1,0), а xbacklightпринимает проценты (0-100)


3
В моем случае xrandr --output eDP1 --brightness 0.2подход работает нормально, пока xbacklight -set 20не получается.
Landroni

1
принимает дроби (0.0-1.0) , вводит в заблуждение. Для моего внешнего TB3 DisplayPort к HDMI это работало нормально:xrandr --output DP-1-1 --brightness 1.2
WinEunuuchs2Unix

@ WinEunuuchs2Unix Да, установив его> 1,0, обрезает гамму дисплея в обмен на общее увеличение яркости. Другими словами, вы теряете детали в ярких областях.
Виль

Это связано с температурой монитора? Я имею в виду, с xrandrтемнее должно быть холоднее, чем с помощью какого-либо другого инструмента? Я боюсь, что мой монитор слишком теплый.
Сигур

7

Для ноутбуков я только что узнал из man xrandr:

   --brightness brightness
          Multiply  the gamma values on the crtc currently attached to the
          output to specified floating value. Useful for overly bright  or
          overly  dim outputs.  However, this is a software only modifica‐
          tion, if your  hardware  has  support  to  actually  change  the
          brightness, you will probably prefer to use xbacklight.

Так я попробовал

xbacklight -get
xbacklight -set 70

и это работает!


5

Если вы используете красное смещение, вам нужно указать широту и долготу, чтобы он знал, когда меняется время суток. Что-то типа

redshift -t 5000:5000 -l 55.7:12.6 -g .5 

Хотя это может быть немного нетрадиционное использование красного смещения :)

Кроме того, он прекрасно работает без sudo.


+1, который действительно сделал маленький трюк. Но на самом деле я ищу более RAW яркость + цвет + гамма-тюнинг.

3

Я использую этот скрипт, чтобы установить яркость на всех моих дисплеях одновременно:

#!/bin/bash
if [ -z $1 ]; then
    echo "Usage: brighntess BRIGHTNESS"
    echo "BRIGHTNESS is a float (0.0-1.0)"
else
    xrandr --listmonitors | grep "^ " | cut -f 6 -d' ' | \
    xargs --replace=MONITOR xrandr --output MONITOR --brightness $1
fi

2

Поменяйте VGA-1 на вашем устройстве

xrandr --listmonitors
Monitors: 1

0: + * VGA-1 1366 / 410x768 / 230 + 0 + 0 VGA-1

xrandr --output VGA-1  --brightness 1   (for 100% brightness)
xrandr --output VGA-1  --brightness 1.5 (for 150% brightness)
xrandr --output VGA-1  --brightness 2   (for 200% or double brightness)
xrandr --output VGA-1  --brightness 4 (for 400% brightness)

Осторожно с 0 (вам нужно перезапустить Xorg):

xrandr --output VGA-1  --brightness 0 (for Blank Screen)

xrandr --output VGA-1  --brightness 0.8 (for 80% brightness)

Это работает на обычных ЖК-мониторах, поскольку они не поддерживают аппаратную яркость, как это делают ноутбуки.


0

Также есть DDC / CI и клиент linux: ddccontrol (и gddccontrol для GUI).

Tt в официальном хранилище Ubuntu:

sudo apt install ddccontrol ddccontrol-db gddccontrol
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.