+  OpenStuff Site Community
|-+  Поддержка» HOWTO» Ubuntu» Дополнительные клавиши на ноутбуках
Страниц: [1]
  Печать  
Автор Тема: Дополнительные клавиши на ноутбуках  (Прочитано 858 раз)
Burillo

Баклан

Новичок
*
Сообщений: 36


Просмотр профиля
« : 11 Апрель 2008, 10:49:53 »

Мои ноутбучные клавиши (добавление яркости экрана, почта и т д) не работали в Kubuntu Gutsy (а с Feisty работали) и я решил, что проще будет реализовать это самому.

ВНИМАНИЕ: у вас должны быть установлены пакеты acpi, acpid и acpi-support.

у меня не было никакого желания выяснять почему скрипт работает неправильно при некоторых значениях, поэтому я просто жестко прописал эти значения в скрипте. Да, это по-ламерски, я знаю, возможно, кто то предложит универсальное решение.

Вам, возможно, придется изменить под себя эти скрипты, если вы хотите использовать их на своем ноутбуке!

1. Где все скрипты?

Скрипты, которые вызываются ACPI лежат в /etc/acpi. Имена могут меняться в зависимости от системы.

2. Что мне нужно знать?

Для начала, нужно узнать где находится процесс, отвечающий за подсветку.
Код:
more /usr/lib/hal/scripts/linux/hal-system-lcd-get-brightness-linux
Просмотрите файл и найдите нужный путь к процессу - ищите по фирме-производителе ноутбука. Например, у меня ноутбук фирмы ASUS, а в файле есть вот такая секция:
Код:
elif [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "asus" ]; then
        # cat /proc/acpi/asus/brn
        #  5
        value="`cat $HAL_PROP_LINUX_ACPI_PATH`"
отсюда мы узнаем, что путь к моему процессу подсветки - /proc/acpi/asus/brn.

Далее, вам может понадобиться знать какие значения может принимать этот процесс. Чтобы найти максимальное значение, вам надо ввести какое нибудь большое число в процесс:
Код:
echo 999 > /proc/acpi/asus/brn (замените путь на нужный вам)
и проверить какое значение принял процесс:
Код:
cat /proc/acpi/asus/brn (заменить путь на нужный вам)
мой процесс принял значение 15, так что это и есть максимальное значение для моего процесса. Минимальное значение скорее всего равно нулю, но проверить это не помешает - просто введите вместо 999 число 0 и проверьте значение.

3. Скрипты

Этот поднимает уровень подсветки:
Код:
#!/bin/bash
FILENAME='/proc/acpi/asus/brn'
read line < $FILENAME
elif [ "$line" -eq 9 ]; then
echo 10 > /proc/acpi/asus/brn
else
line=$(expr $line + 1)
echo $line > $FILENAME
fi

Этот его опускает:
Код:
#!/bin/bash
FILENAME='/proc/acpi/asus/brn'
read line < $FILENAME
#              if [ "$line" -eq МИНИМУМ ]; then   только если минимальное значение НЕ равно нулю!
#              echo МИНИМУМ > $FILENAME           заменить МИНИМУМ на ваше значение
elif [ "$line" -eq 10 ]; then
echo 9 > $FILENAME
else
line=$(expr $line - 1)
echo $line > $FILENAME
fi

Я не так уж хорошо владею bash, так что если кто нибудь поймет ПОЧЕМУ скрипт не работает при смене значений с 9 на 10 и отредактирует как надо - что ж, тем лучше.

4. Назначение скриптов кнопкам

Чтобы найти какой скрипт используется кнопкой - вам нужно нажать эту кнопку (например Fn+F6 для усиления подсветки на моем ноутбуке) и затем набрать в консоли
Код:
tail /var/log/acpid
Результат будет примерно такой:
Код:
[Fri Apr 11 13:55:00 2008] received event "video LCDD 00000086 00000000"
[Fri Apr 11 13:55:00 2008] notifying client 5206[103:116]
[Fri Apr 11 13:55:00 2008] notifying client 5791[0:0]
[Fri Apr 11 13:55:00 2008] executing action "/etc/acpi/video_brightnessup.sh"
[Fri Apr 11 13:55:00 2008] BEGIN HANDLER MESSAGES
[Fri Apr 11 13:55:00 2008] END HANDLER MESSAGES
[Fri Apr 11 13:55:00 2008] action exited with status 0
[Fri Apr 11 13:55:00 2008] completed event "video LCDD 00000086 00000000
точность может отличаться, но самое главное здесь - ИМЯ ФАЙЛА. В данном случае имя файла - "/etc/acpi/video_brightnessup.sh" (помните я вам говорил, что все скрипты лежат в /etc/acpi?). Вам нужно заменить этот файл (сохраните оригинал на всякий случай).

P. S.

на основе этого скрипта можно назначить что угодно на какую угодно кнопку.

P. P. S. может работать и в других дистрибутивах, я проверял только на Kubuntu 7.10.
Записан

Страниц: [1]
  Печать  
 
Перейти в:  

Theme created by panic and modify by unlimited