{"id":42797719,"url":"https://github.com/mikhail-m1/illuminanced","last_synced_at":"2026-04-08T13:32:41.787Z","repository":{"id":74497601,"uuid":"75534037","full_name":"mikhail-m1/illuminanced","owner":"mikhail-m1","description":"Ambient Light Sensor Daemon for Linux","archived":false,"fork":false,"pushed_at":"2026-02-05T18:33:25.000Z","size":40,"stargazers_count":108,"open_issues_count":8,"forks_count":23,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-02-09T18:46:17.186Z","etag":null,"topics":["daemon","illuminance","light","linux","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mikhail-m1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"buy_me_a_coffee":"mikhailm1"}},"created_at":"2016-12-04T11:45:30.000Z","updated_at":"2026-02-01T09:21:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"22f2a3cd-3e09-4593-811a-abd06e70af44","html_url":"https://github.com/mikhail-m1/illuminanced","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mikhail-m1/illuminanced","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikhail-m1%2Filluminanced","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikhail-m1%2Filluminanced/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikhail-m1%2Filluminanced/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikhail-m1%2Filluminanced/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikhail-m1","download_url":"https://codeload.github.com/mikhail-m1/illuminanced/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikhail-m1%2Filluminanced/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31558382,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["daemon","illuminance","light","linux","rust"],"created_at":"2026-01-30T02:00:22.784Z","updated_at":"2026-04-08T13:32:41.779Z","avatar_url":"https://github.com/mikhail-m1.png","language":"Rust","funding_links":["https://buymeacoffee.com/mikhailm1"],"categories":["Rust"],"sub_categories":[],"readme":"# Ambient Light Sensor Daemon for Linux\nA user-space daemon that automatically adjusts screen brightness based on light sensor readings.\n\n## Testing Before Installation\n\nFirst, identify the light sensor device path, try to run from a terminal `find /sys/bus -name in_illuminance_raw`. In some cases the device name can be significantly different, try to broaden the search: `find /sys/bus -name '*illuminance*'`. When you have found a device, check that it works, for example:\n`sudo watch cat /sys/bus/acpi/devices/ACPI0008\\:00/iio\\:device0/in_illuminance_raw`. The readings should be changing (try closing the sensor or add more light). If the number is still the same it means the sensor driver doesn't work properly.\n\nFor ZBook 15 G6, Framework laptops, and maybe others, the sensor path is `/sys/bus/iio/devices/iio:device0/in_illuminance_raw`.\n\nYou need to put the device path to the config before starting the daemon.\nOn some laptops, the device name can be different after each reboot, you can use `*` in the device path in the config.\n\n## Supported laptops\n\nWorks on ASUS Zenbooks with built-in driver acpi-als:\n* UX303UB\n* UX305LA\n* UX305FA\n* UX310UQ\n* UX330UA\n\nAlso works on Framework laptops:\n* Framework 13 AMD\n* Framework 16 AMD\n\n## Install deb package\nDownload the deb package from [the last release](https://github.com/mikhail-m1/illuminanced/releases).\n\nTo install and start run next commands after download:\n```\nsudo dpkg -i ~/Download/illuminanced_1.0-0.deb\n# change config if device path is different\nsudo systemctl enable illuminanced.service\nsudo systemctl start illuminanced.service\n```\n\nYou can check status by running `systemctl status illuminanced.service`\n\n## Build \u0026 install\n* install Rust: `curl https://sh.rustup.rs -sSf | sh`\n* clone : `git clone https://github.com/mikhail-m1/illuminanced.git`\n* build: `cd illuminanced; cargo build --release`\n* change device path if needed\n* install `sudo ./install.sh`\n\n## Troubleshooting\nIf the service fails to start, try to run it in foreground mode to see what is wrong: `sudo /usr/local/sbin/illuminanced -d`.\n\n## How to Adjust\n* open a config file `/usr/local/etc/illuminanced.toml` (Default)\n* choose how many light values do you need by `[general].light_steps`\n* set defined points count by `[light].points_count`\n* set each point by `illuminance_\u003cn\u003e` and `light_\u003cn\u003e where` illuminance from `in_illuminance_raw` (see below) and light in range `[0..light_steps)`\n\n## How it works\nThe daemon reads illuminance from `/sys/bus/acpi/devices/ACPI0008:00/iio:device0/in_illuminance_raw`, applies Kalman-like filter, set backlight value based on defined points.\nUnfortunately, I cannot find a way how to get events from [iio buffers](https://www.kernel.org/doc/htmldocs/iio/iiobuffer.html), for acpi-als driver, so the daemon check the value every second.\n\n## Switch modes\nMy laptop has a special key to control brightness, which sends `KEY_ALS_TOGGLE\t\t0x230\t/* Ambient light sensor */` code. The daemon monitors it to switch between different modes. You can redefine the key by changing `event_device_name` and `switch_key_code`. `showkey` and `evtest` can help to find the code and device name.\n\nThe key switches between next three modes:\n- Auto adjust\n- Disabled\n- Max brightness (useful for movies, can be disabled by config file `/usr/local/etc/illuminanced.toml`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikhail-m1%2Filluminanced","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikhail-m1%2Filluminanced","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikhail-m1%2Filluminanced/lists"}