Created
February 26, 2011 10:57
-
-
Save PoZitron/845105 to your computer and use it in GitHub Desktop.
Monitor brightness change
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Скрипт для изменения яркости ЖК-монитора. | |
# v1.2 | |
dev="dev:/dev/i2c-0" # устройство. Выполните ddccontrol -p и подставьте сюда найденное значение. | |
reg="0x10" # код яркости | |
max=100 # максимальное значение | |
[ -z "$1" ] && echo "Использование: `basename $0` <РАЗНИЦА ЯРКОСТИ>" 1>&2 && exit 1 | |
# запоминаем текущее значение` | |
state=`ddccontrol -r $reg $dev 2>/dev/null|grep -o +/..*/$max | cut -d/ -f2` | |
#state=`ddccontrol -r $reg $dev 2>/dev/null|grep -o +/../$max | cut -b 3,4` | |
# складываем текущее значение с параметром | |
let "newstate = $state + $1" | |
# проверяем что не вышли за границы допустимых значений | |
if [ $newstate -lt 0 ]; then newstate=0; fi | |
if [ $newstate -gt $max ]; then newstate=$max; fi | |
dbus-send-brigtness.py $newstate | |
# отправляем значение в монитор. запрещаем вывод всяких сообщений, потому что там много мусора | |
ddccontrol -r $reg $dev 1>/dev/null 2>/dev/null -w $newstate | |
exit 0 | |
Скрипт для изменения яркости ЖК-монитора. | |
Зависимости: ddccontrol | |
Первым делом, необходим доступ к устройству от обычного пользователя. Для этого, любыми средствами системы, создайте новую группу i2c и включите своего пользователя в эту группу. | |
Средствами udev мы сделаем так, что бы устройство которым мы хотим управлять, было доступно пользователю. Для этого, создайте новый файл /etc/udev/rules.d/47-i2c.rules и впишите туда: KERNEL=="i2c-[0-9]*", GROUP="i2c" | |
Теперь необходимо загрузить модуль i2c-dev, впишите его в /etc/modules, что бы он загружался при старте системы. Чтобы сразу опробовать скрипт, можно выполнить sudo modprobe i2c-dev, модуль i2c-dev загрузится на текущую сессию. | |
Вот только после этого всего скрипт будет работать :) | |
В скрипте всего 1 параметр, в котором указываем необходимую разницу в яркости. | |
Примеры: | |
brightness.sh -10 | |
Уменьшает яркость на 10. | |
brightness.sh 20 | |
Увеличивает яркость на 20. | |
Так что всё просто. | |
Автор: PoZitron | |
http://juick.com/PoZitron/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
"""This is a python 2.5 script that creates a brightness notification using dbus.""" | |
# original: http://ubuntuforums.org/showthread.php?p=8437808 | |
# modified by PoZitron | |
import dbus | |
import sys | |
item = ('org.freedesktop.Notifications') | |
path = ('/org/freedesktop/Notifications') | |
interface = ('org.freedesktop.Notifications') | |
try: | |
value = int(sys.argv[1]) | |
except: | |
print "Usage: " + sys.argv[0] + " <int_value>" | |
exit(-1) | |
if value < 20: | |
icon = 'notification-display-brightness-off' | |
elif value >= 20 and value < 40: | |
icon = 'notification-display-brightness-low' | |
elif value >= 40 and value < 60: | |
icon = 'notification-display-brightness-medium' | |
elif value >= 60 and value < 80: | |
icon = 'notification-display-brightness-high' | |
else: | |
icon = 'notification-display-brightness-full' | |
array = '' | |
hint = {'x-canonical-private-synchronous': 'brigtness','value': value} | |
time = 1 | |
app_name = ('') | |
title = (' ') # space is important! | |
body = ('') | |
bus = dbus.SessionBus() | |
notif = bus.get_object(item, path) | |
notify = dbus.Interface(notif, interface) | |
notify.Notify(app_name, 0, icon, title, body, array, hint, time) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment