Использование сочетаний клавиш Compizconfig для запуска команды

Я пытаюсь исправить яркость клавиш клавиатуры.

Используя acpi_listen, нажимая яркость вверх / вниз, я получаю результат:

video DD03 00000087 00000000
video DD03 00000086 00000000

Запуск showkey:

keycode 225 press
keycode 225 release
keycode 224 press
keycode 224 release

Я установил на compizconfi

0
задан 26 February 2012 в 01:17

1 ответ

Существует много способов скорректировать экранную подсветку монитора, ноутбука или интегрированной панели (такой как iMac) использование программного обеспечения, но в зависимости от аппаратных средств и модели, иногда только некоторые опции доступны.

Примеры:

  • яркостью управляет указанная горячая клавиша поставщика. И нет никакого интерфейса для ОС для корректировки яркости.
  • яркостью управляет ОС:
  • яркостью мог управлять ACPI
  • яркостью мог управлять графический драйвер.

Существует превосходная статья о Wiki, суммирующей возможные способы сделать это в: https://wiki.archlinux.org/index.php/Backlight

Однако, если ACPI, xbacklight или xcalib не удается скорректировать Ваши уровни яркости, которые мы можем использовать setpci команда для управления видеокартой непосредственно. Это - метод, который мы будем использовать для этого учебного руководства.

Примечание: Этот метод должен только использоваться, если вышеупомянутым программам не удается выполнить то, что Ваше желание сделать и не предпочтительный метод для того, чтобы сделать так. Однако в многочисленных случаях, это - единственное, которое будет.


То, что собиралось сделать, связывают setpci управляйте к сочетанию клавиш на Вашем использовании клавиатуры xbindkeys, так, чтобы, когда определенные клавиши будут нажаты, Ваша яркость корректировалась или вниз.

Хорошо Давайте начнем!!

  • Сначала мы должны определить Адрес устройства Вашей видеокарты, в большинстве случаев ее попытка быть 00:02.0 но не всегда, таким образом, вот то, как проверить.

Откройте окно терминала, и в командной строке вводят следующее:

lspci |grep -i vga

Это возвратит информацию об отображении строки, такую как поставщик, модель, версия и т.д... Часть интересовалась, в самом начале и должен посмотреть что-то как следующее:

00:02.0

Примечание: Вывод может варьироваться

Это - Адрес устройства Вашей видеокарты, и мы будем использовать это наряду с setpci управляйте для управления уровнями яркости. Поэтому Запишите Его!


  • Затем мы должны загрузить xbindkeys. Это будет программой, которая делает фактическую привязку setpci управляйте к сочетанию клавиш на Вашей клавиатуре.

Откройте окно терминала и введите следующее в командной строке:

sudo apt-get install xbindkeys

  • Теперь мы собираемся создать два файла в нашем Корневом каталоге это xbindkeys будет использовать, когда это запустит.

Откройте окно терминала, если Вы уже не имеете и изменение в Ваш Корневой каталог. Введите следующие команды в командной строке:

touch .xbindkeysrc

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

touch .xbindkeys.noauto

Это просто создает пустой файл, но это крайне важно, потому что, когда это существует, это сохраняет xbindkeys от запуска автоматически при начальной загрузке. Хотя мы хотим xbindkeys для запуска автоматически, мы хотим управлять им сами, потому что Xserver запускает его к рано в процессе начальной загрузки. Это вызывает наши конфигурации, к которым мы делаем иногда не функция правильно. Мы добавим названный сценарий xb_start.sh к нашим Приложениям Запуска позже в этом учебном руководстве, которое будет заботиться о процессе запуска.


Давайте узнаем то, что ключи делают что!!

В экономящих время целях я собираюсь автоматически предположить, что Xserver уже распознает клавиши, которые Вы нажимаете на своей клавиатуре для изменения яркости, он просто ничего не делает при нажатии их. В моем случае это Fn + Up Arrow или Down Arrow

Но мы не можем только поместить слова Fn,Up Arrow или Down Arrow в нашем файле конфигурации мы должны узнать, каковы коды клавиши.

В большинстве случаев они собираются быть кодом клавиши 232 для корректировки яркости вниз и кода клавиши 233 для корректировки яркости, но мы лучше удостоверяемся.

Откройте окно терминала и введите следующее в командной строке:

xmodmap -pke |grep -i xf86monbrightness

Это должно возвратить две строки, которые выглядят подобными следующему:

keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown

keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp

Информация касалась, числа, которые прибывают после кода клавиши. В этом случае это 232 и 233. Запишите любые числа, на которые это снижается, поскольку мы будем использовать их позже.


Давайте начнем соединять все это!!

  • Теперь мы собираемся использовать информацию, которую мы собрали и записали для добавления некоторых строк к .xbindkeysrc файл Вы создали ранее в Вашем Корневом каталоге.

Используя Ваш любимый текстовый редактор, откройтесь .xbindkeysrc файл и или копия и вставка или тип следующие строки к нему и сохраняет его:

Примечание: Если 232 и 233 не те же коды клавиши, которые Вы записали ранее, измените их в этом файле

"/usr/local/bin/blevel_down.sh"
c:232
"/usr/local/bin/blevel_up.sh"
c:233

Что делало, здесь говорит xbindkeys работать blevel_down.sh сценарий, когда мы нажимаем ключевую комбинацию на нашей клавиатуре, которая корректирует яркость вниз. В моем случае это Fn + Down Arrow. На следующей строке мы говорим этому работать blevel_up.sh для Fn + Up Arrow

Примечание: Ключевые комбинации варьируются, проверяют изображения на ключах Вашей клавиатуры для определения, которые они для Вас.


Позволяет пишут сценарии!!

blevel_up.sh и blevel_down.sh сценарии создаются для возрастающей корректировки яркости или вниз передающими аргументами setpci команда. Так в значительной степени при нажатии любых клавиш, которые делают корректировку, яркость повышается немного или вниз немного каждого раза. xb_start.sh используется для запуска xbindkeys когда загрузки компьютера, но позволяют, чтобы другие процессы завершились прежде, чем сделать так.

Примечание: Если Ваш Адрес устройства Вашей Видеокарты, которую мы определили ранее, отличается от той в blevel_up.sh и blevel_down.sh необходимо будет изменить соответственно. Скорее всего, они должны быть тем же.

  • Мы создадим blevel_up.sh во-первых:

Откройте свой любимый текстовый редактор и или копия и вставьте или введите следующее в файл и сохраните его как blevel_up.sh в Вашем Корневом каталоге

#!/bin/bash

if [ ! -f /home/$USER/.blevel ]; then 

    touch /home/$USER/.blevel
    echo "FF" > /home/$USER/.blevel
    state="FF" 

else

    state=`cat /home/$USER/.blevel`

fi

new_state=$(echo "$[0x$state+0x10]")

if [ "$new_state" -gt 255 ]; then 

    sudo setpci -s 00:02.0 F4.B=FF

else

    state=$(echo "obase=16; $new_state" | bc)
    sudo setpci -s 00:02.0 F4.B=$state
    echo $state > /home/$USER/.blevel

fi

  • Теперь мы создадим blevel_down.sh сценарий:

Откройте свой любимый текстовый редактор и или копия и вставьте или введите следующее в файл и сохраните его как blevel_down.sh в Вашем Корневом каталоге

#!/bin/bash

if [ ! -f /home/$USER/.blevel ]; then 

    touch /home/$USER/.blevel
    echo "FF" > /home/$USER/.blevel
    state="FF" 

else

    state=`cat /home/$USER/.blevel` 

fi

new_state=$(echo "$[0x$state-0x10]")

if [ "$new_state" -lt 15 ]; then 

    sudo setpci -s 00:02.0 F4.B=0F

else

    state=$(echo "obase=16; $new_state" | bc)
    sudo setpci -s 00:02.0 F4.B=$state
    echo $state > /home/$USER/.blevel

fi

  • Теперь мы создадим xb_start.sh сценарий:

Откройте свой любимый текстовый редактор и или копия и вставьте или введите следующее в файл и сохраните его как xb_start.sh в Вашем Корневом каталоге

#!/bin/bash

sleep 10
/usr/bin/xbindkeys &

Позволяет делают сценарии Глобальными!!

  • Теперь то, что мы хотим сделать, переместить эти три сценария, до которых мы просто создали от нашего Корневого каталога /usr/local/bin и устанавливает полномочия так, чтобы, неважно, кто зарегистрирован на машине, они могут выполнить их.

Откройте окно терминала и введите следующее в командной строке:

sudo mv blevel_up.sh blevel_down.sh xb_start.sh /usr/local/bin

sudo chmod 755 /usr/local/bin/blevel_up.sh

sudo chmod 755 /usr/local/bin/blevel_down.sh

sudo chmod 755 /usr/local/bin/xb_start.sh


Теперь сделать setpci смогите работать, не вводя пароль каждый раз

Быть этим setpci вносит изменения в определенные системные файлы, обычный пользователь должен был бы снабдить префиксом setpci с sudo eachtime для выполнения команды. Это потребовало бы, чтобы Вы ввели пароль eachtime, Вы хотите скорректировать яркость своего экрана. Если мы делаем конкретную запись в /etc/sudoers файл мы можем обойти это.

Откройте окно терминала и введите следующее в командной строке:

sudo visudo

Это откроется /etc/sudoers файл так, чтобы мы могли внести необходимые изменения.

Прокрутите полностью к нижней части файла и введите следующее:

ALL ALL = NOPASSWD:/usr/bin/setpci

Примечание: Файл Чувствителен к регистру так тип точно, как это здесь

Сохраните файл и выход


Почти законченный!!

Последняя вещь, которую мы должны сделать, добавляют наши xb_start.sh сценарий к нашим Приложениям Запуска так, чтобы xbindkeys запускается при начальной загрузке точно, когда мы хотим ее к.

Перезагрузка и обладает!

1
ответ дан 26 February 2012 в 01:17

Другие вопросы по тегам:

Похожие вопросы: