Изменить интервал регулировки яркости

13

Поэтому всякий раз, когда я нажимаю на тусклые / светлые клавиши на клавиатуре, появляется всплывающее уведомление с яркостью экрана. Все это нормально, но я бы хотел изменить яркость при каждом нажатии клавиши.

Например, сейчас требуется всего 5 нажатий, чтобы перейти от абсолютно темного к наиболее яркому режиму. Однако из настройки «Яркость / Блокировка» я знаю, что экран способен работать с гораздо меньшими интервалами, чем этот.

Есть ли способ изменить яркость при каждом нажатии клавиш?

TreefrogInc
источник
Любой специфичный для Ubuntu ответ был бы оценен :)
Koen
1
Обычная шкала яркости afaict составляет 10 шагов. Если вы видите 5, очень вероятно, что что-то их удваивает. Например, возможно, Linux сам обрабатывает события, не осознавая, что они также передаются в вашу прошивку, которая затем применяет 2-е приращение к тому же нажатию клавиши. Источник в том, что это случилось со мной! Я должен был добавить acpi_backlight=vendorк моей загрузочной линии GRUB, и это все разобралось.
underscore_d

Ответы:

21

Поскольку вы не указали, какую среду рабочего стола вы используете, я также предоставлю некоторые специфичные для KDE детали.

Я только что обновил KDE до 4.9.2 и столкнулся с тем же неудобством. Я решил покопаться в коде, и вот мои выводы:

  1. Яркость фактически контролируется самим ядром. Согласно исходному коду KDE PowerDevil, для ядер существует два основных способа обеспечения интерфейса управления:
    • Системный вызов sysctl () (скорее всего, в системах * BSD)
    • интерфейс sysfs (скорее всего Linux)
  2. Интерфейс sysfs находится по адресу /sys/class/backlight/*your_backlight_type*/. Вот как это выглядит для меня:
    $ ls -1 / sys / class / backlight / intel_backlight /
    actual_brightness
    bl_power
    яркость
    устройство
    max_brightness
    мощность
    подсистема
    тип
    uevent
    Сейчас для нас актуальны два файла: brightnessи max_brightness. И вот как они могут быть использованы:
    $ cd / sys / class / backlight / intel_backlight
    $ cat max_brightness 
    +976
    яркость кошки 
    176
    $ echo 77 | яркость sudo tee
    77
    
    Первая команда позволяет определить максимальную яркость, которую вы можете установить (минимум всегда равен нулю). Второй позволяет узнать, на какое значение установлена ​​фактическая яркость. А с третьим вы можете установить любое значение по вашему желанию в диапазоне [0; max_brightness].
  3. KRunner KDE по-прежнему может устанавливать любой уровень яркости. Нажмите Alt-F2 и введите:

    яркость экрана 17

  4. Код обработки клавиатуры Brightness Upи Brightness Downклавиш KDE имеет инкрементное значение 10%. Следовательно, если вы не хотите возиться со сборкой KDE из источников, вы ничего не можете с этим поделать.

  5. Плазмоид KDE BatteryMonitor имеет свой собственный регулятор яркости, приращение которого также жестко задано как 10%, но теперь нам повезло, поскольку он написан на QML: $ sudo nano /usr/share/kde4/apps/plasma/plasmoids/battery/contents/ui/PopupDialog.qml( upd: в KDE 4.11 он был перемещен в BrightnessItem.qml), перейдите к раздел, который выглядит как

    Components.Slider {
            идентификатор: яркость
            минимальное значение: 0
            MaximumValue: 100
            stepSize: 10
            onValueChanged: BrightChanged (значение)
        }
    и измените размер шага на то, что вы хотите. После повторного входа вы увидите изменения.

лозы
источник
Никогда не знал, что мы можем сделать это ... Спасибо, что поделились этим.
Вишну Кумар
1
@vines: ты мой хранитель глаз !!! Миллион благодарностей
vikkyhacks
Как узнать, что такое «ваш_бэклайт_тип»? (шаг 2) У меня есть два варианта, не знаю, с какого начать возиться.
Коен
И: / Как это будет работать в Ubuntu? (шаг 4 и / или 5; т.е. фактически установка интервала яркости)
Koen
2
PS: По крайней мере, теперь KDE Battery Monitor / Energy Saving, хотя и работает при нажатии, поддерживает почти произвольную яркость при перетаскивании ползунка.
underscore_d
8

Это то, что я сделал, и это работает намного лучше для меня. У моего экрана много приращений яркости, так как он имеет светодиодную подсветку, и кто-то решил воспользоваться этим.

sudo apt-get install xbacklight
# ..and test it..
xbacklight -dec 20
xbacklight -inc 20
# If this works for you, you can proceed

Я использую KDE, но это относится и к Gnome. Для KDE:

  • Откройте Системные настройки
  • Открытые ярлыки и жесты
  • Выберите Custom Shortcuts в левой панели, если он еще не выбран
  • Щелкните правой кнопкой мыши пустую часть списка действий и выберите New-> Global Shortcut
  • Создайте один с именем "Яркость вверх" и один с именем "Яркость вниз"
  • Для запуска используйте клавиши увеличения / уменьшения яркости. Они будут конфликтовать со значениями по умолчанию, но вы можете просто переназначить их на это действие.
  • Для действия введите (например) «xbacklight -inc 3» или «xbacklight -dec 3» (без кавычек)
    • Большие числа увеличивают / уменьшают подсветку больше, а меньшие - меньше.

Вы также можете установить определенный процент:

xbacklight -set 100

Иногда увеличение или процентное изменение могут не иметь никакого эффекта. Это связано с тем, что аппаратное обеспечение допускает только определенные настройки, и используется значение, наиболее близкое к выбранному проценту.

Между прочим, я с радостью обнаружил, что, несмотря на то, что это программа более низкого уровня, которая вносит изменения, KDE по-прежнему распознает изменение яркости экрана и отображает процент яркости соответствующим образом. :-)

Мистер Б
источник
Это тоже отличный ответ. Я могу подтвердить, что он работает на Debian 8.2 с KDE - и что KDE действительно достаточно умен, чтобы заметить это и показать OSD. Теперь, чтобы сделать несколько ярлыков!
underscore_d
0

Мелкозернистое управление с аппаратными переключателями яркости

Во-первых, установите xbacklight

$ sudo apt install xbacklight

Во-вторых, проверьте, есть ли у вас контроль над подсветкой.

$ xbacklight -1
$ xbacklight +5

Если эти команды приводят к No outputs have backlight propertyошибке, выполните следующие действия по исправлению, прежде чем продолжить.

После того, как xbacklight -1и xbacklight +1работа из командной строки, перейдите с назначением этих команд соответственно XF86MonBrightnessDownи XF86MonBrightnessUpключей. Это можно сделать, нажав эти клавиши в ответ на запрос меню «Настройки» → «Клавиатура» → «Ярлыки приложений».

Наконец, перезагрузитесь, чтобы эти изменения вступили в силу.

Настройки клавиатуры

Серж Строобандт
источник