Recently Written · git

ink-dim

Ink Dim: tap to set the frontlight of a Viwoods AiPaper reader below the lowest system level. Tap again to go back.

git clone https://github.com/equwal/ink-dim

Log | Files | Refs


README.md (2861 bytes)

1 # Ink Dim
2 
3 Sets the frontlight below the lowest level of the system.
4 
5 Tap the icon. The light goes to the lowest level the hardware still lights.
6 Tap it again. The light goes back to the level the system holds.
7 
8 The app has no screen. The icon is the whole app.
9 
10 Made for the Viwoods AiPaper readers.
11 
12 ## Screenshots
13 
14 To be added.
15 
16 ## Why the app needs Shizuku
17 
18 The system will not set the frontlight below its own floor. Ask for less
19 through any official route and the light snaps to zero. So the app writes the
20 light of the panel straight, at
21 `/sys/class/leds/lcd-backlight/brightness`.
22 
23 That file belongs to the user `system`. An app cannot write it, and a plain
24 shell user cannot write it either. The AiPaper Reader that this was made on has
25 a userdebug build, where the shell user may run `su 0`. On a reader with
26 another build, the app says that it could not set the light. So the app asks Shizuku for a shell, and the
27 shell writes the file through `su 0`.
28 
29 Shizuku is a separate free app. You start it from the device through wireless
30 debugging. There is no computer and no root.
31 
32 Long press the icon and open **Settings** for the steps, with a button for each
33 one.
34 
35 ## Install
36 
37 Download the APK from the Releases page and install it.
38 
39 Then long press the icon, open **Settings**, and follow the steps.
40 
41 ## Use
42 
43 - Tap the icon. The light goes down.
44 - Tap the icon again. The light goes back to the system level.
45 - Long press the icon for **Settings**.
46 
47 The value holds across sleep. It holds until the system brightness is next set.
48 
49 ## Quick settings tile
50 
51 The tile is called **Extra dim**. Add it to the quick settings panel, then tap
52 it. The tile does the same as the icon, and it shows the state.
53 
54 ## Start it from somewhere else
55 
56 Three intent actions:
57 
58     dev.equwal.inkdim.TOGGLE
59     dev.equwal.inkdim.ON
60     dev.equwal.inkdim.OFF
61 
62 Example with adb:
63 
64     adb shell am start -a dev.equwal.inkdim.TOGGLE
65 
66 ## Put it on a hardware button
67 
68 [Rebind](https://github.com/equwal/rebind) remaps the buttons of an e-ink
69 reader or any Android device. It can put this toggle on a hardware button: bind
70 the button to the action `dev.equwal.inkdim.TOGGLE`. Rebind is from the same
71 maker.
72 
73 More extensions: [Awesome Rebind](https://github.com/equwal/awesome-rebind).
74 
75 ## Say thanks
76 
77 Ink Dim is free and open source. If it made your device better, you can
78 [buy me a coffee](https://ko-fi.com/truex).
79 
80 ## Build
81 
82 You need JDK 17 or later and the Android SDK, with platform 36.
83 
84     ./gradlew testReleaseUnitTest assembleRelease
85 
86 The APK is in `app/build/outputs/apk/release/`.
87 
88 Release signing is optional. Put a `keystore.properties` file in the root of
89 the project with `storeFile`, `storePassword`, `keyAlias` and `keyPassword`.
90 Without that file the build makes an unsigned APK.
91 
92 ## Licence
93 
94 GPL-3.0-or-later. See [LICENSE](LICENSE).
95 
96 Copyright (c) 2026 equwal.