acpibacklight
=============
|PyPI version|
A python library and script for changing brightness on Linux via acpi.
Allows for easing animations too!
.. code:: bash
pip install acpibacklight
You can use the script ``acpi-ease-backlight`` to adjust the backlight
with easing via acpi on your device. See ``acpi-ease-backlight --help``
for options.
CLI Usage
---------
After installing via pip, use the script ``acpi-ease-backlight``. Here
is how you might use it:
.. code:: bash
$ acpi-ease-backlight -h # see help
...
$ acpi-ease-backlight show # show the current backlight value
4000
$ acpi-ease-backlight max # show the your display's max backlight value
4882
$ acpi-ease-backlight set 2000 # set the backlight to 2000, over the default
# duration of 0.25 seconds and using the default
# easing function 'easeOutCubic'
$ acpi-ease-backlight -d 1 -e easeInOutQuad set 3000
# set the backlight to 3000 over duration of
# 1 second, using the easing function 'easeInOutQuad'
$ acpi-ease-backlight -d 0.5 dec 1000
# decrease the current backlight value by
# 1000 over a duration of 0.5 seconds
Library Usage
-------------
Instantiating
^^^^^^^^^^^^^
Use the class ``acpibacklight.AcpiBacklightControl`` for changing the
backlight level in various ways. ``AcpiBacklightControl`` is designed to
use python *with* statements similarly to file objects and python's
``open`` builtin:
.. code:: python
from acpibacklight import AcpiBacklightControl
with AcpiBacklightControl() as ctrl:
# set the brightness without animating
ctrl.brightness = 2000
# get max brightness on this device
new_brightness = ctrl.max
# You can also use the animate function on the AcpiBacklightControl.
# See the docstring for kwargs
ctrl.animate(new_brightness, duration=0.75)
Alternatively, you can construct, then open, then close the
``AcpiBacklightControl``:
.. code:: python
ctrl = AcpiBacklightControl()
ctrl.open()
ctrl.animate(ctrl.brightness - 1000)
ctrl.close()
If you have multiple ACPI backlight devices, specify the name when
constructing the ``AcpiBacklightControl``. Otherwise, the default is the
first device directory found.
.. code:: python
ctrl = AcpiBacklightControl(device_dir='intel_backlight')
Easing Functions
^^^^^^^^^^^^^^^^
You can pass an easing function to be used in ``animate()`` by the
``easing_func`` keyword arg. This package uses
`PyTweening <https://github.com/asweigart/pytweening>`__ for its default
animation and the CLI, so you can easily pass one of those:
.. code:: python
import pytweening
ctrl.animate(2345, easing_func=pytweening.easeInOutBounce)
Finally, if you want to create and pass your own easing function, it
should take one paramater (time) between 0 and 1, and return a value
between 0 and 1. For instance, a linear easing function would look like:
.. code:: python
def linear_easing(t):
# t is always in the range [0, 1]
return t
# ...
ctrl.animate(1234, easing_func=linear_easing)
.. |PyPI version| image:: https://badge.fury.io/py/acpibacklight.svg
:target: https://badge.fury.io/py/acpibacklight