mirror of
https://github.com/sudoxnym/nightd.git
synced 2026-04-14 11:37:29 +00:00
No description
| app | ||
| assets | ||
| .gitignore | ||
| banner_source.png | ||
| build.gradle | ||
| gradle.properties | ||
| icon_source.png | ||
| LICENSE | ||
| README.md | ||
| real_banner.png | ||
| settings.gradle | ||
| trimmed_banner.png | ||
nightd
screen dimmer for android tv
keep your media playing while the screen goes dark
what is this?
nightd is a tiny android tv app that blacks out your screen while keeping your media playing. perfect for:
- falling asleep to music/podcasts - screen goes dark, audio keeps playing
- saving power on oled displays - no burn-in, no wasted pixels
- background audio - cast audio without lighting up your room
modes
| mode | what it does |
|---|---|
| dim | single overlay layer (~40% darker) |
| black | 5 stacked layers = pitch black (android limits overlay opacity to 80%, so we stack 'em) |
cycle order: off → dim → black → off
installation
- download the latest nightd.apk
- sideload via adb:
adb install nightd.apk - grant "display over other apps" permission when prompted
usage
with key mapper (recommended)
use key mapper to bind nightd to remote buttons:
| action | intent |
|---|---|
| toggle | com.sudox.nightd.TOGGLE |
| dim mode | com.sudox.nightd.DIM |
| black mode | com.sudox.nightd.BLACK |
| turn off | com.sudox.nightd.OFF |
package: com.sudox.nightd
service: com.sudox.nightd.NightdService
example: bind "zoom in" to toggle, "zoom out" to off.
with adb
# toggle (cycles through off → dim → black → off)
adb shell am startservice -a com.sudox.nightd.TOGGLE com.sudox.nightd/.NightdService
# specific modes
adb shell am startservice -a com.sudox.nightd.DIM com.sudox.nightd/.NightdService
adb shell am startservice -a com.sudox.nightd.BLACK com.sudox.nightd/.NightdService
adb shell am startservice -a com.sudox.nightd.OFF com.sudox.nightd/.NightdService
how it works
android limits overlay opacity to 80% per layer. to achieve true black, nightd stacks 5 layers:
0.8 × 0.8 × 0.8 × 0.8 × 0.8 = 0.032 (96.8% blocked)
plus it sets screen brightness to 0 for good measure.
permissions
- SYSTEM_ALERT_WINDOW - required to draw overlay
- FOREGROUND_SERVICE - keeps the overlay running
- WRITE_SETTINGS - adjusts screen brightness (optional, gracefully fails)
building from source
# clone
git clone https://github.com/sudoxnym/nightd.git
cd nightd
# build (requires android ndk)
./gradlew assembleRelease
# or use the aapt/d8/apksigner toolchain directly
license
MIT - do whatever you want with it.
built by sudoxnym for the sleep-deprived