Files
lintunes/andtunes/DEVICE.md
T
2026-09-28 19:37:11 -07:00

1.7 KiB
Raw Blame History

andTunes — device facts

Measured facts about the Rabbit R1 that the app is built around. (Moved out of the old andtunes/TASKS.md board on 2026-09-24.)

  • Panel 480 × 640 px, physical density 320, override density 160 — so the app sees a 480 × 640 dp canvas on a 2.88" screen (~278 real ppi).
  • One dp is about half its usual physical size here. Double every stock value: body text 28–32 sp, list rows ≥ 88 dp, menu tiles ~213 dp. A 48 dp row would be 4.4 mm tall. Do not "fix" this by changing the device density — trav likes it where it is.
  • Android 13 / API 33, gsi_r1-userdebug, arm64-v8a, 65 GB free.
  • The wheel can only ever give us detents. getevent -pl (2026-09-14): och1970_holl_key advertises KEY (0001): KEY_UP KEY_DOWN and nothing else — no EV_REL/REL_WHEEL, no EV_ABS, no resolution. The och1970 is a Hall latch, so the driver quantises the magnet into clicks and hands userspace one key press each. There is no sub-detent position to read without a kernel driver change, so every bit of nuance has to be derived from the timing between detents (see WheelScroll).
  • Scroll wheel = input device och1970_holl_key → KEY_UP / KEY_DOWN, mapped by the stock Generic.kl (checked 2026-09-11 via dumpsys input) to KEYCODE_DPAD_UP / DPAD_DOWN — not volume. Side/PTT button sits on mtk-kpd with KEY_VOLUMEDOWN + KEY_POWER. Headset exposes KEY_PLAYPAUSE, so a MediaSession gets media keys for free.
  • USB: set to come up as mtp,adb whenever the screen is unlocked (adb shell svc usb setScreenUnlockedFunctions mtp, 2026-09-11), so the gvfs mount sync uses and the adb install uses are both there at once.