GithubHelp home page GithubHelp logo

kapnix00 / illuminanced-runit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mikhail-m1/illuminanced

0.0 0.0 0.0 34 KB

Ambient Light Sensor Daemon for Runit init (specifically Artix Linux Runit)

License: GNU General Public License v3.0

Shell 4.00% Rust 96.00%

illuminanced-runit's Introduction

Ambient Light Sensor Daemon For Linux

It's user mode daemon for change brightness base on light sensor value, designed for Asus Zenbooks, but may be used for other vendors after some tune.

How to test befor install

Run from a terminal sudo watch cat /sys/bus/acpi/devices/ACPI0008\:00/iio\:device0/in_illuminance_raw and check that number is changing (try close the sensor or add more light). If the number is still the same it means the sensor driver doesn't work. If you see file not found error try to find correct path for in_illuminance_raw inside /sys/bus/acpi/devices/.

For ZBook 15 G6, and may be others, sensor path is /sys/bus/iio/devices/iio:device0/in_illuminance_raw. So try sudo watch cat /sys/bus/iio/devices/iio:device0/in_illuminance_raw and change the config if it works for you.

Supported laptops

Works on ASUS Zenbooks with build in driver acpi-als:

  • UX303UB
  • UX305LA
  • UX305FA
  • UX310UQ
  • UX330UA

On Dell Inspiron 13 7353, need to change driver path and brightness levels.

Some times works (base on responses)

  • UX303UA
  • UX305CA with als driver
  • UX430UQ Ubuntu with build in driver acpi-als, an extra ACPI call to enable the sensor (_SB.PCI1.LPCB.EC0.ALSC)
  • UX410UQ

Doesn't work on Zenbooks because of driver issue:

  • UX303LN
  • UX305UA
  • UX31A
  • UX32LN

Something wrong with Arch Linux may be related with syslog, a pull request is appreciated

Please fill a response form, it may helps other users

Keyboard back light is not adjust because my laptop doesn't have it. Want to help? Create an issue.

Install package (experimental)

Finally I found time to create deb package

To install and start run next commands after download:

sudo dpkg -i ~/Download/illuminanced_1.0-0.deb
sudo systemctl enable illuminanced.service
sudo systemctl start illuminanced.service

You can check status by running systemctl status illuminanced.service

Please open an issue if it doesn't work.

How to build & install

  • install Rust: curl https://sh.rustup.rs -sSf | sh
  • clone : git clone https://github.com/mikhail-m1/illuminanced.git
  • build: cd illuminanced; cargo build --release
  • install sudo ./install.sh

How to Adjust

  • open a config file /usr/local/etc/illuminanced.toml (Default)
  • choose how many light values do you need by [general].light_steps
  • set defined points count by [light].points_count
  • set each point by illuminance_<n> and light_<n> where illuminance from in_illuminance_raw (see below) and light in range [0..light_steps)

How it works

Reads illuminance from /sys/bus/acpi/devices/ACPI0008:00/iio:device0/in_illuminance_raw, apply Kalman like filter, set back light value base on defined points. Unfortunately I cannot find a way how get events from iio buffers, for acpi-als driver, so now it polls.

<Fn> + A

Switches three modes:

  • Auto adjust
  • Disabled
  • Max brightness (useful for movies, can be disabled by config file /usr/local/etc/illuminanced.toml)

Contribution

Any feedback are welcome

illuminanced-runit's People

Contributors

mikhail-m1 avatar brianclemens avatar mkatychev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.