Skip to content

Instantly share code, notes, and snippets.

@PoZitron
Created February 26, 2011 10:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PoZitron/845105 to your computer and use it in GitHub Desktop.
Save PoZitron/845105 to your computer and use it in GitHub Desktop.
Monitor brightness change
#!/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/
#!/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