Skip to content

Releases: webOSArchive/Lunacy

Preview Release 0.7.0 - Let's Get Down to Business

Choose a tag to compare

@codepoet80 codepoet80 released this 09 Oct 17:42

This release starts to bring the productivity capabilities of webOS into Lunacy, including basic Email, Calendar and Contacts -- which required the Accounts app and sync services to be implemented. Access to files also required abstracting the Android file system to media-index queries for webOS compatibility. To test this, an initial Photos app port was done as well.

The runtime layer has been updated to support the vintage Office (QuickOffice) and Adobe apps. Download them from the App Catalog to test.

New apps and services

  • Email: Palm's Email app reads an IMAP account through the TouchPad's native mail services, sends through Palm's SMTP service, and gets push mail (IDLE).
  • Calendar: webOS CE's Calendar 3.2.0, with local calendars and reminders. Install webCal from the App Catalog to sync ics links.
  • Contacts: webOS CE's Contacts 3.2.0, local only. Contact photos work: the file picker crops as Palm's did, and com.palm.image resizes.
  • Photos & Videos 3.1.8001, with Palm's photos service.
    • Media is indexed from the files.
    • Android's camera folder is the Photo roll.
  • Accounts 3.1.1 from the TouchPad, which adds and removes accounts. Accounts notices when an app that brings an account type is installed or removed.
  • Hybrid apps (web app with PDK plug-in): Quick Office and Adobe Reader open all their document types.
  • Exhibition: apps' dock-mode windows sit in their own layer and crossfade when the face changes, and swiping up leaves the mode.
  • Default dock: Web, Email, Calendar, Photos and App Catalog.

Platform

  • Sleep and wake: powerd's work is done on Android's terms.
    • Exact alarms and wake locks for power activities.
    • Missed scheduled work runs after Doze or a relaunch.
    • Push mail returns about 3 s after Doze ends.
  • db8: it purges deleted records, matches the longest wildcard permission, and repairs records saved without array _ids on older data.
  • Documents index: answered from the files, so Quick Office and Adobe Reader list Documents and Downloads.
  • Content handlers: files open in the app that handles their type. This covers installed apps' mimeTypes and the system's handler list, and
    getHandlerForExtension/getHandlerForUrl give the answers measured on the TouchPad.
  • Opening content: open sends a bare target to the app that claims it (mailto: opens in Email).
  • Cards: a card that's closed returns you to the card it joined; a launched app's card joins its caller's group.
  • Activities: each web app has its own activity, and the service host reports a caller's bus name, which ended Synergy's endless re-syncs.
  • Logs: passwords and tokens are blanked in the bus log and service output.

Phone layout

  • Palm's 500 px centred column now fits a phone's card in Calendar, Contacts, Email, Photos, Accounts and Exhibition.
  • Email on a phone: its panels slide over, the message fits, and in landscape the header shows and scrolls when dragged.
  • Phone Zoom is on by default for Calendar and Contacts.

Enyo patches (all also in webos-sdk-redux)

  • 0006: a percentage height inside a flexed child is 0, as on the TouchPad.
  • 0008: check boxes show their state at pixel ratios of 1.5 and above.
  • 0009: a window from another origin is treated as one Enyo can't reach.
  • 0010: a narrow SlidingPane stacks its views and slides them over.
    • Follow-ups fixed a leftover flex-basis.
    • A resize sent mid-switch froze Plex; that's fixed too.

Web browser

  • The blue loading bar under the title bar now shows.
  • The copy/paste popup and other overlays the page draws now show on top of the native web view.
  • Download links work.
  • The A12 margin difference (-webkit-box edge margins) is fixed in compat.js.

Bugs and regressions

  • Pandora (Apollo): plays again on recent WebViews (Range handling in the local network proxy).
  • WebView 44 (Nexus 5): a failed script no longer stops the load event, audio gets its progress events, and email and number fields no longer throw on selection reads.
  • Commander Keen broke upon hybrid implementation, fixed.
  • Plex: it no longer freezes. Lunacy's injected code no longer calls the trim that Plex overrides.
  • Dashboards: they get focus events as on the TouchPad, so Apollo's dashboard is live.
  • Mojo apps: they start again. Lunacy's CSS goes in as stylesheet links, which fixed MeTube's handoff to the Video Player.
  • Check boxes: fixed at high pixel ratios (Enyo 0008, above).
Screenshot_20261009_133458 Screenshot_20261009_133518 Screenshot_20261009_133602 Screenshot_20261009_133627

Mini Release - 0.6.1 - Foldables

Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 06 Oct 20:56

This release adds a manifest declaration so Samsung foldables (hopefully) won't insist on restarting the app upon unfolding. There are no other changes, skip this one if you don't have a Samsung folding phone.

If you have a Samsung foldable and are still getting a prompt to restart Lunacy, please share:

  • The phone model and Android/One UI version.
  • Which build you installed, 32-bit or 64-bit.
  • Whether the prompt appears when you unfold, when you fold, or both.
  • A screenshot of Lunacy home screen before and after unfolding, so we can see how the phone layout looks

Preview Release 0.6.0 - Fun and Games

Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 06 Oct 11:23

Fun and games edition!

  • Support for Palm SDK command line tools over adb (palm-install, palm-log, palm-run, etc...) including Developer mode
  • Re-base Enyo with SDK for common patch set
  • Fix for missing scheme in Web browser on older WebView
  • Support for Browser shortcuts from Launcher (including PWA Installer)
  • Mojo fixes: crypto libraries supported, text input and focus issues resolved on newer WebViews
  • Broaden PDK support to iOS and Android ports*

*Please test the following PDK games and report launch, rendering, and rotation issues along with information about your device. Be aware that PDK games on ARM64 hardware run through ARM32 emulation so your device should be powerful enough to accomplish this (or you should be patient)

  • Tiger Woods PGA Tour
  • Fieldrunners
  • Where's My Water
pixel-now

(No keyboard update this time, use the keyboard APK from previous release)

Preview Release 0.5.5

Preview Release 0.5.5 Pre-release
Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 04 Oct 18:54

Although this is a maintenance release, its lays important groundwork for the future...

Key Changes:

  • PDK graphics fixes for certain GPUs
  • Now integrated with Android wallpaper/Lock Screen setting where available
  • Web browser app implemented as Enyo wrapper around Android-native WebView
  • Copy/Paste integration improved, should work across webOS apps and most Android-to-webOS scenarios
  • Scientific calculator implemented (planned for webOS CE 3.2.0)
  • Text-selection fixes
  • Phone scaling fixes for FirstUse and App Catalog

Note: signed APKs are now available -- this requires uninstalling debug versions and installing the signed ones, but enables an update path in the future. Whenever you make the switch, you'll have to re-install any webOS apps.

Preview Release 0.5.0

Preview Release 0.5.0 Pre-release
Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 03 Oct 19:45

DB8 for Newer Android

  • Chromium 119 removed WebSQL, so the Pixel Tablet's WebView had no openDatabase. Apollo and every Mojo app's
    Depot stopped at their first store.
  • websql.js and WebSql.kt now provide the device's API over one SQLite file per app and database. Android 5
    devices keep the WebView's own.

PDK native apps coming to life!

  • The TouchPad's own binaries run unchanged, through the glibc loader on 32-bit ARM and under bundled qemu on
    64-bit-only devices.
  • Commander Keen plays on the Nexus 5 and the Pixel Tablet.
  • GLES 1.1 and GLES 2 are streamed to the shell and replayed into a framebuffer of the app's own size.
    Transformers G1, Dice and ThermalPad run.
  • Also built: SDL_mixer, SDL_image, SDL_ttf, SDL_net, and the image and font libraries apps link by name.
  • webOS file paths and the TouchPad's fonts resolve in the webOS root.
  • PDK cards show full screen, turned as measured on the TouchPad.
  • The accelerometer is SDL joystick 0, as on webOS.

Phone layout

  • FormFactor decides phone or tablet from the screen, or from an owner setting that is also reachable over the bus
    or adb.
  • The launcher gets a 40 px scrolling tab bar, two permanent tabs, 84 px cells with 56 px icons (four across a
    Nexus 5) and a four-icon dock. Nothing changes on a tablet.
  • Apps are told they are on a Pre3 on a phone.
  • Phone Zoom is a per-app fixed-viewport switch, listed in Device Info's new Software group. It is on by default
    only for Palm's Clock, Calculator and Memos.
n5 n5b
  • Launcher cells are 84 by 112 so labels clear the next row, with 13 px labels. The edit frame is a nine-slice.
  • The dock is 95 px tall with 8% smaller icons.
  • Just Type's panel fits a phone, and a keyboard's first key opens Just Type with that character on phones and
    tablets.
  • The layout choice moved from Device Info into a Layout group on Screen & Lock, an exception to rules 0 and 5
    (delta B11). A change restarts the shell. Device Info keeps a read-only row and the Phone Zoom width.
  • Screen & Lock and Sounds & Alerts fit a phone's card, and Screen & Lock's footnotes share one spacing.

Bug Fixes

  • Mojo lists coast again.
  • The launcher's over-scroll snaps back in about 370 ms instead of hanging for about a second.
  • Android apps can be uninstalled from the launcher on the target-28 flavour.
  • The grey box behind First Use's Start Over button is gone, for every page (delta A11).
  • webOS Community Account Manager installs on the Pixel Tablet and Nexus 5.

Busybox

  • On 2026-10-02 the prebuilt busybox was replaced with a build without FEATURE_SUID, so package scripts stopped
    dying on Android 10 and later.
  • Rebuilt against Android's own libc for both ABIs. The static glibc build was still killed by seccomp
    on Android 17, which left the 64-bit webOS root with no commands at all.

Keyboard 0.5.0

  • Draws at a whole-number scale chosen from the screen: 2x on the Nexus 5 and Pixel Tablet, 1x on the HP 10 G2 and
    Nexus 7, with 1x to 3x in the setup screen.

Measured on Pre3

  • A PDK buffer of the other shape turns clockwise, the opposite of the TouchPad, and the PDK card now follows that
    on a portrait device.
  • The accelerometer's x axis is positive to the right, as assumed.

Preview Release 0.4.0

Preview Release 0.4.0 Pre-release
Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 02 Oct 00:08
  • Two APKs instead of one. A 32-bit build for the Android 5 era devices, unchanged in what it targets, and a 64-bit build for the SoCs that can no longer run 32-bit code, which the old APK refused to install on. Node, its libc++, the launcher and busybox come in both ABIs.
  • The 64-bit build targets Android 9. Android 17 warns at launch for anything below that while still installing it. With the target came a network security config for plain http, WebView Safe Browsing turned off, and a stored device id, so the id no longer shifts when the build under it changes.
  • 16 KB-page clean. Node is rebuilt from the nodejs-mobile source with 16 KB-aligned segments, and libc++ and the launcher come from NDK r28c. Android 17's compatibility warming is gone. The rebuild is scripted.
  • First Use. A webOS-style first-run app, in Palm's First Use look, that asks for storage, "Modify system settings" and whether Lunacy should be the home screen, with Start Over and its confirmation. It handles Android's final refusal by opening Lunacy's settings instead.
  • App Catalog's sort buttons on the newest WebViews no longer cut off "Recommended". Enyo patch 0004 keeps a content-sized group at its natural widths, measured against the reference TouchPad.
  • Ares apps start fixed. mojo.js now carries a prelude that loads Mojo's builtins when the page's tag was written by a script.
  • Phones in portrait aren't completely broken. The Just Type pill, the dock icons and the launcher tabs fit a phone-sized screen, the card view uses the Pre3's ratios, and First Use fits the card. Apps on a phone are told they're a Pre3, which was already so and is now confirmed. Phones are still not a supported target.
  • Devices. The Pixel Tablet on Android 17 and the Nexus 7 on 5.1.1 join the test set, both reached over Wi-Fi adb since the VM's USB drops large transfers.

Preview Release 0.3.0

Preview Release 0.3.0 Pre-release
Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 26 Sep 21:21
  • Improved Mojo app support
  • Lunacy can now be used as the default Android Launcher
  • Installable without errors on up to Android 14, with appropriate permissions requests
  • App Museum replaced with new, common App Catalog
  • App Catalog can track full install progress
  • AndroidLuna can now group icons, just like webOS 3.1.0
  • Stock Memos and Calculator pre-installed
  • Help app now shows Touchpad help content
  • Sounds & Alerts can now control Lunacy sounds

Still only targeting tablets at this time.

Preview Release 0.2.5

Preview Release 0.2.5 Pre-release
Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 23 Sep 14:08
  • Fix layout issues on high DPI devices
  • Fix layout issues on Nexus 5 (don't spoof a Touchpad on small screens)
  • Enable error-less install up to Android 14
  • Fix Dashboard layout
  • Fix Mojo touch events

Preview Release 0.2.0

Preview Release 0.2.0 Pre-release
Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 22 Sep 22:57

This release adds support for Mojo apps, and significantly improves the LunaCE implementation.

Apps, especially Mojo

  • Five common Mojo apps now run: drPodder Redux, IAmA reddit, MeTube, Check Mate and SimpleChat.
  • Mojo 2 works too, and Palm's Video Player is bundled.
  • Apps written for a phone, run in the phone-sized card the TouchPad gave them. That card now has its own title bar, back strip, keyboard button and rounded corners.
  • Page layout matches the device:
    • The screen and window sizes apps now matches the device screen dimensions
    • The page's viewport is set to the card's size.
    • A Mojo scene gets its card's height.
    • Fixed and background elements are sized as on the device.
  • webOS-only CSS now works: -webkit-palm-mouse-target.
  • windowOrientation now answers with the window's orientation.
  • New services: the download manager, and extractfs (webOS's thumbnailer).
  • Apps without "visible" set stay off the launcher, as on webOS.

The app-facing changes

  • Full-screen cards.
  • An app can set its status bar colour and lock the orientation.
  • Banner and notification sounds.
  • Apps hear low-memory warnings.
  • Paste, copy and cut use Android's clipboard.
  • A slow app waits in the card view with its icon pulsing, and apps hear that they're active on first launch.

Card view

  • Launching cards show the app's icon while loading.
  • Side cards dim.
  • An app's cards stack in fanned groups.
  • Tap-and-hold reorders cards.
  • A card pulled off the bottom closes.
  • Touches starting in the 15 px edge band never reach the app.

Status bar and notifications

  • The status bar animates as on webOS.
  • New icons for Bluetooth, rotation lock, mute, airplane mode and VPN.
  • A first system menu: date, battery and brightness.
  • The dashboard drop-down scrolls; Enyo dashboards handle their own swipes.
  • Dashboards and banners without an icon use the app's grey mini icon.

Launcher and Just Type

  • Installed apps land on DOWNLOADS, as on the TouchPad.
  • The device's column spacing and scrolling.
  • The empty-page hint, and install progress on the icon.
  • Tab rename, add and delete, and app folders.
  • Just Type finds and launches apps, or searches DuckDuckGo.

Sounds and wallpaper

  • webOS's own system sounds, pulled off a TouchPad.
  • Small wallpapers show at their own size, centred.

Keyboard

  • Soft-keyboard input reaches apps as the key events webOS sent.
  • Tapping a Mojo text field brings the keyboard up.
  • Shift and shift-lock behave as on the TouchPad's keymap.

Reference devices

  • A Pre3 and a stock 3.0.5 TouchPad were measured, and both device profiles corrected.
  • New probe apps, plus tools to drive and screenshot both devices.
  • The root cause of the border-image seams was found, and Device Info now reports whether a screen's pixels line up.

Release housekeeping

  • Version 0.2.0; the build number now counts commits.
  • Glimpse is left out of release builds.
  • The docs are updated, including the list of remaining differences from the TouchPad.

Preview Release 0.0.1

Preview Release 0.0.1 Pre-release
Pre-release

Choose a tag to compare

@codepoet80 codepoet80 released this 20 Sep 20:29

This is an early preview -- don't expect much!

Working:

  • Most simple Enyo apps
  • A few Settings controls (most shell out to Android settings)
  • Optional webOS-style keyboard
  • Exhibition mode (Enyo apps only!)
  • Basic Launcher (Luna) icon/app maintenance
  • App installs via App Museum

Not working:

  • Mojo apps (very basic support started, not enough for an app)
  • SDK apps (a long way away)
  • Most system Settings

See the Readme for installation details.