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


13

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

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

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


Любой специфичный для 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ключей. Это можно сделать, нажав эти клавиши в ответ на запрос меню «Настройки» → «Клавиатура» → «Ярлыки приложений».

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

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

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