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 (4988 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 <p>
15   <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/1.png" width="260" alt="Settings: the light, the Shizuku steps, about">
16 </p>
17 
18 The picture is from a Viwoods AiPaper Reader.
19 
20 ## Why the app needs Shizuku
21 
22 The system will not set the frontlight below its own floor. Ask for less
23 through any official route and the light snaps to zero. So the app writes the
24 light of the panel straight, at
25 `/sys/class/leds/lcd-backlight/brightness`.
26 
27 That file belongs to the user `system`. An app cannot write it, and a plain
28 shell user cannot write it either. The AiPaper Reader that this was made on has
29 a userdebug build, where the shell user may run `su 0`. On a reader with
30 another build, the app says that it could not set the light. So the app asks Shizuku for a shell, and the
31 shell writes the file through `su 0`.
32 
33 Shizuku is a separate free app. You start it from the device through wireless
34 debugging. There is no computer and no root.
35 
36 Long press the icon and open **Settings** for the steps, with a button for each
37 one.
38 
39 ## Install
40 
41 Download the APK from the Releases page and install it.
42 
43 Then long press the icon, open **Settings**, and follow the steps.
44 
45 ## Use
46 
47 - Tap the icon. The light goes down.
48 - Tap the icon again. The light goes back to the system level.
49 - Long press the icon for **Settings**.
50 
51 The value holds across sleep. It holds until the system brightness is next set.
52 
53 ## Quick settings tile
54 
55 The tile is called **Extra dim**. Add it to the quick settings panel, then tap
56 it. The tile does the same as the icon, and it shows the state.
57 
58 ## Start it from somewhere else
59 
60 Three intent actions:
61 
62     dev.equwal.inkdim.TOGGLE
63     dev.equwal.inkdim.ON
64     dev.equwal.inkdim.OFF
65 
66 Example with adb:
67 
68     adb shell am start -a dev.equwal.inkdim.TOGGLE
69 
70 ## Put it on a hardware button
71 
72 [Rebind](https://github.com/equwal/rebind) remaps the buttons of an e-ink
73 reader or any Android device. It can put this toggle on a hardware button: bind
74 the button to the action `dev.equwal.inkdim.TOGGLE`. Rebind is from the same
75 maker.
76 
77 More extensions: [Awesome Rebind](https://github.com/equwal/awesome-rebind).
78 
79 ## Say thanks
80 
81 Ink Dim is free and open source. If it made your device better, you can
82 [buy me a coffee](https://ko-fi.com/truex).
83 
84 ## Build
85 
86 You need JDK 17 or later and the Android SDK, with platform 36.
87 
88     ./gradlew testReleaseUnitTest assembleRelease
89 
90 The APK is in `app/build/outputs/apk/release/`.
91 
92 Release signing is optional. Put a `keystore.properties` file in the root of
93 the project with `storeFile`, `storePassword`, `keyAlias` and `keyPassword`.
94 Without that file the build makes an unsigned APK.
95 
96 ## More projects
97 
98 - [SubRead](https://subread.space/): read along with an audiobook, in the browser.
99   Also [for Android](https://github.com/equwal/subread-android/releases/latest),
100   [for YouTube](https://github.com/equwal/subread-extension/releases/latest)
101   and [for KOReader](https://github.com/equwal/subread.koplugin).
102 - [SubRead Overlay](https://github.com/equwal/subread-overlay/releases/latest): subtitle lines over any Android media player.
103 - [SubRead Dictionary](https://github.com/equwal/subread-dictionary/releases/latest): a pop-up dictionary for Android that reads Yomitan dictionaries.
104 - [SubRead Anki](https://github.com/equwal/subread-anki): one tap makes an Anki card from any Android app.
105 - [Subrep](https://github.com/equwal/subrep-android/releases/latest): live captions of the sound of your phone.
106 - [Book Simulator](https://booksimulator.com/): a reading room for Aozora Bunko and Project Gutenberg books.
107 - [honjimaku.com](https://honjimaku.com/): subtitles for Japanese audiobooks.
108 - [sbm Sync](https://sbmsync.com/): your bookmarks, the same on every device,
109   with [sbm](https://github.com/equwal/sbm) for dmenu,
110   [sbm for Android](https://github.com/equwal/sbm-android/releases/latest)
111   and the [sbm add-on](https://github.com/equwal/sbm-extension/releases/latest) for Firefox and Chrome.
112 - [Rebind](https://github.com/equwal/rebind/releases): remap the hardware buttons of e-ink readers and Android,
113   with [Ink Recents](https://github.com/equwal/ink-recents/releases/latest),
114   [Ink Dim](https://github.com/equwal/ink-dim/releases/latest)
115   and [Ink Update](https://github.com/equwal/ink-update/releases/latest).
116 - [dickt.store](https://dickt.store/): language-learning tools, flashcards and web toys.
117 - [hentaibun.online](https://hentaibun.online/): learn kanbun and kobun.
118 - [Recently Written](https://recentlywritten.com/): the blog, and a list of [all projects](https://recentlywritten.com/projects.html).
119 
120 ## Licence
121 
122 GPL-3.0-or-later. See [LICENSE](LICENSE).
123 
124 Copyright (c) 2026 equwal.